diff options
author | Elena Zannoni <ezannoni@kwikemart.cygnus.com> | 1998-12-21 20:06:35 +0000 |
---|---|---|
committer | Elena Zannoni <ezannoni@kwikemart.cygnus.com> | 1998-12-21 20:06:35 +0000 |
commit | e98fe4f7b54cbdf29aef9287bbb1bea8801dd05a (patch) | |
tree | f31ba33ebc267e4b960f5eb44c36f33494554a68 | |
parent | 177dd40152a73f0b5e424df0eee4958cdfc3a41b (diff) | |
parent | d7fa6e206dfcf5ade54c67dd5bd01d4f9404505a (diff) | |
download | gdb-e98fe4f7b54cbdf29aef9287bbb1bea8801dd05a.zip gdb-e98fe4f7b54cbdf29aef9287bbb1bea8801dd05a.tar.gz gdb-e98fe4f7b54cbdf29aef9287bbb1bea8801dd05a.tar.bz2 |
This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
-rw-r--r-- | readline/MANIFEST.doc | 16 | ||||
-rw-r--r-- | readline/acconfig.h | 30 | ||||
-rw-r--r-- | readline/doc/history.dvi | bin | 0 -> 35068 bytes | |||
-rw-r--r-- | readline/doc/history.html | 1069 | ||||
-rw-r--r-- | readline/doc/history.ps | 2071 | ||||
-rw-r--r-- | readline/doc/history_toc.html | 51 | ||||
-rw-r--r-- | readline/doc/readline.0 | 1122 | ||||
-rw-r--r-- | readline/doc/readline.dvi | bin | 0 -> 185100 bytes | |||
-rw-r--r-- | readline/doc/readline.html | 3482 | ||||
-rw-r--r-- | readline/doc/readline.ps | 4946 | ||||
-rw-r--r-- | readline/doc/readline_toc.html | 77 |
11 files changed, 12864 insertions, 0 deletions
diff --git a/readline/MANIFEST.doc b/readline/MANIFEST.doc new file mode 100644 index 0000000..ed27cb3 --- /dev/null +++ b/readline/MANIFEST.doc @@ -0,0 +1,16 @@ +# +# Master Manifest file for documentation-only distribution +# +doc d +MANIFEST.doc f +doc/readline.ps f +doc/history.ps f +doc/readline.dvi f +doc/history.dvi f +doc/readline.info f +doc/history.info f +doc/readline.html f +doc/readline_toc.html f +doc/history.html f +doc/history_toc.html f +doc/readline.0 f diff --git a/readline/acconfig.h b/readline/acconfig.h new file mode 100644 index 0000000..4f42238 --- /dev/null +++ b/readline/acconfig.h @@ -0,0 +1,30 @@ +/* acconfig.h + This file is in the public domain. + + Descriptive text for the C preprocessor macros that + the distributed Autoconf macros can define. + No software package will use all of them; autoheader copies the ones + your configure.in uses into your configuration header file templates. + + The entries are in sort -df order: alphabetical, case insensitive, + ignoring punctuation (such as underscores). Although this order + can split up related entries, it makes it easier to check whether + a given entry is in the file. + + Leave the following blank line there!! Autoheader needs it. */ + + +/* Definitions pulled in from aclocal.m4. */ +#undef VOID_SIGHANDLER + +#undef TIOCGWINSZ_IN_SYS_IOCTL + +#undef TIOCSTAT_IN_SYS_IOCTL + +#undef HAVE_GETPW_DECLS + + +/* Leave that blank line there!! Autoheader needs it. + If you're adding to this file, keep in mind: + The entries are in sort -df order: alphabetical, case insensitive, + ignoring punctuation (such as underscores). */ diff --git a/readline/doc/history.dvi b/readline/doc/history.dvi Binary files differnew file mode 100644 index 0000000..f501792 --- /dev/null +++ b/readline/doc/history.dvi diff --git a/readline/doc/history.html b/readline/doc/history.html new file mode 100644 index 0000000..c8dd1e1 --- /dev/null +++ b/readline/doc/history.html @@ -0,0 +1,1069 @@ +<HTML> +<HEAD> +<!-- This HTML file has been created by texi2html 1.51 + from /usr/homes/chet/src/bash/readline-2.2/doc/hist.texinfo on 2 April 1998 --> + +<TITLE>GNU History Library</TITLE> +</HEAD> +<BODY> +<H1>GNU History Library</H1> +<H2>Edition 2.1, for <CODE>History Library</CODE> Version 2.1.</H2> +<H2>March 1996</H2> +<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS> +<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS> +<P> +<P><HR><P> + +<P> +@dircategory Libraries +@direntry +* History: (history). The GNU history library API + +</P> + +<P> +This document describes the GNU History library, a programming tool that +provides a consistent user interface for recalling lines of previously +typed input. + +</P> +<P> +Published by the Free Software Foundation <BR> +675 Massachusetts Avenue, <BR> +Cambridge, MA 02139 USA + +</P> +<P> +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +</P> +<P> +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. + +</P> +<P> +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation approved +by the Foundation. + +</P> +<P> +Copyright (C) 1989, 1991 Free Software Foundation, Inc. + +</P> + + + +<H1><A NAME="SEC1" HREF="history_toc.html#TOC1">Using History Interactively</A></H1> + +<P> +This chapter describes how to use the GNU History Library interactively, +from a user's standpoint. It should be considered a user's guide. For +information on using the GNU History Library in your own programs, +see section <A HREF="history.html#SEC6">Programming with GNU History</A>. + +</P> + + + +<H2><A NAME="SEC2" HREF="history_toc.html#TOC2">History Expansion</A></H2> +<P> +<A NAME="IDX1"></A> + +</P> +<P> +The History library provides a history expansion feature that is similar +to the history expansion provided by <CODE>csh</CODE>. This section +describes the syntax used to manipulate the history information. + +</P> +<P> +History expansions introduce words from the history list into +the input stream, making it easy to repeat commands, insert the +arguments to a previous command into the current input line, or +fix errors in previous commands quickly. + +</P> +<P> +History expansion takes place in two parts. The first is to determine +which line from the history list should be used during substitution. +The second is to select portions of that line for inclusion into the +current one. The line selected from the history is called the +<STRONG>event</STRONG>, and the portions of that line that are acted upon are +called <STRONG>words</STRONG>. Various <STRONG>modifiers</STRONG> are available to manipulate +the selected words. The line is broken into words in the same fashion +that Bash does, so that several words +surrounded by quotes are considered one word. +History expansions are introduced by the appearance of the +history expansion character, which is <SAMP>`!'</SAMP> by default. + +</P> + + + +<H3><A NAME="SEC3" HREF="history_toc.html#TOC3">Event Designators</A></H3> +<P> +<A NAME="IDX2"></A> + +</P> +<P> +An event designator is a reference to a command line entry in the +history list. +<A NAME="IDX3"></A> + +</P> +<DL COMPACT> + +<DT><CODE>!</CODE> +<DD> +Start a history substitution, except when followed by a space, tab, +the end of the line, <SAMP>`='</SAMP> or <SAMP>`('</SAMP>. + +<DT><CODE>!<VAR>n</VAR></CODE> +<DD> +Refer to command line <VAR>n</VAR>. + +<DT><CODE>!-<VAR>n</VAR></CODE> +<DD> +Refer to the command <VAR>n</VAR> lines back. + +<DT><CODE>!!</CODE> +<DD> +Refer to the previous command. This is a synonym for <SAMP>`!-1'</SAMP>. + +<DT><CODE>!<VAR>string</VAR></CODE> +<DD> +Refer to the most recent command starting with <VAR>string</VAR>. + +<DT><CODE>!?<VAR>string</VAR>[?]</CODE> +<DD> +Refer to the most recent command containing <VAR>string</VAR>. The trailing +<SAMP>`?'</SAMP> may be omitted if the <VAR>string</VAR> is followed immediately by +a newline. + +<DT><CODE>^<VAR>string1</VAR>^<VAR>string2</VAR>^</CODE> +<DD> +Quick Substitution. Repeat the last command, replacing <VAR>string1</VAR> +with <VAR>string2</VAR>. Equivalent to +<CODE>!!:s/<VAR>string1</VAR>/<VAR>string2</VAR>/</CODE>. + +<DT><CODE>!#</CODE> +<DD> +The entire command line typed so far. + +</DL> + + + +<H3><A NAME="SEC4" HREF="history_toc.html#TOC4">Word Designators</A></H3> + +<P> +Word designators are used to select desired words from the event. +A <SAMP>`:'</SAMP> separates the event specification from the word designator. It +may be omitted if the word designator begins with a <SAMP>`^'</SAMP>, <SAMP>`$'</SAMP>, +<SAMP>`*'</SAMP>, <SAMP>`-'</SAMP>, or <SAMP>`%'</SAMP>. Words are numbered from the beginning +of the line, with the first word being denoted by 0 (zero). Words are +inserted into the current line separated by single spaces. + +</P> +<DL COMPACT> + +<DT><CODE>0 (zero)</CODE> +<DD> +The <CODE>0</CODE>th word. For many applications, this is the command word. + +<DT><CODE><VAR>n</VAR></CODE> +<DD> +The <VAR>n</VAR>th word. + +<DT><CODE>^</CODE> +<DD> +The first argument; that is, word 1. + +<DT><CODE>$</CODE> +<DD> +The last argument. + +<DT><CODE>%</CODE> +<DD> +The word matched by the most recent <SAMP>`?<VAR>string</VAR>?'</SAMP> search. + +<DT><CODE><VAR>x</VAR>-<VAR>y</VAR></CODE> +<DD> +A range of words; <SAMP>`-<VAR>y</VAR>'</SAMP> abbreviates <SAMP>`0-<VAR>y</VAR>'</SAMP>. + +<DT><CODE>*</CODE> +<DD> +All of the words, except the <CODE>0</CODE>th. This is a synonym for <SAMP>`1-$'</SAMP>. +It is not an error to use <SAMP>`*'</SAMP> if there is just one word in the event; +the empty string is returned in that case. + +<DT><CODE><VAR>x</VAR>*</CODE> +<DD> +Abbreviates <SAMP>`<VAR>x</VAR>-$'</SAMP> + +<DT><CODE><VAR>x</VAR>-</CODE> +<DD> +Abbreviates <SAMP>`<VAR>x</VAR>-$'</SAMP> like <SAMP>`<VAR>x</VAR>*'</SAMP>, but omits the last word. + +</DL> + +<P> +If a word designator is supplied without an event specification, the +previous command is used as the event. + +</P> + + +<H3><A NAME="SEC5" HREF="history_toc.html#TOC5">Modifiers</A></H3> + +<P> +After the optional word designator, you can add a sequence of one or more +of the following modifiers, each preceded by a <SAMP>`:'</SAMP>. + +</P> +<DL COMPACT> + +<DT><CODE>h</CODE> +<DD> +Remove a trailing pathname component, leaving only the head. + +<DT><CODE>t</CODE> +<DD> +Remove all leading pathname components, leaving the tail. + +<DT><CODE>r</CODE> +<DD> +Remove a trailing suffix of the form <SAMP>`.<VAR>suffix</VAR>'</SAMP>, leaving +the basename. + +<DT><CODE>e</CODE> +<DD> +Remove all but the trailing suffix. + +<DT><CODE>p</CODE> +<DD> +Print the new command but do not execute it. + +<DT><CODE>s/<VAR>old</VAR>/<VAR>new</VAR>/</CODE> +<DD> +Substitute <VAR>new</VAR> for the first occurrence of <VAR>old</VAR> in the +event line. Any delimiter may be used in place of <SAMP>`/'</SAMP>. +The delimiter may be quoted in <VAR>old</VAR> and <VAR>new</VAR> +with a single backslash. If <SAMP>`&'</SAMP> appears in <VAR>new</VAR>, +it is replaced by <VAR>old</VAR>. A single backslash will quote +the <SAMP>`&'</SAMP>. The final delimiter is optional if it is the last +character on the input line. + +<DT><CODE>&</CODE> +<DD> +Repeat the previous substitution. + +<DT><CODE>g</CODE> +<DD> +Cause changes to be applied over the entire event line. Used in +conjunction with <SAMP>`s'</SAMP>, as in <CODE>gs/<VAR>old</VAR>/<VAR>new</VAR>/</CODE>, +or with <SAMP>`&'</SAMP>. + +</DL> + + + +<H1><A NAME="SEC6" HREF="history_toc.html#TOC6">Programming with GNU History</A></H1> + +<P> +This chapter describes how to interface programs that you write +with the GNU History Library. +It should be considered a technical guide. +For information on the interactive use of GNU History, see section <A HREF="history.html#SEC1">Using History Interactively</A>. + +</P> + + + +<H2><A NAME="SEC7" HREF="history_toc.html#TOC7">Introduction to History</A></H2> + +<P> +Many programs read input from the user a line at a time. The GNU History +library is able to keep track of those lines, associate arbitrary data with +each line, and utilize information from previous lines in composing new +ones. + +</P> +<P> +The programmer using the History library has available functions +for remembering lines on a history list, associating arbitrary data +with a line, removing lines from the list, searching through the list +for a line containing an arbitrary text string, and referencing any line +in the list directly. In addition, a history <STRONG>expansion</STRONG> function +is available which provides for a consistent user interface across +different programs. + +</P> +<P> +The user using programs written with the History library has the +benefit of a consistent user interface with a set of well-known +commands for manipulating the text of previous lines and using that text +in new commands. The basic history manipulation commands are similar to +the history substitution provided by <CODE>csh</CODE>. + +</P> +<P> +If the programmer desires, he can use the Readline library, which +includes some history manipulation by default, and has the added +advantage of command line editing. + +</P> + + +<H2><A NAME="SEC8" HREF="history_toc.html#TOC8">History Storage</A></H2> + +<P> +The history list is an array of history entries. A history entry is +declared as follows: + +</P> + +<PRE> +typedef struct _hist_entry { + char *line; + char *data; +} HIST_ENTRY; +</PRE> + +<P> +The history list itself might therefore be declared as + +</P> + +<PRE> +HIST_ENTRY **the_history_list; +</PRE> + +<P> +The state of the History library is encapsulated into a single structure: + +</P> + +<PRE> +/* A structure used to pass the current state of the history stuff around. */ +typedef struct _hist_state { + HIST_ENTRY **entries; /* Pointer to the entries themselves. */ + int offset; /* The location pointer within this array. */ + int length; /* Number of elements within this array. */ + int size; /* Number of slots allocated to this array. */ + int flags; +} HISTORY_STATE; +</PRE> + +<P> +If the flags member includes <CODE>HS_STIFLED</CODE>, the history has been +stifled. + +</P> + + +<H2><A NAME="SEC9" HREF="history_toc.html#TOC9">History Functions</A></H2> + +<P> +This section describes the calling sequence for the various functions +present in GNU History. + +</P> + + + +<H3><A NAME="SEC10" HREF="history_toc.html#TOC10">Initializing History and State Management</A></H3> + +<P> +This section describes functions used to initialize and manage +the state of the History library when you want to use the history +functions in your program. + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>using_history</B> <I>()</I> +<DD><A NAME="IDX4"></A> +Begin a session in which the history functions might be used. This +initializes the interactive variables. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> HISTORY_STATE * <B>history_get_history_state</B> <I>()</I> +<DD><A NAME="IDX5"></A> +Return a structure describing the current state of the input history. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>history_set_history_state</B> <I>(HISTORY_STATE *state)</I> +<DD><A NAME="IDX6"></A> +Set the state of the history list according to <VAR>state</VAR>. +</DL> + +</P> + + +<H3><A NAME="SEC11" HREF="history_toc.html#TOC11">History List Management</A></H3> + +<P> +These functions manage individual entries on the history list, or set +parameters managing the list itself. + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>add_history</B> <I>(char *string)</I> +<DD><A NAME="IDX7"></A> +Place <VAR>string</VAR> at the end of the history list. The associated data +field (if any) is set to <CODE>NULL</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> HIST_ENTRY * <B>remove_history</B> <I>(int which)</I> +<DD><A NAME="IDX8"></A> +Remove history entry at offset <VAR>which</VAR> from the history. The +removed element is returned so you can free the line, data, +and containing structure. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> HIST_ENTRY * <B>replace_history_entry</B> <I>(int which, char *line, char *data)</I> +<DD><A NAME="IDX9"></A> +Make the history entry at offset <VAR>which</VAR> have <VAR>line</VAR> and <VAR>data</VAR>. +This returns the old entry so you can dispose of the data. In the case +of an invalid <VAR>which</VAR>, a <CODE>NULL</CODE> pointer is returned. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>clear_history</B> <I>()</I> +<DD><A NAME="IDX10"></A> +Clear the history list by deleting all the entries. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>stifle_history</B> <I>(int max)</I> +<DD><A NAME="IDX11"></A> +Stifle the history list, remembering only the last <VAR>max</VAR> entries. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>unstifle_history</B> <I>()</I> +<DD><A NAME="IDX12"></A> +Stop stifling the history. This returns the previous amount the +history was stifled. The value is positive if the history was +stifled, negative if it wasn't. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>history_is_stifled</B> <I>()</I> +<DD><A NAME="IDX13"></A> +Returns non-zero if the history is stifled, zero if it is not. +</DL> + +</P> + + +<H3><A NAME="SEC12" HREF="history_toc.html#TOC12">Information About the History List</A></H3> + +<P> +These functions return information about the entire history list or +individual list entries. + +</P> +<P> +<DL> +<DT><U>Function:</U> HIST_ENTRY ** <B>history_list</B> <I>()</I> +<DD><A NAME="IDX14"></A> +Return a <CODE>NULL</CODE> terminated array of <CODE>HIST_ENTRY</CODE> which is the +current input history. Element 0 of this list is the beginning of time. +If there is no history, return <CODE>NULL</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>where_history</B> <I>()</I> +<DD><A NAME="IDX15"></A> +Returns the offset of the current history element. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> HIST_ENTRY * <B>current_history</B> <I>()</I> +<DD><A NAME="IDX16"></A> +Return the history entry at the current position, as determined by +<CODE>where_history ()</CODE>. If there is no entry there, return a <CODE>NULL</CODE> +pointer. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> HIST_ENTRY * <B>history_get</B> <I>(int offset)</I> +<DD><A NAME="IDX17"></A> +Return the history entry at position <VAR>offset</VAR>, starting from +<CODE>history_base</CODE>. If there is no entry there, or if <VAR>offset</VAR> +is greater than the history length, return a <CODE>NULL</CODE> pointer. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>history_total_bytes</B> <I>()</I> +<DD><A NAME="IDX18"></A> +Return the number of bytes that the primary history entries are using. +This function returns the sum of the lengths of all the lines in the +history. +</DL> + +</P> + + +<H3><A NAME="SEC13" HREF="history_toc.html#TOC13">Moving Around the History List</A></H3> + +<P> +These functions allow the current index into the history list to be +set or changed. + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>history_set_pos</B> <I>(int pos)</I> +<DD><A NAME="IDX19"></A> +Set the position in the history list to <VAR>pos</VAR>, an absolute index +into the list. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> HIST_ENTRY * <B>previous_history</B> <I>()</I> +<DD><A NAME="IDX20"></A> +Back up the current history offset to the previous history entry, and +return a pointer to that entry. If there is no previous entry, return +a <CODE>NULL</CODE> pointer. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> HIST_ENTRY * <B>next_history</B> <I>()</I> +<DD><A NAME="IDX21"></A> +Move the current history offset forward to the next history entry, and +return the a pointer to that entry. If there is no next entry, return +a <CODE>NULL</CODE> pointer. +</DL> + +</P> + + +<H3><A NAME="SEC14" HREF="history_toc.html#TOC14">Searching the History List</A></H3> +<P> +<A NAME="IDX22"></A> + +</P> +<P> +These functions allow searching of the history list for entries containing +a specific string. Searching may be performed both forward and backward +from the current history position. The search may be <STRONG>anchored</STRONG>, +meaning that the string must match at the beginning of the history entry. +<A NAME="IDX23"></A> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>history_search</B> <I>(char *string, int direction)</I> +<DD><A NAME="IDX24"></A> +Search the history for <VAR>string</VAR>, starting at the current history +offset. If <VAR>direction</VAR> < 0, then the search is through previous entries, +else through subsequent. If <VAR>string</VAR> is found, then +the current history index is set to that history entry, and the value +returned is the offset in the line of the entry where +<VAR>string</VAR> was found. Otherwise, nothing is changed, and a -1 is +returned. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>history_search_prefix</B> <I>(char *string, int direction)</I> +<DD><A NAME="IDX25"></A> +Search the history for <VAR>string</VAR>, starting at the current history +offset. The search is anchored: matching lines must begin with +<VAR>string</VAR>. If <VAR>direction</VAR> < 0, then the search is through previous +entries, else through subsequent. If <VAR>string</VAR> is found, then the +current history index is set to that entry, and the return value is 0. +Otherwise, nothing is changed, and a -1 is returned. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>history_search_pos</B> <I>(char *string, int direction, int pos)</I> +<DD><A NAME="IDX26"></A> +Search for <VAR>string</VAR> in the history list, starting at <VAR>pos</VAR>, an +absolute index into the list. If <VAR>direction</VAR> is negative, the search +proceeds backward from <VAR>pos</VAR>, otherwise forward. Returns the absolute +index of the history element where <VAR>string</VAR> was found, or -1 otherwise. +</DL> + +</P> + + +<H3><A NAME="SEC15" HREF="history_toc.html#TOC15">Managing the History File</A></H3> + +<P> +The History library can read the history from and write it to a file. +This section documents the functions for managing a history file. + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>read_history</B> <I>(char *filename)</I> +<DD><A NAME="IDX27"></A> +Add the contents of <VAR>filename</VAR> to the history list, a line at a +time. If <VAR>filename</VAR> is <CODE>NULL</CODE>, then read from +<TT>`~/.history'</TT>. Returns 0 if successful, or errno if not. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>read_history_range</B> <I>(char *filename, int from, int to)</I> +<DD><A NAME="IDX28"></A> +Read a range of lines from <VAR>filename</VAR>, adding them to the history list. +Start reading at line <VAR>from</VAR> and end at <VAR>to</VAR>. If +<VAR>from</VAR> is zero, start at the beginning. If <VAR>to</VAR> is less than +<VAR>from</VAR>, then read until the end of the file. If <VAR>filename</VAR> is +<CODE>NULL</CODE>, then read from <TT>`~/.history'</TT>. Returns 0 if successful, +or <CODE>errno</CODE> if not. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>write_history</B> <I>(char *filename)</I> +<DD><A NAME="IDX29"></A> +Write the current history to <VAR>filename</VAR>, overwriting <VAR>filename</VAR> +if necessary. If <VAR>filename</VAR> is +<CODE>NULL</CODE>, then write the history list to <TT>`~/.history'</TT>. Values +returned are as in <CODE>read_history ()</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>append_history</B> <I>(int nelements, char *filename)</I> +<DD><A NAME="IDX30"></A> +Append the last <VAR>nelements</VAR> of the history list to <VAR>filename</VAR>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>history_truncate_file</B> <I>(char *filename, int nlines)</I> +<DD><A NAME="IDX31"></A> +Truncate the history file <VAR>filename</VAR>, leaving only the last +<VAR>nlines</VAR> lines. +</DL> + +</P> + + +<H3><A NAME="SEC16" HREF="history_toc.html#TOC16">History Expansion</A></H3> + +<P> +These functions implement <CODE>csh</CODE>-like history expansion. + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>history_expand</B> <I>(char *string, char **output)</I> +<DD><A NAME="IDX32"></A> +Expand <VAR>string</VAR>, placing the result into <VAR>output</VAR>, a pointer +to a string (see section <A HREF="history.html#SEC2">History Expansion</A>). Returns: +<DL COMPACT> + +<DT><CODE>0</CODE> +<DD> +If no expansions took place (or, if the only change in +the text was the de-slashifying of the history expansion +character); +<DT><CODE>1</CODE> +<DD> +if expansions did take place; +<DT><CODE>-1</CODE> +<DD> +if there was an error in expansion; +<DT><CODE>2</CODE> +<DD> +if the returned line should only be displayed, but not executed, +as with the <CODE>:p</CODE> modifier (see section <A HREF="history.html#SEC5">Modifiers</A>). +</DL> + +<P> +If an error ocurred in expansion, then <VAR>output</VAR> contains a descriptive +error message. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> char * <B>history_arg_extract</B> <I>(int first, int last, char *string)</I> +<DD><A NAME="IDX33"></A> +Extract a string segment consisting of the <VAR>first</VAR> through <VAR>last</VAR> +arguments present in <VAR>string</VAR>. Arguments are broken up as in Bash. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> char * <B>get_history_event</B> <I>(char *string, int *cindex, int qchar)</I> +<DD><A NAME="IDX34"></A> +Returns the text of the history event beginning at <VAR>string</VAR> + +<VAR>*cindex</VAR>. <VAR>*cindex</VAR> is modified to point to after the event +specifier. At function entry, <VAR>cindex</VAR> points to the index into +<VAR>string</VAR> where the history event specification begins. <VAR>qchar</VAR> +is a character that is allowed to end the event specification in addition +to the "normal" terminating characters. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> char ** <B>history_tokenize</B> <I>(char *string)</I> +<DD><A NAME="IDX35"></A> +Return an array of tokens parsed out of <VAR>string</VAR>, much as the +shell might. The tokens are split on white space and on the +characters <CODE>()<>;&|$</CODE>, and shell quoting conventions are +obeyed. +</DL> + +</P> + + +<H2><A NAME="SEC17" HREF="history_toc.html#TOC17">History Variables</A></H2> + +<P> +This section describes the externally visible variables exported by +the GNU History Library. + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>history_base</B> +<DD><A NAME="IDX36"></A> +The logical offset of the first entry in the history list. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>history_length</B> +<DD><A NAME="IDX37"></A> +The number of entries currently stored in the history list. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>max_input_history</B> +<DD><A NAME="IDX38"></A> +The maximum number of history entries. This must be changed using +<CODE>stifle_history ()</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char <B>history_expansion_char</B> +<DD><A NAME="IDX39"></A> +The character that starts a history event. The default is <SAMP>`!'</SAMP>. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char <B>history_subst_char</B> +<DD><A NAME="IDX40"></A> +The character that invokes word substitution if found at the start of +a line. The default is <SAMP>`^'</SAMP>. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char <B>history_comment_char</B> +<DD><A NAME="IDX41"></A> +During tokenization, if this character is seen as the first character +of a word, then it and all subsequent characters up to a newline are +ignored, suppressing history expansion for the remainder of the line. +This is disabled by default. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>history_no_expand_chars</B> +<DD><A NAME="IDX42"></A> +The list of characters which inhibit history expansion if found immediately +following <VAR>history_expansion_char</VAR>. The default is whitespace and +<SAMP>`='</SAMP>. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>history_search_delimiter_chars</B> +<DD><A NAME="IDX43"></A> +The list of additional characters which can delimit a history search +string, in addition to whitespace, <SAMP>`:'</SAMP> and <SAMP>`?'</SAMP> in the case of +a substring search. The default is empty. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>history_quotes_inhibit_expansion</B> +<DD><A NAME="IDX44"></A> +If non-zero, single-quoted words are not scanned for the history expansion +character. The default value is 0. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> Function * <B>history_inhibit_expansion_function</B> +<DD><A NAME="IDX45"></A> +This should be set to the address of a function that takes two arguments: +a <CODE>char *</CODE> (<VAR>string</VAR>) and an integer index into that string (<VAR>i</VAR>). +It should return a non-zero value if the history expansion starting at +<VAR>string[i]</VAR> should not be performed; zero if the expansion should +be done. +It is intended for use by applications like Bash that use the history +expansion character for additional purposes. +By default, this variable is set to NULL. +</DL> + +</P> + + +<H2><A NAME="SEC18" HREF="history_toc.html#TOC18">History Programming Example</A></H2> + +<P> +The following program demonstrates simple use of the GNU History Library. + +</P> + +<PRE> +main () +{ + char line[1024], *t; + int len, done = 0; + + line[0] = 0; + + using_history (); + while (!done) + { + printf ("history$ "); + fflush (stdout); + t = fgets (line, sizeof (line) - 1, stdin); + if (t && *t) + { + len = strlen (t); + if (t[len - 1] == '\n') + t[len - 1] = '\0'; + } + + if (!t) + strcpy (line, "quit"); + + if (line[0]) + { + char *expansion; + int result; + + result = history_expand (line, &expansion); + if (result) + fprintf (stderr, "%s\n", expansion); + + if (result < 0 || result == 2) + { + free (expansion); + continue; + } + + add_history (expansion); + strncpy (line, expansion, sizeof (line) - 1); + free (expansion); + } + + if (strcmp (line, "quit") == 0) + done = 1; + else if (strcmp (line, "save") == 0) + write_history ("history_file"); + else if (strcmp (line, "read") == 0) + read_history ("history_file"); + else if (strcmp (line, "list") == 0) + { + register HIST_ENTRY **the_list; + register int i; + + the_list = history_list (); + if (the_list) + for (i = 0; the_list[i]; i++) + printf ("%d: %s\n", i + history_base, the_list[i]->line); + } + else if (strncmp (line, "delete", 6) == 0) + { + int which; + if ((sscanf (line + 6, "%d", &which)) == 1) + { + HIST_ENTRY *entry = remove_history (which); + if (!entry) + fprintf (stderr, "No such entry %d\n", which); + else + { + free (entry->line); + free (entry); + } + } + else + { + fprintf (stderr, "non-numeric arg given to `delete'\n"); + } + } + } +} +</PRE> + + + +<H1><A NAME="SEC19" HREF="history_toc.html#TOC19">Concept Index</A></H1> +<P> +<H2>a</H2> +<DIR> +<LI><A HREF="history.html#IDX23">anchored search</A> +</DIR> +<H2>e</H2> +<DIR> +<LI><A HREF="history.html#IDX2">event designators</A> +</DIR> +<H2>h</H2> +<DIR> +<LI><A HREF="history.html#IDX3">history events</A> +<LI><A HREF="history.html#IDX1">history expansion</A> +<LI><A HREF="history.html#IDX22">History Searching</A> +</DIR> + +</P> + + +<H1><A NAME="SEC20" HREF="history_toc.html#TOC20">Function and Variable Index</A></H1> +<P> +<H2>a</H2> +<DIR> +<LI><A HREF="history.html#IDX7">add_history</A> +<LI><A HREF="history.html#IDX30">append_history</A> +</DIR> +<H2>c</H2> +<DIR> +<LI><A HREF="history.html#IDX10">clear_history</A> +<LI><A HREF="history.html#IDX16">current_history</A> +</DIR> +<H2>g</H2> +<DIR> +<LI><A HREF="history.html#IDX34">get_history_event</A> +</DIR> +<H2>h</H2> +<DIR> +<LI><A HREF="history.html#IDX33">history_arg_extract</A> +<LI><A HREF="history.html#IDX36">history_base</A> +<LI><A HREF="history.html#IDX41">history_comment_char</A> +<LI><A HREF="history.html#IDX32">history_expand</A> +<LI><A HREF="history.html#IDX39">history_expansion_char</A> +<LI><A HREF="history.html#IDX17">history_get</A> +<LI><A HREF="history.html#IDX5">history_get_history_state</A> +<LI><A HREF="history.html#IDX45">history_inhibit_expansion_function</A> +<LI><A HREF="history.html#IDX13">history_is_stifled</A> +<LI><A HREF="history.html#IDX37">history_length</A> +<LI><A HREF="history.html#IDX14">history_list</A> +<LI><A HREF="history.html#IDX42">history_no_expand_chars</A> +<LI><A HREF="history.html#IDX44">history_quotes_inhibit_expansion</A> +<LI><A HREF="history.html#IDX24">history_search</A> +<LI><A HREF="history.html#IDX43">history_search_delimiter_chars</A> +<LI><A HREF="history.html#IDX26">history_search_pos</A> +<LI><A HREF="history.html#IDX25">history_search_prefix</A> +<LI><A HREF="history.html#IDX6">history_set_history_state</A> +<LI><A HREF="history.html#IDX19">history_set_pos</A> +<LI><A HREF="history.html#IDX40">history_subst_char</A> +<LI><A HREF="history.html#IDX35">history_tokenize</A> +<LI><A HREF="history.html#IDX18">history_total_bytes</A> +<LI><A HREF="history.html#IDX31">history_truncate_file</A> +</DIR> +<H2>m</H2> +<DIR> +<LI><A HREF="history.html#IDX38">max_input_history</A> +</DIR> +<H2>n</H2> +<DIR> +<LI><A HREF="history.html#IDX21">next_history</A> +</DIR> +<H2>p</H2> +<DIR> +<LI><A HREF="history.html#IDX20">previous_history</A> +</DIR> +<H2>r</H2> +<DIR> +<LI><A HREF="history.html#IDX27">read_history</A> +<LI><A HREF="history.html#IDX28">read_history_range</A> +<LI><A HREF="history.html#IDX8">remove_history</A> +<LI><A HREF="history.html#IDX9">replace_history_entry</A> +</DIR> +<H2>s</H2> +<DIR> +<LI><A HREF="history.html#IDX11">stifle_history</A> +</DIR> +<H2>u</H2> +<DIR> +<LI><A HREF="history.html#IDX12">unstifle_history</A> +<LI><A HREF="history.html#IDX4">using_history</A> +</DIR> +<H2>w</H2> +<DIR> +<LI><A HREF="history.html#IDX15">where_history</A> +<LI><A HREF="history.html#IDX29">write_history</A> +</DIR> + +</P> +<P><HR><P> +This document was generated on 2 April 1998 using the +<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A> +translator version 1.51.</P> +</BODY> +</HTML> diff --git a/readline/doc/history.ps b/readline/doc/history.ps new file mode 100644 index 0000000..b9a28e8 --- /dev/null +++ b/readline/doc/history.ps @@ -0,0 +1,2071 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software +%%Title: history.dvi +%%Pages: 18 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%DocumentPaperSizes: A4 +%%EndComments +%DVIPSCommandLine: dvips -D 300 -o history.ps history.dvi +%DVIPSParameters: dpi=300, comments removed +%DVIPSSource: TeX output 1998.04.02:1444 +%%BeginProcSet: tex.pro +/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}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{dup dup 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 /IE 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 IE N +end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /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 dup definefont setfont}B /ch-width{ch-data dup +length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ +128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub +get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data +dup 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 /sf 0 N /CharBuilder{save 3 1 roll S dup +/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx +0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff +setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff +.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} +if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 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 dup 1 get dup mul exch 0 get dup 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 +/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for +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 /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V +{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 +getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} +ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false +RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 +false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform +round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg +rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail +{dup /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 +TeXDict begin 39158280 55380996 1000 300 300 (history.dvi) +@start /Fa 1 47 df<70F8F8F0E005057B840E>46 D E /Fb 1 +47 df<0E003F007F807F80FF80FF80FF007E003C000909798815>46 +D E /Fc 11 121 df<00800100020004000C000800180030003000300060006000600060 +00E000E000E000E000E000E000E000E000E000E000600060006000600030003000300018 +0008000C00040002000100008009267D9B0F>40 D<8000400020001000180008000C0006 +000600060003000300030003000380038003800380038003800380038003800380030003 +00030003000600060006000C0008001800100020004000800009267E9B0F>I<FF801C00 +1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00 +1C001C001C001C001C00FF80091A7E990E>73 D<003F0000070000070000070000070000 +070000070000070000070000070003E7000C1700180F00300700700700E00700E00700E0 +0700E00700E00700E00700600700700700380F001C370007C7E0131A7F9915>100 +D<07C01C3030187018600CE00CFFFCE000E000E000E0006000700438081C1807E00E107F +8F11>I<183C3C18000000000000FC1C1C1C1C1C1C1C1C1C1C1C1C1C1CFF081A80990A> +105 D<FC7C001D87001E03801E03801C03801C03801C03801C03801C03801C03801C0380 +1C03801C03801C03801C0380FF9FF01410808F15>110 D<07E01C38300C700E6006E007 +E007E007E007E007E0076006700E381C1C3807E010107F8F13>I<1F2060E04020C020C0 +20F0007F003FC01FE000F080708030C030C020F0408F800C107F8F0F>115 +D<0800080008000800180018003800FFC038003800380038003800380038003800382038 +203820382018201C4007800B177F960F>I<FE3F803C1E001C08000E10000F3000076000 +03C00001C00001E00003E000027000043800083800181C00381E00FC3FC012107F8F14> +120 D E /Fd 2 42 df<00E001C00380078007000F001E001E001C003C003C0038007800 +780078007000F000F000F000F000F000F000F000F000F000F000F000F000F000F0007000 +78007800780038003C003C001C001E001E000F0007000780038001C000E00B2E7CA112> +40 D<E000700038003C001C001E000F000F00070007800780038003C003C003C001C001 +E001E001E001E001E001E001E001E001E001E001E001E001E001E001C003C003C003C003 +800780078007000F000F001E001C003C0038007000E0000B2E7EA112>I +E /Fe 27 123 df<0007F800007FFC0001FC0E0003F01F0007E03F000FC03F000FC03F00 +0FC03F000FC01E000FC00C000FC000000FC000000FC0FF80FFFFFF80FFFFFF800FC01F80 +0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80 +0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F807FF8FFF0 +7FF8FFF01C237FA220>12 D<000FFF80007FFF8001FC1F8003F03F8007E03F800FC03F80 +0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80FFFFFF80FFFFFF80 +0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80 +0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80 +7FF8FFF07FF8FFF01C237FA220>I<07FE00001FFF80003F07E0003F03F0003F01F0003F +01F8001E01F8000001F8000001F800003FF80003FDF8001F81F8003E01F8007C01F800F8 +01F800F801F800F801F800F801F8007C02F8007E0CF8001FF87F8007E03F8019167E951C +>97 D<FF800000FF8000001F8000001F8000001F8000001F8000001F8000001F8000001F +8000001F8000001F8000001F8000001F8000001F87F0001FBFFC001FF03E001FC01F001F +800F801F800FC01F8007C01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F +8007E01F8007C01F8007C01F800FC01F800F801FC01F001E707E001C3FFC00180FE0001B +237EA220>I<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000 +FC0000FC0000FC0000FC00007C00007E00007E00003E00181F00300FC06007FFC000FF00 +15167E9519>I<0001FF000001FF0000003F0000003F0000003F0000003F0000003F0000 +003F0000003F0000003F0000003F0000003F0000003F0000FE3F0007FFBF000FC1FF001F +007F003E003F007E003F007C003F007C003F00FC003F00FC003F00FC003F00FC003F00FC +003F00FC003F00FC003F007C003F007E003F003E003F001F007F000F81FF0007FF3FE001 +FC3FE01B237EA220>I<00FE0007FF800F83C01E01E03E00F07E00F07C00F87C0078FC00 +78FFFFF8FFFFF8FC0000FC0000FC00007C00007C00003E00183E00181F00300F80E003FF +C000FF0015167E951A>I<001F8000FFE001F1F003E3F007E3F00FC3F00FC1E00FC0000F +C0000FC0000FC0000FC0000FC000FFFE00FFFE000FC0000FC0000FC0000FC0000FC0000F +C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000F +C0007FFC007FFC0014237EA212>I<00FE0F8003FF9FC00F83E3C01F01F3C01E00F0003E +00F8003E00F8003E00F8003E00F8003E00F8001E00F0001F01F0000F83E0000BFF800008 +FE000018000000180000001C0000001FFFE0001FFFFC000FFFFF0007FFFF001FFFFF807C +001FC078000FC0F80007C0F80007C0F80007C07C000F803E001F001F807E000FFFFC0001 +FFE0001A217F951D>I<FF800000FF8000001F8000001F8000001F8000001F8000001F80 +00001F8000001F8000001F8000001F8000001F8000001F8000001F83F0001F8FFC001F98 +7E001FA03E001FC03F001FC03F001F803F001F803F001F803F001F803F001F803F001F80 +3F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00FFF1 +FFE0FFF1FFE01B237DA220>I<1E003F007F807F807F807F803F001E0000000000000000 +0000000000FF80FF801F801F801F801F801F801F801F801F801F801F801F801F801F801F +801F801F801F801F80FFF0FFF00C247EA30F>I<FF800000FF8000001F8000001F800000 +1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000 +1F80FF801F80FF801F803C001F8030001F80E0001F81C0001F8300001F8600001F9E0000 +1FBE00001FFF00001FDF80001F8FC0001F07C0001F07E0001F03F0001F01F8001F00F800 +1F00FC001F007E00FFE1FFC0FFE1FFC01A237EA21E>107 D<FF80FF801F801F801F801F +801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F +801F801F801F801F801F801F801F801F801F80FFF0FFF00C237EA20F>I<FF03F803F800 +FF0FFE0FFE001F183F183F001F201F201F001F401FC01F801F401FC01F801F801F801F80 +1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80 +1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80 +1F801F801F80FFF0FFF0FFF0FFF0FFF0FFF02C167D9531>I<FF03F000FF0FFC001F187E +001F203E001F403F001F403F001F803F001F803F001F803F001F803F001F803F001F803F +001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00FFF1FF +E0FFF1FFE01B167D9520>I<00FF0007FFE00F81F01F00F83E007C7C003E7C003E7C003E +FC003FFC003FFC003FFC003FFC003FFC003FFC003F7C003E7E007E3E007C1F00F80F81F0 +07FFE000FF0018167E951D>I<FF87F000FFBFFC001FF07E001FC01F001F800F801F800F +C01F800FC01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F8007 +C01F800FC01F800FC01F801F801FC01F001FF07E001FBFFC001F8FE0001F8000001F8000 +001F8000001F8000001F8000001F8000001F8000001F800000FFF00000FFF000001B207E +9520>I<00FE030007FF07000FC1CF001F00DF003F007F007E003F007E003F007C003F00 +FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F007E003F007E003F00 +3E007F001F00FF000FC1FF0007FF3F0000FC3F0000003F0000003F0000003F0000003F00 +00003F0000003F0000003F0000003F000001FFE00001FFE01B207E951E>I<FF0F80FF1F +E01F33F01F63F01F43F01F43F01FC1E01F80001F80001F80001F80001F80001F80001F80 +001F80001F80001F80001F80001F80001F8000FFF800FFF80014167E9518>I<07F9801F +FF80380780700380F00180F00180F80000FF0000FFF8007FFE003FFF001FFF8007FF8000 +3FC0C007C0C003C0E003C0E003C0F00380FC0F00EFFE00C3F80012167E9517>I<018000 +0180000180000180000380000380000780000780000F80003F8000FFFF00FFFF001F8000 +1F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F81801F8180 +1F81801F81801F81800F83000FC30007FE0001F80011207F9F16>I<FF81FF00FF81FF00 +1F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00 +1F803F001F803F001F803F001F803F001F803F001F803F001F807F001F80FF000FC1BF00 +07FF3FE001FC3FE01B167D9520>I<FFF01FE0FFF01FE01FC007000FC006000FE00E0007 +E00C0007F00C0003F0180003F0180001F8300001F8300000FC600000FC600000FEE00000 +7EC000007FC000003F8000003F8000001F0000001F0000000E0000000E00001B167F951E +>I<FFF3FF83FCFFF3FF83FC1F807C00E00FC07C00C00FC03E00C00FE03E01C007E07F01 +8007E07F018003F07F030003F0CF830003F8CF870001F9CFC60001F987C60000FD87EC00 +00FF03EC0000FF03FC00007F03F800007E01F800003E01F000003C00F000003C00F00000 +1800600026167F9529>I<FFF07FC0FFF07FC00FC01C0007E0380007F0700003F0E00001 +F8C00000FD8000007F8000007F0000003F0000001F8000003FC0000037E0000067F00000 +C3F00001C1F8000380FC000700FE000E007F00FF81FFE0FF81FFE01B167F951E>I<FFF0 +1FE0FFF01FE01FC007000FC006000FE00E0007E00C0007F00C0003F0180003F0180001F8 +300001F8300000FC600000FC600000FEE000007EC000007FC000003F8000003F8000001F +0000001F0000000E0000000E0000000C0000000C00000018000078180000FC380000FC30 +0000FC60000069C000007F8000001F0000001B207F951E>I<7FFFF07FFFF07C07E0700F +C0601FC0E01F80C03F00C07F00C07E0000FC0001FC0003F80003F03007E0300FE0300FC0 +701F80703F80603F00E07E03E0FFFFE0FFFFE014167E9519>I E +/Ff 24 119 df<00E00000E00000E00000E00000E000F0E1E0FCE7E07EEFC01FFF0007FC +0001F00007FC001FFF007EEFC0FCE7E0F0E1E000E00000E00000E00000E00000E0001315 +7D991A>42 D<003800007C00007C00006C0000EE0000EE0000EE0000C60000C60001C700 +01C70001C70001C7000383800383800383800383800701C00701C007FFC007FFC00FFFE0 +0E00E00E00E00E00E00E00E01C00707F01FCFF83FE7F01FC171E7F9D1A>65 +D<FFFFF8FFFFF8FFFFF81C00381C00381C00381C00381C00381C00001C00001C0E001C0E +001C0E001FFE001FFE001FFE001C0E001C0E001C0E001C00001C00001C00001C001C1C00 +1C1C001C1C001C1C001CFFFFFCFFFFFCFFFFFC161E7E9D1A>69 D<7FFFFCFFFFFC7FFFFC +0E001C0E001C0E001C0E001C0E001C0E00000E00000E03800E03800E03800FFF800FFF80 +0FFF800E03800E03800E03800E00000E00000E00000E00000E00000E00000E00000E0000 +7FE000FFE0007FE000161E7F9D1A>I<FF83FEFF83FEFF83FE1C00701C00701C00701C00 +701C00701C00701C00701C00701C00701C00701FFFF01FFFF01FFFF01C00701C00701C00 +701C00701C00701C00701C00701C00701C00701C00701C0070FF83FEFF83FEFF83FE171E +7F9D1A>72 D<FFFF80FFFF80FFFF8001C00001C00001C00001C00001C00001C00001C000 +01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000 +01C00001C00001C00001C00001C000FFFF80FFFF80FFFF80111E7C9D1A>I<FE03FEFF03 +FEFF03FE1D80701D80701DC0701CC0701CC0701CE0701CE0701C60701C70701C70701C30 +701C38701C38701C18701C1C701C1C701C0C701C0E701C0E701C06701C06701C07701C03 +701C0370FF81F0FF81F0FF80F0171E7F9D1A>78 D<0FFE003FFF807FFFC07C07C07001C0 +F001E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0 +E000E0E000E0E000E0E000E0E000E0E000E0F001E0F001E07001C07C07C07FFFC03FFF80 +0FFE00131E7D9D1A>I<FFFC00FFFF00FFFF801C07C01C01E01C00F01C00701C00701C00 +701C00701C00F01C01E01C07C01FFF801FFF001FFF801C07C01C01C01C00E01C00E01C00 +E01C00E01C00E01C00E21C00E71C00E71C00E7FF807EFF807EFF8038181E7F9D1A>82 +D<03F1C00FFDC03FFFC07C0FC07003C0E003C0E001C0E001C0E001C0E000007000007800 +003F00001FF00007FE0000FF80000FC00001E00000E0000070000070600070E00070E000 +70E000E0F001E0FC03C0FFFF80EFFF00E3FC00141E7D9D1A>I<7FFFFEFFFFFEFFFFFEE0 +380EE0380EE0380EE0380EE0380E00380000380000380000380000380000380000380000 +380000380000380000380000380000380000380000380000380000380000380000380003 +FF8003FF8003FF80171E7F9D1A>I<FF01FEFF01FEFF01FE1C00700E00E00E00E00701C0 +0701C00783C003838003C78001C70001C70000EE0000EE00007C00007C00003800003800 +00380000380000380000380000380000380000380000380001FF0001FF0001FF00171E7F +9D1A>89 D<7FFFC0FFFFE0FFFFE07FFFC013047D7E1A>95 D<1FF0003FFC007FFE00780F +00300700000380000380007F8007FF801FFF803F8380780380700380E00380E00380E003 +80700780780F803FFFFC1FFDFC07F0FC16157D941A>97 D<00FF8003FFC00FFFE01F01E0 +3C00C0780000700000700000E00000E00000E00000E00000E00000700000700000780070 +3C00701F01F00FFFE003FFC000FE0014157D941A>99 D<001FC0001FC0001FC00001C000 +01C00001C00001C00001C00001C001F1C007FDC00FFFC01E0FC03C07C07803C07001C0E0 +01C0E001C0E001C0E001C0E001C0E001C0E001C07003C07003C03807C03E0FC01FFFFC07 +FDFC01F1FC161E7E9D1A>I<FE0000FE0000FE00000E00000E00000E00000E00000E0000 +0E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E0 +0E00E00E00E00E00E00E00E00E00E00E00E00E00E0FFE3FEFFE7FEFFE3FE171E7F9D1A> +104 D<01C00003E00003E00003E00001C0000000000000000000000000000000007FE000 +7FE0007FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E000 +00E00000E00000E00000E00000E0007FFF80FFFFC07FFF80121F7C9E1A>I<FE3E00FEFF +80FFFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00 +E00E00E00E00E00E00E00E00E0FFE3FEFFE7FEFFE3FE17157F941A>110 +D<01F00007FC001FFF003E0F803C07807803C07001C0E000E0E000E0E000E0E000E0E000 +E0E000E0F001E07001C07803C03C07803E0F801FFF0007FC0001F00013157D941A>I<7F +81F8FF8FFC7F9FFE03FE1E03F80C03E00003E00003C00003800003800003800003800003 +80000380000380000380000380000380007FFF00FFFF007FFF0017157F941A>114 +D<0180000380000380000380000380000380000380007FFFE0FFFFE0FFFFE00380000380 +000380000380000380000380000380000380000380000380000380700380700380700380 +7001C1E001FFE000FF80003F00141C7F9B1A>116 D<FE0FE0FE0FE0FE0FE00E00E00E00 +E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E01 +E00F03E007FFFE03FFFE00FCFE17157F941A>I<7FC7FCFFC7FE7FC7FC0E00E00E00E00E +00E00701C00701C00701C003838003838003838001C70001C70001C70000EE0000EE0000 +EE00007C00007C0000380017157F941A>I E /Fg 41 123 df<0007FC00003FFF0000FE +078003F007C007E00FC007E00FC00FC00FC00FC00FC00FC00FC00FC003000FC000000FC0 +00000FC000000FC07FE0FFFFFFE0FFFFFFE00FC007E00FC007E00FC007E00FC007E00FC0 +07E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC0 +07E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E0FFFC7FFEFFFC7FFE1F26 +7FA522>12 D<3C7EFFFFFFFF7E3C08087C8711>46 D<001C00003C0000FC00FFFC00FFFC +0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC +0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC +0000FC0000FC0000FC0000FC007FFFFC7FFFFC16237CA21F>49 D<01FF0007FFC01E07F0 +3803F86001FC7C00FEFE00FEFE00FFFE007FFE007F7C007F3800FF0000FF0000FE0000FE +0001FC0001F80003F00007E0000780000F00001E00003C0000700000E00301C003038007 +0700060600060FFFFE1FFFFE3FFFFE7FFFFCFFFFFCFFFFFC18237DA21F>I<01FF0007FF +E01E03F03801F83C01FC7E00FE7E00FE7E00FE3E00FE1C01FE0001FC0001FC0003F80007 +F0000FC001FF0001FF000007E00001F00001F80000FC0000FE0000FF0000FF1000FF7C00 +FFFE00FFFE00FFFE00FEFE00FE7C01FC7001F83E07F00FFFC001FF0018237DA21F>I<00 +00380000007800000078000000F8000001F8000003F8000007F8000006F800000CF80000 +1CF8000038F8000030F8000060F80000E0F80001C0F8000180F8000300F8000700F8000E +00F8001C00F8001800F8003000F8007000F800E000F800FFFFFFC0FFFFFFC00001F80000 +01F8000001F8000001F8000001F8000001F8000001F800007FFFC0007FFFC01A237EA21F +>I<18000C1F007C1FFFF81FFFF01FFFE01FFFC01FFF801FFC0018000018000018000018 +000018000018FF001BFFE01F03F01C00F80800FC00007E00007E00007E00007F00007F78 +007FFC007FFC007FFC007FFC007EF8007E6000FC7000FC3801F81E07E007FFC001FE0018 +237DA21F>I<001FC0007FF001F03803E00C07803E0F807E1F007E3F007E3F007E7E003C +7E00007E00007E0000FE3FC0FE7FF0FE80F8FF80FCFF007CFF007EFE007EFE007FFE007F +FE007FFE007F7E007F7E007F7E007F7E007F3E007E3F007E1F007C0F80F807C1F003FFC0 +007F0018237DA21F>I<300000003C0000003FFFFFC03FFFFFC03FFFFF807FFFFF007FFF +FE007FFFFC006000180060001800E0003000C0006000C000C00000018000000180000003 +000000060000000E0000000E0000001C0000001C0000003C0000003C0000007800000078 +000000F8000000F8000000F8000000F8000001F8000001F8000001F8000001F8000001F8 +000001F8000000F00000006000001A257DA41F>I<00001C00000000001C00000000003E +00000000003E00000000003E00000000007F00000000007F0000000000FF8000000000FF +8000000000FF80000000019FC0000000019FC0000000031FE0000000030FE0000000070F +F00000000607F00000000607F00000000C07F80000000C03F80000001C03FC0000001801 +FC0000001801FC0000003000FE0000003000FE0000007FFFFF0000007FFFFF000000E000 +7F800000C0003F800000C0003F80000180003FC0000180001FC0000380001FE000030000 +0FE0000300000FE00007000007F000FFF000FFFF80FFF000FFFF8029257EA42E>65 +D<FFFFFFE00000FFFFFFFC000003F800FF000003F8001FC00003F80007E00003F80003F0 +0003F80001F80003F80001FC0003F80000FC0003F80000FE0003F80000FE0003F800007F +0003F800007F0003F800007F0003F800007F8003F800007F8003F800007F8003F800007F +8003F800007F8003F800007F8003F800007F8003F800007F8003F800007F8003F800007F +8003F800007F0003F800007F0003F800007F0003F80000FE0003F80000FE0003F80001FC +0003F80001F80003F80003F00003F80007E00003F8001FC00003F800FF8000FFFFFFFE00 +00FFFFFFE0000029257EA42F>68 D<FFFFFFFF00FFFFFFFF0003F8007F0003F8000F8003 +F800078003F800038003F800038003F800018003F800018003F800018003F80000C003F8 +0600C003F80600C003F806000003F806000003F80E000003F81E000003FFFE000003FFFE +000003F81E000003F80E000003F806000003F806000003F806006003F806006003F80000 +6003F80000C003F80000C003F80000C003F80000C003F80001C003F80003C003F80003C0 +03F8000F8003F8003F80FFFFFFFF80FFFFFFFF8023257EA428>I<FFFFFFFE00FFFFFFFE +0003F800FE0003F8001F0003F8000F0003F800070003F800070003F800030003F8000300 +03F800030003F800018003F803018003F803018003F803000003F803000003F807000003 +F80F000003FFFF000003FFFF000003F80F000003F807000003F803000003F803000003F8 +03000003F803000003F800000003F800000003F800000003F800000003F800000003F800 +000003F800000003F800000003F800000003F8000000FFFFF00000FFFFF0000021257EA4 +27>I<FFFFE0FFFFE0FFFFE0FFFFE003F80003F80003F80003F80003F80003F80003F800 +03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800 +03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003FFFF +FFF80003FFFFFFF80003F80003F80003F80003F80003F80003F80003F80003F80003F800 +03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800 +03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800FFFFE0 +FFFFE0FFFFE0FFFFE02B257EA430>72 D<FFFFE0FFFFE003F80003F80003F80003F80003 +F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003 +F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003 +F80003F80003F80003F80003F800FFFFE0FFFFE013257EA417>I<FFFFF000FFFFF00003 +F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003 +F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003 +F8000003F8000003F8000003F8000303F8000303F8000303F8000603F8000603F8000603 +F8000E03F8000E03F8001E03F8003E03F8007C03F803FCFFFFFFFCFFFFFFFC20257EA425 +>76 D<FFF8000000FFF8FFFC000001FFF803FC000001FE00037E0000037E00037E000003 +7E00037E0000037E00033F0000067E00033F0000067E00031F80000C7E00031F80000C7E +00030FC000187E00030FC000187E000307E000307E000307E000307E000307E000307E00 +0303F000607E000303F000607E000301F800C07E000301F800C07E000300FC01807E0003 +00FC01807E0003007E03007E0003007E03007E0003007E03007E0003003F06007E000300 +3F06007E0003001F8C007E0003001F8C007E0003000FD8007E0003000FD8007E00030007 +F0007E00030007F0007E00030007F0007E00030003E0007E00078003E0007E00FFFC01C0 +1FFFF8FFFC01C01FFFF835257EA43A>I<00FF008007FFE3800F80F7801E001F803C000F +807800078078000380F8000380F8000180F8000180FC000180FC000000FF0000007FE000 +007FFE00003FFFE0003FFFF8001FFFFE0007FFFF0003FFFF80007FFF800003FFC000003F +C000000FE0000007E0000007E0C00003E0C00003E0C00003E0C00003C0E00003C0F00007 +C0F8000780FC000F00FFC03E00E3FFF800803FE0001B257DA422>83 +D<FFFF81FFFE01FFF0FFFF81FFFE01FFF007F0001FC0000F0007F0001FE000060003F800 +0FE0000C0003F8000FE0000C0003F80007F0000C0001FC0007F000180001FC0007F00018 +0001FE000FF800380000FE000FF800300000FE001FFC003000007F0019FC006000007F00 +19FC006000007F8030FE006000003F8030FE00C000003F8030FF00C000003FC0607F01C0 +00001FC0607F018000001FC0E07F818000000FE0C03F830000000FE0C03F830000000FF1 +801FC300000007F1801FC600000007F1801FE600000007FB000FEE00000003FB000FEC00 +000003FF000FFC00000001FE0007F800000001FE0007F800000001FC0003F800000000FC +0003F000000000FC0003F000000000F80001F000000000780001E000000000780001E000 +000000300000C000003C257FA43F>87 D<07FF00001FFFE0003E03F0003F00F8003F00FC +003F007E001E007E0000007E0000007E0000007E00001FFE0003FE7E000FC07E001F007E +003E007E007E007E00FC007E00FC007E00FC007E00FC00BE007E01BE003F073E001FFE1F +E007F00FE01B187E971E>97 D<FFC00000FFC000000FC000000FC000000FC000000FC000 +000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC1FC +000FCFFF000FFC0FC00FF007E00FC003F00FC003F00FC001F80FC001F80FC001FC0FC001 +FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001F80FC001F80FC003 +F00FE003F00FF007E00F1C1F800E0FFF000C03F8001E267FA522>I<007FE003FFF807C0 +7C1F80FC1F00FC3F00FC7E00787E0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 +00FE00007E00007F00003F000C1F800C1FC01807E07003FFE0007F0016187E971B>I<00 +00FFC00000FFC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000 +000FC000000FC000000FC000000FC000000FC0007F0FC003FFCFC00FE0FFC01F803FC03F +000FC03F000FC07E000FC07E000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE +000FC0FE000FC0FE000FC07E000FC07E000FC03F000FC03F001FC01F803FC00FC0EFC003 +FFCFFC00FE0FFC1E267EA522>I<007F0003FFC007C1F00F80F81F00F83F007C7E007C7E +007EFE007EFE007EFFFFFEFFFFFEFE0000FE0000FE00007E00007E00007E00063F00061F +000C0F801807E07003FFE0007F8017187E971C>I<001FC0007FF001F8F003E1F807E1F8 +07C1F80FC0F00FC0000FC0000FC0000FC0000FC0000FC0000FC000FFFF00FFFF000FC000 +0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000 +0FC0000FC0000FC0000FC0000FC0000FC0000FC000FFFE00FFFE0015267EA513>I<01FF +07C007FFDFE00F83F1E01F01F1E03E00F8007E00FC007E00FC007E00FC007E00FC007E00 +FC007E00FC003E00F8001F01F0000F83E0000FFFC00011FF000030000000300000003800 +00003C0000003FFFE0001FFFFC001FFFFE000FFFFF001FFFFF803C003F8078000FC0F800 +07C0F80007C0F80007C0F80007C07C000F803E001F001F807E0007FFF80000FFC0001B24 +7E971F>I<FFC00000FFC000000FC000000FC000000FC000000FC000000FC000000FC000 +000FC000000FC000000FC000000FC000000FC000000FC000000FC0FE000FC3FF800FCE0F +C00FD80FC00FD007E00FE007E00FE007E00FC007E00FC007E00FC007E00FC007E00FC007 +E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007 +E00FC007E0FFFC7FFEFFFC7FFE1F267EA522>I<0F001F803FC03FC03FC03FC01F800F00 +00000000000000000000000000007FC07FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0 +0FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0FFF8FFF80D277EA611>I<FFC0FF +C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00F +C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0FFFCFF +FC0E267EA511>108 D<FF80FE007F00FF83FF81FFC00F8E0FC707E00F980FCC07E00F90 +07E803F00FA007F003F00FA007F003F00FC007E003F00FC007E003F00FC007E003F00FC0 +07E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC0 +07E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F0FFFC +7FFE3FFFFFFC7FFE3FFF30187E9733>I<FF80FE00FF83FF800F8E0FC00F980FC00F9007 +E00FA007E00FA007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007 +E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E0FFFC7F +FEFFFC7FFE1F187E9722>I<007F800003FFF00007C0F8001F807E003F003F003F003F00 +7E001F807E001F80FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0 +FE001FC07E001F807E001F803F003F003F003F001F807E000FC0FC0003FFF000007F8000 +1A187E971F>I<FFC1FC00FFCFFF000FFC1FC00FF007E00FC007F00FC003F00FC003F80F +C001F80FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0F +C003F80FC003F80FC003F00FE007F00FF00FE00FDC1F800FCFFF000FC3F8000FC000000F +C000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000FFFC0000FF +FC00001E237F9722>I<FF83E0FF8FF80F8C7C0F90FC0FB0FC0FA0FC0FA0780FE0000FC0 +000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0 +000FC000FFFE00FFFE0016187F9719>114 D<07F8C01FFFC03C07C07001C0F000C0F000 +C0F000C0FC0000FF80007FFC007FFE003FFF800FFFC003FFC0001FE00003E0C001E0C001 +E0E001E0E001C0F003C0FC0780EFFF00C3FC0013187E9718>I<00C00000C00000C00000 +C00001C00001C00001C00003C00007C0000FC0001FC000FFFFC0FFFFC00FC0000FC0000F +C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0600FC0600F +C0600FC0600FC0600FC06007E0C007E1C001FF80007E0013237FA218>I<FFC07FE0FFC0 +7FE00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC0 +07E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC00FE00FC0 +0FE007C017E007E067E003FFC7FE007F07FE1F187E9722>I<FFF80FF8FFF80FF80FC001 +C00FC0018007E0030007E0030007F0070003F0060003F80E0001F80C0001FC0C0000FC18 +0000FE1800007E3000007E3000003F6000003F6000003FE000001FC000001FC000000F80 +00000F800000070000000700001D187F9720>I<FFF83FF0FFF83FF00FC00F0007E00E00 +03F01C0003F8380001FC700000FC6000007EC000003F8000003F8000001F8000000FC000 +001FE000001FF0000033F8000061F80000E0FC0001C07E0003807F0007003F800F001F80 +FFC07FF8FFC07FF81D187F9720>120 D<FFF80FF8FFF80FF80FC001C00FC0018007E003 +0007E0030007F0070003F0060003F80E0001F80C0001FC0C0000FC180000FE1800007E30 +00007E3000003F6000003F6000003FE000001FC000001FC000000F8000000F8000000700 +00000700000006000000060000000C0000300C0000781C0000FC180000FC300000FC7000 +0068E000007FC000001F0000001D237F9720>I<7FFFF87FFFF87C03F07007F0600FE0E0 +0FC0E01F80C03F80C03F00C07E0000FE0000FC0001F80003F80C03F00C07E00C0FE00C0F +C01C1F80183F80387F00787E01F8FFFFF8FFFFF816187E971B>I +E /Fh 30 122 df<0003F07C001E0DC600380F0F00701E0F00E01E0E00E00C0001C01C00 +01C01C0001C01C0001C01C0001C01C00038038007FFFFFC0038038000380380003803800 +038038000700700007007000070070000700700007007000070070000E00E0000E00E000 +0E00E0000E00E0000E00E0000E00E0001C01C0001E01E000FF8FFC0020207E9F1B>11 +D<0003E0001C1800381800703C00E03C00E03801C00001C00001C00001C00001C0000380 +007FFFF00380700380700380700380700700E00700E00700E00700E00700E00700E00E01 +C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FF0FF016207E9F19>I<0003F03F +00001E09E08000380F80C000701F01E000E03E01E000E01E01C001C01C000001C01C0000 +01C01C000001C01C000001C01C000003803800007FFFFFFF800380380380038038038003 +803803800380380380070070070007007007000700700700070070070007007007000700 +7007000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E001C01C0 +1C001E01E01E00FF8FF8FFC023207E9F26>14 D<00200000600000600000600000600030 +61C03C43800E4E0007780001E00001E00007B8001C9C00708F00E0830001800001800001 +800001800001000012147AA117>42 D<0018003801F80E700070007000700070007000E0 +00E000E000E000E000E001C001C001C001C001C001C00380038003800380038003800700 +0780FFFC0E1E7B9D17>49 D<003F8000C1E00100700200780400780400780F007C0F807C +0F807C0F00780600780000F80000F00001E00001C0000380000700000E00001C00003800 +00600000C0000180000300200600200800401000403FFFC07FFF80FFFF80161E7E9D17> +I<00FF01FE01800180018001800180030003000300030003000300060006000600060006 +0006000C000C000C000C000C000C00180018001800180018001800300030003000300030 +003000600060006000600060006000FF00FF00102D7EA10D>91 D<00FF01FE0006000600 +0600060006000C000C000C000C000C000C00180018001800180018001800300030003000 +300030003000600060006000600060006000C000C000C000C000C000C001800180018001 +8001800180FF00FF00102D82A10D>93 D<07F8000C0C001E06001E07001C070000070000 +070000070000FF0007C7001E07003C0E00780E00F00E10F00E10F00E10F01E10F02E2078 +4F401F878014147D9317>97 D<00FE000383000E07801C0780380700380000780000F000 +00F00000F00000F00000E00000E00000E00000F00000F001007002003804001C180007E0 +0011147D9314>99 D<0000380001F8000078000038000038000070000070000070000070 +0000700000700000E000FCE00382E00601E01C01E03C00E03801C07801C0F001C0F001C0 +F001C0F001C0E00380E00380E00380E00380F00380700780380F001C378007C7E015207D +9F19>I<00F800070E000E07001C0700380380780380700380F00380F00380FFFF80F000 +00E00000E00000E00000E00000F001007002003004001C180007E00011147D9314>I<00 +07C0001C600030F00060F000E0E000C00001C00001C00001C00001C00001C0000380003F +FC000380000380000380000380000700000700000700000700000700000700000E00000E +00000E00000E00000E00000E00001C00001E0000FFC00014207F9F0E>I<00000E003E11 +00E1A301C1C20381E00780E00701E00F01E00F01E00F01E00703C007038007870004FC00 +0800000800001800001C00000FFF000FFFC00FFFE01800F0300030600030C00030C00030 +C000306000603000C01C070007FC00181F809417>I<00E00007E00001E00000E00000E0 +0001C00001C00001C00001C00001C00001C000038000038F800390E003A0E003C0600380 +600780E00700E00700E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01 +C01C03801E03C0FF8FF014207E9F19>I<01C003E003E003C00180000000000000000000 +00000003801F800780038003800700070007000700070007000E000E000E000E000E000E +001C001E00FF800B1F7F9E0C>I<00E007E001E000E000E001C001C001C001C001C001C0 +0380038003800380038003800700070007000700070007000E000E000E000E000E000E00 +1C001E00FF800B207F9F0C>108 D<0387C07C001F9861860007A072070003C034030003 +803803000780780700070070070007007007000700700700070070070007007007000E00 +E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E001C01C01C001E01E0 +1E00FFCFFCFFC022147E9326>I<038F801F90E007A0E003C0600380600780E00700E007 +00E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FF +8FF014147E9319>I<00FC000387000E01801C00C03800E03800E07000F0F000F0F000F0 +F000F0F000F0E001E0E001E0E001C0E003C0F00380700700380E001C1C0007E00014147D +9317>I<00E3E00007EC380000F01C0000E00E0000E00F0001C0070001C0078001C00780 +01C0078001C0078001C0078003800F0003800F0003800E0003801E0003801C0003803800 +074070000761C000071F00000700000007000000070000000E0000000E0000000E000000 +0E0000001E000000FFC00000191D809319>I<00FC200382600702601E01E03C01E03801 +C07801C0F001C0F001C0F001C0F001C0E00380E00380F00380F00380F00780700780380F +001C370007C700000700000700000700000E00000E00000E00000E00001E0000FFC0131D +7D9318>I<038E001FB38007C78003C78003830007800007000007000007000007000007 +00000E00000E00000E00000E00000E00000E00001C00001E0000FFC00011147E9312>I< +01F9060708031803180138023C001F001FF007FC01FE001F40074003400360036006F004 +C81887E010147F9312>I<0080010001000100030007000F001E00FFF80E000E000E000E +001C001C001C001C001C001C00380038103810381038103820382018400F800D1C7C9B12 +>I<1C0380FC1F803C07801C03801C038038070038070038070038070038070038070070 +0E00700E00700E00700E00701E00701E00703C00305E001F9F8011147B9319>I<FF83F8 +1E00E01C00C01C00801E00800E01000E03000E02000E0400070400070800070800071000 +03900003A00003E00003C00003800001800001000015147C9318>I<FF9FE1FC3C078070 +1C0300601C0380601C0380401C0380800E0780800E0D81000E0981000E19C2000E11C200 +0F21C4000720C4000740C8000740E8000780F0000780F0000300E0000300600002004000 +1E147C9321>I<1FF0FF03C07801C07001C04000E0C000E180007300007600003C00003C +00001C00002E00004E000087000107000203800403800C01C03C03E0FE07FC18147F9318 +>I<0FF83F8001E00E0001C00C0001C0080001E0080000E0100000E0300000E0200000E0 +40000070400000708000007080000071000000390000003A0000003E0000003C00000038 +000000180000001000000010000000200000002000000040000070C00000F0800000F100 +0000E600000078000000191D809318>I E /Fi 36 122 df<0001C0000003C000000FC0 +00007FC0001FFFC000FFFFC000FFBFC000E03FC000003FC000003FC000003FC000003FC0 +00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 +00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 +00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 +00003FC000003FC000003FC000003FC0007FFFFFF07FFFFFF07FFFFFF01C2E7AAD28>49 +D<003FE00001FFFE0007FFFF800F80FFC01E003FE038001FF07C000FF87E0007FCFF0007 +FCFF8007FEFF8007FEFF8003FEFF8003FE7F0003FE3E0007FE000007FE000007FC000007 +FC00000FF800000FF800000FF000001FE000001FC000003F8000007F0000007E000000F8 +000001F0000003E0000007C000000F0000001E000E003C000E0038000E0070001E00E000 +1C01C0001C0300003C07FFFFFC0FFFFFFC1FFFFFFC3FFFFFFC7FFFFFF8FFFFFFF8FFFFFF +F8FFFFFFF81F2E7CAD28>I<0000007800000000000078000000000000FC000000000000 +FC000000000000FC000000000001FE000000000001FE000000000003FF000000000003FF +000000000007FF800000000007FF800000000007FF80000000000FFFC0000000000E7FC0 +000000001E7FE0000000001C3FE0000000001C3FE000000000383FF000000000381FF000 +000000781FF800000000700FF800000000700FF800000000E00FFC00000000E007FC0000 +0001E007FE00000001C003FE00000001C003FE000000038001FF000000038001FF000000 +078001FF800000070000FF8000000F0000FFC000000FFFFFFFC000000FFFFFFFC000001F +FFFFFFE000001C00003FE000003C00003FF000003800001FF000003800001FF000007000 +001FF800007000000FF80000F000000FFC0000E0000007FC0000E0000007FC0001C00000 +07FE0003E0000003FE00FFFF0001FFFFFCFFFF0001FFFFFCFFFF0001FFFFFC36317DB03D +>65 D<FFFFFFFFC00000FFFFFFFFFC0000FFFFFFFFFF000001FE0000FF800001FE00007F +E00001FE00003FF00001FE00001FF00001FE00000FF80001FE00000FF80001FE00000FFC +0001FE000007FC0001FE000007FC0001FE000007FC0001FE000007FC0001FE00000FFC00 +01FE00000FFC0001FE00000FF80001FE00000FF80001FE00001FF00001FE00003FE00001 +FE00007FC00001FE0001FF800001FE001FFE000001FFFFFFFC000001FFFFFFFF800001FE +00003FE00001FE00000FF00001FE000007FC0001FE000007FC0001FE000003FE0001FE00 +0003FF0001FE000001FF0001FE000001FF8001FE000001FF8001FE000001FF8001FE0000 +01FF8001FE000001FF8001FE000001FF8001FE000001FF8001FE000001FF0001FE000003 +FF0001FE000003FE0001FE000007FE0001FE00000FFC0001FE00001FF80001FE0000FFF0 +00FFFFFFFFFFC000FFFFFFFFFF0000FFFFFFFFF8000031317DB039>I<000003FF800180 +00003FFFF003800001FFFFFC07800007FF003F0F80001FF800079F80003FC00001FF8000 +FF800000FF8001FE0000007F8003FC0000003F8007FC0000001F8007F80000000F800FF0 +0000000F801FF000000007801FF000000007803FE000000007803FE000000003807FE000 +000003807FE000000003807FC000000000007FC00000000000FFC00000000000FFC00000 +000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0000000 +0000FFC00000000000FFC000000000007FC000000000007FC000000000007FE000000000 +007FE000000003803FE000000003803FE000000003801FF000000003801FF00000000780 +0FF0000000070007F8000000070007FC0000000E0003FC0000001E0001FE0000001C0000 +FF8000007800003FC00000F000001FF80003E0000007FF003F80000001FFFFFE00000000 +3FFFF80000000003FF80000031317CB03A>I<FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFF +E000FF80007FE000FF80000FF000FF800003F000FF800001F000FF800001F000FF800000 +F000FF800000F000FF8000007000FF8000007000FF8000007000FF8000003800FF800000 +3800FF8007003800FF8007003800FF8007000000FF8007000000FF8007000000FF800F00 +0000FF801F000000FF803F000000FFFFFF000000FFFFFF000000FFFFFF000000FF803F00 +0000FF801F000000FF800F000000FF8007000000FF8007000000FF8007000000FF800700 +0000FF8007000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000 +0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000 +0000FF80000000FFFFFFC00000FFFFFFC00000FFFFFFC000002D317EB033>70 +D<000003FF00030000007FFFF007000001FFFFFC0F000007FF007E1F00001FF0000FBF00 +007FC00003FF0000FF800001FF0001FE0000007F0003FC0000007F0007FC0000003F000F +F80000001F000FF00000001F001FF00000000F001FF00000000F003FE000000007003FE0 +00000007007FE000000007007FE000000007007FC00000000000FFC00000000000FFC000 +00000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000 +000000FFC00000000000FFC00000000000FFC00000000000FFC00007FFFFF87FC00007FF +FFF87FE00007FFFFF87FE0000001FF003FE0000001FF003FE0000001FF001FF0000001FF +001FF0000001FF000FF0000001FF000FF8000001FF0007FC000001FF0003FC000001FF00 +01FE000001FF0000FF800001FF00007FC00003FF00001FF800077F000007FF003E3F0000 +01FFFFFC1F0000007FFFF00F00000003FF80030035317CB03F>I<FFFFFF807FFFFFC0FF +FFFF807FFFFFC0FFFFFF807FFFFFC000FF8000007FC00000FF8000007FC00000FF800000 +7FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000 +FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF800000 +7FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000 +FF8000007FC00000FF8000007FC00000FF8000007FC00000FFFFFFFFFFC00000FFFFFFFF +FFC00000FFFFFFFFFFC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000 +FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF800000 +7FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000 +FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF800000 +7FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC000FF +FFFF807FFFFFC0FFFFFF807FFFFFC0FFFFFF807FFFFFC03A317EB03F>I<FFFFFF80FFFF +FF80FFFFFF8000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF +800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF +800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF +800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF +800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000FFFF +FF80FFFFFF80FFFFFF8019317EB01E>I<FFFF800001FFFFC0FFFFC00001FFFFC0FFFFE0 +0001FFFFC000FFF0000003E00000FFF8000001C00000EFFC000001C00000E7FC000001C0 +0000E7FE000001C00000E3FF000001C00000E1FF800001C00000E0FFC00001C00000E07F +E00001C00000E03FE00001C00000E03FF00001C00000E01FF80001C00000E00FFC0001C0 +0000E007FE0001C00000E003FE0001C00000E001FF0001C00000E001FF8001C00000E000 +FFC001C00000E0007FE001C00000E0003FF001C00000E0001FF001C00000E0001FF801C0 +0000E0000FFC01C00000E00007FE01C00000E00003FF01C00000E00001FF81C00000E000 +00FF81C00000E00000FFC1C00000E000007FE1C00000E000003FF1C00000E000001FF9C0 +0000E000000FFDC00000E0000007FDC00000E0000007FFC00000E0000003FFC00000E000 +0001FFC00000E0000000FFC00000E00000007FC00000E00000003FC00000E00000003FC0 +0000E00000001FC00000E00000000FC00001F000000007C000FFFFE0000003C000FFFFE0 +000001C000FFFFE0000001C0003A317EB03F>78 D<FFFFFFFFE000FFFFFFFFFE00FFFFFF +FFFF8000FF8000FFE000FF80003FF000FF80000FF800FF800007FC00FF800007FC00FF80 +0003FE00FF800003FE00FF800003FF00FF800003FF00FF800003FF00FF800003FF00FF80 +0003FF00FF800003FF00FF800003FF00FF800003FE00FF800003FE00FF800007FC00FF80 +0007F800FF80000FF800FF80003FE000FF8000FFC000FFFFFFFF0000FFFFFFF80000FF80 +00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80 +00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80 +00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80 +00000000FF80000000FFFFFF800000FFFFFF800000FFFFFF80000030317EB037>80 +D<7FFFFFFFFFFF007FFFFFFFFFFF007FFFFFFFFFFF007FC00FF801FF007E000FF8003F00 +7C000FF8001F0078000FF8000F0078000FF8000F0070000FF8000700F0000FF8000780F0 +000FF8000780F0000FF8000780E0000FF8000380E0000FF8000380E0000FF8000380E000 +0FF8000380E0000FF800038000000FF800000000000FF800000000000FF800000000000F +F800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF8 +00000000000FF800000000000FF800000000000FF800000000000FF800000000000FF800 +000000000FF800000000000FF800000000000FF800000000000FF800000000000FF80000 +0000000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000 +00000FF800000000000FF800000000000FF800000000000FF8000000007FFFFFFF000000 +7FFFFFFF0000007FFFFFFF000031307DAF38>84 D<FFFFFF8003FFFF80FFFFFF8003FFFF +80FFFFFF8003FFFF8000FF80000007C00000FF80000003800000FF80000003800000FF80 +000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380 +0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80 +000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380 +0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80 +000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380 +0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80 +000003800000FF80000003800000FF800000038000007F800000038000007F8000000700 +00007FC00000070000003FC000000E0000003FC000000E0000001FE000001C0000000FF0 +00003800000007F800007000000003FC0001E000000000FF801FC0000000003FFFFF8000 +0000000FFFFE000000000000FFE000000039317EB03E>I<FFFFFC0000FFFFFFFFFC0000 +FFFFFFFFFC0000FFFF03FF00000003C001FF000000038001FF800000078000FF80000007 +0000FFC000000700007FC000000E00007FC000000E00007FE000001E00003FE000001C00 +003FF000003C00001FF000003800001FF800003800000FF800007000000FFC0000700000 +07FC0000E0000007FC0000E0000007FE0001E0000003FE0001C0000003FF0003C0000001 +FF000380000001FF800380000000FF800700000000FF800700000000FFC00F000000007F +C00E000000007FE01E000000003FE01C000000003FF03C000000001FF038000000001FF8 +38000000000FF870000000000FF870000000000FFCF00000000007FCE00000000007FFE0 +0000000003FFC00000000003FFC00000000001FF800000000001FF800000000000FF0000 +00000000FF000000000000FF0000000000007E0000000000007E0000000000003C000000 +0000003C00000038317EB03D>I<00FFF0000003FFFF00000F803F80000FC00FE0001FE0 +07F0001FE007F0001FE003F8000FC003FC00078003FC00000003FC00000003FC00000003 +FC00000003FC000000FFFC00001FFFFC0000FFE3FC0003FC03FC000FF003FC001FC003FC +003FC003FC007F8003FC007F8003FC00FF0003FC00FF0003FC00FF0003FC00FF0007FC00 +FF0007FC007F800DFC003FC01DFE001FE078FFF007FFE07FF000FF803FF024207E9F27> +97 D<01F8000000FFF8000000FFF8000000FFF80000000FF800000007F800000007F800 +000007F800000007F800000007F800000007F800000007F800000007F800000007F80000 +0007F800000007F800000007F800000007F800000007F83FE00007F8FFFC0007FBE07F00 +07FF001F8007FE000FC007FC000FE007F80007F007F80007F807F80007F807F80003FC07 +F80003FC07F80003FC07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE07F8 +0003FE07F80003FE07F80003FE07F80003FC07F80003FC07F80003FC07F80007F807F800 +07F807F80007F007FC000FE007FE000FC007E7003F8007C3C0FE000780FFF80007003FC0 +0027327EB12D>I<000FFF00007FFFC001FC01F003F003F007E007F80FE007F81FC007F8 +3FC003F03FC001E07F8000007F8000007F800000FF800000FF800000FF800000FF800000 +FF800000FF800000FF800000FF8000007F8000007F8000007F8000003FC0001C3FC0001C +1FC000380FE0003807E0007003F001E001FC07C0007FFF00000FF8001E207D9F24>I<00 +00000FC0000007FFC0000007FFC0000007FFC00000007FC00000003FC00000003FC00000 +003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0000000 +3FC00000003FC00000003FC00000003FC00007F83FC0003FFF3FC000FE07BFC003F801FF +C007E0007FC00FE0007FC01FC0003FC03FC0003FC03FC0003FC07F80003FC07F80003FC0 +7F80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF +80003FC0FF80003FC07F80003FC07F80003FC07F80003FC03FC0003FC03FC0003FC01FC0 +003FC00FE0007FC007E000FFC003F003FFE001FC0F3FFE007FFE3FFE000FF03FFE27327D +B12D>I<000FFC00007FFF8001FC0FC003F003E007E001F00FE001F81FC000FC3FC000FE +3FC000FE7F80007E7F80007F7F80007FFF80007FFF80007FFFFFFFFFFFFFFFFFFF800000 +FF800000FF800000FF8000007F8000007F8000007F8000003FC000071FC000071FC0000E +0FE0000E07F0001C03F8007800FE03E0003FFFC00007FE0020207E9F25>I<0001FE0000 +0FFF80001FC3C0007F07E000FE0FF001FE0FF001FC0FF003FC0FF003FC07E003FC018003 +FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000FFFFFC00FF +FFFC00FFFFFC0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003 +FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003 +FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003 +FC00007FFFF0007FFFF0007FFFF0001C327EB119>I<001FF007C000FFFE3FE001F83F79 +F007E00FC3F00FE00FE1F00FC007E0E01FC007F0001FC007F0003FC007F8003FC007F800 +3FC007F8003FC007F8003FC007F8001FC007F0001FC007F0000FC007E0000FE00FE00007 +E00FC00003F83F000006FFFE00000E1FF000000E000000001E000000001E000000001F00 +0000001F800000001FFFFF80000FFFFFF0000FFFFFFC0007FFFFFE0003FFFFFF0003FFFF +FF800FFFFFFFC03F00007FC07E00001FE07C00000FE0FC000007E0FC000007E0FC000007 +E0FC000007E07E00000FC03E00000F803F00001F800FC0007E0007F803FC0001FFFFF000 +001FFF0000242F7E9F28>I<01F8000000FFF8000000FFF8000000FFF80000000FF80000 +0007F800000007F800000007F800000007F800000007F800000007F800000007F8000000 +07F800000007F800000007F800000007F800000007F800000007F800000007F807F80007 +F83FFE0007F8783F0007F8C03F8007F9801FC007FB001FC007FE001FE007FC001FE007FC +001FE007FC001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F800 +1FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001F +E007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0FFFFC3FFFF +FFFFC3FFFFFFFFC3FFFF28327DB12D>I<03C00007E0000FF0001FF8001FF8001FF8001F +F8000FF00007E00003C00000000000000000000000000000000000000000000000000000 +000001F8007FF8007FF8007FF80007F80007F80007F80007F80007F80007F80007F80007 +F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007 +F80007F80007F80007F80007F80007F800FFFF80FFFF80FFFF8011337DB217>I<01F800 +FFF800FFF800FFF8000FF80007F80007F80007F80007F80007F80007F80007F80007F800 +07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800 +07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800 +07F80007F80007F80007F80007F80007F80007F80007F80007F80007F800FFFFC0FFFFC0 +FFFFC012327DB117>108 D<03F007F8001FE000FFF03FFE00FFF800FFF0783F01E0FC00 +FFF0C03F8300FE000FF1801FC6007F0007F3001FCC007F0007F6001FF8007F8007FC001F +F0007F8007FC001FF0007F8007FC001FF0007F8007F8001FE0007F8007F8001FE0007F80 +07F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001F +E0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F80 +07F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001F +E0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F80FFFFC3FFFF0FFFFC +FFFFC3FFFF0FFFFCFFFFC3FFFF0FFFFC3E207D9F43>I<03F007F800FFF03FFE00FFF078 +3F00FFF0C03F800FF1801FC007F3001FC007F6001FE007FC001FE007FC001FE007FC001F +E007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0 +07F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007 +F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0FFFFC3FFFFFFFFC3FFFFFFFF +C3FFFF28207D9F2D>I<0007FC0000007FFFC00001FC07F00003F001F80007E000FC000F +C0007E001FC0007F003FC0007F803F80003F807F80003FC07F80003FC07F80003FC0FF80 +003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF8000 +3FE07F80003FC07F80003FC07F80003FC03FC0007F803FC0007F801FC0007F000FE000FE +0007E000FC0003F803F80001FE0FF000007FFFC0000007FC000023207E9F28>I<01F83F +E000FFF8FFFC00FFFBE07F00FFFF003F8007FE001FC007FC000FE007F8000FF007F80007 +F807F80007F807F80007FC07F80003FC07F80003FC07F80003FE07F80003FE07F80003FE +07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE07F80003FC07F80007FC07 +F80007FC07F80007F807F80007F807F8000FF007FC000FE007FE001FC007FF003F8007FB +C0FE0007F8FFF80007F83FC00007F800000007F800000007F800000007F800000007F800 +000007F800000007F800000007F800000007F800000007F800000007F8000000FFFFC000 +00FFFFC00000FFFFC00000272E7E9F2D>I<03F03F00FFF07FC0FFF1C3E0FFF187E00FF3 +0FF007F60FF007F60FF007FC07E007FC03C007FC000007FC000007F8000007F8000007F8 +000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8 +000007F8000007F8000007F8000007F8000007F8000007F80000FFFFE000FFFFE000FFFF +E0001C207E9F21>114 D<01FF860007FFFE001F00FE003C003E0078001E0078000E00F8 +000E00F8000E00F8000E00FC000000FF800000FFFC00007FFFC0003FFFF0003FFFF8001F +FFFC0007FFFE0001FFFF00003FFF000000FF8000003F8060001F80E0000F80E0000F80F0 +000F80F0000F00F8000F00FC001E00FE001C00FF807800F3FFF000C07F800019207D9F20 +>I<001C0000001C0000001C0000001C0000001C0000003C0000003C0000003C0000007C +0000007C000000FC000001FC000003FC000007FC00001FFFFE00FFFFFE00FFFFFE0003FC +000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC +000003FC000003FC000003FC000003FC000003FC000003FC000003FC038003FC038003FC +038003FC038003FC038003FC038003FC038001FC038001FC070000FE0700007F0E00003F +FC000007F000192E7FAD1F>I<01F80007E0FFF803FFE0FFF803FFE0FFF803FFE00FF800 +3FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001F +E007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0 +07F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8003FE007F8003FE003 +F8007FE003F8007FE001FC00DFF000FE039FFF007FFF1FFF000FFC1FFF28207D9F2D>I< +FFFF001FFCFFFF001FFCFFFF001FFC0FF80003C007F800038007FC00078003FC00070003 +FE00070001FE000E0001FF000E0000FF001C0000FF001C0000FF803C00007F803800007F +C07800003FC07000003FE0F000001FE0E000001FF1E000000FF1C000000FF9C0000007FB +80000007FB80000007FF80000003FF00000003FF00000001FE00000001FE00000000FC00 +000000FC00000000780000000078000026207E9F2B>I<FFFF1FFFE03FF8FFFF1FFFE03F +F8FFFF1FFFE03FF80FF000FE0007800FF800FE00038007F800FF00070007F8007F000700 +07FC007F000F0003FC00FF800E0003FC00FF800E0001FE01FFC01C0001FE01DFC01C0001 +FF01DFC03C0000FF038FE0380000FF038FE03800007F878FF07000007F8707F07000007F +C707F0F000003FCF07F8E000003FCE03F8E000001FFE03F9C000001FFC01FDC000001FFC +01FFC000000FFC01FF8000000FF800FF8000000FF800FF80000007F0007F00000007F000 +7F00000003F0007E00000003E0003E00000003E0003E00000001C0001C000035207E9F3A +>I<7FFF807FFC7FFF807FFC7FFF807FFC03FC000F0001FE001E0000FF003C0000FF8038 +00007FC07800003FC0F000001FE1E000000FF3C000000FFF80000007FF00000003FE0000 +0001FE00000000FF00000000FF80000000FFC0000001FFC0000003DFE00000078FF00000 +078FF800000F07FC00001E03FE00003C01FE00007800FF0000F000FF8001E0007FC003E0 +003FE0FFFC01FFFFFFFC01FFFFFFFC01FFFF28207F9F2B>I<FFFF001FFCFFFF001FFCFF +FF001FFC0FF80003C007F800038007FC00078003FC00070003FE00070001FE000E0001FF +000E0000FF001C0000FF001C0000FF803C00007F803800007FC07800003FC07000003FE0 +F000001FE0E000001FF1E000000FF1C000000FF9C0000007FB80000007FB80000007FF80 +000003FF00000003FF00000001FE00000001FE00000000FC00000000FC00000000780000 +0000780000000070000000007000000000F000000000E000000001E000007C01C00000FE +03C00000FE03800000FE07000000FE0F000000FC1E000000787C0000003FF00000000FC0 +000000262E7E9F2B>I E /Fj 3 106 df<0000FF00000007FFE000001F00F8000078001E +0000E0000700018000018003000000C006000000600C000000300C000000301800000018 +300000000C300000000C6000000006600000000660000000066000000006C000000003C0 +00000003C000000003C000000003C000000003C000000003C000000003C000000003C000 +0000036000000006600000000660000000066000000006300000000C300000000C180000 +00180C000000300C00000030060000006003000000C0018000018000E00007000078001E +00001F00F8000007FFE0000000FF0000282B7EA02D>13 D<0020006000C000C000C00180 +0180030003000300060006000C000C0018001800180030003000600060006000C000C000 +600060006000300030001800180018000C000C00060006000300030003000180018000C0 +00C000C0006000200B2E7CA112>104 D<C000C000600060006000300030001800180018 +000C000C00060006000300030003000180018000C000C000C00060006000C000C000C001 +800180030003000300060006000C000C0018001800180030003000600060006000C000C0 +000B2E7EA112>I E /Fk 44 122 df<3C007F00FF80FF80FFC0FFC0FFC07FC03EC000C0 +00C00180018001800300030006000E001C00380010000A157B8813>44 +D<1C007F007F00FF80FF80FF807F007F001C0009097B8813>46 D<000E00001E00007E00 +07FE00FFFE00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 +00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 +00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00FFFFFEFFFFFEFFFFFE +17277BA622>49 D<00FF800007FFF0000FFFFC001E03FE003800FF807C003F80FE003FC0 +FF001FC0FF001FE0FF000FE0FF000FE07E000FE03C001FE000001FE000001FC000001FC0 +00003F8000003F0000007E000000FC000000F8000001F0000003E00000078000000F0000 +001E0000003C00E0007000E000E000E001C001C0038001C0060001C00FFFFFC01FFFFFC0 +3FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007 +FFFC000F81FE001F007F003F807F003F803F803F803F803F803F801F803F801F003F8000 +007F0000007F0000007E000000FC000001F8000007F00000FFC00000FFC0000001F80000 +007E0000003F0000003F8000001FC000001FC000001FE000001FE03C001FE07E001FE0FF +001FE0FF001FE0FF001FC0FF003FC0FE003F807C007F003F01FE001FFFFC0007FFF00000 +FF80001B277DA622>I<00000F0000000F0000001F0000003F0000007F000000FF000001 +FF000001FF000003BF0000073F00000E3F00001C3F00003C3F0000383F0000703F0000E0 +3F0001C03F0003803F0007803F0007003F000E003F001C003F0038003F0070003F00F000 +3F00FFFFFFF8FFFFFFF8FFFFFFF800007F0000007F0000007F0000007F0000007F000000 +7F0000007F0000007F00001FFFF8001FFFF8001FFFF81D277EA622>I<180003001F801F +001FFFFE001FFFFC001FFFF8001FFFF0001FFFC0001FFF00001C0000001C0000001C0000 +001C0000001C0000001C0000001C0000001C7FC0001DFFF8001F80FC001E003F0008003F +0000001F8000001FC000001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001F +E0FE001FE0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFFFC0003FFF0 +0000FF80001B277DA622>I<00000780000000000780000000000FC0000000000FC00000 +00000FC0000000001FE0000000001FE0000000003FF0000000003FF0000000003FF00000 +000077F80000000077F800000000F7FC00000000E3FC00000000E3FC00000001C1FE0000 +0001C1FE00000003C1FF0000000380FF0000000380FF00000007007F80000007007F8000 +000F007FC000000E003FC000000E003FC000001C001FE000001C001FE000003FFFFFF000 +003FFFFFF000003FFFFFF00000700007F80000700007F80000F00007FC0000E00003FC00 +01E00003FE0001C00001FE0001C00001FE0003C00001FF00FFFE003FFFFCFFFE003FFFFC +FFFE003FFFFC2E297EA833>65 D<FFFFFFF800FFFFFFFF00FFFFFFFFC003F8001FE003F8 +000FF003F80007F803F80003F803F80003FC03F80003FC03F80001FC03F80001FC03F800 +01FC03F80003FC03F80003F803F80003F803F80007F003F8000FF003F8001FC003F800FF +8003FFFFFE0003FFFFFFC003F8000FF003F80003F803F80001FC03F80001FE03F80000FE +03F80000FE03F80000FF03F80000FF03F80000FF03F80000FF03F80000FF03F80000FF03 +F80000FE03F80001FE03F80003FC03F80007FC03F8001FF8FFFFFFFFE0FFFFFFFFC0FFFF +FFFE0028297DA830>I<00007FE0030007FFFC07001FFFFF0F007FF00F9F00FF0001FF01 +FC0000FF03F800007F07F000003F0FE000001F1FC000001F1FC000000F3F8000000F3F80 +0000077F800000077F800000077F00000000FF00000000FF00000000FF00000000FF0000 +0000FF00000000FF00000000FF00000000FF00000000FF000000007F000000007F800000 +007F800000073F800000073F800000071FC00000071FC000000E0FE000000E07F000001C +03F800003C01FC00007800FF0001F0007FF007C0001FFFFF800007FFFE0000007FF00028 +297CA831>I<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE003FC001FE003FC0007F003FC0001F0 +03FC0001F003FC0000F003FC00007003FC00007003FC00007003FC01C07803FC01C03803 +FC01C03803FC01C03803FC03C00003FC03C00003FC0FC00003FFFFC00003FFFFC00003FF +FFC00003FC0FC00003FC03C00003FC03C00003FC01C00E03FC01C00E03FC01C00E03FC01 +C01C03FC00001C03FC00001C03FC00001C03FC00003C03FC00003803FC00007803FC0000 +F803FC0001F803FC0003F803FC001FF8FFFFFFFFF0FFFFFFFFF0FFFFFFFFF027297EA82C +>69 D<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC003FC003FC000FE003FC0003E003FC00 +01E003FC0001E003FC0000E003FC0000E003FC0000E003FC0000F003FC01C07003FC01C0 +7003FC01C07003FC01C00003FC03C00003FC03C00003FC0FC00003FFFFC00003FFFFC000 +03FFFFC00003FC0FC00003FC03C00003FC03C00003FC01C00003FC01C00003FC01C00003 +FC01C00003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC +00000003FC00000003FC000000FFFFFC0000FFFFFC0000FFFFFC000024297EA82A>I<00 +007FE003000007FFFC0700001FFFFF0F00007FF00F9F0000FF0001FF0001FC0000FF0003 +F800007F0007F000003F000FE000001F001FC000001F001FC000000F003F8000000F003F +80000007007F80000007007F80000007007F0000000000FF0000000000FF0000000000FF +0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF +0000FFFFF87F0000FFFFF87F8000FFFFF87F800000FF003F800000FF003F800000FF001F +C00000FF001FC00000FF000FE00000FF0007F00000FF0003F80000FF0001FC0000FF0000 +FF0001FF00007FF007FF00001FFFFF9F000007FFFE0F0000007FF003002D297CA835>I< +FFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFF03FC00003FC003FC00003FC003FC00003FC0 +03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0 +03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0 +03FFFFFFFFC003FFFFFFFFC003FFFFFFFFC003FC00003FC003FC00003FC003FC00003FC0 +03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0 +03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0 +03FC00003FC003FC00003FC0FFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFF30297EA835> +I<FFFFF0FFFFF0FFFFF003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC +0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC +0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC +0003FC0003FC00FFFFF0FFFFF0FFFFF014297EA819>I<FFFC00007FFFFFFE00007FFFFF +FF00007FFF03FF800001C003FFC00001C003BFE00001C0039FE00001C0039FF00001C003 +8FF80001C00387FC0001C00383FE0001C00381FF0001C00380FF8001C003807F8001C003 +807FC001C003803FE001C003801FF001C003800FF801C0038007FC01C0038003FC01C003 +8003FE01C0038001FF01C0038000FF81C00380007FC1C00380003FE1C00380001FF1C003 +80000FF1C00380000FF9C003800007FDC003800003FFC003800001FFC003800000FFC003 +8000007FC0038000007FC0038000003FC0038000001FC0038000000FC00380000007C0FF +FE000003C0FFFE000001C0FFFE000001C030297EA835>78 D<FFFFFFF800FFFFFFFF00FF +FFFFFFC003FC003FE003FC0007F003FC0003F803FC0003FC03FC0001FC03FC0001FE03FC +0001FE03FC0001FE03FC0001FE03FC0001FE03FC0001FE03FC0001FE03FC0001FC03FC00 +03FC03FC0003F803FC0007F003FC003FE003FFFFFF8003FFFFFE0003FC00000003FC0000 +0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000 +03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000FF +FFF00000FFFFF00000FFFFF0000027297EA82E>80 D<FFFFFFE00000FFFFFFFE0000FFFF +FFFF800003FC003FE00003FC000FF00003FC0007F80003FC0003FC0003FC0001FC0003FC +0001FE0003FC0001FE0003FC0001FE0003FC0001FE0003FC0001FE0003FC0001FE0003FC +0001FC0003FC0003F80003FC0007F80003FC000FE00003FC003FC00003FFFFFE000003FF +FFFE000003FC00FF800003FC003FC00003FC001FE00003FC000FF00003FC0007F80003FC +0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC +0007F80003FC0007F80003FC0007F80E03FC0007F80E03FC0003F80E03FC0001FC1CFFFF +F000FE1CFFFFF0007FF8FFFFF0000FE02F297EA832>82 D<00FF806003FFF0E00FFFF8E0 +1F80FDE03F001FE03E0007E07C0003E07C0003E0FC0001E0FC0001E0FC0000E0FE0000E0 +FE0000E0FF000000FFC000007FFC00007FFFE0003FFFF8001FFFFE001FFFFF0007FFFF80 +03FFFFC000FFFFC0000FFFE000007FE000001FF000000FF0000007F0E00003F0E00003F0 +E00003F0E00003F0F00003E0F00003E0F80007E0FC0007C0FF000F80FFE03F80E3FFFE00 +E1FFFC00C01FF0001C297CA825>I<FFFFF000FFFEFFFFF000FFFEFFFFF000FFFE03FC00 +00038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00 +00038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00 +00038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00 +00038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00 +00038003FC0000038003FC0000038003FC0000038001FC0000070001FE0000070000FE00 +000E00007F00000E00003F00003C00001FC0007800000FF003F0000007FFFFE0000000FF +FF800000001FFC00002F297EA834>85 D<FFFFF0007FFFFFFFF0007FFFFFFFF0007FFF03 +FE000001C001FE0000038001FE0000038001FF0000078000FF0000070000FF80000F0000 +7F80000E00007FC0000E00003FC0001C00003FC0001C00003FE0003C00001FE000380000 +1FF0007800000FF0007000000FF80070000007F800E0000007F800E0000003FC01C00000 +03FC01C0000003FE03C0000001FE0380000001FF0780000000FF0700000000FF87000000 +007F8E000000007F8E000000007FDE000000003FDC000000003FFC000000001FF8000000 +001FF8000000000FF0000000000FF0000000000FF00000000007E00000000007E0000000 +0003C00000000003C0000030297FA833>I<FFFFE07FFFE01FFFC0FFFFE07FFFE01FFFC0 +FFFFE07FFFE01FFFC003FC0003FC0000700003FC0003FC0000700003FE0001FE00007000 +01FE0001FE0000E00001FE0001FE0000E00001FF0001FF0001E00000FF0001FF0001C000 +00FF0003FF8001C00000FF8003FF8003C000007F8003FF80038000007F8007FFC0038000 +003FC0073FC0070000003FC0073FC0070000003FE00E1FE00F0000001FE00E1FE00E0000 +001FE00E1FF00E0000001FF01C0FF01E0000000FF01C0FF01C0000000FF03C0FF81C0000 +0007F83807F83800000007F83807F83800000007F87807FC3800000003FC7003FC700000 +0003FC7003FC7000000003FEE001FEF000000001FEE001FEE000000001FFE001FFE00000 +0001FFC000FFE000000000FFC000FFC000000000FFC000FFC0000000007F80007F800000 +00007F80007F80000000007F80007F80000000003F00003F00000000003F00003F000000 +00003E00001F00000000001E00001E00000000001E00001E00000042297FA845>I<03FF +80000FFFF0001F01FC003F80FE003F807F003F803F003F803F801F003F8000003F800000 +3F8000003F8000003F80003FFF8001FC3F800FE03F801F803F803F003F807E003F80FC00 +3F80FC003F80FC003F80FC003F80FC005F807E00DF803F839FFC1FFE0FFC03FC03FC1E1B +7E9A21>97 D<FFE00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE0 +00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE1FE000FEF +FF800FFE07E00FF803F00FF001F80FE000FC0FE000FC0FE0007E0FE0007E0FE0007F0FE0 +007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007E0FE0007E0FE0 +007E0FE000FC0FE000FC0FF001F80FF803F00F9C0FE00F0FFF800E01FC00202A7EA925> +I<003FF00001FFFC0003F03E000FC07F001F807F003F007F003F007F007F003E007E0000 +007E000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000 +007E0000007F0000003F0003803F8003801F8007000FE00E0003F83C0001FFF800003FC0 +00191B7E9A1E>I<00007FF000007FF000007FF0000007F0000007F0000007F0000007F0 +000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0003F87F0 +01FFF7F007F03FF00FC00FF01F8007F03F0007F03F0007F07E0007F07E0007F07E0007F0 +FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F07E0007F0 +7E0007F03F0007F03F0007F01F800FF00FC01FF007E07FFF01FFE7FF007F87FF202A7EA9 +25>I<003FC00001FFF00003E07C000F803E001F801F001F001F003F000F807E000F807E +000FC07E000FC0FE0007C0FE0007C0FFFFFFC0FFFFFFC0FE000000FE000000FE0000007E +0000007E0000007F0000003F0001C01F0001C00F80038007C0070003F01E0000FFFC0000 +3FE0001A1B7E9A1F>I<0007F8003FFC007E3E01FC7F03F87F03F07F07F07F07F03E07F0 +0007F00007F00007F00007F00007F00007F000FFFFC0FFFFC0FFFFC007F00007F00007F0 +0007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 +0007F00007F00007F00007F00007F00007F0007FFF807FFF807FFF80182A7EA915>I<00 +FF80F003FFE3F80FC1FE1C1F007C7C3F007E7C3E003E107E003F007E003F007E003F007E +003F007E003F007E003F003E003E003F007E001F007C000FC1F8000BFFE00018FF800018 +00000038000000380000003C0000003FFFF8003FFFFF001FFFFFC00FFFFFE007FFFFF01F +FFFFF03C0007F07C0001F8F80000F8F80000F8F80000F8F80000F87C0001F07C0001F03F +0007E00FC01F8007FFFF00007FF0001E287E9A22>I<FFE00000FFE00000FFE000000FE0 +00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0 +00000FE000000FE000000FE07E000FE1FF800FE30FC00FE40FE00FE807E00FF807F00FF0 +07F00FF007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE0 +07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0FFFE +3FFFFFFE3FFFFFFE3FFF202A7DA925>I<07000F801FC03FE03FE03FE01FC00F80070000 +00000000000000000000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00F +E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7EAA12 +>I<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 +0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 +0FE00FE00FE00FE0FFFEFFFEFFFE0F2A7EA912>108 D<FFC07F001FC000FFC1FFC07FF0 +00FFC307E0C1F8000FC407F101FC000FC803F200FC000FD803FE00FE000FD003FC00FE00 +0FD003FC00FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000F +E003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE0 +03F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003 +F800FE000FE003F800FE00FFFE3FFF8FFFE0FFFE3FFF8FFFE0FFFE3FFF8FFFE0331B7D9A +38>I<FFC07E00FFC1FF80FFC30FC00FC40FE00FC807E00FD807F00FD007F00FD007F00F +E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00F +E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0FFFE3FFFFFFE3FFFFF +FE3FFF201B7D9A25>I<003FE00001FFFC0003F07E000FC01F801F800FC03F0007E03F00 +07E07E0003F07E0003F07E0003F0FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE00 +03F8FE0003F8FE0003F87E0003F07E0003F03F0007E03F0007E01F800FC00FC01F8007F0 +7F0001FFFC00003FE0001D1B7E9A22>I<FFE1FE00FFEFFF80FFFE0FE00FF803F00FF001 +F80FE001FC0FE000FC0FE000FE0FE000FE0FE0007F0FE0007F0FE0007F0FE0007F0FE000 +7F0FE0007F0FE0007F0FE0007F0FE0007E0FE000FE0FE000FE0FE000FC0FE001FC0FF001 +F80FF807F00FFC0FE00FEFFF800FE1FC000FE000000FE000000FE000000FE000000FE000 +000FE000000FE000000FE000000FE00000FFFE0000FFFE0000FFFE000020277E9A25>I< +FFC1F0FFC7FCFFC63E0FCC7F0FD87F0FD07F0FD07F0FF03E0FE0000FE0000FE0000FE000 +0FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE000 +FFFF00FFFF00FFFF00181B7F9A1B>114 D<03FE300FFFF03E03F07800F07000F0F00070 +F00070F80070FE0000FFE0007FFF007FFFC03FFFE01FFFF007FFF800FFF80007FC0000FC +E0007CE0003CF0003CF00038F80038FC0070FF01E0E7FFC0C1FF00161B7E9A1B>I<00E0 +0000E00000E00000E00001E00001E00001E00003E00003E00007E0000FE0001FFFE0FFFF +E0FFFFE00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0 +000FE0000FE0000FE0700FE0700FE0700FE0700FE0700FE0700FE07007F0E003F0C001FF +80007F0014267FA51A>I<FFE07FF0FFE07FF0FFE07FF00FE007F00FE007F00FE007F00F +E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00F +E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE00FF00FE00FF007E017F003 +F067FF01FFC7FF007F87FF201B7D9A25>I<FFFC03FFFFFC03FFFFFC03FF0FF000F007F0 +00E007F800E003F801C003F801C003FC03C001FC038001FE078000FE070000FF0700007F +0E00007F0E00007F9E00003F9C00003FFC00001FF800001FF800000FF000000FF000000F +F0000007E0000007E0000003C0000003C000201B7F9A23>I<FFFC7FFC1FFCFFFC7FFC1F +FCFFFC7FFC1FFC0FE00FE001C007F007E0038007F007E0038007F807F0078003F807F007 +0003F80FF8070003FC0FF80F0001FC0FF80E0001FC1FFC0E0000FE1CFC1C0000FE1CFE1C +0000FF387E3C00007F387E3800007F787F3800003FF03F7000003FF03FF000003FE01FF0 +00001FE01FE000001FE01FE000000FC00FC000000FC00FC000000F8007C0000007800780 +000007800780002E1B7F9A31>I<FFFC1FFEFFFC1FFEFFFC1FFE07F0038003F8078003FC +0F0001FE1E0000FE3C00007F3800007FF800003FF000001FE000000FE000000FF0000007 +F800000FF800001FFC00003CFE000038FF0000787F0000F03F8001E01FC003C01FE00380 +0FE0FFF03FFFFFF03FFFFFF03FFF201B7F9A23>I<FFFC03FFFFFC03FFFFFC03FF0FF000 +F007F000E007F800E003F801C003F801C003FC03C001FC038001FE078000FE070000FF07 +00007F0E00007F0E00007F9E00003F9C00003FFC00001FF800001FF800000FF000000FF0 +00000FF0000007E0000007E0000003C0000003C000000380000003800000078000380700 +007C0F0000FE0E0000FE1E0000FE1C0000FE38000074F000003FE000000F80000020277F +9A23>I E /Fl 75 127 df<70F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F870000000000070 +F8F8F870051C779B18>33 D<4010E038F078E038E038E038E038E038E038E038E038E038 +E03860300D0E7B9C18>I<030600078F00078F00078F00078F00078F00078F007FFFC0FF +FFE0FFFFE07FFFC00F1E000F1E000F1E000F1E000F1E000F1E007FFFC0FFFFE0FFFFE07F +FFC01E3C001E3C001E3C001E3C001E3C001E3C000C1800131C7E9B18>I<00C00001C000 +01C00001C00003F0000FFC003FFE007DCF0071C700E1C380E1C780E1C780E1C780F1C000 +79C0003FC0001FE0000FF80001FC0001DE0001CF0001C70061C380F1C380F1C380E1C380 +E1C70071C70079DE003FFE001FF80007E00001C00001C00001C00000C00011247D9F18> +I<3803007C07807C0780EE0F80EE0F00EE0F00EE1F00EE1E00EE1E00EE3E007C3C007C3C +00387C0000780000780000F80000F00001F00001E00001E00003E00003C00003C00007C0 +000783800787C00F87C00F0EE00F0EE01F0EE01E0EE01E0EE03E0EE03C07C03C07C01803 +8013247E9F18>I<01C00007E0000FF0000E70001C38001C38001C38001C38001C73F81C +F3F81CE3F80FC1C00FC3800F83800F03801F07003F87007B8E0071CE00E1FC00E0FC00E0 +7C00E07870E0787070FE707FFFE03FC7E00F03C0151C7F9B18>I<387C7C7E3E0E0E0E1C +1C38F8F0C0070E789B18>I<007000F001E003C007800F001E001C003800380070007000 +70007000E000E000E000E000E000E000E000E0007000700070007000380038001C001E00 +0F00078003C001F000F000700C24799F18>I<6000F00078003C001E000F000780038001 +C001C000E000E000E000E00070007000700070007000700070007000E000E000E000E001 +C001C0038007800F001E003C007800F00060000C247C9F18>I<01C00001C00001C00001 +C00041C100F1C780FDDF807FFF001FFC0007F00007F0001FFC007FFF00FDDF80F1C78041 +C10001C00001C00001C00001C00011147D9718>I<00600000F00000F00000F00000F000 +00F00000F00000F0007FFFC0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F000 +00F00000F00000600013147E9718>I<1C3E7E7F3F1F070E1E7CF860080C788518>I<7FFF +C0FFFFE0FFFFE07FFFC013047E8F18>I<3078FCFC78300606778518>I<00030000078000 +0780000F80000F00001F00001E00001E00003E00003C00007C0000780000780000F80000 +F00001F00001E00003E00003C00003C00007C0000780000F80000F00000F00001F00001E +00003E00003C00003C00007C0000780000F80000F00000F0000060000011247D9F18>I< +01F00007FC000FFE001F1F001C07003803807803C07001C07001C0E000E0E000E0E000E0 +E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07001C07803C03803801C0700 +1F1F000FFE0007FC0001F000131C7E9B18>I<01800380038007800F803F80FF80FB8043 +8003800380038003800380038003800380038003800380038003800380038003807FFCFF +FE7FFC0F1C7B9B18>I<03F0000FFE003FFF007C0F807003C0E001C0F000E0F000E06000 +E00000E00000E00001C00001C00003C0000780000F00001E00003C0000780000F00001E0 +0007C0000F80001E00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<001F00003F0000 +770000770000E70001E70001C7000387000787000707000E07001E07003C070038070078 +0700F00700FFFFF8FFFFF8FFFFF8000700000700000700000700000700000700007FF000 +7FF0007FF0151C7F9B18>52 D<007E0001FF0007FF800F83C01E03C01C03C03801803800 +00700000700000E1F800E7FE00FFFF00FE0780F803C0F001C0F000E0E000E0F000E07000 +E07000E07000E03801C03C03C01E07800FFF0007FE0001F800131C7E9B18>54 +D<3078FCFC783000000000000000003078FCFC78300614779318>58 +D<183C7E7E3C180000000000000000183C7E7E3E1E0E1C3C78F060071A789318>I<0000 +C00003E00007E0001FC0003F8000FE0001FC0007F0000FE0003F80007F0000FC0000FC00 +007F00003F80000FE00007F00001FC0000FE00003F80001FC00007E00003E00000C01318 +7E9918>I<7FFFC0FFFFE0FFFFE07FFFC00000000000000000000000007FFFC0FFFFE0FF +FFE07FFFC0130C7E9318>I<600000F80000FC00007F00003F80000FE00007F00001FC00 +00FE00003F80001FC00007E00007E0001FC0003F8000FE0001FC0007F0000FE0003F8000 +7F0000FC0000F8000060000013187E9918>I<0FF0003FFC007FFF00700F00F00380F003 +80600780000F00003E00007C0001F00001E00003C00003C00003C00003C00003C0000380 +0000000000000000000000000000000003800007C00007C00007C000038000111C7D9B18 +>I<00700000F80000F80000D80000D80001DC0001DC0001DC00018C00038E00038E0003 +8E00038E000707000707000707000707000707000FFF800FFF800FFF800E03801C01C01C +01C01C01C07F07F0FF07F87F07F0151C7F9B18>65 D<7FF800FFFE007FFF001C0F801C03 +C01C03C01C01E01C00E01C00E01C00F01C00701C00701C00701C00701C00701C00701C00 +701C00701C00F01C00E01C00E01C01E01C01C01C03C01C0F807FFF00FFFE007FF800141C +7F9B18>68 D<FFFFF0FFFFF0FFFFF01C00701C00701C00701C00701C00001C00001C0E00 +1C0E001C0E001FFE001FFE001FFE001C0E001C0E001C0E001C00001C00001C00381C0038 +1C00381C00381C0038FFFFF8FFFFF8FFFFF8151C7F9B18>I<FFFFF8FFFFF8FFFFF81C00 +381C00381C00381C00381C00001C00001C07001C07001C07001FFF001FFF001FFF001C07 +001C07001C07001C00001C00001C00001C00001C00001C00001C0000FFC000FFC000FFC0 +00151C7F9B18>I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C +01C01C01C01C01C01FFFC01FFFC01FFFC01C01C01C01C01C01C01C01C01C01C01C01C01C +01C01C01C01C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>72 +D<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 +0001C0007FFF00FFFF807FFF00111C7D9B18>I<FFC000FFC000FFC0001C00001C00001C +00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C +00001C00001C00001C00E01C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE0131C7E9B +18>76 D<7E07F0FF0FF87F07F01D81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01CE1 +C01CE1C01C61C01C71C01C71C01C31C01C39C01C39C01C39C01C19C01C19C01C1DC01C0D +C01C0DC01C0DC07F07C0FF87C07F03C0151C7F9B18>78 D<0FFE003FFF807FFFC07803C0 +7001C0F001E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0 +E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07C07C07FFFC03FFF800FFE00 +131C7E9B18>I<FFFE00FFFF80FFFFC01C03C01C01E01C00E01C00701C00701C00701C00 +701C00701C00E01C01E01C03C01FFFC01FFF801FFE001C00001C00001C00001C00001C00 +001C00001C00001C0000FF8000FF8000FF8000141C7F9B18>I<7FF800FFFE007FFF001C +0F801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FFE001C +0F001C07001C03801C03801C03801C03801C03801C039C1C039C1C039C7F01F8FF81F87F +00F0161C7F9B18>82 D<03F1C01FFFC03FFFC07C0FC07003C0E001C0E001C0E001C0E000 +007000007800003F00001FF00007FE0000FF00000F800003C00001C00000E00000E06000 +E0E000E0E001E0F001C0F80780FFFF80FFFE00E7F800131C7E9B18>I<7FFFF8FFFFF8FF +FFF8E07038E07038E07038E0703800700000700000700000700000700000700000700000 +700000700000700000700000700000700000700000700000700000700000700007FF0007 +FF0007FF00151C7F9B18>I<FF83FEFF83FEFF83FE1C00701C00701C00701C00701C0070 +1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C0070 +1C00701C00700E00E00F01E00783C003FF8001FF00007C00171C809B18>I<FE03F8FF07 +F8FE03F81C01C01E03C00E03800F0780070700070700038E00038E0001DC0001DC0001DC +0000F80000F80000700000700000700000700000700000700000700000700000700001FC +0003FE0001FC00151C7F9B18>89 D<FFF8FFF8FFF8E000E000E000E000E000E000E000E0 +00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0 +00E000E000E000E000FFF8FFF8FFF80D24779F18>91 D<600000F00000F00000F8000078 +00007C00003C00003C00003E00001E00001F00000F00000F00000F800007800007C00003 +C00003C00003E00001E00001F00000F00000F800007800007800007C00003C00003E0000 +1E00001E00001F00000F00000F8000078000078000030011247D9F18>I<FFF8FFF8FFF8 +003800380038003800380038003800380038003800380038003800380038003800380038 +003800380038003800380038003800380038003800380038FFF8FFF8FFF80D247F9F18> +I<018007C01FF07EFCF83EE00E0F067C9B18>I<7FFFC0FFFFE0FFFFE07FFFC013047E7F +18>I<061E3E387070E0E0E0F8FC7C7C38070E789E18>I<0FF0001FFC003FFE003C0F0018 +070000038000038000FF8007FF801FFF807F0380780380E00380E00380E00380F0078078 +0F803FFFF81FFDF807F0F815147E9318>I<7E0000FE00007E00000E00000E00000E0000 +0E00000E00000E3E000EFF800FFFC00FC1E00F80E00F00700E00700E00380E00380E0038 +0E00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF80063E00151C809B18> +I<01FE0007FF001FFF803E0780380300700000700000E00000E00000E00000E00000E000 +00E000007000007001C03801C03E03C01FFF8007FF0001FC0012147D9318>I<001F8000 +3F80001F8000038000038000038000038000038003E3800FFB801FFF803C1F80380F8070 +0780700380E00380E00380E00380E00380E00380E00380700780700780380F803C1F801F +FFF00FFBF803E3F0151C7E9B18>I<01F00007FC001FFE003E0F00380780700380700380 +E001C0E001C0FFFFC0FFFFC0FFFFC0E000007000007001C03801C03E07C01FFF8007FF00 +01F80012147D9318>I<001F80007FC000FFE000E1E001C0C001C00001C00001C0007FFF +C0FFFFC0FFFFC001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C0007FFF007FFF007FFF00131C7F9B18>I<01E1F007FFF80F +FFF81E1E301C0E003807003807003807003807003807001C0E001E1E001FFC001FF80039 +E0003800001C00001FFE001FFFC03FFFE07801F0700070E00038E00038E00038E0003878 +00F07E03F01FFFC00FFF8001FC00151F7F9318>I<7E0000FE00007E00000E00000E0000 +0E00000E00000E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E00E00E00E00E0 +0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC7FCFFE7FE7FC7FC171C80 +9B18>I<038007C007C007C0038000000000000000007FC0FFC07FC001C001C001C001C0 +01C001C001C001C001C001C001C001C001C001C0FFFFFFFFFFFF101D7C9C18>I<FFC000 +FFC000FFC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000 +01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000 +FFFF80FFFF80FFFF80111C7D9B18>108 D<F9C1C0FFF7F0FFFFF03E3E383C3C383C3C38 +383838383838383838383838383838383838383838383838383838383838383838FE3E3E +FE7E7EFE3E3E1714809318>I<7E3E00FEFF807FFFC00FC1C00F80E00F00E00E00E00E00 +E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC7FCFFE7FE7FC7 +FC1714809318>I<01F0000FFE001FFF003E0F803803807001C07001C0E000E0E000E0E0 +00E0E000E0E000E0F001E07001C07803C03C07803E0F801FFF000FFE0001F00013147E93 +18>I<7E3E00FEFF807FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E0038 +0E00380E00380F00700F00700F80E00FC1E00FFFC00EFF800E3E000E00000E00000E0000 +0E00000E00000E00000E00007FC000FFE0007FC000151E809318>I<01F38007FB801FFF +803E1F80380F80700780700780E00380E00380E00380E00380E00380E003807007807007 +80380F803C1F801FFF800FFB8003E3800003800003800003800003800003800003800003 +80001FF0003FF8001FF0151E7E9318>I<FF0FC0FF3FE0FF7FF007F0F007E06007C00007 +8000078000070000070000070000070000070000070000070000070000070000FFFC00FF +FE00FFFC0014147E9318>I<07F7003FFF007FFF00780F00E00700E00700E007007C0000 +7FE0001FFC0003FE00001F00600780E00380E00380F00380F80F00FFFF00FFFC00E7F000 +11147D9318>I<0180000380000380000380000380007FFFC0FFFFC0FFFFC00380000380 +000380000380000380000380000380000380000380000380400380E00380E00380E001C1 +C001FFC000FF80003E0013197F9818>I<7E07E0FE0FE07E07E00E00E00E00E00E00E00E +00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E01E00F03E007FFFC03 +FFFE01FCFC1714809318>I<7F8FF0FF8FF87F8FF01C01C00E03800E03800E0380070700 +070700070700078F00038E00038E00038E0001DC0001DC0001DC0000F80000F800007000 +15147F9318>I<FF07F8FF8FF8FF07F83800E03800E03800E03800E01C01C01C71C01CF9 +C01CF9C01CD9C01DDDC00DDD800DDD800DDD800D8D800F8F800F8F8007070015147F9318 +>I<7F8FF07F9FF07F8FF00F0700078E00039E0001DC0001F80000F80000700000F00000 +F80001DC00039E00038E000707000E07807F8FF0FF8FF87F8FF015147F9318>I<7F8FF0 +FF8FF87F8FF00E01C00E03800E0380070380070700070700038700038700038E0001CE00 +01CE0001CC0000CC0000DC0000780000780000780000700000700000700000F00000E000 +79E0007BC0007F80003F00001E0000151E7F9318>I<3FFFF07FFFF07FFFF07001E07003 +C0700780000F00001E00003C0000F80001F00003C0000780000F00701E00703C00707800 +70FFFFF0FFFFF0FFFFF014147F9318>I<0007E0001FE0007FE000780000E00000E00000 +E00000E00000E00000E00000E00000E00000E00000E00000E00001E0007FC000FF8000FF +80007FC00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000 +E00000E000007800007FE0001FE00007E013247E9F18>I<60F0F0F0F0F0F0F0F0F0F0F0 +F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0600424769F18>I<7C0000FF00 +00FFC00003C00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0 +0000E00000F000007FC0003FE0003FE0007FC000F00000E00000E00000E00000E00000E0 +0000E00000E00000E00000E00000E00000E00003C000FFC000FF00007C000013247E9F18 +>I<060C1F1E3FBEFBF8F1F060C00F067C9B18>I E /Fm 74 123 +df<001F83E000F06E3001C078780380F8780300F0300700700007007000070070000700 +7000070070000700700007007000FFFFFF80070070000700700007007000070070000700 +700007007000070070000700700007007000070070000700700007007000070070000700 +7000070070000700700007007000070070003FE3FF001D20809F1B>11 +D<003F0000E0C001C0C00381E00701E00701E00700000700000700000700000700000700 +00FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 +E00700E00700E00700E00700E00700E00700E00700E03FC3FC1620809F19>I<003FE000 +E0E001C1E00381E00700E00700E00700E00700E00700E00700E00700E00700E0FFFFE007 +00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007 +00E00700E00700E00700E00700E00700E03FE7FC1620809F19>I<001F81F80000F04F04 +0001C07C06000380F80F000300F00F000700F00F00070070000007007000000700700000 +070070000007007000000700700000FFFFFFFF0007007007000700700700070070070007 +007007000700700700070070070007007007000700700700070070070007007007000700 +700700070070070007007007000700700700070070070007007007000700700700070070 +07003FE3FE3FE02320809F26>I<7038F87CFC7EFC7E743A040204020402080408041008 +1008201040200F0E7F9F17>34 D<70F8FCFC74040404080810102040060E7C9F0D>39 +D<0040008001000300060004000C001800180038003000300070006000600060006000E0 +00E000E000E000E000E000E000E000E000E000E000E00060006000600060007000300030 +003800180018000C000400060003000100008000400A2E7BA112>I<8000400020003000 +180008000C00060006000700030003000380018001800180018001C001C001C001C001C0 +01C001C001C001C001C001C001C001800180018001800380030003000700060006000C00 +0800180030002000400080000A2E7EA112>I<70F0F8F878080808101010202040050E7C +840D>44 D<FFF0FFF00C02808A0F>I<70F8F8F87005057C840D>I<03F0000E1C001C0E00 +180600380700700380700380700380700380F003C0F003C0F003C0F003C0F003C0F003C0 +F003C0F003C0F003C0F003C0F003C0F003C0F003C0700380700380700380780780380700 +1806001C0E000E1C0003F000121F7E9D17>48 D<008003800F80F3800380038003800380 +038003800380038003800380038003800380038003800380038003800380038003800380 +0380038007C0FFFE0F1E7C9D17>I<03F0000C1C00100E00200700400780800780F007C0 +F803C0F803C0F803C02007C00007C0000780000780000F00000E00001C00003800007000 +00600000C0000180000300000600400C00401800401000803FFF807FFF80FFFF80121E7E +9D17>I<03F0000C1C00100E00200F00780F80780780780780380F80000F80000F00000F +00001E00001C0000700007F000003C00000E00000F000007800007800007C02007C0F807 +C0F807C0F807C0F00780400780400F00200E00183C0007F000121F7E9D17>I<00060000 +0600000E00000E00001E00002E00002E00004E00008E00008E00010E00020E00020E0004 +0E00080E00080E00100E00200E00200E00400E00C00E00FFFFF0000E00000E00000E0000 +0E00000E00000E00000E0000FFE0141E7F9D17>I<1803001FFE001FFC001FF8001FE000 +10000010000010000010000010000010000011F000161C00180E00100700100780000380 +0003800003C00003C00003C07003C0F003C0F003C0E00380400380400700200600100C00 +08380007E000121F7E9D17>I<007C000182000701000E03800C07801807803803003800 +00780000700000700000F1F000F21C00F40600F80700F80380F80380F003C0F003C0F003 +C0F003C0F003C07003C07003C07003803803803807001807000C0E00061C0001F000121F +7E9D17>I<4000007FFFE07FFFC07FFFC040008080010080010080020000040000040000 +080000100000100000200000200000600000600000E00000C00001C00001C00001C00001 +C00003C00003C00003C00003C00003C00003C00003C000018000131F7E9D17>I<03F000 +0C0C001006003003002001806001806001806001807001807803003E03003F06001FC800 +0FF00003F80007FC000C7E00103F00300F806007806001C0C001C0C000C0C000C0C000C0 +C000806001802001001002000C0C0003F000121F7E9D17>I<03F0000E18001C0C003806 +00380700700700700380F00380F00380F003C0F003C0F003C0F003C0F003C07007C07007 +C03807C0180BC00E13C003E3C0000380000380000380000700300700780600780E00700C +002018001070000FC000121F7E9D17>I<70F8F8F8700000000000000000000070F8F8F8 +7005147C930D>I<70F8F8F8700000000000000000000070F0F8F8780808081010102020 +40051D7C930D>I<000100000003800000038000000380000007C0000007C0000007C000 +0009E0000009E0000009E0000010F0000010F0000010F000002078000020780000207800 +00403C0000403C0000C03E0000801E0000801E0001FFFF0001000F0001000F0002000780 +0200078002000780040003C0040003C00C0003C01E0003E0FF801FFE1F207F9F22>65 +D<FFFFE0000F0078000F001E000F001E000F000F000F000F800F000F800F000F800F000F +800F000F800F000F000F001F000F001E000F007C000FFFF0000F007C000F001F000F000F +800F0007C00F0003C00F0003E00F0003E00F0003E00F0003E00F0003E00F0003C00F0007 +C00F0007800F000F000F003E00FFFFF0001B1F7E9E20>I<000FE01000381C3000E00270 +03C00170078000F00F0000701E0000701E0000303C0000303C0000107C00001078000010 +F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000 +780000007C0000103C0000103C0000101E0000201E0000200F0000200780004003C00080 +00E0030000380C00000FF0001C217E9F21>I<FFFFF80007801E0007800780078003C007 +8001E0078000F00780007007800078078000780780003C0780003C0780003C0780003E07 +80003E0780003E0780003E0780003E0780003E0780003E0780003E0780003C0780003C07 +80007C0780007807800078078000F0078001E0078003C00780078007801E00FFFFF8001F +1F7F9E23>I<FFFFFF800F000F800F0003800F0001800F0000800F0000C00F0000400F00 +00400F0000400F0040400F0040000F0040000F00C0000F01C0000FFFC0000F01C0000F00 +C0000F0040000F0040000F0040000F0000200F0000200F0000200F0000400F0000400F00 +00400F0000C00F0001C00F0003800F000F80FFFFFF801B1F7E9E1F>I<FFFFFF80078007 +80078001800780018007800080078000C007800040078000400780004007800040078020 +000780200007802000078060000780E00007FFE0000780E0000780600007802000078020 +000780200007800000078000000780000007800000078000000780000007800000078000 +0007C00000FFFE00001A1F7F9E1E>I<000FE01000381C3000E0027003C00170078000F0 +0F0000701E0000701E0000303C0000303C0000107C00001078000010F8000000F8000000 +F8000000F8000000F8000000F8000000F8000000F8003FFEF80001F0780000F07C0000F0 +3C0000F03C0000F01E0000F01E0000F00F0000F0078000F003C0017000E0023000380C10 +000FF0001F217E9F24>I<FFF07FF80F0007800F0007800F0007800F0007800F0007800F +0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800FFFFF800F +0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F +0007800F0007800F0007800F0007800F0007800F000780FFF07FF81D1F7E9E22>I<FFF0 +0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00 +0F000F000F000F000F000F000F000F000F000F000F00FFF00C1F7E9E10>I<FFF8000F80 +000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00 +000F00000F00000F00000F00000F00000F00000F00020F00020F00020F00020F00060F00 +040F00040F000C0F001C0F007CFFFFFC171F7E9E1C>76 D<FF800007FE07800007C00780 +0007C005C0000BC005C0000BC004E00013C004E00013C004E00013C004700023C0047000 +23C004380043C004380043C004380043C0041C0083C0041C0083C0040E0103C0040E0103 +C0040E0103C004070203C004070203C004070203C004038403C004038403C00401C803C0 +0401C803C00401C803C00400F003C00400F003C004006003C01F006003C0FFE0607FFE27 +1F7F9E2A>I<FF000FF80F8003E00F8000800BC0008009E0008009E0008008F000800878 +008008780080083C0080081E0080081E0080080F008008078080080780800803C0800801 +E0800801E0800800F080080078800800788008003C8008001E8008001E8008000F800800 +07800800078008000380080001803E000180FF8000801D1F7E9E22>I<001FE000007038 +0001C00E0003800700070003800F0003C01E0001E03C0000F03C0000F07C0000F87C0000 +F878000078F800007CF800007CF800007CF800007CF800007CF800007CF800007CF80000 +7CF800007C780000787C0000F87C0000F83C0000F03E0001F01E0001E00F0003C0070003 +800380070001E01E0000703800001FE0001E217E9F23>I<FFFFE0000F007C000F001E00 +0F000F000F0007800F0007800F0007C00F0007C00F0007C00F0007C00F0007800F000780 +0F000F000F001E000F007C000FFFE0000F0000000F0000000F0000000F0000000F000000 +0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 +FFF000001A1F7E9E1F>I<001FE0000070380001C00E0003800700070003800F0003C01E +0001E03E0001F03C0000F07C0000F87C0000F878000078F800007CF800007CF800007CF8 +00007CF800007CF800007CF800007CF800007CF800007C780000787C0000F87C0000F83C +0000F03E0781F01E0841E00F1023C0071023800390170001D01E0000783804001FF80400 +001C0400000C0C00000E1C00000FF800000FF8000007F8000007F0000001E01E297E9F23 +>I<FFFF80000F00F0000F003C000F001E000F000F000F000F000F000F800F000F800F00 +0F800F000F800F000F000F000F000F001E000F003C000F00F0000FFF80000F01C0000F00 +70000F0070000F0038000F003C000F003C000F003C000F003E000F003E000F003E000F00 +3E040F003F040F001F040F000F08FFF00788000001F01E207E9E21>I<03F0400C0CC018 +03C03001C06000C06000C0E000C0E00040E00040E00040F00000F800007C00007F80003F +F8001FFF0007FF8000FFC0001FE00003E00001E00000F000007080007080007080007080 +0070C00060C000E0E000C0F80180C6030081FC0014217E9F19>I<7FFFFFE0780F01E060 +0F0060400F0020400F0020C00F0030800F0010800F0010800F0010800F0010000F000000 +0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 +0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 +1F800003FFFC001C1F7E9E21>I<FFF00FF80F0003E00F0000800F0000800F0000800F00 +00800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F00 +00800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F00 +00800700010007800100038001000380020001C0040000E0080000383000000FC0001D20 +7E9E22>I<FFF003FE1F8000F80F0000600F00002007800040078000400780004003C000 +8003C0008003E0018001E0010001E0010000F0020000F0020000F8020000780400007804 +00003C0800003C0800003C0800001E1000001E1000001F1000000F2000000F20000007C0 +000007C0000007C000000380000003800000038000000100001F207F9E22>I<FFF07FF8 +1FF01F000FC007C00F00078001800F00078001000F0007C001000F8007C00300078007C0 +0200078009E0020007C009E0020003C009E0040003C019F0040003C010F0040001E010F0 +080001E010F0080001E02078080000F02078100000F02078100000F0403C10000078403C +20000078403C20000078801E2000007C801E6000003C801E4000003D000F4000003F000F +4000001F000F8000001F000F8000001E00078000000E00070000000E00070000000C0003 +00000004000200002C207F9E2F>I<FFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 +C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFF082D7CA10D>91 +D<080410082010201040204020804080408040B85CFC7EFC7E7C3E381C0F0E7A9F17>I< +FFFF03030303030303030303030303030303030303030303030303030303030303030303 +03030303030303FFFF082D80A10D>I<081020204040808080B8FCFC7C38060E7D9F0D> +96 D<1FE000303000781800781C00300E00000E00000E00000E0000FE00078E001E0E00 +380E00780E00F00E10F00E10F00E10F01E10781E103867200F83C014147E9317>I<1C00 +00FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C +001D87001E01801E00C01C00E01C00701C00701C00781C00781C00781C00781C00781C00 +781C00701C00F01C00E01E00C01A0180198700107C0015207E9F19>I<01FC000706001C +0F00380F00380600780000700000F00000F00000F00000F00000F00000F0000070000078 +00003800803800801C010007060001F80011147F9314>I<0001C0000FC00001C00001C0 +0001C00001C00001C00001C00001C00001C00001C00001C001F1C0070DC00C03C01801C0 +3801C07801C07001C0F001C0F001C0F001C0F001C0F001C0F001C07001C07001C03801C0 +1803C00C03C0070DC001F1F815207F9F19>I<03F0000E1C001C0E003807003807007007 +00700380F00380F00380FFFF80F00000F00000F000007000007000003800803800801C01 +0007060001F80011147F9314>I<007C01C6030F070F0E060E000E000E000E000E000E00 +0E00FFF00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 +0E000E007FE01020809F0E>I<0000E003E3300E3C301C1C30380E00780F00780F00780F +00780F00780F00380E001C1C001E380033E0002000002000003000003000003FFE001FFF +801FFFC03001E0600070C00030C00030C00030C000306000603000C01C038003FC00141F +7F9417>I<1C0000FC00001C00001C00001C00001C00001C00001C00001C00001C00001C +00001C00001C7C001C86001D03001E03801E03801C03801C03801C03801C03801C03801C +03801C03801C03801C03801C03801C03801C03801C03801C0380FF8FF014207E9F19>I< +38007C007C007C0038000000000000000000000000001C00FC001C001C001C001C001C00 +1C001C001C001C001C001C001C001C001C001C001C001C00FF80091F7F9E0C>I<00E001 +F001F001F000E0000000000000000000000000007007F000F00070007000700070007000 +700070007000700070007000700070007000700070007000700070007000706070F060F0 +C061803F000C28829E0E>I<1C0000FC00001C00001C00001C00001C00001C00001C0000 +1C00001C00001C00001C00001C1FE01C07801C06001C04001C08001C10001C20001C6000 +1CE0001DF0001E70001C38001C3C001C1C001C0E001C0F001C07001C07801C07C0FF9FF0 +14207E9F18>I<1C00FC001C001C001C001C001C001C001C001C001C001C001C001C001C +001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF8009 +207F9F0C>I<1C3E03E000FCC30C30001D039038001E01E01C001E01E01C001C01C01C00 +1C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C +01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF802114 +7E9326>I<1C7C00FC86001D03001E03801E03801C03801C03801C03801C03801C03801C +03801C03801C03801C03801C03801C03801C03801C03801C0380FF8FF014147E9319>I< +01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000F0 +F000F07000E07000E03801C03801C01C0380070E0001F80014147F9317>I<1C7C00FD87 +001E01801E01C01C00E01C00F01C00701C00781C00781C00781C00781C00781C00781C00 +701C00F01C00E01E01C01E03801D87001C7C001C00001C00001C00001C00001C00001C00 +001C00001C0000FF8000151D7E9319>I<01F040070CC00E02C01C03C03801C07801C070 +01C0F001C0F001C0F001C0F001C0F001C0F001C07001C07801C03801C01C03C00C05C007 +09C001F1C00001C00001C00001C00001C00001C00001C00001C00001C0000FF8151D7F93 +18>I<1CF0FD181E3C1E3C1E181C001C001C001C001C001C001C001C001C001C001C001C +001C001C00FFC00E147E9312>I<0FC830386018C008C008C008E0007C003FE01FF007F8 +003C800E8006C006C006C004E00CD81887E00F147F9312>I<020002000200060006000E +000E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E040E040E040E +040E040708030801F00E1C7F9B12>I<1C0380FC1F801C03801C03801C03801C03801C03 +801C03801C03801C03801C03801C03801C03801C03801C03801C03801C07800C0780061B +8003E3F014147E9319>I<FF83F83E00E01C00C00E00800E00800E008007010007010007 +830003820003820001C40001C40001E40000E80000E80000700000700000700000200015 +147F9318>I<FF9FE1FC3C0780701C0300601C0380200E0380400E0380400E03C0400704 +C0800704E0800704E08003886100038871000388710001D0320001D03A0001D03E0000E0 +1C0000E01C0000601800004008001E147F9321>I<FF87F81E03C00E01800E0300070200 +03840001C80001D80000F00000700000780000F800009C00010E00020E00060700040380 +0C03C03C03E0FE07FC16147F9318>I<FF83F83E00E01C00C00E00800E00800E00800701 +0007010007830003820003820001C40001C40001E40000E80000E8000070000070000070 +00002000002000004000004000004000F08000F08000F100006200003C0000151D7F9318 +>I<7FFF700E600E401C40384078407000E001E001C00380078007010E011E011C033802 +7006700EFFFE10147F9314>I E /Fn 13 122 df<0000001FFC0000C000000003FFFFC0 +01C00000001FFFFFF003C00000007FFFFFFC07C0000001FFFC00FE0FC0000007FFC0001F +9FC000000FFE000007FFC000003FF8000003FFC000007FF0000000FFC00000FFE0000000 +7FC00001FFC00000007FC00001FF800000003FC00003FF000000001FC00007FE00000000 +1FC0000FFE000000000FC0000FFC000000000FC0001FFC0000000007C0001FFC00000000 +07C0003FF80000000007C0003FF80000000003C0003FF80000000003C0007FF800000000 +03C0007FF80000000003C0007FF0000000000000007FF000000000000000FFF000000000 +000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000000000 +000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000000000 +000000FFF000000000000000FFF000001FFFFFFF807FF000001FFFFFFF807FF000001FFF +FFFF807FF800001FFFFFFF807FF800000001FFC0003FF800000001FFC0003FF800000001 +FFC0003FF800000001FFC0001FFC00000001FFC0001FFC00000001FFC0000FFE00000001 +FFC0000FFE00000001FFC00007FF00000001FFC00003FF00000001FFC00001FF80000001 +FFC00001FFC0000001FFC00000FFE0000001FFC000007FF0000003FFC000003FFC000003 +FFC000000FFF000007FFC0000007FFC0001FBFC0000001FFFC00FF1FC00000007FFFFFFE +0FC00000001FFFFFF803C000000003FFFFE000C0000000001FFE00000000413D7BBB4C> +71 D<FFFFFFF803FFFFFFE0FFFFFFF803FFFFFFE0FFFFFFF803FFFFFFE0FFFFFFF803FF +FFFFE0007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001 +FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001 +FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001 +FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001 +FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001 +FFC000007FF0000001FFC000007FF0000001FFC000007FFFFFFFFFFFC000007FFFFFFFFF +FFC000007FFFFFFFFFFFC000007FFFFFFFFFFFC000007FF0000001FFC000007FF0000001 +FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001 +FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001 +FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001 +FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001 +FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001 +FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000FFFFFFF803FF +FFFFE0FFFFFFF803FFFFFFE0FFFFFFF803FFFFFFE0FFFFFFF803FFFFFFE0433B7CBA4C> +I<FFFFFFFE000000FFFFFFFE000000FFFFFFFE000000FFFFFFFE000000007FF000000000 +007FF000000000007FF000000000007FF000000000007FF000000000007FF00000000000 +7FF000000000007FF000000000007FF000000000007FF000000000007FF000000000007F +F000000000007FF000000000007FF000000000007FF000000000007FF000000000007FF0 +00000000007FF000000000007FF000000000007FF000000000007FF000000000007FF000 +000000007FF000000000007FF000000000007FF000000000007FF000000000007FF00000 +0000007FF000000000007FF000000000007FF000000000007FF000000000007FF0000003 +C0007FF0000003C0007FF0000003C0007FF0000003C0007FF0000003C0007FF0000007C0 +007FF000000780007FF000000780007FF000000780007FF000000F80007FF000000F8000 +7FF000000F80007FF000001F80007FF000001F80007FF000003F80007FF000007F80007F +F00000FF80007FF00001FF80007FF00007FF00007FF0003FFF00FFFFFFFFFFFF00FFFFFF +FFFFFF00FFFFFFFFFFFF00FFFFFFFFFFFF00323B7DBA3A>76 D<FFFFF0000007FFFFE0FF +FFF8000007FFFFE0FFFFFC000007FFFFE0FFFFFE000007FFFFE0007FFE00000007E00000 +7FFF00000003C000007FFF80000003C000007BFFC0000003C000007BFFE0000003C00000 +79FFE0000003C0000078FFF0000003C00000787FF8000003C00000783FFC000003C00000 +783FFE000003C00000781FFE000003C00000780FFF000003C000007807FF800003C00000 +7803FFC00003C000007803FFE00003C000007801FFE00003C000007800FFF00003C00000 +78007FF80003C0000078003FFC0003C0000078003FFE0003C0000078001FFF0003C00000 +78000FFF0003C00000780007FF8003C00000780003FFC003C00000780003FFE003C00000 +780001FFF003C00000780000FFF003C000007800007FF803C000007800003FFC03C00000 +7800003FFE03C000007800001FFF03C000007800000FFF03C0000078000007FF83C00000 +78000003FFC3C0000078000003FFE3C0000078000001FFF3C0000078000000FFF3C00000 +780000007FFBC00000780000003FFFC00000780000003FFFC00000780000001FFFC00000 +780000000FFFC000007800000007FFC000007800000003FFC000007800000003FFC00000 +7800000001FFC000007800000000FFC0000078000000007FC0000078000000003FC00000 +78000000003FC00000FC000000001FC000FFFFFC0000000FC000FFFFFC00000007C000FF +FFFC00000003C000FFFFFC00000003C000433B7CBA4C>78 D<FFFFFFF80007FFFFE0FFFF +FFF80007FFFFE0FFFFFFF80007FFFFE0FFFFFFF80007FFFFE0007FF000000007E000007F +F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F +F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F +F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F +F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F +F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F +F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F +F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F +F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F +F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F +F000000003C000007FF000000003C000007FF000000003C000003FF0000000078000003F +F0000000078000003FF8000000078000001FF80000000F0000001FF80000000F0000000F +FC0000001E00000007FC0000003E00000007FE0000007C00000003FF000000F800000001 +FF800001F8000000007FE0000FE0000000003FFC007FC0000000000FFFFFFF8000000000 +03FFFFFE0000000000007FFFF000000000000007FF80000000433C7DBA4A>85 +D<003FFE00000001FFFFE0000007FFFFF800000FE007FC00000FF001FE00001FF800FF00 +001FF8007F80001FF8007FC0001FF8003FC0000FF0003FE00007E0003FE00003C0003FE0 +000000003FE0000000003FE0000000003FE0000000003FE0000000FFFFE000001FFFFFE0 +00007FF83FE00003FF803FE00007FC003FE0000FF0003FE0001FE0003FE0003FE0003FE0 +007FC0003FE0007FC0003FE000FF80003FE000FF80003FE000FF80003FE000FF80003FE0 +00FF80007FE0007FC0007FE0007FC000DFE0003FE0039FF0001FF80F0FFFE007FFFE0FFF +E001FFFC07FFE0003FE000FFE02B267DA52F>97 D<00FE00000000FFFE00000000FFFE00 +000000FFFE00000000FFFE0000000007FE0000000003FE0000000003FE0000000003FE00 +00000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE00 +00000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE00 +00000003FE0000000003FE01FF000003FE1FFFF00003FE7FFFFC0003FEFC03FE0003FFF0 +00FF0003FFC0003F8003FF00001FC003FE00001FE003FE00000FF003FE00000FF803FE00 +000FF803FE000007FC03FE000007FC03FE000007FC03FE000007FE03FE000007FE03FE00 +0007FE03FE000007FE03FE000007FE03FE000007FE03FE000007FE03FE000007FE03FE00 +0007FE03FE000007FC03FE000007FC03FE000007FC03FE00000FFC03FE00000FF803FE00 +000FF003FE00001FF003FF00001FE003FF80003FC003FFC0007F8003F9E000FF0003F0FC +07FE0003F07FFFF80003E01FFFE00003C003FE00002F3C7DBB36>I<01E00007F8000FFC +000FFC001FFE001FFE001FFE001FFE000FFC000FFC0007F80001E0000000000000000000 +0000000000000000000000000000000000000000000000000000FE007FFE007FFE007FFE +007FFE0007FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE +0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE +0003FE0003FE0003FE0003FE0003FE0003FE00FFFFF0FFFFF0FFFFF0FFFFF0143D7DBC1A +>105 D<0001FFC00000000FFFF80000007FFFFF000000FF80FF800003FE003FE00007F8 +000FF0000FF00007F8000FF00007F8001FE00003FC003FE00003FE003FE00003FE007FC0 +0001FF007FC00001FF007FC00001FF007FC00001FF00FFC00001FF80FFC00001FF80FFC0 +0001FF80FFC00001FF80FFC00001FF80FFC00001FF80FFC00001FF80FFC00001FF80FFC0 +0001FF807FC00001FF007FC00001FF007FC00001FF003FE00003FE003FE00003FE001FE0 +0003FC001FF00007FC000FF00007F80007F8000FF00003FE003FE00000FF80FF8000007F +FFFF0000000FFFF800000001FFC0000029267DA530>111 D<01FC03F000FFFC0FFC00FF +FC1FFF00FFFC3C3F80FFFC707F8007FCE0FFC003FCC0FFC003FD80FFC003FD80FFC003FF +807F8003FF003F0003FF001E0003FF00000003FE00000003FE00000003FE00000003FE00 +000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE0000 +0003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE000000 +03FE00000003FE00000003FE000000FFFFFC0000FFFFFC0000FFFFFC0000FFFFFC000022 +267DA528>114 D<003FF03803FFFE7807FFFFF81FC00FF83F0003F83E0000F87C0000F8 +7C000078FC000078FC000078FE000078FF000000FFC00000FFFC00007FFFF0003FFFFE00 +3FFFFF801FFFFFC00FFFFFE003FFFFF000FFFFF8001FFFFC00007FFC000007FE700001FE +F00000FEF000007EF800007EF800007EFC00007EFC00007CFE0000FCFF0000F8FF8001F0 +FFF00FE0F9FFFFC0F07FFF00C01FF8001F267DA526>I<000F0000000F0000000F000000 +0F0000000F0000001F0000001F0000001F0000001F0000003F0000003F0000007F000000 +7F000000FF000001FF000003FF000007FF00001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001 +FF000001FF000001FF000001FF000001FF000001FF000001FF000001FF000001FF000001 +FF000001FF000001FF000001FF000001FF000001FF000001FF000001FF000001FF000001 +FF000001FF003C01FF003C01FF003C01FF003C01FF003C01FF003C01FF003C01FF003C00 +FF007800FF8078007F80F0003FC1E0001FFFC0000FFF800001FE001E377EB626>I<FFFF +F000FFFCFFFFF000FFFCFFFFF000FFFCFFFFF000FFFC03FE00001F8003FF00001F0001FF +00001E0001FF80001E0000FF80003C0000FF80003C0000FFC0007C00007FC0007800007F +E000F800003FE000F000003FF001F000001FF001E000001FF803E000000FF803C000000F +F803C000000FFC07C0000007FC0780000007FE0F80000003FE0F00000003FF1F00000001 +FF1E00000001FFBE00000000FFBC00000000FFFC000000007FF8000000007FF800000000 +7FF8000000003FF0000000003FF0000000001FE0000000001FE0000000000FC000000000 +0FC0000000000780000000000780000000000F80000000000F00000000001F0000000000 +1E00000008003E0000007F003C0000007F007C000000FF8078000000FF80F8000000FF81 +F0000000FF83E00000007F07C00000007C1F800000003FFF000000001FFC0000000007F0 +000000002E377EA533>121 D E end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin +%%PaperSize: A4 + +%%EndSetup +%%Page: 1 1 +1 0 bop 75 693 a Fn(GNU)33 b(History)f(Library)p 75 743 +1800 17 v 960 791 a Fm(Edition)16 b(2.1,)e(for)h Fl(History)f(Library)g +Fm(V)l(ersion)i(2.1.)1643 845 y(Marc)o(h)e(1996)75 2467 +y Fk(Brian)23 b(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F) +-6 b(oundation)75 2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 +b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 +1800 9 v eop +%%Page: 2 2 +2 1 bop 75 250 a Fm(This)21 b(do)q(cumen)o(t)g(describ)q(es)h(the)f +(GNU)f(History)g(library)l(,)j(a)d(programming)g(to)q(ol)g(that)g(pro)o +(vides)h(a)75 305 y(consisten)o(t)15 b(user)h(in)o(terface)f(for)g +(recalling)i(lines)f(of)f(previously)i(t)o(yp)q(ed)e(input.)75 +373 y(Published)i(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l +(oundation)75 427 y(675)g(Massac)o(h)o(usetts)g(Av)o(en)o(ue,)75 +482 y(Cam)o(bridge,)h(MA)g(02139)f(USA)75 549 y(P)o(ermission)j(is)f +(gran)o(ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i +(of)f(this)h(man)o(ual)f(pro)o(vided)h(the)75 604 y(cop)o(yrigh)o(t)e +(notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h +(on)f(all)h(copies.)75 671 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g +(cop)o(y)h(and)g(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h +(man)o(ual)g(under)h(the)f(con-)75 726 y(ditions)k(for)e(v)o(erbatim)h +(cop)o(ying,)g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g +(deriv)o(ed)g(w)o(ork)e(is)h(distributed)75 781 y(under)h(the)f(terms)g +(of)g(a)f(p)q(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75 +848 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f +(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another) +g(lan-)75 903 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i +(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q +(ermission)g(notice)75 958 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f +(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(oundation.)75 +2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289 2661 y Fj(\015)g +Fm(1989,)f(1991)g(F)l(ree)h(Soft)o(w)o(are)f(F)l(oundation,)h(Inc.)p +eop +%%Page: 1 3 +1 2 bop 75 -58 a Fm(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o +(ely)1007 b(1)75 183 y Fi(1)41 b(Using)26 b(History)h(In)n(teractiv)n +(ely)137 317 y Fm(This)16 b(c)o(hapter)f(describ)q(es)i(ho)o(w)d(to)h +(use)g(the)g(GNU)g(History)g(Library)h(in)o(teractiv)o(ely)l(,)g(from)e +(a)h(user's)75 372 y(standp)q(oin)o(t.)35 b(It)20 b(should)g(b)q(e)h +(considered)h(a)d(user's)h(guide.)35 b(F)l(or)19 b(information)h(on)g +(using)h(the)f(GNU)75 427 y(History)15 b(Library)h(in)g(y)o(our)f(o)o +(wn)g(programs,)e(see)j Fj(h)p Fm(unde\014ned)p Fj(i)g +Fm([Programming)e(with)i(GNU)f(History],)75 482 y(page)g +Fj(h)p Fm(unde\014ned)p Fj(i)p Fm(.)75 625 y Fk(1.1)33 +b(History)22 b(Expansion)137 727 y Fm(The)c(History)g(library)h(pro)o +(vides)f(a)f(history)h(expansion)h(feature)e(that)h(is)g(similar)h(to)e +(the)h(history)75 782 y(expansion)12 b(pro)o(vided)g(b)o(y)f +Fl(csh)p Fm(.)18 b(This)11 b(section)h(describ)q(es)g(the)g(syn)o(tax)e +(used)h(to)g(manipulate)h(the)f(history)75 836 y(information.)137 +909 y(History)k(expansions)h(in)o(tro)q(duce)h(w)o(ords)d(from)g(the)i +(history)f(list)h(in)o(to)f(the)h(input)g(stream,)e(making)75 +964 y(it)h(easy)g(to)g(rep)q(eat)g(commands,)g(insert)h(the)f(argumen)o +(ts)f(to)h(a)g(previous)h(command)f(in)o(to)g(the)g(curren)o(t)75 +1019 y(input)h(line,)h(or)d(\014x)i(errors)e(in)i(previous)g(commands)f +(quic)o(kly)l(.)137 1092 y(History)j(expansion)i(tak)o(es)d(place)i(in) +h(t)o(w)o(o)d(parts.)28 b(The)19 b(\014rst)f(is)g(to)g(determine)i +(whic)o(h)f(line)h(from)75 1147 y(the)h(history)f(list)i(should)g(b)q +(e)f(used)g(during)h(substitution.)37 b(The)21 b(second)g(is)g(to)f +(select)i(p)q(ortions)e(of)75 1202 y(that)15 b(line)i(for)d(inclusion)k +(in)o(to)d(the)h(curren)o(t)f(one.)20 b(The)c(line)g(selected)h(from)e +(the)g(history)g(is)h(called)h(the)75 1256 y Fh(ev)o(en)o(t)p +Fm(,)c(and)h(the)g(p)q(ortions)g(of)f(that)g(line)i(that)e(are)g(acted) +h(up)q(on)g(are)f(called)j Fh(w)o(ords)p Fm(.)i(V)l(arious)c +Fh(mo)q(di\014ers)75 1311 y Fm(are)i(a)o(v)m(ailable)i(to)e(manipulate) +i(the)e(selected)i(w)o(ords.)23 b(The)17 b(line)h(is)f(brok)o(en)f(in)o +(to)h(w)o(ords)e(in)j(the)e(same)75 1366 y(fashion)c(that)e(Bash)i(do)q +(es,)g(so)f(that)g(sev)o(eral)g(w)o(ords)g(surrounded)h(b)o(y)f(quotes) +h(are)f(considered)h(one)g(w)o(ord.)75 1421 y(History)18 +b(expansions)h(are)g(in)o(tro)q(duced)g(b)o(y)f(the)h(app)q(earance)g +(of)f(the)g(history)h(expansion)g(c)o(haracter,)75 1475 +y(whic)o(h)d(is)g(`)p Fl(!)p Fm(')e(b)o(y)h(default.)75 +1599 y Fg(1.1.1)30 b(Ev)n(en)n(t)21 b(Designators)137 +1701 y Fm(An)16 b(ev)o(en)o(t)f(designator)g(is)g(a)g(reference)h(to)f +(a)g(command)g(line)i(en)o(try)d(in)i(the)g(history)f(list.)75 +1789 y Fl(!)216 b Fm(Start)16 b(a)g(history)h(substitution,)g(except)h +(when)f(follo)o(w)o(ed)g(b)o(y)f(a)h(space,)g(tab,)f(the)h(end)g(of)315 +1844 y(the)e(line,)i(`)p Fl(=)p Fm(')d(or)h(`)p Fl(\()p +Fm('.)75 1929 y Fl(!)p Fh(n)191 b Fm(Refer)16 b(to)e(command)h(line)i +Fh(n)p Fm(.)75 2015 y Fl(!-)p Fh(n)167 b Fm(Refer)16 +b(to)e(the)i(command)f Fh(n)g Fm(lines)i(bac)o(k.)75 +2100 y Fl(!!)192 b Fm(Refer)16 b(to)e(the)i(previous)f(command.)20 +b(This)c(is)g(a)f(synon)o(ym)g(for)f(`)p Fl(!-1)p Fm('.)75 +2186 y Fl(!)p Fh(string)102 b Fm(Refer)16 b(to)e(the)i(most)e(recen)o +(t)h(command)g(starting)g(with)g Fh(string)p Fm(.)75 +2271 y Fl(!?)p Fh(string)t Fl([?])315 2326 y Fm(Refer)i(to)f(the)h +(most)f(recen)o(t)h(command)g(con)o(taining)g Fh(string)p +Fm(.)25 b(The)17 b(trailing)g(`)p Fl(?)p Fm(')f(ma)o(y)g(b)q(e)315 +2381 y(omitted)f(if)h(the)f Fh(string)k Fm(is)d(follo)o(w)o(ed)f +(immediately)i(b)o(y)e(a)g(newline.)75 2466 y Fl(^)p +Fh(string1)t Fl(^)p Fh(string2)t Fl(^)315 2521 y Fm(Quic)o(k)i +(Substitution.)23 b(Rep)q(eat)17 b(the)f(last)f(command,)h(replacing)h +Fh(string1)i Fm(with)e Fh(string2)p Fm(.)315 2576 y(Equiv)m(alen)o(t)g +(to)d Fl(!!:s/)p Fh(string1)t Fl(/)p Fh(string2)t Fl(/)p +Fm(.)75 2661 y Fl(!#)192 b Fm(The)15 b(en)o(tire)h(command)f(line)i(t)o +(yp)q(ed)f(so)e(far.)p eop +%%Page: 2 4 +2 3 bop 75 -58 a Fm(2)1347 b(GNU)15 b(History)g(Library)75 +183 y Fg(1.1.2)30 b(W)-5 b(ord)20 b(Designators)137 279 +y Fm(W)l(ord)d(designators)g(are)g(used)h(to)f(select)h(desired)h(w)o +(ords)d(from)h(the)g(ev)o(en)o(t.)26 b(A)18 b(`)p Fl(:)p +Fm(')e(separates)h(the)75 333 y(ev)o(en)o(t)j(sp)q(eci\014cation)h +(from)e(the)h(w)o(ord)f(designator.)34 b(It)20 b(ma)o(y)f(b)q(e)h +(omitted)g(if)g(the)g(w)o(ord)f(designator)75 388 y(b)q(egins)f(with)g +(a)e(`)p Fl(^)p Fm(',)h(`)p Fl($)p Fm(',)f(`)p Fl(*)p +Fm(',)g(`)p Fl(-)p Fm(',)g(or)h(`)p Fl(\045)p Fm('.)24 +b(W)l(ords)17 b(are)g(n)o(um)o(b)q(ered)g(from)g(the)g(b)q(eginning)i +(of)e(the)g(line,)75 443 y(with)j(the)g(\014rst)f(w)o(ord)h(b)q(eing)h +(denoted)f(b)o(y)g(0)f(\(zero\).)33 b(W)l(ords)20 b(are)f(inserted)i +(in)o(to)f(the)g(curren)o(t)f(line)75 498 y(separated)c(b)o(y)g(single) +i(spaces.)75 575 y Fl(0)e(\(zero\))57 b Fm(The)15 b Fl(0)p +Fm(th)g(w)o(ord.)20 b(F)l(or)14 b(man)o(y)h(applications,)h(this)g(is)g +(the)f(command)g(w)o(ord.)75 653 y Fh(n)215 b Fm(The)15 +b Fh(n)p Fm(th)h(w)o(ord.)75 731 y Fl(^)216 b Fm(The)15 +b(\014rst)g(argumen)o(t;)f(that)h(is,)g(w)o(ord)g(1.)75 +808 y Fl($)216 b Fm(The)15 b(last)h(argumen)o(t.)75 886 +y Fl(\045)216 b Fm(The)15 b(w)o(ord)g(matc)o(hed)g(b)o(y)g(the)g(most)g +(recen)o(t)g(`)p Fl(?)p Fh(string)t Fl(?)p Fm(')f(searc)o(h.)75 +964 y Fh(x)p Fl(-)p Fh(y)168 b Fm(A)15 b(range)g(of)g(w)o(ords;)f(`)p +Fl(-)p Fh(y)t Fm(')g(abbreviates)i(`)p Fl(0-)p Fh(y)t +Fm('.)75 1042 y Fl(*)216 b Fm(All)15 b(of)f(the)f(w)o(ords,)g(except)i +(the)f Fl(0)p Fm(th.)19 b(This)14 b(is)h(a)e(synon)o(ym)h(for)f(`)p +Fl(1-$)p Fm('.)18 b(It)c(is)g(not)g(an)g(error)315 1096 +y(to)g(use)h(`)p Fl(*)p Fm(')f(if)i(there)e(is)i(just)e(one)h(w)o(ord)f +(in)i(the)f(ev)o(en)o(t;)f(the)h(empt)o(y)g(string)g(is)g(returned)g +(in)315 1151 y(that)f(case.)75 1229 y Fh(x)s Fl(*)189 +b Fm(Abbreviates)16 b(`)p Fh(x)p Fl(-$)p Fm(')75 1307 +y Fh(x)p Fl(-)192 b Fm(Abbreviates)16 b(`)p Fh(x)p Fl(-$)p +Fm(')e(lik)o(e)i(`)p Fh(x)s Fl(*)p Fm(',)e(but)i(omits)f(the)g(last)g +(w)o(ord.)137 1384 y(If)i(a)g(w)o(ord)f(designator)h(is)h(supplied)h +(without)e(an)g(ev)o(en)o(t)f(sp)q(eci\014cation,)j(the)e(previous)h +(command)75 1439 y(is)e(used)f(as)g(the)h(ev)o(en)o(t.)75 +1548 y Fg(1.1.3)30 b(Mo)r(di\014ers)137 1643 y Fm(After)10 +b(the)h(optional)g(w)o(ord)e(designator,)i(y)o(ou)f(can)h(add)f(a)g +(sequence)i(of)e(one)g(or)g(more)g(of)g(the)g(follo)o(wing)75 +1698 y(mo)q(di\014ers,)16 b(eac)o(h)f(preceded)i(b)o(y)e(a)g(`)p +Fl(:)p Fm('.)75 1776 y Fl(h)216 b Fm(Remo)o(v)o(e)15 +b(a)g(trailing)h(pathname)f(comp)q(onen)o(t,)g(lea)o(ving)h(only)g(the) +f(head.)75 1854 y Fl(t)216 b Fm(Remo)o(v)o(e)15 b(all)h(leading)h +(pathname)e(comp)q(onen)o(ts,)g(lea)o(ving)h(the)f(tail.)75 +1931 y Fl(r)216 b Fm(Remo)o(v)o(e)15 b(a)g(trailing)h(su\016x)f(of)g +(the)g(form)g(`)p Fl(.)p Fh(su\016x)s Fm(',)f(lea)o(ving)i(the)f +(basename.)75 2009 y Fl(e)216 b Fm(Remo)o(v)o(e)15 b(all)h(but)g(the)f +(trailing)h(su\016x.)75 2087 y Fl(p)216 b Fm(Prin)o(t)15 +b(the)g(new)h(command)f(but)g(do)g(not)g(execute)h(it.)75 +2164 y Fl(s/)p Fh(old)r Fl(/)p Fh(new)t Fl(/)315 2219 +y Fm(Substitute)h Fh(new)j Fm(for)c(the)h(\014rst)e(o)q(ccurrence)j(of) +e Fh(old)i Fm(in)f(the)g(ev)o(en)o(t)f(line.)25 b(An)o(y)16 +b(delimiter)315 2274 y(ma)o(y)c(b)q(e)h(used)g(in)g(place)g(of)f(`)p +Fl(/)p Fm('.)18 b(The)13 b(delimiter)h(ma)o(y)e(b)q(e)h(quoted)f(in)i +Fh(old)g Fm(and)f Fh(new)k Fm(with)12 b(a)315 2329 y(single)j(bac)o +(kslash.)20 b(If)15 b(`)p Fl(&)p Fm(')e(app)q(ears)h(in)h +Fh(new)p Fm(,)f(it)g(is)h(replaced)g(b)o(y)f Fh(old)p +Fm(.)20 b(A)14 b(single)i(bac)o(kslash)315 2383 y(will)j(quote)e(the)h +(`)p Fl(&)p Fm('.)25 b(The)17 b(\014nal)i(delimiter)g(is)f(optional)g +(if)f(it)h(is)g(the)f(last)g(c)o(haracter)g(on)315 2438 +y(the)e(input)h(line.)75 2516 y Fl(&)216 b Fm(Rep)q(eat)16 +b(the)f(previous)h(substitution.)75 2594 y Fl(g)216 b +Fm(Cause)19 b(c)o(hanges)h(to)e(b)q(e)i(applied)h(o)o(v)o(er)e(the)g +(en)o(tire)h(ev)o(en)o(t)f(line.)34 b(Used)20 b(in)g(conjunction)315 +2648 y(with)c(`)p Fl(s)p Fm(',)d(as)i(in)h Fl(gs/)p Fh(old)r +Fl(/)p Fh(new)t Fl(/)p Fm(,)f(or)g(with)g(`)p Fl(&)p +Fm('.)p eop +%%Page: 3 5 +3 4 bop 75 -58 a Fm(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(History)889 b(3)75 183 y Fi(2)41 b(Programming)28 b(with)e(GNU)i +(History)137 323 y Fm(This)16 b(c)o(hapter)e(describ)q(es)j(ho)o(w)d +(to)g(in)o(terface)h(programs)e(that)h(y)o(ou)h(write)g(with)g(the)g +(GNU)f(History)75 378 y(Library)l(.)24 b(It)17 b(should)g(b)q(e)g +(considered)h(a)e(tec)o(hnical)i(guide.)25 b(F)l(or)15 +b(information)i(on)f(the)h(in)o(teractiv)o(e)g(use)75 +433 y(of)e(GNU)g(History)l(,)g(see)g Fj(h)p Fm(unde\014ned)p +Fj(i)i Fm([Using)e(History)g(In)o(teractiv)o(ely],)g(page)g +Fj(h)p Fm(unde\014ned)p Fj(i)p Fm(.)75 581 y Fk(2.1)33 +b(In)n(tro)r(duction)24 b(to)e(History)137 685 y Fm(Man)o(y)c(programs) +g(read)h(input)g(from)f(the)h(user)g(a)f(line)j(at)d(a)g(time.)31 +b(The)19 b(GNU)g(History)f(library)75 740 y(is)k(able)g(to)e(k)o(eep)i +(trac)o(k)e(of)h(those)g(lines,)j(asso)q(ciate)d(arbitrary)g(data)f +(with)i(eac)o(h)f(line,)j(and)e(utilize)75 795 y(information)15 +b(from)g(previous)h(lines)h(in)f(comp)q(osing)f(new)h(ones.)137 +870 y(The)e(programmer)f(using)h(the)g(History)g(library)g(has)g(a)o(v) +m(ailable)h(functions)g(for)e(remem)o(b)q(ering)h(lines)75 +924 y(on)c(a)g(history)h(list,)g(asso)q(ciating)g(arbitrary)f(data)f +(with)i(a)f(line,)j(remo)o(ving)d(lines)i(from)d(the)i(list,)h(searc)o +(hing)75 979 y(through)17 b(the)h(list)g(for)f(a)h(line)h(con)o +(taining)f(an)g(arbitrary)f(text)g(string,)h(and)g(referencing)h(an)o +(y)e(line)i(in)75 1034 y(the)c(list)i(directly)l(.)22 +b(In)16 b(addition,)g(a)f(history)g Fh(expansion)h Fm(function)h(is)e +(a)o(v)m(ailable)i(whic)o(h)g(pro)o(vides)f(for)e(a)75 +1089 y(consisten)o(t)h(user)h(in)o(terface)f(across)g(di\013eren)o(t)g +(programs.)137 1164 y(The)f(user)h(using)f(programs)f(written)h(with)g +(the)g(History)g(library)h(has)f(the)g(b)q(ene\014t)h(of)e(a)h +(consisten)o(t)75 1219 y(user)20 b(in)o(terface)f(with)h(a)f(set)h(of)f +(w)o(ell-kno)o(wn)h(commands)g(for)e(manipulating)k(the)d(text)g(of)g +(previous)75 1273 y(lines)c(and)f(using)h(that)e(text)g(in)i(new)f +(commands.)19 b(The)14 b(basic)h(history)e(manipulation)j(commands)d +(are)75 1328 y(similar)j(to)f(the)g(history)g(substitution)h(pro)o +(vided)g(b)o(y)g Fl(csh)p Fm(.)137 1403 y(If)f(the)g(programmer)f +(desires,)h(he)g(can)g(use)g(the)g(Readline)i(library)l(,)f(whic)o(h)f +(includes)j(some)c(history)75 1458 y(manipulation)j(b)o(y)e(default,)g +(and)h(has)f(the)g(added)h(adv)m(an)o(tage)f(of)f(command)h(line)i +(editing.)75 1606 y Fk(2.2)33 b(History)22 b(Storage)137 +1710 y Fm(The)16 b(history)f(list)h(is)g(an)f(arra)o(y)f(of)g(history)i +(en)o(tries.)k(A)15 b(history)g(en)o(try)g(is)h(declared)g(as)f(follo)o +(ws:)195 1782 y Fl(typedef)23 b(struct)g(_hist_entry)f({)243 +1834 y(char)h(*line;)243 1886 y(char)g(*data;)195 1938 +y(})h(HIST_ENTRY;)137 2013 y Fm(The)16 b(history)f(list)h(itself)g +(migh)o(t)f(therefore)g(b)q(e)h(declared)g(as)195 2085 +y Fl(HIST_ENTRY)22 b(**the_history_list;)137 2160 y Fm(The)16 +b(state)e(of)h(the)g(History)g(library)h(is)g(encapsulated)g(in)o(to)f +(a)g(single)i(structure:)195 2232 y Fl(/*)24 b(A)f(structure)g(used)g +(to)h(pass)f(the)h(current)f(state)g(of)g(the)h(history)f(stuff)g +(around.)g(*/)p 2033 2242 21 42 v 195 2284 a(typedef)g(struct)g +(_hist_state)f({)243 2336 y(HIST_ENTRY)g(**entries;)214 +b(/*)23 b(Pointer)g(to)h(the)f(entries)g(themselves.)f(*/)243 +2387 y(int)h(offset;)453 b(/*)23 b(The)h(location)e(pointer)h(within)g +(this)h(array.)f(*/)p 2033 2398 V 243 2439 a(int)g(length;)453 +b(/*)23 b(Number)g(of)h(elements)f(within)g(this)g(array.)g(*/)p +1985 2449 V 243 2491 a(int)g(size;)501 b(/*)23 b(Number)g(of)h(slots)f +(allocated)g(to)g(this)h(array.)f(*/)p 2057 2501 V 243 +2543 a(int)g(flags;)195 2595 y(})h(HISTORY_STATE;)137 +2670 y Fm(If)16 b(the)f(\015ags)g(mem)o(b)q(er)g(includes)j +Fl(HS_STIFLED)p Fm(,)13 b(the)i(history)h(has)f(b)q(een)h(sti\015ed.)p +eop +%%Page: 4 6 +4 5 bop 75 -58 a Fm(4)1347 b(GNU)15 b(History)g(Library)75 +183 y Fk(2.3)33 b(History)22 b(F)-6 b(unctions)137 278 +y Fm(This)21 b(section)g(describ)q(es)h(the)f(calling)h(sequence)g(for) +e(the)g(v)m(arious)h(functions)g(presen)o(t)g(in)g(GNU)75 +333 y(History)l(.)75 441 y Fg(2.3.1)30 b(Initializing)20 +b(History)h(and)f(State)g(Managemen)n(t)137 536 y Fm(This)e(section)g +(describ)q(es)h(functions)f(used)g(to)e(initialize)21 +b(and)c(manage)g(the)g(state)g(of)g(the)g(History)75 +591 y(library)f(when)g(y)o(ou)f(w)o(an)o(t)f(to)g(use)i(the)f(history)g +(functions)h(in)g(y)o(our)f(program.)1650 679 y(F)l(unction)-1749 +b Ff(void)20 b Fe(using)p 333 679 18 3 v 20 w(history)j +Fd(\(\))195 734 y Fm(Begin)18 b(a)f(session)h(in)g(whic)o(h)g(the)g +(history)f(functions)h(migh)o(t)f(b)q(e)h(used.)27 b(This)18 +b(initializes)195 788 y(the)d(in)o(teractiv)o(e)h(v)m(ariables.)1650 +877 y(F)l(unction)-1749 b Ff(HISTORY_STATE)21 b(*)e Fe(history)p +657 877 V 21 w(get)p 755 877 V 21 w(history)p 951 877 +V 21 w(state)j Fd(\(\))195 931 y Fm(Return)16 b(a)f(structure)g +(describing)i(the)e(curren)o(t)g(state)f(of)h(the)g(input)i(history)l +(.)1650 1019 y(F)l(unction)-1749 b Ff(void)20 b Fe(history)p +377 1019 V 20 w(set)p 468 1019 V 21 w(history)p 664 1019 +V 21 w(state)j Fd(\()p Fl(HISTORY_STATE)13 b(*state)p +Fd(\))195 1074 y Fm(Set)i(the)h(state)e(of)h(the)g(history)g(list)h +(according)g(to)e Fh(state)p Fm(.)75 1182 y Fg(2.3.2)30 +b(History)20 b(List)h(Managemen)n(t)137 1277 y Fm(These)11 +b(functions)h(manage)e(individual)k(en)o(tries)d(on)g(the)g(history)f +(list,)i(or)f(set)f(parameters)g(managing)75 1332 y(the)15 +b(list)h(itself.)1650 1420 y(F)l(unction)-1749 b Ff(void)20 +b Fe(add)p 294 1420 V 20 w(history)j Fd(\()p Fl(char)14 +b(*string)p Fd(\))195 1475 y Fm(Place)i Fh(string)j Fm(at)c(the)g(end)i +(of)d(the)i(history)f(list.)22 b(The)15 b(asso)q(ciated)h(data)f +(\014eld)h(\(if)g(an)o(y\))e(is)195 1530 y(set)h(to)g +Fl(NULL)p Fm(.)1650 1618 y(F)l(unction)-1749 b Ff(HIST_ENTRY)21 +b(*)e Fe(remo)n(v)n(e)p 584 1618 V 20 w(history)k Fd(\()p +Fl(int)14 b(which)p Fd(\))195 1673 y Fm(Remo)o(v)o(e)g(history)g(en)o +(try)f(at)h(o\013set)f Fh(whic)o(h)h Fm(from)g(the)g(history)l(.)19 +b(The)14 b(remo)o(v)o(ed)g(elemen)o(t)g(is)195 1727 y(returned)i(so)e +(y)o(ou)h(can)h(free)f(the)g(line,)i(data,)d(and)h(con)o(taining)h +(structure.)1650 1816 y(F)l(unction)-1749 b Ff(HIST_ENTRY)21 +b(*)e Fe(replace)p 580 1816 V 22 w(history)p 777 1816 +V 20 w(en)n(try)24 b Fd(\()p Fl(int)14 b(which,)g(char)283 +1870 y(*line,)g(char)g(*data)p Fd(\))195 1925 y Fm(Mak)o(e)f(the)h +(history)f(en)o(try)g(at)g(o\013set)g Fh(whic)o(h)h Fm(ha)o(v)o(e)g +Fh(line)k Fm(and)13 b Fh(data)p Fm(.)19 b(This)14 b(returns)g(the)f +(old)195 1980 y(en)o(try)k(so)g(y)o(ou)g(can)g(disp)q(ose)i(of)d(the)i +(data.)25 b(In)18 b(the)f(case)h(of)f(an)g(in)o(v)m(alid)i +Fh(whic)o(h)p Fm(,)g(a)e Fl(NULL)195 2035 y Fm(p)q(oin)o(ter)f(is)f +(returned.)1650 2123 y(F)l(unction)-1749 b Ff(void)20 +b Fe(clear)p 320 2123 V 21 w(history)j Fd(\(\))195 2178 +y Fm(Clear)15 b(the)h(history)f(list)h(b)o(y)f(deleting)i(all)f(the)f +(en)o(tries.)1650 2266 y(F)l(unction)-1749 b Ff(void)20 +b Fe(sti\015e)p 320 2266 V 21 w(history)j Fd(\()p Fl(int)14 +b(max)p Fd(\))195 2321 y Fm(Sti\015e)i(the)f(history)h(list,)f(remem)o +(b)q(ering)h(only)g(the)f(last)g Fh(max)j Fm(en)o(tries.)1650 +2409 y(F)l(unction)-1749 b Ff(int)20 b Fe(unsti\015e)p +358 2409 V 21 w(history)i Fd(\(\))195 2463 y Fm(Stop)e(sti\015ing)i +(the)f(history)l(.)36 b(This)21 b(returns)g(the)f(previous)i(amoun)o(t) +e(the)g(history)h(w)o(as)195 2518 y(sti\015ed.)g(The)15 +b(v)m(alue)i(is)e(p)q(ositiv)o(e)i(if)e(the)g(history)h(w)o(as)e +(sti\015ed,)i(negativ)o(e)f(if)h(it)f(w)o(asn't.)1650 +2606 y(F)l(unction)-1749 b Ff(int)20 b Fe(history)p 351 +2606 V 20 w(is)p 409 2606 V 21 w(sti\015ed)k Fd(\(\))195 +2661 y Fm(Returns)16 b(non-zero)f(if)h(the)f(history)g(is)h(sti\015ed,) +g(zero)f(if)g(it)h(is)g(not.)p eop +%%Page: 5 7 +5 6 bop 75 -58 a Fm(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(History)889 b(5)75 183 y Fg(2.3.3)30 b(Information)19 +b(Ab)r(out)i(the)f(History)h(List)137 279 y Fm(These)13 +b(functions)h(return)f(information)g(ab)q(out)f(the)h(en)o(tire)h +(history)e(list)i(or)e(individual)k(list)e(en)o(tries.)1650 +371 y(F)l(unction)-1749 b Ff(HIST_ENTRY)21 b(**)e Fe(history)p +605 371 18 3 v 21 w(list)24 b Fd(\(\))195 426 y Fm(Return)f(a)g +Fl(NULL)f Fm(terminated)g(arra)o(y)g(of)g Fl(HIST_ENTRY)f +Fm(whic)o(h)j(is)f(the)f(curren)o(t)h(input)195 481 y(history)l(.)j +(Elemen)o(t)18 b(0)e(of)h(this)h(list)g(is)f(the)h(b)q(eginning)h(of)e +(time.)26 b(If)17 b(there)g(is)h(no)f(history)l(,)195 +535 y(return)e Fl(NULL)p Fm(.)1650 627 y(F)l(unction)-1749 +b Ff(int)20 b Fe(where)p 325 627 V 20 w(history)j Fd(\(\))195 +682 y Fm(Returns)16 b(the)f(o\013set)f(of)h(the)g(curren)o(t)g(history) +g(elemen)o(t.)1650 773 y(F)l(unction)-1749 b Ff(HIST_ENTRY)21 +b(*)e Fe(curren)n(t)p 587 773 V 21 w(history)k Fd(\(\))195 +828 y Fm(Return)g(the)f(history)g(en)o(try)g(at)f(the)h(curren)o(t)g(p) +q(osition,)j(as)c(determined)j(b)o(y)e Fl(where_)195 +883 y(history)14 b(\(\))p Fm(.)20 b(If)15 b(there)g(is)h(no)f(en)o(try) +g(there,)g(return)g(a)g Fl(NULL)g Fm(p)q(oin)o(ter.)1650 +975 y(F)l(unction)-1749 b Ff(HIST_ENTRY)21 b(*)e Fe(history)p +579 975 V 21 w(get)j Fd(\()p Fl(int)15 b(offset)p Fd(\))195 +1029 y Fm(Return)21 b(the)g(history)g(en)o(try)f(at)g(p)q(osition)i +Fh(o\013set)p Fm(,)e(starting)g(from)g Fl(history_base)p +Fm(.)35 b(If)195 1084 y(there)16 b(is)h(no)g(en)o(try)f(there,)g(or)g +(if)g Fh(o\013set)h Fm(is)g(greater)e(than)h(the)h(history)f(length,)h +(return)f(a)195 1139 y Fl(NULL)f Fm(p)q(oin)o(ter.)1650 +1231 y(F)l(unction)-1749 b Ff(int)20 b Fe(history)p 351 +1231 V 20 w(total)p 487 1231 V 22 w(b)n(ytes)j Fd(\(\))195 +1285 y Fm(Return)c(the)f(n)o(um)o(b)q(er)g(of)g(b)o(ytes)g(that)f(the)h +(primary)h(history)f(en)o(tries)g(are)g(using.)29 b(This)195 +1340 y(function)16 b(returns)f(the)g(sum)h(of)e(the)i(lengths)f(of)g +(all)h(the)g(lines)g(in)g(the)g(history)l(.)75 1452 y +Fg(2.3.4)30 b(Mo)n(ving)21 b(Around)f(the)h(History)g(List)137 +1548 y Fm(These)16 b(functions)g(allo)o(w)f(the)g(curren)o(t)h(index)g +(in)o(to)f(the)h(history)f(list)h(to)e(b)q(e)i(set)f(or)g(c)o(hanged.) +1650 1640 y(F)l(unction)-1749 b Ff(int)20 b Fe(history)p +351 1640 V 20 w(set)p 442 1640 V 21 w(p)r(os)h Fd(\()p +Fl(int)15 b(pos)p Fd(\))195 1694 y Fm(Set)g(the)h(p)q(osition)g(in)g +(the)f(history)g(list)h(to)f Fh(p)q(os)p Fm(,)g(an)g(absolute)g(index)i +(in)o(to)e(the)g(list.)1650 1786 y(F)l(unction)-1749 +b Ff(HIST_ENTRY)21 b(*)e Fe(previous)p 615 1786 V 20 +w(history)k Fd(\(\))195 1841 y Fm(Bac)o(k)17 b(up)h(the)f(curren)o(t)g +(history)g(o\013set)f(to)h(the)g(previous)h(history)f(en)o(try)l(,)g +(and)g(return)g(a)195 1896 y(p)q(oin)o(ter)f(to)e(that)h(en)o(try)l(.)k +(If)d(there)f(is)h(no)f(previous)h(en)o(try)l(,)f(return)g(a)g +Fl(NULL)f Fm(p)q(oin)o(ter.)1650 1987 y(F)l(unction)-1749 +b Ff(HIST_ENTRY)21 b(*)e Fe(next)p 514 1987 V 21 w(history)k +Fd(\(\))195 2042 y Fm(Mo)o(v)o(e)17 b(the)h(curren)o(t)g(history)f +(o\013set)g(forw)o(ard)g(to)g(the)h(next)g(history)g(en)o(try)l(,)g +(and)g(return)195 2097 y(the)d(a)g(p)q(oin)o(ter)h(to)e(that)h(en)o +(try)l(.)20 b(If)15 b(there)g(is)h(no)f(next)g(en)o(try)l(,)g(return)g +(a)g Fl(NULL)g Fm(p)q(oin)o(ter.)75 2208 y Fg(2.3.5)30 +b(Searc)n(hing)21 b(the)f(History)h(List)137 2304 y Fm(These)14 +b(functions)g(allo)o(w)g(searc)o(hing)g(of)e(the)i(history)f(list)h +(for)f(en)o(tries)h(con)o(taining)g(a)f(sp)q(eci\014c)i(string.)75 +2359 y(Searc)o(hing)f(ma)o(y)g(b)q(e)g(p)q(erformed)g(b)q(oth)g(forw)o +(ard)e(and)i(bac)o(kw)o(ard)f(from)g(the)h(curren)o(t)g(history)f(p)q +(osition.)75 2414 y(The)j(searc)o(h)f(ma)o(y)g(b)q(e)i +Fh(anc)o(hored)p Fm(,)e(meaning)h(that)f(the)h(string)g(m)o(ust)f(matc) +o(h)g(at)g(the)h(b)q(eginning)i(of)d(the)75 2469 y(history)g(en)o(try)l +(.)1650 2560 y(F)l(unction)-1749 b Ff(int)20 b Fe(history)p +351 2560 V 20 w(searc)n(h)j Fd(\()p Fl(char)14 b(*string,)g(int)h +(direction)p Fd(\))195 2615 y Fm(Searc)o(h)g(the)h(history)f(for)f +Fh(string)p Fm(,)h(starting)f(at)h(the)g(curren)o(t)g(history)g +(o\013set.)k(If)d Fh(direction)195 2670 y Fl(<)j Fm(0,)g(then)g(the)h +(searc)o(h)e(is)i(through)e(previous)i(en)o(tries,)g(else)g(through)f +(subsequen)o(t.)32 b(If)p eop +%%Page: 6 8 +6 7 bop 75 -58 a Fm(6)1347 b(GNU)15 b(History)g(Library)195 +183 y Fh(string)k Fm(is)d(found,)f(then)h(the)f(curren)o(t)g(history)g +(index)i(is)f(set)f(to)f(that)h(history)g(en)o(try)l(,)g(and)195 +238 y(the)g(v)m(alue)h(returned)f(is)g(the)g(o\013set)f(in)h(the)g +(line)h(of)e(the)h(en)o(try)g(where)g Fh(string)j Fm(w)o(as)c(found.) +195 293 y(Otherwise,)i(nothing)f(is)h(c)o(hanged,)f(and)h(a)e(-1)h(is)h +(returned.)1650 396 y(F)l(unction)-1749 b Ff(int)20 b +Fe(history)p 351 396 18 3 v 20 w(searc)n(h)p 527 396 +V 21 w(pre\014x)i Fd(\()p Fl(char)15 b(*string,)f(int)g(direction)p +Fd(\))195 451 y Fm(Searc)o(h)i(the)f(history)g(for)g +Fh(string)p Fm(,)g(starting)g(at)g(the)g(curren)o(t)h(history)f +(o\013set.)k(The)d(searc)o(h)195 506 y(is)h(anc)o(hored:)23 +b(matc)o(hing)17 b(lines)h(m)o(ust)e(b)q(egin)i(with)f +Fh(string)p Fm(.)25 b(If)17 b Fh(direction)h Fl(<)e Fm(0,)h(then)g(the) +195 560 y(searc)o(h)f(is)g(through)f(previous)i(en)o(tries,)f(else)g +(through)g(subsequen)o(t.)22 b(If)16 b Fh(string)k Fm(is)c(found,)195 +615 y(then)i(the)g(curren)o(t)g(history)g(index)h(is)g(set)e(to)h(that) +f(en)o(try)l(,)h(and)g(the)g(return)g(v)m(alue)h(is)g(0.)195 +670 y(Otherwise,)d(nothing)f(is)h(c)o(hanged,)f(and)h(a)e(-1)h(is)h +(returned.)1650 773 y(F)l(unction)-1749 b Ff(int)20 b +Fe(history)p 351 773 V 20 w(searc)n(h)p 527 773 V 21 +w(p)r(os)h Fd(\()p Fl(char)15 b(*string,)f(int)g(direction,)g(int)283 +828 y(pos)p Fd(\))195 883 y Fm(Searc)o(h)h(for)g Fh(string)k +Fm(in)d(the)f(history)g(list,)g(starting)g(at)f Fh(p)q(os)p +Fm(,)h(an)g(absolute)g(index)i(in)o(to)e(the)195 937 +y(list.)21 b(If)15 b Fh(direction)h Fm(is)g(negativ)o(e,)f(the)g(searc) +o(h)g(pro)q(ceeds)g(bac)o(kw)o(ard)g(from)f Fh(p)q(os)p +Fm(,)h(otherwise)195 992 y(forw)o(ard.)27 b(Returns)18 +b(the)g(absolute)g(index)h(of)f(the)g(history)f(elemen)o(t)i(where)f +Fh(string)k Fm(w)o(as)195 1047 y(found,)15 b(or)g(-1)g(otherwise.)75 +1170 y Fg(2.3.6)30 b(Managing)20 b(the)g(History)h(File)137 +1272 y Fm(The)16 b(History)g(library)h(can)e(read)h(the)g(history)g +(from)f(and)h(write)g(it)g(to)f(a)h(\014le.)22 b(This)17 +b(section)f(do)q(cu-)75 1327 y(men)o(ts)f(the)g(functions)h(for)f +(managing)g(a)g(history)g(\014le.)1650 1430 y(F)l(unction)-1749 +b Ff(int)20 b Fe(read)p 286 1430 V 20 w(history)i Fd(\()p +Fl(char)15 b(*filename)p Fd(\))195 1485 y Fm(Add)h(the)f(con)o(ten)o +(ts)f(of)h Fh(\014lename)j Fm(to)d(the)g(history)g(list,)g(a)g(line)h +(at)f(a)f(time.)21 b(If)15 b Fh(\014lename)j Fm(is)195 +1539 y Fl(NULL)p Fm(,)c(then)i(read)f(from)f(`)p Fl(~/.history)p +Fm('.)k(Returns)e(0)f(if)g(successful,)i(or)d(errno)h(if)h(not.)1650 +1643 y(F)l(unction)-1749 b Ff(int)20 b Fe(read)p 286 +1643 V 20 w(history)p 481 1643 V 20 w(range)i Fd(\()p +Fl(char)15 b(*filename,)e(int)i(from,)g(int)f(to)p Fd(\))195 +1697 y Fm(Read)21 b(a)f(range)g(of)g(lines)i(from)e Fh(\014lename)p +Fm(,)i(adding)f(them)g(to)f(the)g(history)h(list.)36 +b(Start)195 1752 y(reading)15 b(at)e(line)j Fh(from)e +Fm(and)g(end)h(at)e Fh(to)p Fm(.)19 b(If)c Fh(from)e +Fm(is)i(zero,)f(start)f(at)g(the)h(b)q(eginning.)22 b(If)15 +b Fh(to)195 1807 y Fm(is)i(less)g(than)f Fh(from)p Fm(,)g(then)h(read)f +(un)o(til)i(the)e(end)h(of)f(the)h(\014le.)24 b(If)17 +b Fh(\014lename)j Fm(is)d Fl(NULL)p Fm(,)f(then)195 1862 +y(read)f(from)g(`)p Fl(~/.history)p Fm('.)i(Returns)f(0)f(if)h +(successful,)g(or)e Fl(errno)h Fm(if)h(not.)1650 1965 +y(F)l(unction)-1749 b Ff(int)20 b Fe(write)p 304 1965 +V 22 w(history)i Fd(\()p Fl(char)15 b(*filename)p Fd(\))195 +2020 y Fm(W)l(rite)23 b(the)f(curren)o(t)g(history)h(to)f +Fh(\014lename)p Fm(,)j(o)o(v)o(erwriting)d Fh(\014lename)k +Fm(if)d(necessary)l(.)42 b(If)195 2074 y Fh(\014lename)20 +b Fm(is)d Fl(NULL)p Fm(,)f(then)g(write)h(the)f(history)h(list)g(to)f +(`)p Fl(~/.history)p Fm('.)21 b(V)l(alues)d(returned)195 +2129 y(are)d(as)g(in)h Fl(read_history)d(\(\))p Fm(.)1650 +2232 y(F)l(unction)-1749 b Ff(int)20 b Fe(app)r(end)p +360 2232 V 19 w(history)j Fd(\()p Fl(int)14 b(nelements,)g(char)h +(*filename)p Fd(\))195 2287 y Fm(App)q(end)i(the)e(last)g +Fh(nelemen)o(ts)j Fm(of)d(the)g(history)g(list)h(to)f +Fh(\014lename)p Fm(.)1650 2390 y(F)l(unction)-1749 b +Ff(int)20 b Fe(history)p 351 2390 V 20 w(truncate)p 582 +2390 V 21 w(\014le)k Fd(\()p Fl(char)14 b(*filename,)g(int)h(nlines)p +Fd(\))195 2445 y Fm(T)l(runcate)g(the)h(history)f(\014le)h +Fh(\014lename)p Fm(,)g(lea)o(ving)g(only)g(the)f(last)g +Fh(nlines)k Fm(lines.)75 2568 y Fg(2.3.7)30 b(History)20 +b(Expansion)137 2670 y Fm(These)c(functions)g(implemen)o(t)g +Fl(csh)p Fm(-lik)o(e)g(history)g(expansion.)p eop +%%Page: 7 9 +7 8 bop 75 -58 a Fm(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(History)889 b(7)1650 183 y(F)l(unction)-1749 b Ff(int)20 +b Fe(history)p 351 183 18 3 v 20 w(expand)j Fd(\()p Fl(char)14 +b(*string,)g(char)h(**output)p Fd(\))195 238 y Fm(Expand)g +Fh(string)p Fm(,)g(placing)h(the)f(result)h(in)o(to)f +Fh(output)p Fm(,)f(a)h(p)q(oin)o(ter)g(to)g(a)f(string)h(\(see)g +Fj(h)p Fm(unde-)195 293 y(\014ned)p Fj(i)h Fm([History)e(In)o +(teraction],)h(page)g Fj(h)p Fm(unde\014ned)p Fj(i)p +Fm(\).)21 b(Returns:)195 370 y Fl(0)216 b Fm(If)16 b(no)g(expansions)h +(to)q(ok)e(place)i(\(or,)d(if)j(the)f(only)g(c)o(hange)g(in)h(the)e +(text)h(w)o(as)435 425 y(the)f(de-slashifying)j(of)c(the)i(history)f +(expansion)h(c)o(haracter\);)195 502 y Fl(1)216 b Fm(if)16 +b(expansions)g(did)g(tak)o(e)e(place;)195 580 y Fl(-1)192 +b Fm(if)16 b(there)f(w)o(as)f(an)h(error)g(in)h(expansion;)195 +657 y Fl(2)216 b Fm(if)16 b(the)g(returned)g(line)i(should)f(only)f(b)q +(e)h(displa)o(y)o(ed,)f(but)g(not)g(executed,)g(as)435 +712 y(with)11 b(the)f Fl(:p)g Fm(mo)q(di\014er)h(\(see)g +Fj(h)p Fm(unde\014ned)p Fj(i)g Fm([Mo)q(di\014ers],)g(page)f +Fj(h)p Fm(unde\014ned)p Fj(i)p Fm(\).)195 789 y(If)15 +b(an)g(error)f(o)q(curred)i(in)g(expansion,)f(then)h +Fh(output)f Fm(con)o(tains)g(a)g(descriptiv)o(e)i(error)d(mes-)195 +844 y(sage.)1650 932 y(F)l(unction)-1749 b Ff(char)20 +b(*)f Fe(history)p 422 932 V 21 w(arg)p 524 932 V 19 +w(extract)24 b Fd(\()p Fl(int)14 b(first,)h(int)g(last,)f(char)283 +987 y(*string)p Fd(\))195 1042 y Fm(Extract)g(a)g(string)g(segmen)o(t)g +(consisting)i(of)e(the)g Fh(\014rst)i Fm(through)e Fh(last)h +Fm(argumen)o(ts)f(presen)o(t)195 1097 y(in)i Fh(string)p +Fm(.)k(Argumen)o(ts)15 b(are)f(brok)o(en)i(up)f(as)g(in)h(Bash.)1650 +1185 y(F)l(unction)-1749 b Ff(char)20 b(*)f Fe(get)p +324 1185 V 21 w(history)p 520 1185 V 20 w(ev)n(en)n(t)25 +b Fd(\()p Fl(char)14 b(*string,)g(int)h(*cindex,)f(int)283 +1240 y(qchar)p Fd(\))195 1295 y Fm(Returns)h(the)g(text)f(of)g(the)h +(history)g(ev)o(en)o(t)f(b)q(eginning)j(at)d Fh(string)k +Fl(+)d Fh(*cindex)p Fm(.)20 b Fh(*cindex)f Fm(is)195 +1350 y(mo)q(di\014ed)e(to)e(p)q(oin)o(t)h(to)f(after)g(the)h(ev)o(en)o +(t)f(sp)q(eci\014er.)23 b(A)o(t)16 b(function)g(en)o(try)l(,)f +Fh(cindex)21 b Fm(p)q(oin)o(ts)195 1404 y(to)16 b(the)h(index)h(in)o +(to)e Fh(string)21 b Fm(where)c(the)g(history)f(ev)o(en)o(t)h(sp)q +(eci\014cation)h(b)q(egins.)26 b Fh(qc)o(har)19 b Fm(is)195 +1459 y(a)h(c)o(haracter)g(that)g(is)h(allo)o(w)o(ed)f(to)g(end)h(the)g +(ev)o(en)o(t)f(sp)q(eci\014cation)i(in)g(addition)f(to)f(the)195 +1514 y(\\normal")15 b(terminating)g(c)o(haracters.)1650 +1602 y(F)l(unction)-1749 b Ff(char)20 b(**)f Fe(history)p +448 1602 V 21 w(tok)n(enize)25 b Fd(\()p Fl(char)14 b(*string)p +Fd(\))195 1657 y Fm(Return)j(an)g(arra)o(y)f(of)g(tok)o(ens)g(parsed)h +(out)g(of)f Fh(string)p Fm(,)h(m)o(uc)o(h)g(as)f(the)h(shell)h(migh)o +(t.)25 b(The)195 1712 y(tok)o(ens)d(are)g(split)i(on)f(white)g(space)g +(and)f(on)h(the)g(c)o(haracters)f Fl(\(\)<>;&|$)p Fm(,)h(and)f(shell) +195 1767 y(quoting)15 b(con)o(v)o(en)o(tions)h(are)e(ob)q(ey)o(ed.)75 +1892 y Fk(2.4)33 b(History)22 b(V)-6 b(ariables)137 1987 +y Fm(This)23 b(section)f(describ)q(es)h(the)f(externally)h(visible)h(v) +m(ariables)f(exp)q(orted)f(b)o(y)g(the)g(GNU)f(History)75 +2042 y(Library)l(.)1661 2130 y(V)l(ariable)-1749 b Ff(int)20 +b Fe(history)p 351 2130 V 20 w(base)195 2185 y Fm(The)15 +b(logical)i(o\013set)d(of)h(the)g(\014rst)g(en)o(try)g(in)h(the)f +(history)g(list.)1661 2274 y(V)l(ariable)-1749 b Ff(int)20 +b Fe(history)p 351 2274 V 20 w(length)195 2329 y Fm(The)15 +b(n)o(um)o(b)q(er)h(of)f(en)o(tries)g(curren)o(tly)h(stored)f(in)h(the) +f(history)g(list.)1661 2417 y(V)l(ariable)-1749 b Ff(int)20 +b Fe(max)p 283 2417 V 19 w(input)p 435 2417 V 21 w(history)195 +2472 y Fm(The)14 b(maxim)o(um)f(n)o(um)o(b)q(er)h(of)e(history)i(en)o +(tries.)19 b(This)14 b(m)o(ust)f(b)q(e)h(c)o(hanged)g(using)g +Fl(stifle_)195 2527 y(history)g(\(\))p Fm(.)1661 2615 +y(V)l(ariable)-1749 b Ff(char)20 b Fe(history)p 377 2615 +V 20 w(expansion)p 644 2615 V 21 w(c)n(har)195 2670 y +Fm(The)15 b(c)o(haracter)g(that)f(starts)g(a)h(history)g(ev)o(en)o(t.) +20 b(The)15 b(default)h(is)g(`)p Fl(!)p Fm('.)p eop +%%Page: 8 10 +8 9 bop 75 -58 a Fm(8)1347 b(GNU)15 b(History)g(Library)1661 +183 y(V)l(ariable)-1749 b Ff(char)20 b Fe(history)p 377 +183 18 3 v 20 w(subst)p 529 183 V 20 w(c)n(har)195 238 +y Fm(The)13 b(c)o(haracter)e(that)h(in)o(v)o(ok)o(es)g(w)o(ord)g +(substitution)h(if)g(found)g(at)e(the)i(start)e(of)h(a)g(line.)21 +b(The)195 293 y(default)16 b(is)f(`)p Fl(^)p Fm('.)1661 +388 y(V)l(ariable)-1749 b Ff(char)20 b Fe(history)p 377 +388 V 20 w(commen)n(t)p 627 388 V 19 w(c)n(har)195 443 +y Fm(During)e(tok)o(enization,)h(if)f(this)h(c)o(haracter)e(is)i(seen)f +(as)g(the)g(\014rst)g(c)o(haracter)f(of)g(a)h(w)o(ord,)195 +498 y(then)e(it)g(and)g(all)h(subsequen)o(t)g(c)o(haracters)e(up)h(to)g +(a)f(newline)j(are)e(ignored,)g(suppressing)195 553 y(history)f +(expansion)h(for)f(the)g(remainder)h(of)f(the)g(line.)22 +b(This)15 b(is)h(disabled)h(b)o(y)e(default.)1661 648 +y(V)l(ariable)-1749 b Ff(char)20 b(*)f Fe(history)p 422 +648 V 21 w(no)p 504 648 V 20 w(expand)p 704 648 V 20 +w(c)n(hars)195 703 y Fm(The)j(list)h(of)f(c)o(haracters)f(whic)o(h)i +(inhibit)h(history)e(expansion)h(if)g(found)f(immediately)195 +758 y(follo)o(wing)16 b Fh(history)p 528 758 14 2 v 16 +w(expansion)p 739 758 V 18 w(c)o(har)p Fm(.)j(The)d(default)f(is)h +(whitespace)g(and)g(`)p Fl(=)p Fm('.)1661 853 y(V)l(ariable)-1749 +b Ff(char)20 b(*)f Fe(history)p 422 853 18 3 v 21 w(searc)n(h)p +599 853 V 20 w(delimiter)p 843 853 V 23 w(c)n(hars)195 +908 y Fm(The)f(list)h(of)e(additional)i(c)o(haracters)e(whic)o(h)i(can) +f(delimit)h(a)f(history)g(searc)o(h)f(string,)h(in)195 +963 y(addition)c(to)d(whitespace,)j(`)p Fl(:)p Fm(')d(and)i(`)p +Fl(?)p Fm(')f(in)h(the)f(case)h(of)f(a)g(substring)h(searc)o(h.)19 +b(The)12 b(default)195 1018 y(is)k(empt)o(y)l(.)1661 +1113 y(V)l(ariable)-1749 b Ff(int)20 b Fe(history)p 351 +1113 V 20 w(quotes)p 533 1113 V 21 w(inhibit)p 717 1113 +V 23 w(expansion)195 1168 y Fm(If)13 b(non-zero,)f(single-quoted)i(w)o +(ords)e(are)g(not)g(scanned)h(for)f(the)g(history)h(expansion)g(c)o +(har-)195 1223 y(acter.)19 b(The)d(default)g(v)m(alue)g(is)g(0.)1661 +1318 y(V)l(ariable)-1749 b Ff(Function)20 b(*)g Fe(history)p +527 1318 V 20 w(inhibit)p 710 1318 V 23 w(expansion)p +980 1318 V 21 w(function)195 1373 y Fm(This)12 b(should)g(b)q(e)g(set)f +(to)f(the)i(address)f(of)g(a)g(function)h(that)e(tak)o(es)h(t)o(w)o(o)f +(argumen)o(ts:)17 b(a)11 b Fl(char)195 1428 y(*)j Fm(\()p +Fh(string)t Fm(\))f(and)i(an)f(in)o(teger)g(index)h(in)o(to)f(that)g +(string)g(\()p Fh(i)r Fm(\).)20 b(It)14 b(should)h(return)f(a)g +(non-zero)195 1482 y(v)m(alue)g(if)e(the)h(history)f(expansion)h +(starting)f(at)g Fh(string[i])i Fm(should)f(not)f(b)q(e)h(p)q +(erformed;)g(zero)195 1537 y(if)g(the)h(expansion)f(should)h(b)q(e)g +(done.)20 b(It)13 b(is)g(in)o(tended)i(for)d(use)h(b)o(y)g +(applications)i(lik)o(e)f(Bash)195 1592 y(that)j(use)h(the)g(history)f +(expansion)i(c)o(haracter)e(for)g(additional)i(purp)q(oses.)28 +b(By)18 b(default,)195 1647 y(this)e(v)m(ariable)g(is)g(set)f(to)f +(NULL.)75 1780 y Fk(2.5)33 b(History)22 b(Programming)h(Example)137 +1878 y Fm(The)16 b(follo)o(wing)g(program)e(demonstrates)g(simple)j +(use)e(of)g(the)g(GNU)g(History)g(Library)l(.)195 1944 +y Fl(main)23 b(\(\))195 1995 y({)243 2047 y(char)g(line[1024],)f(*t;) +243 2099 y(int)h(len,)g(done)h(=)g(0;)243 2203 y(line[0])f(=)g(0;)243 +2307 y(using_history)f(\(\);)243 2359 y(while)h(\(!done\))290 +2411 y({)338 2462 y(printf)g(\("history$)g("\);)338 2514 +y(fflush)g(\(stdout\);)338 2566 y(t)h(=)g(fgets)f(\(line,)g(sizeof)g +(\(line\))g(-)h(1,)f(stdin\);)338 2618 y(if)h(\(t)f(&&)h(*t\))386 +2670 y({)p eop +%%Page: 9 11 +9 10 bop 75 -58 a Fm(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(History)889 b(9)434 183 y Fl(len)23 b(=)h(strlen)f(\(t\);)434 +235 y(if)g(\(t[len)g(-)h(1])g(==)f('\\n'\))481 287 y(t[len)h(-)f(1])h +(=)g('\\0';)386 339 y(})338 443 y(if)g(\(!t\))386 495 +y(strcpy)f(\(line,)g("quit"\);)338 598 y(if)h(\(line[0]\))386 +650 y({)434 702 y(char)f(*expansion;)434 754 y(int)g(result;)434 +858 y(result)g(=)g(history_expand)f(\(line,)h(&expansion\);)434 +910 y(if)g(\(result\))481 962 y(fprintf)g(\(stderr,)g("\045s\\n",)g +(expansion\);)434 1065 y(if)g(\(result)g(<)h(0)g(||)f(result)g(==)h +(2\))481 1117 y({)529 1169 y(free)f(\(expansion\);)529 +1221 y(continue;)481 1273 y(})434 1377 y(add_history)f(\(expansion\);) +434 1429 y(strncpy)h(\(line,)g(expansion,)f(sizeof)h(\(line\))g(-)h +(1\);)434 1480 y(free)f(\(expansion\);)386 1532 y(})338 +1636 y(if)h(\(strcmp)f(\(line,)g("quit"\))g(==)g(0\))386 +1688 y(done)g(=)h(1;)338 1740 y(else)f(if)h(\(strcmp)f(\(line,)g +("save"\))g(==)h(0\))386 1792 y(write_history)e(\("history_file"\);)338 +1844 y(else)h(if)h(\(strcmp)f(\(line,)g("read"\))g(==)h(0\))386 +1896 y(read_history)e(\("history_file"\);)338 1947 y(else)h(if)h +(\(strcmp)f(\(line,)g("list"\))g(==)h(0\))386 1999 y({)434 +2051 y(register)e(HIST_ENTRY)h(**the_list;)434 2103 y(register)f(int)i +(i;)434 2207 y(the_list)e(=)i(history_list)e(\(\);)434 +2259 y(if)h(\(the_list\))481 2311 y(for)h(\(i)f(=)h(0;)g(the_list[i];)e +(i++\))529 2363 y(printf)h(\("\045d:)g(\045s\\n",)g(i)h(+)g +(history_base,)e(the_list[i]->line\);)386 2414 y(})338 +2466 y(else)h(if)h(\(strncmp)f(\(line,)g("delete",)g(6\))g(==)h(0\))386 +2518 y({)434 2570 y(int)f(which;)434 2622 y(if)g(\(\(sscanf)g(\(line)g +(+)h(6,)f("\045d",)h(&which\)\))e(==)i(1\))p eop +%%Page: 10 12 +10 11 bop 75 -58 a Fm(10)1324 b(GNU)15 b(History)g(Library)481 +183 y Fl({)529 235 y(HIST_ENTRY)23 b(*entry)g(=)g(remove_history)f +(\(which\);)529 287 y(if)i(\(!entry\))577 339 y(fprintf)f(\(stderr,)f +("No)i(such)f(entry)g(\045d\\n",)g(which\);)529 391 y(else)577 +443 y({)625 495 y(free)g(\(entry->line\);)625 546 y(free)g(\(entry\);) +577 598 y(})481 650 y(})434 702 y(else)481 754 y({)529 +806 y(fprintf)g(\(stderr,)g("non-numeric)f(arg)h(given)h(to)f +(`delete'\\n"\);)481 858 y(})386 910 y(})290 962 y(})195 +1013 y(})p eop +%%Page: 11 13 +11 12 bop 75 -58 a Fm(App)q(endix)17 b(A:)e(Concept)g(Index)1196 +b(11)75 183 y Fi(App)r(endix)25 b(A)41 b(Concept)27 b(Index)137 +359 y Fc(\(Index)14 b(is)f(nonexisten)o(t\))p eop +%%Page: 12 14 +12 13 bop 75 -58 a Fm(12)1324 b(GNU)15 b(History)g(Library)p +eop +%%Page: 13 15 +13 14 bop 75 -58 a Fm(App)q(endix)17 b(B:)e(F)l(unction)h(and)g(V)l +(ariable)g(Index)919 b(13)75 183 y Fi(App)r(endix)25 +b(B)41 b(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26 +b(Index)137 359 y Fc(\(Index)14 b(is)f(nonexisten)o(t\))p +eop +%%Page: 14 16 +14 15 bop 75 -58 a Fm(14)1324 b(GNU)15 b(History)g(Library)p +eop +%%Page: -1 17 +-1 16 bop 1862 -58 a Fm(i)75 183 y Fi(T)-7 b(able)27 +b(of)f(Con)n(ten)n(ts)75 354 y Fk(1)67 b(Using)22 b(History)h(In)n +(teractiv)n(ely)9 b Fb(.)k(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)31 b Fk(1)224 423 y Fm(1.1)45 b(History)15 +b(Expansion)5 b Fa(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)19 b Fm(1)374 478 y(1.1.1)44 +b(Ev)o(en)o(t)14 b(Designators)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)26 b Fm(1)374 532 y(1.1.2)44 b(W)l(ord)15 +b(Designators)5 b Fa(.)h(.)i(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)19 b Fm(2)374 587 y(1.1.3)44 b(Mo)q(di\014ers)t Fa(.)8 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)19 b Fm(2)75 708 y Fk(2)67 b(Programming)23 +b(with)g(GNU)f(History)16 b Fb(.)10 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)38 b Fk(3)224 777 y Fm(2.1)45 b(In)o(tro)q(duction)16 +b(to)f(History)10 b Fa(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)24 b Fm(3)224 832 y(2.2)45 b(History)15 +b(Storage)c Fa(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 b Fm(3)224 886 +y(2.3)45 b(History)15 b(F)l(unctions)d Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 +b Fm(4)374 941 y(2.3.1)44 b(Initializing)18 b(History)d(and)h(State)e +(Managemen)o(t)g Fa(.)7 b(.)h(.)g(.)f(.)h(.)f(.)29 b +Fm(4)374 996 y(2.3.2)44 b(History)15 b(List)h(Managemen)o(t)d +Fa(.)7 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)29 b Fm(4)374 1051 y(2.3.3)44 +b(Information)15 b(Ab)q(out)g(the)h(History)f(List)c +Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26 +b Fm(5)374 1106 y(2.3.4)44 b(Mo)o(ving)15 b(Around)g(the)g(History)g +(List)c Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)25 b Fm(5)374 1160 y(2.3.5)44 b(Searc)o(hing)16 +b(the)f(History)g(List)7 b Fa(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22 +b Fm(5)374 1215 y(2.3.6)44 b(Managing)15 b(the)g(History)g(File)6 +b Fa(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)20 b Fm(6)374 1270 y(2.3.7)44 +b(History)15 b(Expansion)9 b Fa(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)24 b Fm(6)224 1325 y(2.4)45 b(History)15 b(V)l(ariables)6 +b Fa(.)j(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)21 b Fm(7)224 1380 y(2.5)45 b(History)15 +b(Programming)f(Example)7 b Fa(.)i(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22 +b Fm(8)75 1501 y Fk(App)r(endix)i(A)67 b(Concept)22 b(Index)17 +b Fb(.)10 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)38 b Fk(11)75 1636 y(App)r(endix)24 b(B)67 b(F)-6 +b(unction)25 b(and)e(V)-6 b(ariable)24 b(Index)16 b Fb(.)10 +b(.)g(.)g(.)38 b Fk(13)p eop +%%Page: -2 18 +-2 17 bop 75 -58 a Fm(ii)1346 b(GNU)15 b(History)g(Library)p +eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/readline/doc/history_toc.html b/readline/doc/history_toc.html new file mode 100644 index 0000000..7e271c0 --- /dev/null +++ b/readline/doc/history_toc.html @@ -0,0 +1,51 @@ +<HTML> +<HEAD> +<!-- This HTML file has been created by texi2html 1.51 + from /usr/homes/chet/src/bash/readline-2.2/doc/hist.texinfo on 2 April 1998 --> + +<TITLE>GNU History Library - Table of Contents</TITLE> +</HEAD> +<BODY> +<H1>GNU History Library</H1> +<H2>Edition 2.1, for <CODE>History Library</CODE> Version 2.1.</H2> +<H2>March 1996</H2> +<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS> +<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS> +<P> +<P><HR><P> +<UL> +<LI><A NAME="TOC1" HREF="history.html#SEC1">Using History Interactively</A> +<UL> +<LI><A NAME="TOC2" HREF="history.html#SEC2">History Expansion</A> +<UL> +<LI><A NAME="TOC3" HREF="history.html#SEC3">Event Designators</A> +<LI><A NAME="TOC4" HREF="history.html#SEC4">Word Designators</A> +<LI><A NAME="TOC5" HREF="history.html#SEC5">Modifiers</A> +</UL> +</UL> +<LI><A NAME="TOC6" HREF="history.html#SEC6">Programming with GNU History</A> +<UL> +<LI><A NAME="TOC7" HREF="history.html#SEC7">Introduction to History</A> +<LI><A NAME="TOC8" HREF="history.html#SEC8">History Storage</A> +<LI><A NAME="TOC9" HREF="history.html#SEC9">History Functions</A> +<UL> +<LI><A NAME="TOC10" HREF="history.html#SEC10">Initializing History and State Management</A> +<LI><A NAME="TOC11" HREF="history.html#SEC11">History List Management</A> +<LI><A NAME="TOC12" HREF="history.html#SEC12">Information About the History List</A> +<LI><A NAME="TOC13" HREF="history.html#SEC13">Moving Around the History List</A> +<LI><A NAME="TOC14" HREF="history.html#SEC14">Searching the History List</A> +<LI><A NAME="TOC15" HREF="history.html#SEC15">Managing the History File</A> +<LI><A NAME="TOC16" HREF="history.html#SEC16">History Expansion</A> +</UL> +<LI><A NAME="TOC17" HREF="history.html#SEC17">History Variables</A> +<LI><A NAME="TOC18" HREF="history.html#SEC18">History Programming Example</A> +</UL> +<LI><A NAME="TOC19" HREF="history.html#SEC19">Concept Index</A> +<LI><A NAME="TOC20" HREF="history.html#SEC20">Function and Variable Index</A> +</UL> +<P><HR><P> +This document was generated on 2 April 1998 using the +<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A> +translator version 1.51.</P> +</BODY> +</HTML> diff --git a/readline/doc/readline.0 b/readline/doc/readline.0 new file mode 100644 index 0000000..c925d52 --- /dev/null +++ b/readline/doc/readline.0 @@ -0,0 +1,1122 @@ + + + +READLINE(3) READLINE(3) + + +NNAAMMEE + readline - get a line from a user with editing + +SSYYNNOOPPSSIISS + ##iinncclluuddee <<rreeaaddlliinnee..hh>> + ##iinncclluuddee <<hhiissttoorryy..hh>> + + cchhaarr **rreeaaddlliinnee ((pprroommpptt)) + cchhaarr **pprroommpptt;; + +CCOOPPYYRRIIGGHHTT + Readline is Copyright (C) 1989, 1991, 1993, 1995, 1996 by + the Free Software Foundation, Inc. + +DDEESSCCRRIIPPTTIIOONN + rreeaaddlliinnee will read a line from the terminal and return it, + using pprroommpptt as a prompt. If pprroommpptt is null, no prompt is + issued. The line returned is allocated with _m_a_l_l_o_c(3), so + the caller must free it when finished. The line returned + has the final newline removed, so only the text of the + line remains. + + rreeaaddlliinnee offers editing capabilities while the user is + entering the line. By default, the line editing commands + are similar to those of emacs. A vi-style line editing + interface is also available. + +RREETTUURRNN VVAALLUUEE + rreeaaddlliinnee returns the text of the line read. A blank line + returns the empty string. If EEOOFF is encountered while + reading a line, and the line is empty, NNUULLLL is returned. + If an EEOOFF is read with a non-empty line, it is treated as + a newline. + +NNOOTTAATTIIOONN + An emacs-style notation is used to denote keystrokes. + Control keys are denoted by C-_k_e_y, e.g., C-n means Con- + trol-N. Similarly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x + means Meta-X. (On keyboards without a _m_e_t_a key, M-_x means + ESC _x, i.e., press the Escape key then the _x key. This + makes ESC the _m_e_t_a _p_r_e_f_i_x. The combination M-C-_x means + ESC-Control-_x, or press the Escape key then hold the Con- + trol key while pressing the _x key.) + + Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, which + normally act as a repeat count. Sometimes, however, it is + the sign of the argument that is significant. Passing a + negative argument to a command that acts in the forward + direction (e.g., kkiillll--lliinnee) causes that command to act in + a backward direction. Commands whose behavior with argu- + ments deviates from this are noted. + + When a command is described as _k_i_l_l_i_n_g text, the text + deleted is saved for possible future retrieval (_y_a_n_k_i_n_g). + + + +GNU 1998 Feb 19 1 + + + + + +READLINE(3) READLINE(3) + + + The killed text is saved in a _k_i_l_l _r_i_n_g. Consecutive + kills cause the text to be accumulated into one unit, + which can be yanked all at once. Commands which do not + kill text separate the chunks of text on the kill ring. + +IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE + Readline is customized by putting commands in an initial- + ization file (the _i_n_p_u_t_r_c file). The name of this file is + taken from the value of the IINNPPUUTTRRCC environment variable. + If that variable is unset, the default is _~_/_._i_n_p_u_t_r_c. + When a program which uses the readline library starts up, + the init file is read, and the key bindings and variables + are set. There are only a few basic constructs allowed in + the readline init file. Blank lines are ignored. Lines + beginning with a ## are comments. Lines beginning with a $$ + indicate conditional constructs. Other lines denote key + bindings and variable settings. Each program using this + library may add its own commands and bindings. + + For example, placing + + M-Control-u: universal-argument + or + C-Meta-u: universal-argument + into the _i_n_p_u_t_r_c would make M-C-u execute the readline + command _u_n_i_v_e_r_s_a_l_-_a_r_g_u_m_e_n_t. + + The following symbolic character names are recognized + while processing key bindings: _R_U_B_O_U_T, _D_E_L, _E_S_C, _L_F_D, _N_E_W_- + _L_I_N_E, _R_E_T, _R_E_T_U_R_N, _S_P_C, _S_P_A_C_E, and _T_A_B. In addition to + command names, readline allows keys to be bound to a + string that is inserted when the key is pressed (a _m_a_c_r_o). + + + KKeeyy BBiinnddiinnggss + The syntax for controlling key bindings in the _i_n_p_u_t_r_c + file is simple. All that is required is the name of the + command or the text of a macro and a key sequence to which + it should be bound. The name may be specified in one of + two ways: as a symbolic key name, possibly with _M_e_t_a_- or + _C_o_n_t_r_o_l_- prefixes, or as a key sequence. When using the + form kkeeyynnaammee:_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, _k_e_y_n_a_m_e is the name + of a key spelled out in English. For example: + + Control-u: universal-argument + Meta-Rubout: backward-kill-word + Control-o: ">&output" + + In the above example, _C_-_u is bound to the function uunniivveerr-- + ssaall--aarrgguummeenntt, _M_-_D_E_L is bound to the function bbaacckk-- + wwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to run the macro + expressed on the right hand side (that is, to insert the + text _>_&_o_u_t_p_u_t into the line). + + + + +GNU 1998 Feb 19 2 + + + + + +READLINE(3) READLINE(3) + + + In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyy-- + sseeqq differs from kkeeyynnaammee above in that strings denoting an + entire key sequence may be specified by placing the + sequence within double quotes. Some GNU Emacs style key + escapes can be used, as in the following example. + + "\C-u": universal-argument + "\C-x\C-r": re-read-init-file + "\e[11~": "Function Key 1" + + In this example, _C_-_u is again bound to the function uunnii-- + vveerrssaall--aarrgguummeenntt. _C_-_x _C_-_r is bound to the function + rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is bound to insert the + text FFuunnccttiioonn KKeeyy 11. The full set of GNU Emacs style + escape sequences is + \\CC-- control prefix + \\MM-- meta prefix + \\ee an escape character + \\\\ backslash + \\"" literal " + \\'' literal ' + + In addition to the GNU Emacs style escape sequences, a + second set of backslash escapes is available: + \\aa alert (bell) + \\bb backspace + \\dd delete + \\ff form feed + \\nn newline + \\rr carriage return + \\tt horizontal tab + \\vv vertical tab + \\_n_n_n the character whose ASCII code is the octal + value _n_n_n (one to three digits) + \\xx_n_n_n the character whose ASCII code is the hex- + adecimal value _n_n_n (one to three digits) + + When entering the text of a macro, single or double quotes + should be used to indicate a macro definition. Unquoted + text is assumed to be a function name. In the macro body, + the backslash escapes described above are expanded. Back- + slash will quote any other character in the macro text, + including " and '. + + BBaasshh allows the current readline key bindings to be dis- + played or modified with the bbiinndd builtin command. The + editing mode may be switched during interactive use by + using the --oo option to the sseett builtin command. Other + programs using this library provide similar mechanisms. + The _i_n_p_u_t_r_c file may be edited and re-read if a program + does not provide any other means to incorporate new bind- + ings. + + + + + +GNU 1998 Feb 19 3 + + + + + +READLINE(3) READLINE(3) + + + VVaarriiaabblleess + Readline has variables that can be used to further cus- + tomize its behavior. A variable may be set in the _i_n_p_u_t_r_c + file with a statement of the form + + sseett _v_a_r_i_a_b_l_e_-_n_a_m_e _v_a_l_u_e + + Except where noted, readline variables can take the values + OOnn or OOffff. The variables and their default values are: + + bbeellll--ssttyyllee ((aauuddiibbllee)) + Controls what happens when readline wants to ring + the terminal bell. If set to nnoonnee, readline never + rings the bell. If set to vviissiibbllee, readline uses a + visible bell if one is available. If set to aauuddii-- + bbllee, readline attempts to ring the terminal's bell. + ccoommmmeenntt--bbeeggiinn ((````##'''')) + The string that is inserted in vvii mode when the + iinnsseerrtt--ccoommmmeenntt command is executed. This command + is bound to MM--## in emacs mode and to ## in vi com- + mand mode. + ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff)) + If set to OOnn, readline performs filename matching + and completion in a case-insensitive fashion. + ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000)) + This determines when the user is queried about + viewing the number of possible completions gener- + ated by the ppoossssiibbllee--ccoommpplleettiioonnss command. It may + be set to any integer value greater than or equal + to zero. If the number of possible completions is + greater than or equal to the value of this vari- + able, the user is asked whether or not he wishes to + view them; otherwise they are simply listed on the + terminal. + ccoonnvveerrtt--mmeettaa ((OOnn)) + If set to OOnn, readline will convert characters with + the eighth bit set to an ASCII key sequence by + stripping the eighth bit and prepending an escape + character (in effect, using escape as the _m_e_t_a _p_r_e_- + _f_i_x). + ddiissaabbllee--ccoommpplleettiioonn ((OOffff)) + If set to OOnn, readline will inhibit word comple- + tion. Completion characters will be inserted into + the line as if they had been mapped to sseellff--iinnsseerrtt. + eeddiittiinngg--mmooddee ((eemmaaccss)) + Controls whether readline begins with a set of key + bindings similar to _e_m_a_c_s or _v_i. eeddiittiinngg--mmooddee can + be set to either eemmaaccss or vvii. + eennaabbllee--kkeeyyppaadd ((OOffff)) + When set to OOnn, readline will try to enable the + application keypad when it is called. Some systems + need this to enable the arrow keys. + eexxppaanndd--ttiillddee ((OOffff)) + If set to oonn, tilde expansion is performed when + + + +GNU 1998 Feb 19 4 + + + + + +READLINE(3) READLINE(3) + + + readline attempts word completion. + hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff)) + When set to OOnn, makes readline use a single line + for display, scrolling the input horizontally on a + single screen line when it becomes longer than the + screen width rather than wrapping to a new line. + kkeeyymmaapp ((eemmaaccss)) + Set the current readline keymap. The set of legal + keymap names is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, + _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d, and _v_i_-_i_n_s_e_r_t. + _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is equivalent + to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s; the + value of eeddiittiinngg--mmooddee also affects the default + keymap. + mmaarrkk--ddiirreeccttoorriieess ((OOnn)) + If set to OOnn, complete<d directory names have a + slash appended. + mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff)) + If set to OOnn, history lines that have been modified + are displayed with a preceding asterisk (**). + mmeettaa--ffllaagg ((OOffff)) + If set to OOnn, readline will enable eight-bit input + (that is, it will not strip the high bit from the + characters it reads), regardless of what the termi- + nal claims it can support. + oouuttppuutt--mmeettaa ((OOffff)) + If set to OOnn, readline will display characters with + the eighth bit set directly rather than as a meta- + prefixed escape sequence. + pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff)) + If set to OOnn, readline will display completions + with matches sorted horizontally in alphabetical + order, rather than down the screen. + sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff)) + This alters the default behavior of the completion + functions. If set to oonn, words which have more + than one possible completion cause the matches to + be listed immediately instead of ringing the bell. + vviissiibbllee--ssttaattss ((OOffff)) + If set to OOnn, a character denoting a file's type as + reported by ssttaatt(2) is appended to the filename + when listing possible completions. + + CCoonnddiittiioonnaall CCoonnssttrruuccttss + Readline implements a facility similar in spirit to the + conditional compilation features of the C preprocessor + which allows key bindings and variable settings to be per- + formed as the result of tests. There are four parser + directives used. + + $$iiff The $$iiff construct allows bindings to be made based + on the editing mode, the terminal being used, or + the application using readline. The text of the + test extends to the end of the line; no characters + + + +GNU 1998 Feb 19 5 + + + + + +READLINE(3) READLINE(3) + + + are required to isolate it. + + mmooddee The mmooddee== form of the $$iiff directive is used + to test whether readline is in emacs or vi + mode. This may be used in conjunction with + the sseett kkeeyymmaapp command, for instance, to set + bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and _e_m_a_c_s_- + _c_t_l_x keymaps only if readline is starting + out in emacs mode. + + tteerrmm The tteerrmm== form may be used to include termi- + nal-specific key bindings, perhaps to bind + the key sequences output by the terminal's + function keys. The word on the right side + of the == is tested against the full name of + the terminal and the portion of the terminal + name before the first --. This allows _s_u_n to + match both _s_u_n and _s_u_n_-_c_m_d, for instance. + + aapppplliiccaattiioonn + The aapppplliiccaattiioonn construct is used to include + application-specific settings. Each program + using the readline library sets the _a_p_p_l_i_c_a_- + _t_i_o_n _n_a_m_e, and an initialization file can + test for a particular value. This could be + used to bind key sequences to functions use- + ful for a specific program. For instance, + the following command adds a key sequence + that quotes the current or previous word in + Bash: + + $$iiff bash + # Quote the current or previous word + "\C-xq": "\eb\"\ef\"" + $$eennddiiff + + $$eennddiiff This command, as seen in the previous example, ter- + minates an $$iiff command. + + $$eellssee Commands in this branch of the $$iiff directive are + executed if the test fails. + + $$iinncclluuddee + This directive takes a single filename as an argu- + ment and reads commands and bindings from that + file. For example, the following directive would + read _/_e_t_c_/_i_n_p_u_t_r_c: + + $$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c + +SSEEAARRCCHHIINNGG + Readline provides commands for searching through the com- + mand history for lines containing a specified string. + There are two search modes: _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_- + + + +GNU 1998 Feb 19 6 + + + + + +READLINE(3) READLINE(3) + + + _i_n_c_r_e_m_e_n_t_a_l. + + Incremental searches begin before the user has finished + typing the search string. As each character of the search + string is typed, readline displays the next entry from the + history matching the string typed so far. An incremental + search requires only as many characters as needed to find + the desired history entry. The Escape character is used + to terminate an incremental search. Control-J will also + terminate the search. Control-G will abort an incremental + search and restore the original line. When the search is + terminated, the history entry containing the search string + becomes the current line. To find other matching entries + in the history list, type Control-S or Control-R as appro- + priate. This will search backward or forward in the his- + tory for the next line matching the search string typed so + far. Any other key sequence bound to a readline command + will terminate the search and execute that command. For + instance, a _n_e_w_l_i_n_e will terminate the search and accept + the line, thereby executing the command from the history + list. + + Non-incremental searches read the entire search string + before starting to search for matching history lines. The + search string may be typed by the user or be part of the + contents of the current line. + +EEDDIITTIINNGG CCOOMMMMAANNDDSS + The following is a list of the names of the commands and + the default key sequences to which they are bound. Com- + mand names without an accompanying key sequence are + unbound by default. + + CCoommmmaannddss ffoorr MMoovviinngg + bbeeggiinnnniinngg--ooff--lliinnee ((CC--aa)) + Move to the start of the current line. + eenndd--ooff--lliinnee ((CC--ee)) + Move to the end of the line. + ffoorrwwaarrdd--cchhaarr ((CC--ff)) + Move forward a character. + bbaacckkwwaarrdd--cchhaarr ((CC--bb)) + Move back a character. + ffoorrwwaarrdd--wwoorrdd ((MM--ff)) + Move forward to the end of the next word. Words + are composed of alphanumeric characters (letters + and digits). + bbaacckkwwaarrdd--wwoorrdd ((MM--bb)) + Move back to the start of this, or the previous, + word. Words are composed of alphanumeric charac- + ters (letters and digits). + cclleeaarr--ssccrreeeenn ((CC--ll)) + Clear the screen leaving the current line at the + top of the screen. With an argument, refresh the + current line without clearing the screen. + + + +GNU 1998 Feb 19 7 + + + + + +READLINE(3) READLINE(3) + + + rreeddrraaww--ccuurrrreenntt--lliinnee + Refresh the current line. + + CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy + aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn)) + Accept the line regardless of where the cursor is. + If this line is non-empty, add it to the history + list. If the line is a modified history line, then + restore the history line to its original state. + pprreevviioouuss--hhiissttoorryy ((CC--pp)) + Fetch the previous command from the history list, + moving back in the list. + nneexxtt--hhiissttoorryy ((CC--nn)) + Fetch the next command from the history list, mov- + ing forward in the list. + bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<)) + Move to the first line in the history. + eenndd--ooff--hhiissttoorryy ((MM-->>)) + Move to the end of the input history, i.e., the + line currently being entered. + rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr)) + Search backward starting at the current line and + moving `up' through the history as necessary. This + is an incremental search. + ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss)) + Search forward starting at the current line and + moving `down' through the history as necessary. + This is an incremental search. + nnoonn--iinnccrreemmeennttaall--rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((MM--pp)) + Search backward through the history starting at the + current line using a non-incremental search for a + string supplied by the user. + nnoonn--iinnccrreemmeennttaall--ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((MM--nn)) + Search forward through the history using a non- + incremental search for a string supplied by the + user. + hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd + Search forward through the history for the string + of characters between the start of the current line + and the current cursor position (the _p_o_i_n_t). This + is a non-incremental search. + hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd + Search backward through the history for the string + of characters between the start of the current line + and the point. This is a non-incremental search. + yyaannkk--nntthh--aarrgg ((MM--CC--yy)) + Insert the first argument to the previous command + (usually the second word on the previous line) at + point (the current cursor position). With an argu- + ment _n, insert the _nth word from the previous com- + mand (the words in the previous command begin with + word 0). A negative argument inserts the _nth word + from the end of the previous command. + + + + +GNU 1998 Feb 19 8 + + + + + +READLINE(3) READLINE(3) + + + yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__)) + Insert the last argument to the previous command + (the last word of the previous history entry). + With an argument, behave exactly like yyaannkk--nntthh--aarrgg. + Successive calls to yyaannkk--llaasstt--aarrgg move back through + the history list, inserting the last argument of + each line in turn. + + CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt + ddeelleettee--cchhaarr ((CC--dd)) + Delete the character under the cursor. If point is + at the beginning of the line, there are no charac- + ters in the line, and the last character typed was + not bound to BBddeelleettee--cchhaarr, then return EEOOFF. + bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt)) + Delete the character behind the cursor. When given + a numeric argument, save the deleted text on the + kill ring. + qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv)) + Add the next character that you type to the line + verbatim. This is how to insert characters like + CC--qq, for example. + ttaabb--iinnsseerrtt ((MM--TTAABB)) + Insert a tab character. + sseellff--iinnsseerrtt ((aa,, bb,, AA,, 11,, !!,, ......)) + Insert the character typed. + ttrraannssppoossee--cchhaarrss ((CC--tt)) + Drag the character before point forward over the + character at point. Point moves forward as well. + If point is at the end of the line, then transpose + the two characters before point. Negative argu- + ments don't work. + ttrraannssppoossee--wwoorrddss ((MM--tt)) + Drag the word behind the cursor past the word in + front of the cursor moving the cursor over that + word as well. + uuppccaassee--wwoorrdd ((MM--uu)) + Uppercase the current (or following) word. With a + negative argument, uppercase the previous word, but + do not move point. + ddoowwnnccaassee--wwoorrdd ((MM--ll)) + Lowercase the current (or following) word. With a + negative argument, lowercase the previous word, but + do not move point. + ccaappiittaalliizzee--wwoorrdd ((MM--cc)) + Capitalize the current (or following) word. With a + negative argument, capitalize the previous word, + but do not move point. + + KKiilllliinngg aanndd YYaannkkiinngg + kkiillll--lliinnee ((CC--kk)) + Kill the text from the current cursor position to + the end of the line. + + + + +GNU 1998 Feb 19 9 + + + + + +READLINE(3) READLINE(3) + + + bbaacckkwwaarrdd--kkiillll--lliinnee ((CC--xx RRuubboouutt)) + Kill backward to the beginning of the line. + uunniixx--lliinnee--ddiissccaarrdd ((CC--uu)) + Kill backward from point to the beginning of the + line. The killed text is saved on the kill-ring. + kkiillll--wwhhoollee--lliinnee + Kill all characters on the current line, no matter + where the cursor is. + kkiillll--wwoorrdd ((MM--dd)) + Kill from the cursor to the end of the current + word, or if between words, to the end of the next + word. Word boundaries are the same as those used + by ffoorrwwaarrdd--wwoorrdd. + bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt)) + Kill the word behind the cursor. Word boundaries + are the same as those used by bbaacckkwwaarrdd--wwoorrdd. + uunniixx--wwoorrdd--rruubboouutt ((CC--ww)) + Kill the word behind the cursor, using white space + as a word boundary. The word boundaries are dif- + ferent from bbaacckkwwaarrdd--kkiillll--wwoorrdd. + ddeelleettee--hhoorriizzoonnttaall--ssppaaccee ((MM--\\)) + Delete all spaces and tabs around point. + kkiillll--rreeggiioonn + Kill the text between the point and _m_a_r_k (saved + cursor position). This text is referred to as the + _r_e_g_i_o_n. + ccooppyy--rreeggiioonn--aass--kkiillll + Copy the text in the region to the kill buffer. + ccooppyy--bbaacckkwwaarrdd--wwoorrdd + Copy the word before point to the kill buffer. The + word boundaries are the same as bbaacckkwwaarrdd--wwoorrdd. + ccooppyy--ffoorrwwaarrdd--wwoorrdd + Copy the word following point to the kill buffer. + The word boundaries are the same as ffoorrwwaarrdd--wwoorrdd. + yyaannkk ((CC--yy)) + Yank the top of the kill ring into the buffer at + the cursor. + yyaannkk--ppoopp ((MM--yy)) + Rotate the kill ring, and yank the new top. Only + works following yyaannkk or yyaannkk--ppoopp. + + NNuummeerriicc AArrgguummeennttss + ddiiggiitt--aarrgguummeenntt ((MM--00,, MM--11,, ......,, MM----)) + Add this digit to the argument already accumulat- + ing, or start a new argument. M-- starts a nega- + tive argument. + uunniivveerrssaall--aarrgguummeenntt + This is another way to specify an argument. If + this command is followed by one or more digits, + optionally with a leading minus sign, those digits + define the argument. If the command is followed by + digits, executing uunniivveerrssaall--aarrgguummeenntt again ends the + numeric argument, but is otherwise ignored. As a + special case, if this command is immediately + + + +GNU 1998 Feb 19 10 + + + + + +READLINE(3) READLINE(3) + + + followed by a character that is neither a digit or + minus sign, the argument count for the next command + is multiplied by four. The argument count is ini- + tially one, so executing this function the first + time makes the argument count four, a second time + makes the argument count sixteen, and so on. + + CCoommpplleettiinngg + ccoommpplleettee ((TTAABB)) + Attempt to perform completion on the text before + point. The actual completion performed is applica- + tion-specific. BBaasshh, for instance, attempts com- + pletion treating the text as a variable (if the + text begins with $$), username (if the text begins + with ~~), hostname (if the text begins with @@), or + command (including aliases and functions) in turn. + If none of these produces a match, filename comple- + tion is attempted. GGddbb, on the other hand, allows + completion of program functions and variables, and + only attempts filename completion under certain + circumstances. + ppoossssiibbllee--ccoommpplleettiioonnss ((MM--??)) + List the possible completions of the text before + point. + iinnsseerrtt--ccoommpplleettiioonnss ((MM--**)) + Insert all completions of the text before point + that would have been generated by ppoossssiibbllee--ccoommppllee-- + ttiioonnss. + mmeennuu--ccoommpplleettee + Similar to ccoommpplleettee, but replaces the word to be + completed with a single match from the list of pos- + sible completions. Repeated execution of mmeennuu--ccoomm-- + pplleettee steps through the list of possible comple- + tions, inserting each match in turn. At the end of + the list of completions, the bell is rung and the + original text is restored. An argument of _n moves + _n positions forward in the list of matches; a nega- + tive argument may be used to move backward through + the list. This command is intended to be bound to + TTAABB, but is unbound by default. + + KKeeyybbooaarrdd MMaaccrrooss + ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (()) + Begin saving the characters typed into the current + keyboard macro. + eenndd--kkbbdd--mmaaccrroo ((CC--xx )))) + Stop saving the characters typed into the current + keyboard macro and store the definition. + ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee)) + Re-execute the last keyboard macro defined, by mak- + ing the characters in the macro appear as if typed + at the keyboard. + + + + + +GNU 1998 Feb 19 11 + + + + + +READLINE(3) READLINE(3) + + + MMiisscceellllaanneeoouuss + rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr)) + Read in the contents of the _i_n_p_u_t_r_c file, and + incorporate any bindings or variable assignments + found there. + aabboorrtt ((CC--gg)) + Abort the current editing command and ring the ter- + minal's bell (subject to the setting of + bbeellll--ssttyyllee). + ddoo--uuppppeerrccaassee--vveerrssiioonn ((MM--aa,, MM--bb,, MM--_x,, ......)) + If the metafied character _x is lowercase, run the + command that is bound to the corresponding upper- + case character. + pprreeffiixx--mmeettaa ((EESSCC)) + Metafy the next character typed. EESSCC ff is equiva- + lent to MMeettaa--ff. + uunnddoo ((CC--__,, CC--xx CC--uu)) + Incremental undo, separately remembered for each + line. + rreevveerrtt--lliinnee ((MM--rr)) + Undo all changes made to this line. This is like + executing the uunnddoo command enough times to return + the line to its initial state. + ttiillddee--eexxppaanndd ((MM--~~)) + Perform tilde expansion on the current word. + sseett--mmaarrkk ((CC--@@,, MM--<<ssppaaccee>>)) + Set the mark to the current point. If a numeric + argument is supplied, the mark is set to that posi- + tion. + eexxcchhaannggee--ppooiinntt--aanndd--mmaarrkk ((CC--xx CC--xx)) + Swap the point with the mark. The current cursor + position is set to the saved position, and the old + cursor position is saved as the mark. + cchhaarraacctteerr--sseeaarrcchh ((CC--]])) + A character is read and point is moved to the next + occurrence of that character. A negative count + searches for previous occurrences. + cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]])) + A character is read and point is moved to the pre- + vious occurrence of that character. A negative + count searches for subsequent occurrences. + iinnsseerrtt--ccoommmmeenntt ((MM--##)) + The value of the readline ccoommmmeenntt--bbeeggiinn variable is + inserted at the beginning of the current line, and + the line is accepted as if a newline had been + typed. This makes the current line a shell com- + ment. + dduummpp--ffuunnccttiioonnss + Print all of the functions and their key bindings + to the readline output stream. If a numeric argu- + ment is supplied, the output is formatted in such a + way that it can be made part of an _i_n_p_u_t_r_c file. + dduummpp--vvaarriiaabblleess + Print all of the settable variables and their + + + +GNU 1998 Feb 19 12 + + + + + +READLINE(3) READLINE(3) + + + values to the readline output stream. If a numeric + argument is supplied, the output is formatted in + such a way that it can be made part of an _i_n_p_u_t_r_c + file. + dduummpp--mmaaccrrooss + Print all of the readline key sequences bound to + macros and the strings they ouput. If a numeric + argument is supplied, the output is formatted in + such a way that it can be made part of an _i_n_p_u_t_r_c + file. + eemmaaccss--eeddiittiinngg--mmooddee ((CC--ee)) + When in vvii editing mode, this causes a switch to + eemmaaccss editing mode. + vvii--eeddiittiinngg--mmooddee ((MM--CC--jj)) + When in eemmaaccss editing mode, this causes a switch to + vvii editing mode. + +DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS + The following is a list of the default emacs and vi bind- + ings. Characters with the 8th bit set are written as + M-<character>, and are referred to as _m_e_t_a_f_i_e_d characters. + The printable ASCII characters not mentioned in the list + of emacs standard bindings are bound to the _s_e_l_f_-_i_n_s_e_r_t + function, which just inserts the given character into the + input line. In vi insertion mode, all characters not + specifically mentioned are bound to _s_e_l_f_-_i_n_s_e_r_t. Charac- + ters assigned to signal generation by _s_t_t_y(1) or the ter- + minal driver, such as C-Z or C-C, retain that function. + Upper and lower case _m_e_t_a_f_i_e_d characters are bound to the + same function in the emacs mode meta keymap. The remain- + ing characters are unbound, which causes readline to ring + the bell (subject to the setting of the bbeellll--ssttyyllee vari- + able). + + EEmmaaccss MMooddee + Emacs Standard bindings + + "C-@" set-mark + "C-A" beginning-of-line + "C-B" backward-char + "C-D" delete-char + "C-E" end-of-line + "C-F" forward-char + "C-G" abort + "C-H" backward-delete-char + "C-I" complete + "C-J" accept-line + "C-K" kill-line + "C-L" clear-screen + "C-M" accept-line + "C-N" next-history + "C-P" previous-history + "C-Q" quoted-insert + "C-R" reverse-search-history + + + +GNU 1998 Feb 19 13 + + + + + +READLINE(3) READLINE(3) + + + "C-S" forward-search-history + "C-T" transpose-chars + "C-U" unix-line-discard + "C-V" quoted-insert + "C-W" unix-word-rubout + "C-Y" yank + "C-]" character-search + "C-_" undo + " " to "/" self-insert + "0" to "9" self-insert + ":" to "~" self-insert + "C-?" backward-delete-char + + Emacs Meta bindings + + "M-C-G" abort + "M-C-H" backward-kill-word + "M-C-I" tab-insert + "M-C-J" vi-editing-mode + "M-C-M" vi-editing-mode + "M-C-R" revert-line + "M-C-Y" yank-nth-arg + "M-C-[" complete + "M-C-]" character-search-backward + "M-space" set-mark + "M-#" insert-comment + "M-&" tilde-expand + "M-*" insert-completions + "M--" digit-argument + "M-." yank-last-arg + "M-0" digit-argument + "M-1" digit-argument + "M-2" digit-argument + "M-3" digit-argument + "M-4" digit-argument + "M-5" digit-argument + "M-6" digit-argument + "M-7" digit-argument + "M-8" digit-argument + "M-9" digit-argument + "M-<" beginning-of-history + "M-=" possible-completions + "M->" end-of-history + "M-?" possible-completions + "M-B" backward-word + "M-C" capitalize-word + "M-D" kill-word + "M-F" forward-word + "M-L" downcase-word + "M-N" non-incremental-forward-search-history + "M-P" non-incremental-reverse-search-history + "M-R" revert-line + "M-T" transpose-words + "M-U" upcase-word + + + +GNU 1998 Feb 19 14 + + + + + +READLINE(3) READLINE(3) + + + "M-Y" yank-pop + "M-\" delete-horizontal-space + "M-~" tilde-expand + "M-C-?" backward-delete-word + "M-_" yank-last-arg + + Emacs Control-X bindings + + "C-XC-G" abort + "C-XC-R" re-read-init-file + "C-XC-U" undo + "C-XC-X" exchange-point-and-mark + "C-X(" start-kbd-macro + "C-X)" end-kbd-macro + "C-XE" call-last-kbd-macro + "C-XC-?" backward-kill-line + + + VVII MMooddee bbiinnddiinnggss + VI Insert Mode functions + + "C-D" vi-eof-maybe + "C-H" backward-delete-char + "C-I" complete + "C-J" accept-line + "C-M" accept-line + "C-R" reverse-search-history + "C-S" forward-search-history + "C-T" transpose-chars + "C-U" unix-line-discard + "C-V" quoted-insert + "C-W" unix-word-rubout + "C-Y" yank + "C-[" vi-movement-mode + "C-_" undo + " " to "~" self-insert + "C-?" backward-delete-char + + VI Command Mode functions + + "C-D" vi-eof-maybe + "C-E" emacs-editing-mode + "C-G" abort + "C-H" backward-char + "C-J" accept-line + "C-K" kill-line + "C-L" clear-screen + "C-M" accept-line + "C-N" next-history + "C-P" previous-history + "C-Q" quoted-insert + "C-R" reverse-search-history + "C-S" forward-search-history + "C-T" transpose-chars + + + +GNU 1998 Feb 19 15 + + + + + +READLINE(3) READLINE(3) + + + "C-U" unix-line-discard + "C-V" quoted-insert + "C-W" unix-word-rubout + "C-Y" yank + " " forward-char + "#" insert-comment + "$" end-of-line + "%" vi-match + "&" vi-tilde-expand + "*" vi-complete + "+" next-history + "," vi-char-search + "-" previous-history + "." vi-redo + "/" vi-search + "0" beginning-of-line + "1" to "9" vi-arg-digit + ";" vi-char-search + "=" vi-complete + "?" vi-search + "A" vi-append-eol + "B" vi-prev-word + "C" vi-change-to + "D" vi-delete-to + "E" vi-end-word + "F" vi-char-search + "G" vi-fetch-history + "I" vi-insert-beg + "N" vi-search-again + "P" vi-put + "R" vi-replace + "S" vi-subst + "T" vi-char-search + "U" revert-line + "W" vi-next-word + "X" backward-delete-char + "Y" vi-yank-to + "\" vi-complete + "^" vi-first-print + "_" vi-yank-arg + "`" vi-goto-mark + "a" vi-append-mode + "b" vi-prev-word + "c" vi-change-to + "d" vi-delete-to + "e" vi-end-word + "f" vi-char-search + "h" backward-char + "i" vi-insertion-mode + "j" next-history + "k" prev-history + "l" forward-char + "m" vi-set-mark + "n" vi-search-again + + + +GNU 1998 Feb 19 16 + + + + + +READLINE(3) READLINE(3) + + + "p" vi-put + "r" vi-change-char + "s" vi-subst + "t" vi-char-search + "u" undo + "w" vi-next-word + "x" vi-delete + "y" vi-yank-to + "|" vi-column + "~" vi-change-case + +SSEEEE AALLSSOO + _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey + _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey + _b_a_s_h(1) + +FFIILLEESS + _~_/_._i_n_p_u_t_r_c + Individual rreeaaddlliinnee initialization file + +AAUUTTHHOORRSS + Brian Fox, Free Software Foundation (primary author) + bfox@ai.MIT.Edu + + Chet Ramey, Case Western Reserve University + chet@ins.CWRU.Edu + +BBUUGG RREEPPOORRTTSS + If you find a bug in rreeaaddlliinnee,, you should report it. But + first, you should make sure that it really is a bug, and + that it appears in the latest version of the rreeaaddlliinnee + library that you have. + + Once you have determined that a bug actually exists, mail + a bug report to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix, + you are welcome to mail that as well! Suggestions and + `philosophical' bug reports may be mailed to _b_u_g_-_r_e_a_d_- + _l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup + ggnnuu..bbaasshh..bbuugg. + + Comments and bug reports concerning this manual page + should be directed to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u. + +BBUUGGSS + It's too big and too slow. + + + + + + + + + + + + +GNU 1998 Feb 19 17 + + diff --git a/readline/doc/readline.dvi b/readline/doc/readline.dvi Binary files differnew file mode 100644 index 0000000..d8491dc --- /dev/null +++ b/readline/doc/readline.dvi diff --git a/readline/doc/readline.html b/readline/doc/readline.html new file mode 100644 index 0000000..c708eb0 --- /dev/null +++ b/readline/doc/readline.html @@ -0,0 +1,3482 @@ +<HTML> +<HEAD> +<!-- This HTML file has been created by texi2html 1.51 + from /usr/homes/chet/src/bash/readline-2.2/doc/rlman.texinfo on 2 April 1998 --> + +<TITLE>GNU Readline Library</TITLE> +</HEAD> +<BODY> +<H1>GNU Readline Library</H1> +<H2>Edition 2.2, for <CODE>Readline Library</CODE> Version 2.1.</H2> +<H2>September 1997</H2> +<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS> +<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS> +<P> +<P><HR><P> + +<P> +@dircategory Libraries +@direntry +* Readline: (readline). The GNU readline library API + +</P> + +<P> +This document describes the GNU Readline Library, a utility which aids +in the consistency of user interface across discrete programs that need +to provide a command line interface. + +</P> +<P> +Published by the Free Software Foundation <BR> +675 Massachusetts Avenue, <BR> +Cambridge, MA 02139 USA + +</P> +<P> +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +</P> +<P> +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. + +</P> +<P> +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation approved +by the Foundation. + +</P> +<P> +Copyright (C) 1989, 1991 Free Software Foundation, Inc. + +</P> + + + +<H1><A NAME="SEC1" HREF="readline_toc.html#TOC1">Command Line Editing</A></H1> + +<P> +This chapter describes the basic features of the GNU +command line editing interface. + +</P> + + + +<H2><A NAME="SEC2" HREF="readline_toc.html#TOC2">Introduction to Line Editing</A></H2> + +<P> +The following paragraphs describe the notation used to represent +keystrokes. + +</P> +<P> +The text <KBD>C-k</KBD> is read as `Control-K' and describes the character +produced when the <KBD>k</KBD> key is pressed while the Control key +is depressed. + +</P> +<P> +The text <KBD>M-k</KBD> is read as `Meta-K' and describes the character +produced when the meta key (if you have one) is depressed, and the <KBD>k</KBD> +key is pressed. If you do not have a meta key, the identical keystroke +can be generated by typing <KBD>ESC</KBD> <I>first</I>, and then typing <KBD>k</KBD>. +Either process is known as <STRONG>metafying</STRONG> the <KBD>k</KBD> key. + +</P> +<P> +The text <KBD>M-C-k</KBD> is read as `Meta-Control-k' and describes the +character produced by <STRONG>metafying</STRONG> <KBD>C-k</KBD>. + +</P> +<P> +In addition, several keys have their own names. Specifically, +<KBD>DEL</KBD>, <KBD>ESC</KBD>, <KBD>LFD</KBD>, <KBD>SPC</KBD>, <KBD>RET</KBD>, and <KBD>TAB</KBD> all +stand for themselves when seen in this text, or in an init file +(@xref{Readline Init File}). + +</P> + + +<H2><A NAME="SEC3" HREF="readline_toc.html#TOC3">Readline Interaction</A></H2> +<P> +<A NAME="IDX1"></A> + +</P> +<P> +Often during an interactive session you type in a long line of text, +only to notice that the first word on the line is misspelled. The +Readline library gives you a set of commands for manipulating the text +as you type it in, allowing you to just fix your typo, and not forcing +you to retype the majority of the line. Using these editing commands, +you move the cursor to the place that needs correction, and delete or +insert the text of the corrections. Then, when you are satisfied with +the line, you simply press <KBD>RETURN</KBD>. You do not have to be at the +end of the line to press <KBD>RETURN</KBD>; the entire line is accepted +regardless of the location of the cursor within the line. + +</P> + + + +<H3><A NAME="SEC4" HREF="readline_toc.html#TOC4">Readline Init File Syntax</A></H3> + +<P> +There are only a few basic constructs allowed in the +Readline init file. Blank lines are ignored. +Lines beginning with a <SAMP>`#'</SAMP> are comments. +Lines beginning with a <SAMP>`$'</SAMP> indicate conditional +constructs (see section <A HREF="readline.html#SEC5">Conditional Init Constructs</A>). Other lines +denote variable settings and key bindings. + +</P> +<DL COMPACT> + +<DT>Variable Settings +<DD> +You can modify the run-time behavior of Readline by +altering the values of variables in Readline +using the <CODE>set</CODE> command within the init file. Here is how to +change from the default Emacs-like key binding to use +<CODE>vi</CODE> line editing commands: + + +<PRE> +set editing-mode vi +</PRE> + +A great deal of run-time behavior is changeable with the following +variables. + +<DL COMPACT> + +<DT><CODE>bell-style</CODE> +<DD> +<A NAME="IDX2"></A> +Controls what happens when Readline wants to ring the terminal bell. +If set to <SAMP>`none'</SAMP>, Readline never rings the bell. If set to +<SAMP>`visible'</SAMP>, Readline uses a visible bell if one is available. +If set to <SAMP>`audible'</SAMP> (the default), Readline attempts to ring +the terminal's bell. + +<DT><CODE>comment-begin</CODE> +<DD> +<A NAME="IDX3"></A> +The string to insert at the beginning of the line when the +<CODE>insert-comment</CODE> command is executed. The default value +is <CODE>"#"</CODE>. + +<DT><CODE>completion-ignore-case</CODE> +<DD> +If set to <SAMP>`on'</SAMP>, Readline performs filename matching and completion +in a case-insensitive fashion. +The default value is <SAMP>`off'</SAMP>. + +<DT><CODE>completion-query-items</CODE> +<DD> +<A NAME="IDX4"></A> +The number of possible completions that determines when the user is +asked whether he wants to see the list of possibilities. If the +number of possible completions is greater than this value, +Readline will ask the user whether or not he wishes to view +them; otherwise, they are simply listed. The default limit is +<CODE>100</CODE>. + +<DT><CODE>convert-meta</CODE> +<DD> +<A NAME="IDX5"></A> +If set to <SAMP>`on'</SAMP>, Readline will convert characters with the +eighth bit set to an ASCII key sequence by stripping the eighth +bit and prepending an <KBD>ESC</KBD> character, converting them to a +meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>. + +<DT><CODE>disable-completion</CODE> +<DD> +<A NAME="IDX6"></A> +If set to <SAMP>`On'</SAMP>, Readline will inhibit word completion. +Completion characters will be inserted into the line as if they had +been mapped to <CODE>self-insert</CODE>. The default is <SAMP>`off'</SAMP>. + +<DT><CODE>editing-mode</CODE> +<DD> +<A NAME="IDX7"></A> +The <CODE>editing-mode</CODE> variable controls which default set of +key bindings is used. By default, Readline starts up in Emacs editing +mode, where the keystrokes are most similar to Emacs. This variable can be +set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>. + +<DT><CODE>enable-keypad</CODE> +<DD> +<A NAME="IDX8"></A> +When set to <SAMP>`on'</SAMP>, Readline will try to enable the application +keypad when it is called. Some systems need this to enable the +arrow keys. The default is <SAMP>`off'</SAMP>. + +<DT><CODE>expand-tilde</CODE> +<DD> +<A NAME="IDX9"></A> +If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline +attempts word completion. The default is <SAMP>`off'</SAMP>. + +<DT><CODE>horizontal-scroll-mode</CODE> +<DD> +<A NAME="IDX10"></A> +This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>. Setting it +to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll +horizontally on a single screen line when they are longer than the width +of the screen, instead of wrapping onto a new screen line. By default, +this variable is set to <SAMP>`off'</SAMP>. + +<DT><CODE>keymap</CODE> +<DD> +<A NAME="IDX11"></A> +Sets Readline's idea of the current keymap for key binding commands. +Acceptable <CODE>keymap</CODE> names are +<CODE>emacs</CODE>, +<CODE>emacs-standard</CODE>, +<CODE>emacs-meta</CODE>, +<CODE>emacs-ctlx</CODE>, +<CODE>vi</CODE>, +<CODE>vi-command</CODE>, and +<CODE>vi-insert</CODE>. +<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE>; <CODE>emacs</CODE> is +equivalent to <CODE>emacs-standard</CODE>. The default value is <CODE>emacs</CODE>. +The value of the <CODE>editing-mode</CODE> variable also affects the +default keymap. + +<DT><CODE>mark-directories</CODE> +<DD> +If set to <SAMP>`on'</SAMP>, completed directory names have a slash +appended. The default is <SAMP>`on'</SAMP>. + +<DT><CODE>mark-modified-lines</CODE> +<DD> +<A NAME="IDX12"></A> +This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an +asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified. +This variable is <SAMP>`off'</SAMP> by default. + +<DT><CODE>input-meta</CODE> +<DD> +<A NAME="IDX13"></A> +<A NAME="IDX14"></A> +If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it +will not strip the eighth bit from the characters it reads), +regardless of what the terminal claims it can support. The +default value is <SAMP>`off'</SAMP>. The name <CODE>meta-flag</CODE> is a +synonym for this variable. + +<DT><CODE>output-meta</CODE> +<DD> +<A NAME="IDX15"></A> +If set to <SAMP>`on'</SAMP>, Readline will display characters with the +eighth bit set directly rather than as a meta-prefixed escape +sequence. The default is <SAMP>`off'</SAMP>. + +<DT><CODE>print-completions-horizontally</CODE> +<DD> +If set to <SAMP>`on'</SAMP>, Readline will display completions with matches +sorted horizontally in alphabetical order, rather than down the screen. +The default is <SAMP>`off'</SAMP>. + +<DT><CODE>show-all-if-ambiguous</CODE> +<DD> +<A NAME="IDX16"></A> +This alters the default behavior of the completion functions. If +set to <SAMP>`on'</SAMP>, +words which have more than one possible completion cause the +matches to be listed immediately instead of ringing the bell. +The default value is <SAMP>`off'</SAMP>. + +<DT><CODE>visible-stats</CODE> +<DD> +<A NAME="IDX17"></A> +If set to <SAMP>`on'</SAMP>, a character denoting a file's type +is appended to the filename when listing possible +completions. The default is <SAMP>`off'</SAMP>. + +</DL> + +<DT>Key Bindings +<DD> +The syntax for controlling key bindings in the init file is +simple. First you have to know the name of the command that you +want to change. The following sections contain tables of the command +name, the default keybinding, if any, and a short description of what +the command does. + +Once you know the name of the command, simply place the name of the key +you wish to bind the command to, a colon, and then the name of the +command on a line in the init file. The name of the key +can be expressed in different ways, depending on which is most +comfortable for you. + +<DL COMPACT> + +<DT><VAR>keyname</VAR>: <VAR>function-name</VAR> or <VAR>macro</VAR> +<DD> +<VAR>keyname</VAR> is the name of a key spelled out in English. For example: + +<PRE> +Control-u: universal-argument +Meta-Rubout: backward-kill-word +Control-o: "> output" +</PRE> + +In the above example, <KBD>C-u</KBD> is bound to the function +<CODE>universal-argument</CODE>, and <KBD>C-o</KBD> is bound to run the macro +expressed on the right hand side (that is, to insert the text +<SAMP>`> output'</SAMP> into the line). + +<DT>"<VAR>keyseq</VAR>": <VAR>function-name</VAR> or <VAR>macro</VAR> +<DD> +<VAR>keyseq</VAR> differs from <VAR>keyname</VAR> above in that strings +denoting an entire key sequence can be specified, by placing +the key sequence in double quotes. Some GNU Emacs style key +escapes can be used, as in the following example, but the +special character names are not recognized. + + +<PRE> +"\C-u": universal-argument +"\C-x\C-r": re-read-init-file +"\e[11~": "Function Key 1" +</PRE> + +In the above example, <KBD>C-u</KBD> is bound to the function +<CODE>universal-argument</CODE> (just as it was in the first example), +<SAMP>`<KBD>C-x</KBD> <KBD>C-r</KBD>'</SAMP> is bound to the function <CODE>re-read-init-file</CODE>, +and <SAMP>`<KBD>ESC</KBD> <KBD>[</KBD> <KBD>1</KBD> <KBD>1</KBD> <KBD>~</KBD>'</SAMP> is bound to insert +the text <SAMP>`Function Key 1'</SAMP>. + +</DL> + +The following GNU Emacs style escape sequences are available when +specifying key sequences: + +<DL COMPACT> + +<DT><CODE><KBD>\C-</KBD></CODE> +<DD> +control prefix +<DT><CODE><KBD>\M-</KBD></CODE> +<DD> +meta prefix +<DT><CODE><KBD>\e</KBD></CODE> +<DD> +an escape character +<DT><CODE><KBD>\\</KBD></CODE> +<DD> +backslash +<DT><CODE><KBD>\"</KBD></CODE> +<DD> +<KBD>"</KBD> +<DT><CODE><KBD>\'</KBD></CODE> +<DD> +<KBD>'</KBD> +</DL> + +In addition to the GNU Emacs style escape sequences, a second +set of backslash escapes is available: + +<DL COMPACT> + +<DT><CODE>\a</CODE> +<DD> +alert (bell) +<DT><CODE>\b</CODE> +<DD> +backspace +<DT><CODE>\d</CODE> +<DD> +delete +<DT><CODE>\f</CODE> +<DD> +form feed +<DT><CODE>\n</CODE> +<DD> +newline +<DT><CODE>\r</CODE> +<DD> +carriage return +<DT><CODE>\t</CODE> +<DD> +horizontal tab +<DT><CODE>\v</CODE> +<DD> +vertical tab +<DT><CODE>\<VAR>nnn</VAR></CODE> +<DD> +the character whose ASCII code is the octal value <VAR>nnn</VAR> +(one to three digits) +<DT><CODE>\x<VAR>nnn</VAR></CODE> +<DD> +the character whose ASCII code is the hexadecimal value <VAR>nnn</VAR> +(one to three digits) +</DL> + +When entering the text of a macro, single or double quotes must +be used to indicate a macro definition. +Unquoted text is assumed to be a function name. +In the macro body, the backslash escapes described above are expanded. +Backslash will quote any other character in the macro text, +including <SAMP>`"'</SAMP> and <SAMP>`''</SAMP>. +For example, the following binding will make <SAMP>`C-x \'</SAMP> +insert a single <SAMP>`\'</SAMP> into the line: + +<PRE> +"\C-x\\": "\\" +</PRE> + +</DL> + + + +<H3><A NAME="SEC5" HREF="readline_toc.html#TOC5">Conditional Init Constructs</A></H3> + +<P> +Readline implements a facility similar in spirit to the conditional +compilation features of the C preprocessor which allows key +bindings and variable settings to be performed as the result +of tests. There are four parser directives used. + +</P> +<DL COMPACT> + +<DT><CODE>$if</CODE> +<DD> +The <CODE>$if</CODE> construct allows bindings to be made based on the +editing mode, the terminal being used, or the application using +Readline. The text of the test extends to the end of the line; +no characters are required to isolate it. + +<DL COMPACT> + +<DT><CODE>mode</CODE> +<DD> +The <CODE>mode=</CODE> form of the <CODE>$if</CODE> directive is used to test +whether Readline is in <CODE>emacs</CODE> or <CODE>vi</CODE> mode. +This may be used in conjunction +with the <SAMP>`set keymap'</SAMP> command, for instance, to set bindings in +the <CODE>emacs-standard</CODE> and <CODE>emacs-ctlx</CODE> keymaps only if +Readline is starting out in <CODE>emacs</CODE> mode. + +<DT><CODE>term</CODE> +<DD> +The <CODE>term=</CODE> form may be used to include terminal-specific +key bindings, perhaps to bind the key sequences output by the +terminal's function keys. The word on the right side of the +<SAMP>`='</SAMP> is tested against both the full name of the terminal and +the portion of the terminal name before the first <SAMP>`-'</SAMP>. This +allows <CODE>sun</CODE> to match both <CODE>sun</CODE> and <CODE>sun-cmd</CODE>, +for instance. + +<DT><CODE>application</CODE> +<DD> +The <VAR>application</VAR> construct is used to include +application-specific settings. Each program using the Readline +library sets the <VAR>application name</VAR>, and you can test for it. +This could be used to bind key sequences to functions useful for +a specific program. For instance, the following command adds a +key sequence that quotes the current or previous word in Bash: + +<PRE> +$if Bash +# Quote the current or previous word +"\C-xq": "\eb\"\ef\"" +$endif +</PRE> + +</DL> + +<DT><CODE>$endif</CODE> +<DD> +This command, as seen in the previous example, terminates an +<CODE>$if</CODE> command. + +<DT><CODE>$else</CODE> +<DD> +Commands in this branch of the <CODE>$if</CODE> directive are executed if +the test fails. + +<DT><CODE>$include</CODE> +<DD> +This directive takes a single filename as an argument and reads commands +and bindings from that file. + +<PRE> +$include /etc/inputrc +</PRE> + +</DL> + + + +<H3><A NAME="SEC6" HREF="readline_toc.html#TOC6">Sample Init File</A></H3> + +<P> +Here is an example of an inputrc file. This illustrates key +binding, variable assignment, and conditional syntax. + +</P> + +<PRE> +# This file controls the behaviour of line input editing for +# programs that use the Gnu Readline library. Existing programs +# include FTP, Bash, and Gdb. +# +# You can re-read the inputrc file with C-x C-r. +# Lines beginning with '#' are comments. +# +# First, include any systemwide bindings and variable assignments from +# /etc/Inputrc +$include /etc/Inputrc + +# +# Set various bindings for emacs mode. + +set editing-mode emacs + +$if mode=emacs + +Meta-Control-h: backward-kill-word Text after the function name is ignored + +# +# Arrow keys in keypad mode +# +#"\M-OD": backward-char +#"\M-OC": forward-char +#"\M-OA": previous-history +#"\M-OB": next-history +# +# Arrow keys in ANSI mode +# +"\M-[D": backward-char +"\M-[C": forward-char +"\M-[A": previous-history +"\M-[B": next-history +# +# Arrow keys in 8 bit keypad mode +# +#"\M-\C-OD": backward-char +#"\M-\C-OC": forward-char +#"\M-\C-OA": previous-history +#"\M-\C-OB": next-history +# +# Arrow keys in 8 bit ANSI mode +# +#"\M-\C-[D": backward-char +#"\M-\C-[C": forward-char +#"\M-\C-[A": previous-history +#"\M-\C-[B": next-history + +C-q: quoted-insert + +$endif + +# An old-style binding. This happens to be the default. +TAB: complete + +# Macros that are convenient for shell interaction +$if Bash +# edit the path +"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f" +# prepare to type a quoted word -- insert open and close double quotes +# and move to just after the open quote +"\C-x\"": "\"\"\C-b" +# insert a backslash (testing backslash escapes in sequences and macros) +"\C-x\\": "\\" +# Quote the current or previous word +"\C-xq": "\eb\"\ef\"" +# Add a binding to refresh the line, which is unbound +"\C-xr": redraw-current-line +# Edit variable on current line. +"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y=" +$endif + +# use a visible bell if one is available +set bell-style visible + +# don't strip characters to 7 bits when reading +set input-meta on + +# allow iso-latin1 characters to be inserted rather than converted to +# prefix-meta sequences +set convert-meta off + +# display characters with the eighth bit set directly rather than +# as meta-prefixed characters +set output-meta on + +# if there are more than 150 possible completions for a word, ask the +# user if he wants to see all of them +set completion-query-items 150 + +# For FTP +$if Ftp +"\C-xg": "get \M-?" +"\C-xt": "put \M-?" +"\M-.": yank-last-arg +$endif +</PRE> + + + +<H2><A NAME="SEC7" HREF="readline_toc.html#TOC7">Bindable Readline Commands</A></H2> + +<P> +This section describes Readline commands that may be bound to key +sequences. + +</P> + + +<H3><A NAME="SEC8" HREF="readline_toc.html#TOC8">Commands For Moving</A></H3> +<DL COMPACT> + +<DT><CODE>beginning-of-line (C-a)</CODE> +<DD> +<A NAME="IDX18"></A> +Move to the start of the current line. + +<DT><CODE>end-of-line (C-e)</CODE> +<DD> +<A NAME="IDX19"></A> +Move to the end of the line. + +<DT><CODE>forward-char (C-f)</CODE> +<DD> +<A NAME="IDX20"></A> +Move forward a character. + +<DT><CODE>backward-char (C-b)</CODE> +<DD> +<A NAME="IDX21"></A> +Move back a character. + +<DT><CODE>forward-word (M-f)</CODE> +<DD> +<A NAME="IDX22"></A> +Move forward to the end of the next word. Words are composed of +letters and digits. + +<DT><CODE>backward-word (M-b)</CODE> +<DD> +<A NAME="IDX23"></A> +Move back to the start of this, or the previous, word. Words are +composed of letters and digits. + +<DT><CODE>clear-screen (C-l)</CODE> +<DD> +<A NAME="IDX24"></A> +Clear the screen and redraw the current line, +leaving the current line at the top of the screen. + +<DT><CODE>redraw-current-line ()</CODE> +<DD> +<A NAME="IDX25"></A> +Refresh the current line. By default, this is unbound. + +</DL> + + + +<H3><A NAME="SEC9" HREF="readline_toc.html#TOC9">Commands For Manipulating The History</A></H3> + +<DL COMPACT> + +<DT><CODE>accept-line (Newline, Return)</CODE> +<DD> +<A NAME="IDX26"></A> +Accept the line regardless of where the cursor is. If this line is +non-empty, add it to the history list. If this line was a history +line, then restore the history line to its original state. + +<DT><CODE>previous-history (C-p)</CODE> +<DD> +<A NAME="IDX27"></A> +Move `up' through the history list. + +<DT><CODE>next-history (C-n)</CODE> +<DD> +<A NAME="IDX28"></A> +Move `down' through the history list. + +<DT><CODE>beginning-of-history (M-<)</CODE> +<DD> +<A NAME="IDX29"></A> +Move to the first line in the history. + +<DT><CODE>end-of-history (M->)</CODE> +<DD> +<A NAME="IDX30"></A> +Move to the end of the input history, i.e., the line currently +being entered. + +<DT><CODE>reverse-search-history (C-r)</CODE> +<DD> +<A NAME="IDX31"></A> +Search backward starting at the current line and moving `up' through +the history as necessary. This is an incremental search. + +<DT><CODE>forward-search-history (C-s)</CODE> +<DD> +<A NAME="IDX32"></A> +Search forward starting at the current line and moving `down' through +the the history as necessary. This is an incremental search. + +<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE> +<DD> +<A NAME="IDX33"></A> +Search backward starting at the current line and moving `up' +through the history as necessary using a non-incremental search +for a string supplied by the user. + +<DT><CODE>non-incremental-forward-search-history (M-n)</CODE> +<DD> +<A NAME="IDX34"></A> +Search forward starting at the current line and moving `down' +through the the history as necessary using a non-incremental search +for a string supplied by the user. + +<DT><CODE>history-search-forward ()</CODE> +<DD> +<A NAME="IDX35"></A> +Search forward through the history for the string of characters +between the start of the current line and the current cursor +position (the <VAR>point</VAR>). This is a non-incremental search. By +default, this command is unbound. + +<DT><CODE>history-search-backward ()</CODE> +<DD> +<A NAME="IDX36"></A> +Search backward through the history for the string of characters +between the start of the current line and the point. This +is a non-incremental search. By default, this command is unbound. + +<DT><CODE>yank-nth-arg (M-C-y)</CODE> +<DD> +<A NAME="IDX37"></A> +Insert the first argument to the previous command (usually +the second word on the previous line). With an argument <VAR>n</VAR>, +insert the <VAR>n</VAR>th word from the previous command (the words +in the previous command begin with word 0). A negative argument +inserts the <VAR>n</VAR>th word from the end of the previous command. + +<DT><CODE>yank-last-arg (M-., M-_)</CODE> +<DD> +<A NAME="IDX38"></A> +Insert last argument to the previous command (the last word of the +previous history entry). With an +argument, behave exactly like <CODE>yank-nth-arg</CODE>. +Successive calls to <CODE>yank-last-arg</CODE> move back through the history +list, inserting the last argument of each line in turn. + +</DL> + + + +<H3><A NAME="SEC10" HREF="readline_toc.html#TOC10">Commands For Changing Text</A></H3> + +<DL COMPACT> + +<DT><CODE>delete-char (C-d)</CODE> +<DD> +<A NAME="IDX39"></A> +Delete the character under the cursor. If the cursor is at the +beginning of the line, there are no characters in the line, and +the last character typed was not bound to <CODE>delete-char</CODE>, then +return <CODE>EOF</CODE>. + +<DT><CODE>backward-delete-char (Rubout)</CODE> +<DD> +<A NAME="IDX40"></A> +Delete the character behind the cursor. A numeric argument means +to kill the characters instead of deleting them. + +<DT><CODE>quoted-insert (C-q, C-v)</CODE> +<DD> +<A NAME="IDX41"></A> +Add the next character typed to the line verbatim. This is +how to insert key sequences like <KBD>C-q</KBD>, for example. + +<DT><CODE>tab-insert (M-TAB)</CODE> +<DD> +<A NAME="IDX42"></A> +Insert a tab character. + +<DT><CODE>self-insert (a, b, A, 1, !, ...)</CODE> +<DD> +<A NAME="IDX43"></A> +Insert yourself. + +<DT><CODE>transpose-chars (C-t)</CODE> +<DD> +<A NAME="IDX44"></A> +Drag the character before the cursor forward over +the character at the cursor, moving the +cursor forward as well. If the insertion point +is at the end of the line, then this +transposes the last two characters of the line. +Negative arguments don't work. + +<DT><CODE>transpose-words (M-t)</CODE> +<DD> +<A NAME="IDX45"></A> +Drag the word behind the cursor past the word in front of the cursor +moving the cursor over that word as well. + +<DT><CODE>upcase-word (M-u)</CODE> +<DD> +<A NAME="IDX46"></A> +Uppercase the current (or following) word. With a negative argument, +uppercase the previous word, but do not move the cursor. + +<DT><CODE>downcase-word (M-l)</CODE> +<DD> +<A NAME="IDX47"></A> +Lowercase the current (or following) word. With a negative argument, +lowercase the previous word, but do not move the cursor. + +<DT><CODE>capitalize-word (M-c)</CODE> +<DD> +<A NAME="IDX48"></A> +Capitalize the current (or following) word. With a negative argument, +capitalize the previous word, but do not move the cursor. + +</DL> + + + +<H3><A NAME="SEC11" HREF="readline_toc.html#TOC11">Killing And Yanking</A></H3> + +<DL COMPACT> + +<DT><CODE>kill-line (C-k)</CODE> +<DD> +<A NAME="IDX49"></A> +Kill the text from the current cursor position to the end of the line. + +<DT><CODE>backward-kill-line (C-x Rubout)</CODE> +<DD> +<A NAME="IDX50"></A> +Kill backward to the beginning of the line. + +<DT><CODE>unix-line-discard (C-u)</CODE> +<DD> +<A NAME="IDX51"></A> +Kill backward from the cursor to the beginning of the current line. +The killed text is saved on the kill-ring. + +<DT><CODE>kill-whole-line ()</CODE> +<DD> +<A NAME="IDX52"></A> +Kill all characters on the current line, no matter where the +cursor is. By default, this is unbound. + +<DT><CODE>kill-word (M-d)</CODE> +<DD> +<A NAME="IDX53"></A> +Kill from the cursor to the end of the current word, or if between +words, to the end of the next word. Word boundaries are the same +as <CODE>forward-word</CODE>. + +<DT><CODE>backward-kill-word (M-DEL)</CODE> +<DD> +<A NAME="IDX54"></A> +Kill the word behind the cursor. Word boundaries are the same +as <CODE>backward-word</CODE>. + +<DT><CODE>unix-word-rubout (C-w)</CODE> +<DD> +<A NAME="IDX55"></A> +Kill the word behind the cursor, using white space as a word +boundary. The killed text is saved on the kill-ring. + +<DT><CODE>delete-horizontal-space ()</CODE> +<DD> +<A NAME="IDX56"></A> +Delete all spaces and tabs around point. By default, this is unbound. + +<DT><CODE>kill-region ()</CODE> +<DD> +<A NAME="IDX57"></A> +Kill the text between the point and the <EM>mark</EM> (saved +cursor position). This text is referred to as the <VAR>region</VAR>. +By default, this command is unbound. + +<DT><CODE>copy-region-as-kill ()</CODE> +<DD> +<A NAME="IDX58"></A> +Copy the text in the region to the kill buffer, so it can be yanked +right away. By default, this command is unbound. + +<DT><CODE>copy-backward-word ()</CODE> +<DD> +<A NAME="IDX59"></A> +Copy the word before point to the kill buffer. +The word boundaries are the same as <CODE>backward-word</CODE>. +By default, this command is unbound. + +<DT><CODE>copy-forward-word ()</CODE> +<DD> +<A NAME="IDX60"></A> +Copy the word following point to the kill buffer. +The word boundaries are the same as <CODE>forward-word</CODE>. +By default, this command is unbound. + +<DT><CODE>yank (C-y)</CODE> +<DD> +<A NAME="IDX61"></A> +Yank the top of the kill ring into the buffer at the current +cursor position. + +<DT><CODE>yank-pop (M-y)</CODE> +<DD> +<A NAME="IDX62"></A> +Rotate the kill-ring, and yank the new top. You can only do this if +the prior command is yank or yank-pop. +</DL> + + + +<H3><A NAME="SEC12" HREF="readline_toc.html#TOC12">Specifying Numeric Arguments</A></H3> +<DL COMPACT> + +<DT><CODE>digit-argument (M-0, M-1, ... M--)</CODE> +<DD> +<A NAME="IDX63"></A> +Add this digit to the argument already accumulating, or start a new +argument. <KBD>M--</KBD> starts a negative argument. + +<DT><CODE>universal-argument ()</CODE> +<DD> +<A NAME="IDX64"></A> +This is another way to specify an argument. +If this command is followed by one or more digits, optionally with a +leading minus sign, those digits define the argument. +If the command is followed by digits, executing <CODE>universal-argument</CODE> +again ends the numeric argument, but is otherwise ignored. +As a special case, if this command is immediately followed by a +character that is neither a digit or minus sign, the argument count +for the next command is multiplied by four. +The argument count is initially one, so executing this function the +first time makes the argument count four, a second time makes the +argument count sixteen, and so on. +By default, this is not bound to a key. +</DL> + + + +<H3><A NAME="SEC13" HREF="readline_toc.html#TOC13">Letting Readline Type For You</A></H3> + +<DL COMPACT> + +<DT><CODE>complete (TAB)</CODE> +<DD> +<A NAME="IDX65"></A> +Attempt to do completion on the text before the cursor. This is +application-specific. Generally, if you are typing a filename +argument, you can do filename completion; if you are typing a command, +you can do command completion; if you are typing in a symbol to GDB, you +can do symbol name completion; if you are typing in a variable to Bash, +you can do variable name completion, and so on. + +<DT><CODE>possible-completions (M-?)</CODE> +<DD> +<A NAME="IDX66"></A> +List the possible completions of the text before the cursor. + +<DT><CODE>insert-completions (M-*)</CODE> +<DD> +<A NAME="IDX67"></A> +Insert all completions of the text before point that would have +been generated by <CODE>possible-completions</CODE>. + +<DT><CODE>menu-complete ()</CODE> +<DD> +<A NAME="IDX68"></A> +Similar to <CODE>complete</CODE>, but replaces the word to be completed +with a single match from the list of possible completions. +Repeated execution of <CODE>menu-complete</CODE> steps through the list +of possible completions, inserting each match in turn. +At the end of the list of completions, the bell is rung and the +original text is restored. +An argument of <VAR>n</VAR> moves <VAR>n</VAR> positions forward in the list +of matches; a negative argument may be used to move backward +through the list. +This command is intended to be bound to <CODE>TAB</CODE>, but is unbound +by default. + +</DL> + + + +<H3><A NAME="SEC14" HREF="readline_toc.html#TOC14">Keyboard Macros</A></H3> +<DL COMPACT> + +<DT><CODE>start-kbd-macro (C-x ()</CODE> +<DD> +<A NAME="IDX69"></A> +Begin saving the characters typed into the current keyboard macro. + +<DT><CODE>end-kbd-macro (C-x ))</CODE> +<DD> +<A NAME="IDX70"></A> +Stop saving the characters typed into the current keyboard macro +and save the definition. + +<DT><CODE>call-last-kbd-macro (C-x e)</CODE> +<DD> +<A NAME="IDX71"></A> +Re-execute the last keyboard macro defined, by making the characters +in the macro appear as if typed at the keyboard. + +</DL> + + + +<H3><A NAME="SEC15" HREF="readline_toc.html#TOC15">Some Miscellaneous Commands</A></H3> +<DL COMPACT> + +<DT><CODE>re-read-init-file (C-x C-r)</CODE> +<DD> +<A NAME="IDX72"></A> +Read in the contents of the inputrc file, and incorporate +any bindings or variable assignments found there. + +<DT><CODE>abort (C-g)</CODE> +<DD> +<A NAME="IDX73"></A> +Abort the current editing command and +ring the terminal's bell (subject to the setting of +<CODE>bell-style</CODE>). + +<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, ...)</CODE> +<DD> +<A NAME="IDX74"></A> +If the metafied character <VAR>x</VAR> is lowercase, run the command +that is bound to the corresponding uppercase character. + +<DT><CODE>prefix-meta (ESC)</CODE> +<DD> +<A NAME="IDX75"></A> +Make the next character typed be metafied. This is for keyboards +without a meta key. Typing <SAMP>`ESC f'</SAMP> is equivalent to typing +<SAMP>`M-f'</SAMP>. + +<DT><CODE>undo (C-_, C-x C-u)</CODE> +<DD> +<A NAME="IDX76"></A> +Incremental undo, separately remembered for each line. + +<DT><CODE>revert-line (M-r)</CODE> +<DD> +<A NAME="IDX77"></A> +Undo all changes made to this line. This is like executing the <CODE>undo</CODE> +command enough times to get back to the beginning. + +<DT><CODE>tilde-expand (M-~)</CODE> +<DD> +<A NAME="IDX78"></A> +Perform tilde expansion on the current word. + +<DT><CODE>set-mark (C-@)</CODE> +<DD> +<A NAME="IDX79"></A> +Set the mark to the current point. If a +numeric argument is supplied, the mark is set to that position. + +<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE> +<DD> +<A NAME="IDX80"></A> +Swap the point with the mark. The current cursor position is set to +the saved position, and the old cursor position is saved as the mark. + +<DT><CODE>character-search (C-])</CODE> +<DD> +<A NAME="IDX81"></A> +A character is read and point is moved to the next occurrence of that +character. A negative count searches for previous occurrences. + +<DT><CODE>character-search-backward (M-C-])</CODE> +<DD> +<A NAME="IDX82"></A> +A character is read and point is moved to the previous occurrence +of that character. A negative count searches for subsequent +occurrences. + +<DT><CODE>insert-comment (M-#)</CODE> +<DD> +<A NAME="IDX83"></A> +The value of the <CODE>comment-begin</CODE> +variable is inserted at the beginning of the current line, +and the line is accepted as if a newline had been typed. + +<DT><CODE>dump-functions ()</CODE> +<DD> +<A NAME="IDX84"></A> +Print all of the functions and their key bindings to the +Readline output stream. If a numeric argument is supplied, +the output is formatted in such a way that it can be made part +of an <VAR>inputrc</VAR> file. This command is unbound by default. + +<DT><CODE>dump-variables ()</CODE> +<DD> +<A NAME="IDX85"></A> +Print all of the settable variables and their values to the +Readline output stream. If a numeric argument is supplied, +the output is formatted in such a way that it can be made part +of an <VAR>inputrc</VAR> file. This command is unbound by default. + +<DT><CODE>dump-macros ()</CODE> +<DD> +<A NAME="IDX86"></A> +Print all of the Readline key sequences bound to macros and the +strings they ouput. If a numeric argument is supplied, +the output is formatted in such a way that it can be made part +of an <VAR>inputrc</VAR> file. This command is unbound by default. + +</DL> + + + +<H2><A NAME="SEC16" HREF="readline_toc.html#TOC16">Readline vi Mode</A></H2> + +<P> +While the Readline library does not have a full set of <CODE>vi</CODE> +editing functions, it does contain enough to allow simple editing +of the line. The Readline <CODE>vi</CODE> mode behaves as specified in +the POSIX 1003.2 standard. + +</P> +<P> +In order to switch interactively between <CODE>emacs</CODE> and <CODE>vi</CODE> +editing modes, use the command M-C-j (toggle-editing-mode). +The Readline default is <CODE>emacs</CODE> mode. + +</P> +<P> +When you enter a line in <CODE>vi</CODE> mode, you are already placed in +`insertion' mode, as if you had typed an <SAMP>`i'</SAMP>. Pressing <KBD>ESC</KBD> +switches you into `command' mode, where you can edit the text of the +line with the standard <CODE>vi</CODE> movement keys, move to previous +history lines with <SAMP>`k'</SAMP> and subsequent lines with <SAMP>`j'</SAMP>, and +so forth. + +</P> + + + +<H1><A NAME="SEC17" HREF="readline_toc.html#TOC17">Programming with GNU Readline</A></H1> + +<P> +This chapter describes the interface between the GNU Readline Library and +other programs. If you are a programmer, and you wish to include the +features found in GNU Readline +such as completion, line editing, and interactive history manipulation +in your own programs, this section is for you. + +</P> + + + +<H2><A NAME="SEC18" HREF="readline_toc.html#TOC18">Basic Behavior</A></H2> + +<P> +Many programs provide a command line interface, such as <CODE>mail</CODE>, +<CODE>ftp</CODE>, and <CODE>sh</CODE>. For such programs, the default behaviour of +Readline is sufficient. This section describes how to use Readline in +the simplest way possible, perhaps to replace calls in your code to +<CODE>gets()</CODE> or <CODE>fgets ()</CODE>. + +</P> +<P> +<A NAME="IDX87"></A> +<A NAME="IDX88"></A> +The function <CODE>readline ()</CODE> prints a prompt and then reads and returns +a single line of text from the user. The line <CODE>readline</CODE> +returns is allocated with <CODE>malloc ()</CODE>; you should <CODE>free ()</CODE> +the line when you are done with it. The declaration for <CODE>readline</CODE> +in ANSI C is + +</P> + +<PRE> +<CODE>char *readline (char *<VAR>prompt</VAR>);</CODE> +</PRE> + +<P> +So, one might say + +<PRE> +<CODE>char *line = readline ("Enter a line: ");</CODE> +</PRE> + +<P> +in order to read a line of text from the user. +The line returned has the final newline removed, so only the +text remains. + +</P> +<P> +If <CODE>readline</CODE> encounters an <CODE>EOF</CODE> while reading the line, and the +line is empty at that point, then <CODE>(char *)NULL</CODE> is returned. +Otherwise, the line is ended just as if a newline had been typed. + +</P> +<P> +If you want the user to be able to get at the line later, (with +<KBD>C-p</KBD> for example), you must call <CODE>add_history ()</CODE> to save the +line away in a <STRONG>history</STRONG> list of such lines. + +</P> + +<PRE> +<CODE>add_history (line)</CODE>; +</PRE> + +<P> +For full details on the GNU History Library, see the associated manual. + +</P> +<P> +It is preferable to avoid saving empty lines on the history list, since +users rarely have a burning need to reuse a blank line. Here is +a function which usefully replaces the standard <CODE>gets ()</CODE> library +function, and has the advantage of no static buffer to overflow: + +</P> + +<PRE> +/* A static variable for holding the line. */ +static char *line_read = (char *)NULL; + +/* Read a string, and return a pointer to it. Returns NULL on EOF. */ +char * +rl_gets () +{ + /* If the buffer has already been allocated, return the memory + to the free pool. */ + if (line_read) + { + free (line_read); + line_read = (char *)NULL; + } + + /* Get a line from the user. */ + line_read = readline (""); + + /* If the line has any text in it, save it on the history. */ + if (line_read && *line_read) + add_history (line_read); + + return (line_read); +} +</PRE> + +<P> +This function gives the user the default behaviour of <KBD>TAB</KBD> +completion: completion on file names. If you do not want Readline to +complete on filenames, you can change the binding of the <KBD>TAB</KBD> key +with <CODE>rl_bind_key ()</CODE>. + +</P> + +<PRE> +<CODE>int rl_bind_key (int <VAR>key</VAR>, int (*<VAR>function</VAR>)());</CODE> +</PRE> + +<P> +<CODE>rl_bind_key ()</CODE> takes two arguments: <VAR>key</VAR> is the character that +you want to bind, and <VAR>function</VAR> is the address of the function to +call when <VAR>key</VAR> is pressed. Binding <KBD>TAB</KBD> to <CODE>rl_insert ()</CODE> +makes <KBD>TAB</KBD> insert itself. +<CODE>rl_bind_key ()</CODE> returns non-zero if <VAR>key</VAR> is not a valid +ASCII character code (between 0 and 255). + +</P> +<P> +Thus, to disable the default <KBD>TAB</KBD> behavior, the following suffices: + +<PRE> +<CODE>rl_bind_key ('\t', rl_insert);</CODE> +</PRE> + +<P> +This code should be executed once at the start of your program; you +might write a function called <CODE>initialize_readline ()</CODE> which +performs this and other desired initializations, such as installing +custom completers (see section <A HREF="readline.html#SEC34">Custom Completers</A>). + +</P> + + +<H2><A NAME="SEC19" HREF="readline_toc.html#TOC19">Custom Functions</A></H2> + +<P> +Readline provides many functions for manipulating the text of +the line, but it isn't possible to anticipate the needs of all +programs. This section describes the various functions and variables +defined within the Readline library which allow a user program to add +customized functionality to Readline. + +</P> + + + +<H3><A NAME="SEC20" HREF="readline_toc.html#TOC20">The Function Type</A></H3> + +<P> +For readabilty, we declare a new type of object, called +<STRONG>Function</STRONG>. A <CODE>Function</CODE> is a C function which +returns an <CODE>int</CODE>. The type declaration for <CODE>Function</CODE> is: + +</P> +<P> +<CODE>typedef int Function ();</CODE> + +</P> +<P> +The reason for declaring this new type is to make it easier to write +code describing pointers to C functions. Let us say we had a variable +called <VAR>func</VAR> which was a pointer to a function. Instead of the +classic C declaration + +</P> +<P> +<CODE>int (*)()func;</CODE> + +</P> +<P> +we may write + +</P> +<P> +<CODE>Function *func;</CODE> + +</P> +<P> +Similarly, there are + +</P> + +<PRE> +typedef void VFunction (); +typedef char *CPFunction (); and +typedef char **CPPFunction (); +</PRE> + +<P> +for functions returning no value, <CODE>pointer to char</CODE>, and +<CODE>pointer to pointer to char</CODE>, respectively. + +</P> + + +<H3><A NAME="SEC21" HREF="readline_toc.html#TOC21">Writing a New Function</A></H3> + +<P> +In order to write new functions for Readline, you need to know the +calling conventions for keyboard-invoked functions, and the names of the +variables that describe the current state of the line read so far. + +</P> +<P> +The calling sequence for a command <CODE>foo</CODE> looks like + +</P> + +<PRE> +<CODE>foo (int count, int key)</CODE> +</PRE> + +<P> +where <VAR>count</VAR> is the numeric argument (or 1 if defaulted) and +<VAR>key</VAR> is the key that invoked this function. + +</P> +<P> +It is completely up to the function as to what should be done with the +numeric argument. Some functions use it as a repeat count, some +as a flag, and others to choose alternate behavior (refreshing the current +line as opposed to refreshing the screen, for example). Some choose to +ignore it. In general, if a +function uses the numeric argument as a repeat count, it should be able +to do something useful with both negative and positive arguments. +At the very least, it should be aware that it can be passed a +negative argument. + +</P> + + +<H2><A NAME="SEC22" HREF="readline_toc.html#TOC22">Readline Variables</A></H2> + +<P> +These variables are available to function writers. + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>rl_line_buffer</B> +<DD><A NAME="IDX89"></A> +This is the line gathered so far. You are welcome to modify the +contents of the line, but see section <A HREF="readline.html#SEC28">Allowing Undoing</A>. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>rl_point</B> +<DD><A NAME="IDX90"></A> +The offset of the current cursor position in <CODE>rl_line_buffer</CODE> +(the <EM>point</EM>). +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>rl_end</B> +<DD><A NAME="IDX91"></A> +The number of characters present in <CODE>rl_line_buffer</CODE>. When +<CODE>rl_point</CODE> is at the end of the line, <CODE>rl_point</CODE> and +<CODE>rl_end</CODE> are equal. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>rl_mark</B> +<DD><A NAME="IDX92"></A> +The mark (saved position) in the current line. If set, the mark +and point define a <EM>region</EM>. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>rl_done</B> +<DD><A NAME="IDX93"></A> +Setting this to a non-zero value causes Readline to return the current +line immediately. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>rl_pending_input</B> +<DD><A NAME="IDX94"></A> +Setting this to a value makes it the next keystroke read. This is a +way to stuff a single character into the input stream. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>rl_prompt</B> +<DD><A NAME="IDX95"></A> +The prompt Readline uses. This is set from the argument to +<CODE>readline ()</CODE>, and should not be assigned to directly. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>rl_library_version</B> +<DD><A NAME="IDX96"></A> +The version number of this revision of the library. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>rl_terminal_name</B> +<DD><A NAME="IDX97"></A> +The terminal type, used for initialization. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>rl_readline_name</B> +<DD><A NAME="IDX98"></A> +This variable is set to a unique name by each application using Readline. +The value allows conditional parsing of the inputrc file +(see section <A HREF="readline.html#SEC5">Conditional Init Constructs</A>). +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> FILE * <B>rl_instream</B> +<DD><A NAME="IDX99"></A> +The stdio stream from which Readline reads input. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> FILE * <B>rl_outstream</B> +<DD><A NAME="IDX100"></A> +The stdio stream to which Readline performs output. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> Function * <B>rl_startup_hook</B> +<DD><A NAME="IDX101"></A> +If non-zero, this is the address of a function to call just +before <CODE>readline</CODE> prints the first prompt. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> Function * <B>rl_event_hook</B> +<DD><A NAME="IDX102"></A> +If non-zero, this is the address of a function to call periodically +when readline is waiting for terminal input. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> Function * <B>rl_getc_function</B> +<DD><A NAME="IDX103"></A> +If non-zero, <CODE>readline</CODE> will call indirectly through this pointer +to get a character from the input stream. By default, it is set to +<CODE>rl_getc</CODE>, the default <CODE>readline</CODE> character input function +(see section <A HREF="readline.html#SEC31">Utility Functions</A>). +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> VFunction * <B>rl_redisplay_function</B> +<DD><A NAME="IDX104"></A> +If non-zero, <CODE>readline</CODE> will call indirectly through this pointer +to update the display with the current contents of the editing buffer. +By default, it is set to <CODE>rl_redisplay</CODE>, the default <CODE>readline</CODE> +redisplay function (see section <A HREF="readline.html#SEC29">Redisplay</A>). +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> Keymap <B>rl_executing_keymap</B> +<DD><A NAME="IDX105"></A> +This variable is set to the keymap (see section <A HREF="readline.html#SEC25">Selecting a Keymap</A>) in which the +currently executing readline function was found. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> Keymap <B>rl_binding_keymap</B> +<DD><A NAME="IDX106"></A> +This variable is set to the keymap (see section <A HREF="readline.html#SEC25">Selecting a Keymap</A>) in which the +last key binding occurred. +</DL> + +</P> + + +<H2><A NAME="SEC23" HREF="readline_toc.html#TOC23">Readline Convenience Functions</A></H2> + + + +<H3><A NAME="SEC24" HREF="readline_toc.html#TOC24">Naming a Function</A></H3> + +<P> +The user can dynamically change the bindings of keys while using +Readline. This is done by representing the function with a descriptive +name. The user is able to type the descriptive name when referring to +the function. Thus, in an init file, one might find + +</P> + +<PRE> +Meta-Rubout: backward-kill-word +</PRE> + +<P> +This binds the keystroke <KBD>Meta-Rubout</KBD> to the function +<EM>descriptively</EM> named <CODE>backward-kill-word</CODE>. You, as the +programmer, should bind the functions you write to descriptive names as +well. Readline provides a function for doing that: + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_add_defun</B> <I>(char *name, Function *function, int key)</I> +<DD><A NAME="IDX107"></A> +Add <VAR>name</VAR> to the list of named functions. Make <VAR>function</VAR> be +the function that gets called. If <VAR>key</VAR> is not -1, then bind it to +<VAR>function</VAR> using <CODE>rl_bind_key ()</CODE>. +</DL> + +</P> +<P> +Using this function alone is sufficient for most applications. It is +the recommended way to add a few functions to the default functions that +Readline has built in. If you need to do something other +than adding a function to Readline, you may need to use the +underlying functions described below. + +</P> + + +<H3><A NAME="SEC25" HREF="readline_toc.html#TOC25">Selecting a Keymap</A></H3> + +<P> +Key bindings take place on a <STRONG>keymap</STRONG>. The keymap is the +association between the keys that the user types and the functions that +get run. You can make your own keymaps, copy existing keymaps, and tell +Readline which keymap to use. + +</P> +<P> +<DL> +<DT><U>Function:</U> Keymap <B>rl_make_bare_keymap</B> <I>()</I> +<DD><A NAME="IDX108"></A> +Returns a new, empty keymap. The space for the keymap is allocated with +<CODE>malloc ()</CODE>; you should <CODE>free ()</CODE> it when you are done. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> Keymap <B>rl_copy_keymap</B> <I>(Keymap map)</I> +<DD><A NAME="IDX109"></A> +Return a new keymap which is a copy of <VAR>map</VAR>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> Keymap <B>rl_make_keymap</B> <I>()</I> +<DD><A NAME="IDX110"></A> +Return a new keymap with the printing characters bound to rl_insert, +the lowercase Meta characters bound to run their equivalents, and +the Meta digits bound to produce numeric arguments. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>rl_discard_keymap</B> <I>(Keymap keymap)</I> +<DD><A NAME="IDX111"></A> +Free the storage associated with <VAR>keymap</VAR>. +</DL> + +</P> +<P> +Readline has several internal keymaps. These functions allow you to +change which keymap is active. + +</P> +<P> +<DL> +<DT><U>Function:</U> Keymap <B>rl_get_keymap</B> <I>()</I> +<DD><A NAME="IDX112"></A> +Returns the currently active keymap. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>rl_set_keymap</B> <I>(Keymap keymap)</I> +<DD><A NAME="IDX113"></A> +Makes <VAR>keymap</VAR> the currently active keymap. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> Keymap <B>rl_get_keymap_by_name</B> <I>(char *name)</I> +<DD><A NAME="IDX114"></A> +Return the keymap matching <VAR>name</VAR>. <VAR>name</VAR> is one which would +be supplied in a <CODE>set keymap</CODE> inputrc line (@xref{Readline Init File}). +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> char * <B>rl_get_keymap_name</B> <I>(Keymap keymap)</I> +<DD><A NAME="IDX115"></A> +Return the name matching <VAR>keymap</VAR>. <VAR>name</VAR> is one which would +be supplied in a <CODE>set keymap</CODE> inputrc line (@xref{Readline Init File}). +</DL> + +</P> + + +<H3><A NAME="SEC26" HREF="readline_toc.html#TOC26">Binding Keys</A></H3> + +<P> +You associate keys with functions through the keymap. Readline has +several internal keymaps: <CODE>emacs_standard_keymap</CODE>, +<CODE>emacs_meta_keymap</CODE>, <CODE>emacs_ctlx_keymap</CODE>, +<CODE>vi_movement_keymap</CODE>, and <CODE>vi_insertion_keymap</CODE>. +<CODE>emacs_standard_keymap</CODE> is the default, and the examples in +this manual assume that. + +</P> +<P> +These functions manage key bindings. + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_bind_key</B> <I>(int key, Function *function)</I> +<DD><A NAME="IDX116"></A> +Binds <VAR>key</VAR> to <VAR>function</VAR> in the currently active keymap. +Returns non-zero in the case of an invalid <VAR>key</VAR>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_bind_key_in_map</B> <I>(int key, Function *function, Keymap map)</I> +<DD><A NAME="IDX117"></A> +Bind <VAR>key</VAR> to <VAR>function</VAR> in <VAR>map</VAR>. Returns non-zero in the case +of an invalid <VAR>key</VAR>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_unbind_key</B> <I>(int key)</I> +<DD><A NAME="IDX118"></A> +Bind <VAR>key</VAR> to the null function in the currently active keymap. +Returns non-zero in case of error. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_unbind_key_in_map</B> <I>(int key, Keymap map)</I> +<DD><A NAME="IDX119"></A> +Bind <VAR>key</VAR> to the null function in <VAR>map</VAR>. +Returns non-zero in case of error. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_unbind_function_in_map</B> <I>(Function *function, Keymap map)</I> +<DD><A NAME="IDX120"></A> +Unbind all keys that execute <VAR>function</VAR> in <VAR>map</VAR>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_unbind_command_in_map</B> <I>(char *command, Keymap map)</I> +<DD><A NAME="IDX121"></A> +Unbind all keys that are bound to <VAR>command</VAR> in <VAR>map</VAR>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_generic_bind</B> <I>(int type, char *keyseq, char *data, Keymap map)</I> +<DD><A NAME="IDX122"></A> +Bind the key sequence represented by the string <VAR>keyseq</VAR> to the arbitrary +pointer <VAR>data</VAR>. <VAR>type</VAR> says what kind of data is pointed to by +<VAR>data</VAR>; this can be a function (<CODE>ISFUNC</CODE>), a macro +(<CODE>ISMACR</CODE>), or a keymap (<CODE>ISKMAP</CODE>). This makes new keymaps as +necessary. The initial keymap in which to do bindings is <VAR>map</VAR>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_parse_and_bind</B> <I>(char *line)</I> +<DD><A NAME="IDX123"></A> +Parse <VAR>line</VAR> as if it had been read from the <CODE>inputrc</CODE> file and +perform any key bindings and variable assignments found +(@xref{Readline Init File}). +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_read_init_file</B> <I>(char *filename)</I> +<DD><A NAME="IDX124"></A> +Read keybindings and variable assignments from <VAR>filename</VAR> +(@xref{Readline Init File}). +</DL> + +</P> + + +<H3><A NAME="SEC27" HREF="readline_toc.html#TOC27">Associating Function Names and Bindings</A></H3> + +<P> +These functions allow you to find out what keys invoke named functions +and the functions invoked by a particular key sequence. + +</P> +<P> +<DL> +<DT><U>Function:</U> Function * <B>rl_named_function</B> <I>(char *name)</I> +<DD><A NAME="IDX125"></A> +Return the function with name <VAR>name</VAR>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> Function * <B>rl_function_of_keyseq</B> <I>(char *keyseq, Keymap map, int *type)</I> +<DD><A NAME="IDX126"></A> +Return the function invoked by <VAR>keyseq</VAR> in keymap <VAR>map</VAR>. +If <VAR>map</VAR> is NULL, the current keymap is used. If <VAR>type</VAR> is +not NULL, the type of the object is returned in it (one of <CODE>ISFUNC</CODE>, +<CODE>ISKMAP</CODE>, or <CODE>ISMACR</CODE>). +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs</B> <I>(Function *function)</I> +<DD><A NAME="IDX127"></A> +Return an array of strings representing the key sequences used to +invoke <VAR>function</VAR> in the current keymap. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs_in_map</B> <I>(Function *function, Keymap map)</I> +<DD><A NAME="IDX128"></A> +Return an array of strings representing the key sequences used to +invoke <VAR>function</VAR> in the keymap <VAR>map</VAR>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>rl_function_dumper</B> <I>(int readable)</I> +<DD><A NAME="IDX129"></A> +Print the readline function names and the key sequences currently +bound to them to <CODE>rl_outstream</CODE>. If <VAR>readable</VAR> is non-zero, +the list is formatted in such a way that it can be made part of an +<CODE>inputrc</CODE> file and re-read. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>rl_list_funmap_names</B> <I>()</I> +<DD><A NAME="IDX130"></A> +Print the names of all bindable Readline functions to <CODE>rl_outstream</CODE>. +</DL> + +</P> + + +<H3><A NAME="SEC28" HREF="readline_toc.html#TOC28">Allowing Undoing</A></H3> + +<P> +Supporting the undo command is a painless thing, and makes your +functions much more useful. It is certainly easy to try +something if you know you can undo it. I could use an undo function for +the stock market. + +</P> +<P> +If your function simply inserts text once, or deletes text once, and +uses <CODE>rl_insert_text ()</CODE> or <CODE>rl_delete_text ()</CODE> to do it, then +undoing is already done for you automatically. + +</P> +<P> +If you do multiple insertions or multiple deletions, or any combination +of these operations, you should group them together into one operation. +This is done with <CODE>rl_begin_undo_group ()</CODE> and +<CODE>rl_end_undo_group ()</CODE>. + +</P> +<P> +The types of events that can be undone are: + +</P> + +<PRE> +enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END }; +</PRE> + +<P> +Notice that <CODE>UNDO_DELETE</CODE> means to insert some text, and +<CODE>UNDO_INSERT</CODE> means to delete some text. That is, the undo code +tells undo what to undo, not how to undo it. <CODE>UNDO_BEGIN</CODE> and +<CODE>UNDO_END</CODE> are tags added by <CODE>rl_begin_undo_group ()</CODE> and +<CODE>rl_end_undo_group ()</CODE>. + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_begin_undo_group</B> <I>()</I> +<DD><A NAME="IDX131"></A> +Begins saving undo information in a group construct. The undo +information usually comes from calls to <CODE>rl_insert_text ()</CODE> and +<CODE>rl_delete_text ()</CODE>, but could be the result of calls to +<CODE>rl_add_undo ()</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_end_undo_group</B> <I>()</I> +<DD><A NAME="IDX132"></A> +Closes the current undo group started with <CODE>rl_begin_undo_group +()</CODE>. There should be one call to <CODE>rl_end_undo_group ()</CODE> +for each call to <CODE>rl_begin_undo_group ()</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>rl_add_undo</B> <I>(enum undo_code what, int start, int end, char *text)</I> +<DD><A NAME="IDX133"></A> +Remember how to undo an event (according to <VAR>what</VAR>). The affected +text runs from <VAR>start</VAR> to <VAR>end</VAR>, and encompasses <VAR>text</VAR>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>free_undo_list</B> <I>()</I> +<DD><A NAME="IDX134"></A> +Free the existing undo list. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_do_undo</B> <I>()</I> +<DD><A NAME="IDX135"></A> +Undo the first thing on the undo list. Returns <CODE>0</CODE> if there was +nothing to undo, non-zero if something was undone. +</DL> + +</P> +<P> +Finally, if you neither insert nor delete text, but directly modify the +existing text (e.g., change its case), call <CODE>rl_modifying ()</CODE> +once, just before you modify the text. You must supply the indices of +the text range that you are going to modify. + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_modifying</B> <I>(int start, int end)</I> +<DD><A NAME="IDX136"></A> +Tell Readline to save the text between <VAR>start</VAR> and <VAR>end</VAR> as a +single undo unit. It is assumed that you will subsequently modify +that text. +</DL> + +</P> + + +<H3><A NAME="SEC29" HREF="readline_toc.html#TOC29">Redisplay</A></H3> + +<P> +<DL> +<DT><U>Function:</U> void <B>rl_redisplay</B> <I>()</I> +<DD><A NAME="IDX137"></A> +Change what's displayed on the screen to reflect the current contents +of <CODE>rl_line_buffer</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_forced_update_display</B> <I>()</I> +<DD><A NAME="IDX138"></A> +Force the line to be updated and redisplayed, whether or not +Readline thinks the screen display is correct. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_on_new_line</B> <I>()</I> +<DD><A NAME="IDX139"></A> +Tell the update routines that we have moved onto a new (empty) line, +usually after ouputting a newline. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_reset_line_state</B> <I>()</I> +<DD><A NAME="IDX140"></A> +Reset the display state to a clean state and redisplay the current line +starting on a new line. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_message</B> <I>(va_alist)</I> +<DD><A NAME="IDX141"></A> +The arguments are a string as would be supplied to <CODE>printf</CODE>. The +resulting string is displayed in the <STRONG>echo area</STRONG>. The echo area +is also used to display numeric arguments and search strings. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_clear_message</B> <I>()</I> +<DD><A NAME="IDX142"></A> +Clear the message in the echo area. +</DL> + +</P> + + +<H3><A NAME="SEC30" HREF="readline_toc.html#TOC30">Modifying Text</A></H3> + +<P> +<DL> +<DT><U>Function:</U> int <B>rl_insert_text</B> <I>(char *text)</I> +<DD><A NAME="IDX143"></A> +Insert <VAR>text</VAR> into the line at the current cursor position. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_delete_text</B> <I>(int start, int end)</I> +<DD><A NAME="IDX144"></A> +Delete the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> char * <B>rl_copy_text</B> <I>(int start, int end)</I> +<DD><A NAME="IDX145"></A> +Return a copy of the text between <VAR>start</VAR> and <VAR>end</VAR> in +the current line. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_kill_text</B> <I>(int start, int end)</I> +<DD><A NAME="IDX146"></A> +Copy the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line +to the kill ring, appending or prepending to the last kill if the +last command was a kill command. The text is deleted. +If <VAR>start</VAR> is less than <VAR>end</VAR>, +the text is appended, otherwise prepended. If the last command was +not a kill, a new kill ring slot is used. +</DL> + +</P> + + +<H3><A NAME="SEC31" HREF="readline_toc.html#TOC31">Utility Functions</A></H3> + +<P> +<DL> +<DT><U>Function:</U> int <B>rl_read_key</B> <I>()</I> +<DD><A NAME="IDX147"></A> +Return the next character available. This handles input inserted into +the input stream via <VAR>pending input</VAR> (see section <A HREF="readline.html#SEC22">Readline Variables</A>) +and <CODE>rl_stuff_char ()</CODE>, macros, and characters read from the keyboard. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_getc</B> <I>(FILE *)</I> +<DD><A NAME="IDX148"></A> +Return the next character available from the keyboard. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_stuff_char</B> <I>(int c)</I> +<DD><A NAME="IDX149"></A> +Insert <VAR>c</VAR> into the Readline input stream. It will be "read" +before Readline attempts to read characters from the terminal with +<CODE>rl_read_key ()</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> rl_extend_line_buffer <B>(int</B> <I>len)</I> +<DD><A NAME="IDX150"></A> +Ensure that <CODE>rl_line_buffer</CODE> has enough space to hold <VAR>len</VAR> +characters, possibly reallocating it if necessary. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_initialize</B> <I>()</I> +<DD><A NAME="IDX151"></A> +Initialize or re-initialize Readline's internal state. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_reset_terminal</B> <I>(char *terminal_name)</I> +<DD><A NAME="IDX152"></A> +Reinitialize Readline's idea of the terminal settings using +<VAR>terminal_name</VAR> as the terminal type (e.g., <CODE>vt100</CODE>). +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>alphabetic</B> <I>(int c)</I> +<DD><A NAME="IDX153"></A> +Return 1 if <VAR>c</VAR> is an alphabetic character. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>numeric</B> <I>(int c)</I> +<DD><A NAME="IDX154"></A> +Return 1 if <VAR>c</VAR> is a numeric character. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>ding</B> <I>()</I> +<DD><A NAME="IDX155"></A> +Ring the terminal bell, obeying the setting of <CODE>bell-style</CODE>. +</DL> + +</P> +<P> +The following are implemented as macros, defined in <CODE>chartypes.h</CODE>. + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>uppercase_p</B> <I>(int c)</I> +<DD><A NAME="IDX156"></A> +Return 1 if <VAR>c</VAR> is an uppercase alphabetic character. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>lowercase_p</B> <I>(int c)</I> +<DD><A NAME="IDX157"></A> +Return 1 if <VAR>c</VAR> is a lowercase alphabetic character. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>digit_p</B> <I>(int c)</I> +<DD><A NAME="IDX158"></A> +Return 1 if <VAR>c</VAR> is a numeric character. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>to_upper</B> <I>(int c)</I> +<DD><A NAME="IDX159"></A> +If <VAR>c</VAR> is a lowercase alphabetic character, return the corresponding +uppercase character. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>to_lower</B> <I>(int c)</I> +<DD><A NAME="IDX160"></A> +If <VAR>c</VAR> is an uppercase alphabetic character, return the corresponding +lowercase character. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>digit_value</B> <I>(int c)</I> +<DD><A NAME="IDX161"></A> +If <VAR>c</VAR> is a number, return the value it represents. +</DL> + +</P> + + +<H3><A NAME="SEC32" HREF="readline_toc.html#TOC32">Alternate Interface</A></H3> + +<P> +An alternate interface is available to plain <CODE>readline()</CODE>. Some +applications need to interleave keyboard I/O with file, device, or +window system I/O, typically by using a main loop to <CODE>select()</CODE> +on various file descriptors. To accomodate this need, readline can +also be invoked as a `callback' function from an event loop. There +are functions available to make this easy. + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>rl_callback_handler_install</B> <I>(char *prompt, Vfunction *lhandler)</I> +<DD><A NAME="IDX162"></A> +Set up the terminal for readline I/O and display the initial +expanded value of <VAR>prompt</VAR>. Save the value of <VAR>lhandler</VAR> to +use as a callback when a complete line of input has been entered. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>rl_callback_read_char</B> <I>()</I> +<DD><A NAME="IDX163"></A> +Whenever an application determines that keyboard input is available, it +should call <CODE>rl_callback_read_char()</CODE>, which will read the next +character from the current input source. If that character completes the +line, <CODE>rl_callback_read_char</CODE> will invoke the <VAR>lhandler</VAR> +function saved by <CODE>rl_callback_handler_install</CODE> to process the +line. <CODE>EOF</CODE> is indicated by calling <VAR>lhandler</VAR> with a +<CODE>NULL</CODE> line. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> void <B>rl_callback_handler_remove</B> <I>()</I> +<DD><A NAME="IDX164"></A> +Restore the terminal to its initial state and remove the line handler. +This may be called from within a callback as well as independently. +</DL> + +</P> + + +<H3><A NAME="SEC33" HREF="readline_toc.html#TOC33">An Example</A></H3> + +<P> +Here is a function which changes lowercase characters to their uppercase +equivalents, and uppercase characters to lowercase. If +this function was bound to <SAMP>`M-c'</SAMP>, then typing <SAMP>`M-c'</SAMP> would +change the case of the character under point. Typing <SAMP>`M-1 0 M-c'</SAMP> +would change the case of the following 10 characters, leaving the cursor on +the last character changed. + +</P> + +<PRE> +/* Invert the case of the COUNT following characters. */ +int +invert_case_line (count, key) + int count, key; +{ + register int start, end, i; + + start = rl_point; + + if (rl_point >= rl_end) + return (0); + + if (count < 0) + { + direction = -1; + count = -count; + } + else + direction = 1; + + /* Find the end of the range to modify. */ + end = start + (count * direction); + + /* Force it to be within range. */ + if (end > rl_end) + end = rl_end; + else if (end < 0) + end = 0; + + if (start == end) + return (0); + + if (start > end) + { + int temp = start; + start = end; + end = temp; + } + + /* Tell readline that we are modifying the line, so it will save + the undo information. */ + rl_modifying (start, end); + + for (i = start; i != end; i++) + { + if (uppercase_p (rl_line_buffer[i])) + rl_line_buffer[i] = to_lower (rl_line_buffer[i]); + else if (lowercase_p (rl_line_buffer[i])) + rl_line_buffer[i] = to_upper (rl_line_buffer[i]); + } + /* Move point to on top of the last character changed. */ + rl_point = (direction == 1) ? end - 1 : start; + return (0); +} +</PRE> + + + +<H2><A NAME="SEC34" HREF="readline_toc.html#TOC34">Custom Completers</A></H2> + +<P> +Typically, a program that reads commands from the user has a way of +disambiguating commands and data. If your program is one of these, then +it can provide completion for commands, data, or both. +The following sections describe how your program and Readline +cooperate to provide this service. + +</P> + + + +<H3><A NAME="SEC35" HREF="readline_toc.html#TOC35">How Completing Works</A></H3> + +<P> +In order to complete some text, the full list of possible completions +must be available. That is, it is not possible to accurately +expand a partial word without knowing all of the possible words +which make sense in that context. The Readline library provides +the user interface to completion, and two of the most common +completion functions: filename and username. For completing other types +of text, you must write your own completion function. This section +describes exactly what such functions must do, and provides an example. + +</P> +<P> +There are three major functions used to perform completion: + +</P> + +<OL> +<LI> + +The user-interface function <CODE>rl_complete ()</CODE>. This function is +called with the same arguments as other Readline +functions intended for interactive use: <VAR>count</VAR> and +<VAR>invoking_key</VAR>. It isolates the word to be completed and calls +<CODE>completion_matches ()</CODE> to generate a list of possible completions. +It then either lists the possible completions, inserts the possible +completions, or actually performs the +completion, depending on which behavior is desired. + +<LI> + +The internal function <CODE>completion_matches ()</CODE> uses your +<STRONG>generator</STRONG> function to generate the list of possible matches, and +then returns the array of these matches. You should place the address +of your generator function in <CODE>rl_completion_entry_function</CODE>. + +<LI> + +The generator function is called repeatedly from +<CODE>completion_matches ()</CODE>, returning a string each time. The +arguments to the generator function are <VAR>text</VAR> and <VAR>state</VAR>. +<VAR>text</VAR> is the partial word to be completed. <VAR>state</VAR> is zero the +first time the function is called, allowing the generator to perform +any necessary initialization, and a positive non-zero integer for +each subsequent call. When the generator function returns +<CODE>(char *)NULL</CODE> this signals <CODE>completion_matches ()</CODE> that there are +no more possibilities left. Usually the generator function computes the +list of possible completions when <VAR>state</VAR> is zero, and returns them +one at a time on subsequent calls. Each string the generator function +returns as a match must be allocated with <CODE>malloc()</CODE>; Readline +frees the strings when it has finished with them. + +</OL> + +<P> +<DL> +<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I> +<DD><A NAME="IDX165"></A> +Complete the word at or before point. You have supplied the function +that does the initial simple matching selection algorithm (see +<CODE>completion_matches ()</CODE>). The default is to do filename completion. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> Function * <B>rl_completion_entry_function</B> +<DD><A NAME="IDX166"></A> +This is a pointer to the generator function for <CODE>completion_matches +()</CODE>. If the value of <CODE>rl_completion_entry_function</CODE> is +<CODE>(Function *)NULL</CODE> then the default filename generator function, +<CODE>filename_completion_function ()</CODE>, is used. +</DL> + +</P> + + +<H3><A NAME="SEC36" HREF="readline_toc.html#TOC36">Completion Functions</A></H3> + +<P> +Here is the complete list of callable completion functions present in +Readline. + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_complete_internal</B> <I>(int what_to_do)</I> +<DD><A NAME="IDX167"></A> +Complete the word at or before point. <VAR>what_to_do</VAR> says what to do +with the completion. A value of <SAMP>`?'</SAMP> means list the possible +completions. <SAMP>`TAB'</SAMP> means do standard completion. <SAMP>`*'</SAMP> means +insert all of the possible completions. <SAMP>`!'</SAMP> means to display +all of the possible completions, if there is more than one, as well as +performing partial completion. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I> +<DD><A NAME="IDX168"></A> +Complete the word at or before point. You have supplied the function +that does the initial simple matching selection algorithm (see +<CODE>completion_matches ()</CODE> and <CODE>rl_completion_entry_function</CODE>). +The default is to do filename +completion. This calls <CODE>rl_complete_internal ()</CODE> with an +argument depending on <VAR>invoking_key</VAR>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_possible_completions</B> <I>(int count, int invoking_key))</I> +<DD><A NAME="IDX169"></A> +List the possible completions. See description of <CODE>rl_complete +()</CODE>. This calls <CODE>rl_complete_internal ()</CODE> with an argument of +<SAMP>`?'</SAMP>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> int <B>rl_insert_completions</B> <I>(int count, int invoking_key))</I> +<DD><A NAME="IDX170"></A> +Insert the list of possible completions into the line, deleting the +partially-completed word. See description of <CODE>rl_complete ()</CODE>. +This calls <CODE>rl_complete_internal ()</CODE> with an argument of <SAMP>`*'</SAMP>. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> char ** <B>completion_matches</B> <I>(char *text, CPFunction *entry_func)</I> +<DD><A NAME="IDX171"></A> +Returns an array of <CODE>(char *)</CODE> which is a list of completions for +<VAR>text</VAR>. If there are no completions, returns <CODE>(char **)NULL</CODE>. +The first entry in the returned array is the substitution for <VAR>text</VAR>. +The remaining entries are the possible completions. The array is +terminated with a <CODE>NULL</CODE> pointer. + +</P> +<P> +<VAR>entry_func</VAR> is a function of two args, and returns a +<CODE>(char *)</CODE>. The first argument is <VAR>text</VAR>. The second is a +state argument; it is zero on the first call, and non-zero on subsequent +calls. <VAR>entry_func</VAR> returns a <CODE>NULL</CODE> pointer to the caller +when there are no more matches. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> char * <B>filename_completion_function</B> <I>(char *text, int state)</I> +<DD><A NAME="IDX172"></A> +A generator function for filename completion in the general case. Note +that completion in Bash is a little different because of all +the pathnames that must be followed when looking up completions for a +command. The Bash source is a useful reference for writing custom +completion functions. +</DL> + +</P> +<P> +<DL> +<DT><U>Function:</U> char * <B>username_completion_function</B> <I>(char *text, int state)</I> +<DD><A NAME="IDX173"></A> +A completion generator for usernames. <VAR>text</VAR> contains a partial +username preceded by a random character (usually <SAMP>`~'</SAMP>). As with all +completion generators, <VAR>state</VAR> is zero on the first call and non-zero +for subsequent calls. +</DL> + +</P> + + +<H3><A NAME="SEC37" HREF="readline_toc.html#TOC37">Completion Variables</A></H3> + +<P> +<DL> +<DT><U>Variable:</U> Function * <B>rl_completion_entry_function</B> +<DD><A NAME="IDX174"></A> +A pointer to the generator function for <CODE>completion_matches ()</CODE>. +<CODE>NULL</CODE> means to use <CODE>filename_entry_function ()</CODE>, the default +filename completer. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> CPPFunction * <B>rl_attempted_completion_function</B> +<DD><A NAME="IDX175"></A> +A pointer to an alternative function to create matches. +The function is called with <VAR>text</VAR>, <VAR>start</VAR>, and <VAR>end</VAR>. +<VAR>start</VAR> and <VAR>end</VAR> are indices in <CODE>rl_line_buffer</CODE> saying +what the boundaries of <VAR>text</VAR> are. If this function exists and +returns <CODE>NULL</CODE>, or if this variable is set to <CODE>NULL</CODE>, then +<CODE>rl_complete ()</CODE> will call the value of +<CODE>rl_completion_entry_function</CODE> to generate matches, otherwise the +array of strings returned will be used. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> CPFunction * <B>rl_filename_quoting_function</B> +<DD><A NAME="IDX176"></A> +A pointer to a function that will quote a filename in an application- +specific fashion. This is called if filename completion is being +attempted and one of the characters in <CODE>rl_filename_quote_characters</CODE> +appears in a completed filename. The function is called with +<VAR>text</VAR>, <VAR>match_type</VAR>, and <VAR>quote_pointer</VAR>. The <VAR>text</VAR> +is the filename to be quoted. The <VAR>match_type</VAR> is either +<CODE>SINGLE_MATCH</CODE>, if there is only one completion match, or +<CODE>MULT_MATCH</CODE>. Some functions use this to decide whether or not to +insert a closing quote character. The <VAR>quote_pointer</VAR> is a pointer +to any opening quote character the user typed. Some functions choose +to reset this character. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> CPFunction * <B>rl_filename_dequoting_function</B> +<DD><A NAME="IDX177"></A> +A pointer to a function that will remove application-specific quoting +characters from a filename before completion is attempted, so those +characters do not interfere with matching the text against names in +the filesystem. It is called with <VAR>text</VAR>, the text of the word +to be dequoted, and <VAR>quote_char</VAR>, which is the quoting character +that delimits the filename (usually <SAMP>`''</SAMP> or <SAMP>`"'</SAMP>). If +<VAR>quote_char</VAR> is zero, the filename was not in an embedded string. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> Function * <B>rl_char_is_quoted_p</B> +<DD><A NAME="IDX178"></A> +A pointer to a function to call that determines whether or not a specific +character in the line buffer is quoted, according to whatever quoting +mechanism the program calling readline uses. The function is called with +two arguments: <VAR>text</VAR>, the text of the line, and <VAR>index</VAR>, the +index of the character in the line. It is used to decide whether a +character found in <CODE>rl_completer_word_break_characters</CODE> should be +used to break words for the completer. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>rl_completion_query_items</B> +<DD><A NAME="IDX179"></A> +Up to this many items will be displayed in response to a +possible-completions call. After that, we ask the user if she is sure +she wants to see them all. The default value is 100. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>rl_basic_word_break_characters</B> +<DD><A NAME="IDX180"></A> +The basic list of characters that signal a break between words for the +completer routine. The default value of this variable is the characters +which break words for completion in Bash, i.e., +<CODE>" \t\n\"\\'`@$><=;|&{("</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>rl_basic_quote_characters</B> +<DD><A NAME="IDX181"></A> +List of quote characters which can cause a word break. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>rl_completer_word_break_characters</B> +<DD><A NAME="IDX182"></A> +The list of characters that signal a break between words for +<CODE>rl_complete_internal ()</CODE>. The default list is the value of +<CODE>rl_basic_word_break_characters</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>rl_completer_quote_characters</B> +<DD><A NAME="IDX183"></A> +List of characters which can be used to quote a substring of the line. +Completion occurs on the entire substring, and within the substring +<CODE>rl_completer_word_break_characters</CODE> are treated as any other character, +unless they also appear within this list. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>rl_filename_quote_characters</B> +<DD><A NAME="IDX184"></A> +A list of characters that cause a filename to be quoted by the completer +when they appear in a completed filename. The default is the null string. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> char * <B>rl_special_prefixes</B> +<DD><A NAME="IDX185"></A> +The list of characters that are word break characters, but should be +left in <VAR>text</VAR> when it is passed to the completion function. +Programs can use this to help determine what kind of completing to do. +For instance, Bash sets this variable to "$@" so that it can complete +shell variables and hostnames. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>rl_completion_append_character</B> +<DD><A NAME="IDX186"></A> +When a single completion alternative matches at the end of the command +line, this character is appended to the inserted completion text. The +default is a space character (<SAMP>` '</SAMP>). Setting this to the null +character (<SAMP>`\0'</SAMP>) prevents anything being appended automatically. +This can be changed in custom completion functions to +provide the "most sensible word separator character" according to +an application-specific command line syntax specification. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>rl_ignore_completion_duplicates</B> +<DD><A NAME="IDX187"></A> +If non-zero, then disallow duplicates in the matches. Default is 1. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>rl_filename_completion_desired</B> +<DD><A NAME="IDX188"></A> +Non-zero means that the results of the matches are to be treated as +filenames. This is <EM>always</EM> zero on entry, and can only be changed +within a completion entry generator function. If it is set to a non-zero +value, directory names have a slash appended and Readline attempts to +quote completed filenames if they contain any embedded word break +characters. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>rl_filename_quoting_desired</B> +<DD><A NAME="IDX189"></A> +Non-zero means that the results of the matches are to be quoted using +double quotes (or an application-specific quoting mechanism) if the +completed filename contains any characters in +<CODE>rl_filename_quote_chars</CODE>. This is <EM>always</EM> non-zero +on entry, and can only be changed within a completion entry generator +function. The quoting is effected via a call to the function pointed to +by <CODE>rl_filename_quoting_function</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> int <B>rl_inhibit_completion</B> +<DD><A NAME="IDX190"></A> +If this variable is non-zero, completion is inhibit<ed. The completion +character will be inserted as any other bound to <CODE>self-insert</CODE>. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> Function * <B>rl_ignore_some_completions_function</B> +<DD><A NAME="IDX191"></A> +This function, if defined, is called by the completer when real filename +completion is done, after all the matching names have been generated. +It is passed a <CODE>NULL</CODE> terminated array of matches. +The first element (<CODE>matches[0]</CODE>) is the +maximal substring common to all matches. This function can +re-arrange the list of matches as required, but each element deleted +from the array must be freed. +</DL> + +</P> +<P> +<DL> +<DT><U>Variable:</U> Function * <B>rl_directory_completion_hook</B> +<DD><A NAME="IDX192"></A> +This function, if defined, is allowed to modify the directory portion +of filenames Readline completes. It is called with the address of a +string (the current directory name) as an argument. It could be used +to expand symbolic links or shell variables in pathnames. +</DL> + +</P> + + +<H3><A NAME="SEC38" HREF="readline_toc.html#TOC38">A Short Completion Example</A></H3> + +<P> +Here is a small application demonstrating the use of the GNU Readline +library. It is called <CODE>fileman</CODE>, and the source code resides in +<TT>`examples/fileman.c'</TT>. This sample application provides +completion of command names, line editing features, and access to the +history list. + +</P> + +<PRE> +/* fileman.c -- A tiny application which demonstrates how to use the + GNU Readline library. This application interactively allows users + to manipulate files and their modes. */ + +#include <stdio.h> +#include <sys/types.h> +#include <sys/file.h> +#include <sys/stat.h> +#include <sys/errno.h> + +#include <readline/readline.h> +#include <readline/history.h> + +extern char *getwd (); +extern char *xmalloc (); + +/* The names of functions that actually do the manipulation. */ +int com_list (), com_view (), com_rename (), com_stat (), com_pwd (); +int com_delete (), com_help (), com_cd (), com_quit (); + +/* A structure which contains information on the commands this program + can understand. */ + +typedef struct { + char *name; /* User printable name of the function. */ + Function *func; /* Function to call to do the job. */ + char *doc; /* Documentation for this function. */ +} COMMAND; + +COMMAND commands[] = { + { "cd", com_cd, "Change to directory DIR" }, + { "delete", com_delete, "Delete FILE" }, + { "help", com_help, "Display this text" }, + { "?", com_help, "Synonym for `help'" }, + { "list", com_list, "List files in DIR" }, + { "ls", com_list, "Synonym for `list'" }, + { "pwd", com_pwd, "Print the current working directory" }, + { "quit", com_quit, "Quit using Fileman" }, + { "rename", com_rename, "Rename FILE to NEWNAME" }, + { "stat", com_stat, "Print out statistics on FILE" }, + { "view", com_view, "View the contents of FILE" }, + { (char *)NULL, (Function *)NULL, (char *)NULL } +}; + +/* Forward declarations. */ +char *stripwhite (); +COMMAND *find_command (); + +/* The name of this program, as taken from argv[0]. */ +char *progname; + +/* When non-zero, this global means the user is done using this program. */ +int done; + +char * +dupstr (s) + int s; +{ + char *r; + + r = xmalloc (strlen (s) + 1); + strcpy (r, s); + return (r); +} + +main (argc, argv) + int argc; + char **argv; +{ + char *line, *s; + + progname = argv[0]; + + initialize_readline (); /* Bind our completer. */ + + /* Loop reading and executing lines until the user quits. */ + for ( ; done == 0; ) + { + line = readline ("FileMan: "); + + if (!line) + break; + + /* Remove leading and trailing whitespace from the line. + Then, if there is anything left, add it to the history list + and execute it. */ + s = stripwhite (line); + + if (*s) + { + add_history (s); + execute_line (s); + } + + free (line); + } + exit (0); +} + +/* Execute a command line. */ +int +execute_line (line) + char *line; +{ + register int i; + COMMAND *command; + char *word; + + /* Isolate the command word. */ + i = 0; + while (line[i] && whitespace (line[i])) + i++; + word = line + i; + + while (line[i] && !whitespace (line[i])) + i++; + + if (line[i]) + line[i++] = '\0'; + + command = find_command (word); + + if (!command) + { + fprintf (stderr, "%s: No such command for FileMan.\n", word); + return (-1); + } + + /* Get argument to command, if any. */ + while (whitespace (line[i])) + i++; + + word = line + i; + + /* Call the function. */ + return ((*(command->func)) (word)); +} + +/* Look up NAME as the name of a command, and return a pointer to that + command. Return a NULL pointer if NAME isn't a command name. */ +COMMAND * +find_command (name) + char *name; +{ + register int i; + + for (i = 0; commands[i].name; i++) + if (strcmp (name, commands[i].name) == 0) + return (&commands[i]); + + return ((COMMAND *)NULL); +} + +/* Strip whitespace from the start and end of STRING. Return a pointer + into STRING. */ +char * +stripwhite (string) + char *string; +{ + register char *s, *t; + + for (s = string; whitespace (*s); s++) + ; + + if (*s == 0) + return (s); + + t = s + strlen (s) - 1; + while (t > s && whitespace (*t)) + t--; + *++t = '\0'; + + return s; +} + +/* **************************************************************** */ +/* */ +/* Interface to Readline Completion */ +/* */ +/* **************************************************************** */ + +char *command_generator (); +char **fileman_completion (); + +/* Tell the GNU Readline library how to complete. We want to try to complete + on command names if this is the first word in the line, or on filenames + if not. */ +initialize_readline () +{ + /* Allow conditional parsing of the ~/.inputrc file. */ + rl_readline_name = "FileMan"; + + /* Tell the completer that we want a crack first. */ + rl_attempted_completion_function = (CPPFunction *)fileman_completion; +} + +/* Attempt to complete on the contents of TEXT. START and END bound the + region of rl_line_buffer that contains the word to complete. TEXT is + the word to complete. We can use the entire contents of rl_line_buffer + in case we want to do some simple parsing. Return the array of matches, + or NULL if there aren't any. */ +char ** +fileman_completion (text, start, end) + char *text; + int start, end; +{ + char **matches; + + matches = (char **)NULL; + + /* If this word is at the start of the line, then it is a command + to complete. Otherwise it is the name of a file in the current + directory. */ + if (start == 0) + matches = completion_matches (text, command_generator); + + return (matches); +} + +/* Generator function for command completion. STATE lets us know whether + to start from scratch; without any state (i.e. STATE == 0), then we + start at the top of the list. */ +char * +command_generator (text, state) + char *text; + int state; +{ + static int list_index, len; + char *name; + + /* If this is a new word to complete, initialize now. This includes + saving the length of TEXT for efficiency, and initializing the index + variable to 0. */ + if (!state) + { + list_index = 0; + len = strlen (text); + } + + /* Return the next name which partially matches from the command list. */ + while (name = commands[list_index].name) + { + list_index++; + + if (strncmp (name, text, len) == 0) + return (dupstr(name)); + } + + /* If no names matched, then return NULL. */ + return ((char *)NULL); +} + +/* **************************************************************** */ +/* */ +/* FileMan Commands */ +/* */ +/* **************************************************************** */ + +/* String to pass to system (). This is for the LIST, VIEW and RENAME + commands. */ +static char syscom[1024]; + +/* List the file(s) named in arg. */ +com_list (arg) + char *arg; +{ + if (!arg) + arg = ""; + + sprintf (syscom, "ls -FClg %s", arg); + return (system (syscom)); +} + +com_view (arg) + char *arg; +{ + if (!valid_argument ("view", arg)) + return 1; + + sprintf (syscom, "more %s", arg); + return (system (syscom)); +} + +com_rename (arg) + char *arg; +{ + too_dangerous ("rename"); + return (1); +} + +com_stat (arg) + char *arg; +{ + struct stat finfo; + + if (!valid_argument ("stat", arg)) + return (1); + + if (stat (arg, &finfo) == -1) + { + perror (arg); + return (1); + } + + printf ("Statistics for `%s':\n", arg); + + printf ("%s has %d link%s, and is %d byte%s in length.\n", arg, + finfo.st_nlink, + (finfo.st_nlink == 1) ? "" : "s", + finfo.st_size, + (finfo.st_size == 1) ? "" : "s"); + printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime)); + printf (" Last access at: %s", ctime (&finfo.st_atime)); + printf (" Last modified at: %s", ctime (&finfo.st_mtime)); + return (0); +} + +com_delete (arg) + char *arg; +{ + too_dangerous ("delete"); + return (1); +} + +/* Print out help for ARG, or for all of the commands if ARG is + not present. */ +com_help (arg) + char *arg; +{ + register int i; + int printed = 0; + + for (i = 0; commands[i].name; i++) + { + if (!*arg || (strcmp (arg, commands[i].name) == 0)) + { + printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc); + printed++; + } + } + + if (!printed) + { + printf ("No commands match `%s'. Possibilties are:\n", arg); + + for (i = 0; commands[i].name; i++) + { + /* Print in six columns. */ + if (printed == 6) + { + printed = 0; + printf ("\n"); + } + + printf ("%s\t", commands[i].name); + printed++; + } + + if (printed) + printf ("\n"); + } + return (0); +} + +/* Change to the directory ARG. */ +com_cd (arg) + char *arg; +{ + if (chdir (arg) == -1) + { + perror (arg); + return 1; + } + + com_pwd (""); + return (0); +} + +/* Print out the current working directory. */ +com_pwd (ignore) + char *ignore; +{ + char dir[1024], *s; + + s = getwd (dir); + if (s == 0) + { + printf ("Error getting pwd: %s\n", dir); + return 1; + } + + printf ("Current directory is %s\n", dir); + return 0; +} + +/* The user wishes to quit using this program. Just set DONE non-zero. */ +com_quit (arg) + char *arg; +{ + done = 1; + return (0); +} + +/* Function which tells you that you can't do this. */ +too_dangerous (caller) + char *caller; +{ + fprintf (stderr, + "%s: Too dangerous for me to distribute. Write it yourself.\n", + caller); +} + +/* Return non-zero if ARG is a valid argument for CALLER, else print + an error message and return zero. */ +int +valid_argument (caller, arg) + char *caller, *arg; +{ + if (!arg || !*arg) + { + fprintf (stderr, "%s: Argument required.\n", caller); + return (0); + } + + return (1); +} +</PRE> + + + +<H1><A NAME="SEC39" HREF="readline_toc.html#TOC39">Concept Index</A></H1> +<P> +<H2>i</H2> +<DIR> +<LI><A HREF="readline.html#IDX1">interaction, readline</A> +</DIR> +<H2>r</H2> +<DIR> +<LI><A HREF="readline.html#IDX88">readline, function</A> +</DIR> + +</P> + + +<H1><A NAME="SEC40" HREF="readline_toc.html#TOC40">Function and Variable Index</A></H1> +<P> +<H2>(</H2> +<DIR> +<LI><A HREF="readline.html#IDX150">(int</A> +</DIR> +<H2>a</H2> +<DIR> +<LI><A HREF="readline.html#IDX73">abort (C-g)</A> +<LI><A HREF="readline.html#IDX26">accept-line (Newline, Return)</A> +<LI><A HREF="readline.html#IDX153">alphabetic</A> +</DIR> +<H2>b</H2> +<DIR> +<LI><A HREF="readline.html#IDX21">backward-char (C-b)</A> +<LI><A HREF="readline.html#IDX40">backward-delete-char (Rubout)</A> +<LI><A HREF="readline.html#IDX50">backward-kill-line (C-x Rubout)</A> +<LI><A HREF="readline.html#IDX54">backward-kill-word (M-DEL)</A> +<LI><A HREF="readline.html#IDX23">backward-word (M-b)</A> +<LI><A HREF="readline.html#IDX29">beginning-of-history (M-&#60;)</A> +<LI><A HREF="readline.html#IDX18">beginning-of-line (C-a)</A> +<LI><A HREF="readline.html#IDX2">bell-style</A> +</DIR> +<H2>c</H2> +<DIR> +<LI><A HREF="readline.html#IDX71">call-last-kbd-macro (C-x e)</A> +<LI><A HREF="readline.html#IDX48">capitalize-word (M-c)</A> +<LI><A HREF="readline.html#IDX81">character-search (C-])</A> +<LI><A HREF="readline.html#IDX82">character-search-backward (M-C-])</A> +<LI><A HREF="readline.html#IDX24">clear-screen (C-l)</A> +<LI><A HREF="readline.html#IDX3">comment-begin</A> +<LI><A HREF="readline.html#IDX65">complete (TAB)</A> +<LI><A HREF="readline.html#IDX4">completion-query-items</A> +<LI><A HREF="readline.html#IDX171">completion_matches</A> +<LI><A HREF="readline.html#IDX5">convert-meta</A> +<LI><A HREF="readline.html#IDX59">copy-backward-word ()</A> +<LI><A HREF="readline.html#IDX60">copy-forward-word ()</A> +<LI><A HREF="readline.html#IDX58">copy-region-as-kill ()</A> +</DIR> +<H2>d</H2> +<DIR> +<LI><A HREF="readline.html#IDX39">delete-char (C-d)</A> +<LI><A HREF="readline.html#IDX56">delete-horizontal-space ()</A> +<LI><A HREF="readline.html#IDX63">digit-argument (M-0, M-1, ... M--)</A> +<LI><A HREF="readline.html#IDX158">digit_p</A> +<LI><A HREF="readline.html#IDX161">digit_value</A> +<LI><A HREF="readline.html#IDX155">ding</A> +<LI><A HREF="readline.html#IDX6">disable-completion</A> +<LI><A HREF="readline.html#IDX74">do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, ...)</A> +<LI><A HREF="readline.html#IDX47">downcase-word (M-l)</A> +<LI><A HREF="readline.html#IDX84">dump-functions ()</A> +<LI><A HREF="readline.html#IDX86">dump-macros ()</A> +<LI><A HREF="readline.html#IDX85">dump-variables ()</A> +</DIR> +<H2>e</H2> +<DIR> +<LI><A HREF="readline.html#IDX7">editing-mode</A> +<LI><A HREF="readline.html#IDX8">enable-keypad</A> +<LI><A HREF="readline.html#IDX70">end-kbd-macro (C-x ))</A> +<LI><A HREF="readline.html#IDX30">end-of-history (M-&#62;)</A> +<LI><A HREF="readline.html#IDX19">end-of-line (C-e)</A> +<LI><A HREF="readline.html#IDX80">exchange-point-and-mark (C-x C-x)</A> +<LI><A HREF="readline.html#IDX9">expand-tilde</A> +</DIR> +<H2>f</H2> +<DIR> +<LI><A HREF="readline.html#IDX172">filename_completion_function</A> +<LI><A HREF="readline.html#IDX20">forward-char (C-f)</A> +<LI><A HREF="readline.html#IDX32">forward-search-history (C-s)</A> +<LI><A HREF="readline.html#IDX22">forward-word (M-f)</A> +<LI><A HREF="readline.html#IDX134">free_undo_list</A> +</DIR> +<H2>h</H2> +<DIR> +<LI><A HREF="readline.html#IDX36">history-search-backward ()</A> +<LI><A HREF="readline.html#IDX35">history-search-forward ()</A> +<LI><A HREF="readline.html#IDX10">horizontal-scroll-mode</A> +</DIR> +<H2>i</H2> +<DIR> +<LI><A HREF="readline.html#IDX13">input-meta</A> +<LI><A HREF="readline.html#IDX83">insert-comment (M-#)</A> +<LI><A HREF="readline.html#IDX67">insert-completions (M-*)</A> +</DIR> +<H2>k</H2> +<DIR> +<LI><A HREF="readline.html#IDX11">keymap</A> +<LI><A HREF="readline.html#IDX49">kill-line (C-k)</A> +<LI><A HREF="readline.html#IDX57">kill-region ()</A> +<LI><A HREF="readline.html#IDX52">kill-whole-line ()</A> +<LI><A HREF="readline.html#IDX53">kill-word (M-d)</A> +</DIR> +<H2>l</H2> +<DIR> +<LI><A HREF="readline.html#IDX157">lowercase_p</A> +</DIR> +<H2>m</H2> +<DIR> +<LI><A HREF="readline.html#IDX12">mark-modified-lines</A> +<LI><A HREF="readline.html#IDX68">menu-complete ()</A> +<LI><A HREF="readline.html#IDX14">meta-flag</A> +</DIR> +<H2>n</H2> +<DIR> +<LI><A HREF="readline.html#IDX28">next-history (C-n)</A> +<LI><A HREF="readline.html#IDX34">non-incremental-forward-search-history (M-n)</A> +<LI><A HREF="readline.html#IDX33">non-incremental-reverse-search-history (M-p)</A> +<LI><A HREF="readline.html#IDX154">numeric</A> +</DIR> +<H2>o</H2> +<DIR> +<LI><A HREF="readline.html#IDX15">output-meta</A> +</DIR> +<H2>p</H2> +<DIR> +<LI><A HREF="readline.html#IDX66">possible-completions (M-?)</A> +<LI><A HREF="readline.html#IDX75">prefix-meta (ESC)</A> +<LI><A HREF="readline.html#IDX27">previous-history (C-p)</A> +</DIR> +<H2>q</H2> +<DIR> +<LI><A HREF="readline.html#IDX41">quoted-insert (C-q, C-v)</A> +</DIR> +<H2>r</H2> +<DIR> +<LI><A HREF="readline.html#IDX72">re-read-init-file (C-x C-r)</A> +<LI><A HREF="readline.html#IDX87">readline</A> +<LI><A HREF="readline.html#IDX25">redraw-current-line ()</A> +<LI><A HREF="readline.html#IDX31">reverse-search-history (C-r)</A> +<LI><A HREF="readline.html#IDX77">revert-line (M-r)</A> +<LI><A HREF="readline.html#IDX107">rl_add_defun</A> +<LI><A HREF="readline.html#IDX133">rl_add_undo</A> +<LI><A HREF="readline.html#IDX175">rl_attempted_completion_function</A> +<LI><A HREF="readline.html#IDX181">rl_basic_quote_characters</A> +<LI><A HREF="readline.html#IDX180">rl_basic_word_break_characters</A> +<LI><A HREF="readline.html#IDX131">rl_begin_undo_group</A> +<LI><A HREF="readline.html#IDX116">rl_bind_key</A> +<LI><A HREF="readline.html#IDX117">rl_bind_key_in_map</A> +<LI><A HREF="readline.html#IDX106">rl_binding_keymap</A> +<LI><A HREF="readline.html#IDX162">rl_callback_handler_install</A> +<LI><A HREF="readline.html#IDX164">rl_callback_handler_remove</A> +<LI><A HREF="readline.html#IDX163">rl_callback_read_char</A> +<LI><A HREF="readline.html#IDX178">rl_char_is_quoted_p</A> +<LI><A HREF="readline.html#IDX142">rl_clear_message</A> +<LI><A HREF="readline.html#IDX165">rl_complete</A>, <A HREF="rlman.html#IDX168">rl_complete</A> +<LI><A HREF="readline.html#IDX167">rl_complete_internal</A> +<LI><A HREF="readline.html#IDX183">rl_completer_quote_characters</A> +<LI><A HREF="readline.html#IDX182">rl_completer_word_break_characters</A> +<LI><A HREF="readline.html#IDX186">rl_completion_append_character</A> +<LI><A HREF="readline.html#IDX166">rl_completion_entry_function</A>, <A HREF="rlman.html#IDX174">rl_completion_entry_function</A> +<LI><A HREF="readline.html#IDX179">rl_completion_query_items</A> +<LI><A HREF="readline.html#IDX109">rl_copy_keymap</A> +<LI><A HREF="readline.html#IDX145">rl_copy_text</A> +<LI><A HREF="readline.html#IDX144">rl_delete_text</A> +<LI><A HREF="readline.html#IDX192">rl_directory_completion_hook</A> +<LI><A HREF="readline.html#IDX111">rl_discard_keymap</A> +<LI><A HREF="readline.html#IDX135">rl_do_undo</A> +<LI><A HREF="readline.html#IDX93">rl_done</A> +<LI><A HREF="readline.html#IDX91">rl_end</A> +<LI><A HREF="readline.html#IDX132">rl_end_undo_group</A> +<LI><A HREF="readline.html#IDX102">rl_event_hook</A> +<LI><A HREF="readline.html#IDX105">rl_executing_keymap</A> +<LI><A HREF="readline.html#IDX188">rl_filename_completion_desired</A> +<LI><A HREF="readline.html#IDX177">rl_filename_dequoting_function</A> +<LI><A HREF="readline.html#IDX184">rl_filename_quote_characters</A> +<LI><A HREF="readline.html#IDX189">rl_filename_quoting_desired</A> +<LI><A HREF="readline.html#IDX176">rl_filename_quoting_function</A> +<LI><A HREF="readline.html#IDX138">rl_forced_update_display</A> +<LI><A HREF="readline.html#IDX129">rl_function_dumper</A> +<LI><A HREF="readline.html#IDX126">rl_function_of_keyseq</A> +<LI><A HREF="readline.html#IDX122">rl_generic_bind</A> +<LI><A HREF="readline.html#IDX112">rl_get_keymap</A> +<LI><A HREF="readline.html#IDX114">rl_get_keymap_by_name</A> +<LI><A HREF="readline.html#IDX115">rl_get_keymap_name</A> +<LI><A HREF="readline.html#IDX148">rl_getc</A> +<LI><A HREF="readline.html#IDX103">rl_getc_function</A> +<LI><A HREF="readline.html#IDX187">rl_ignore_completion_duplicates</A> +<LI><A HREF="readline.html#IDX191">rl_ignore_some_completions_function</A> +<LI><A HREF="readline.html#IDX190">rl_inhibit_completion</A> +<LI><A HREF="readline.html#IDX151">rl_initialize</A> +<LI><A HREF="readline.html#IDX170">rl_insert_completions</A> +<LI><A HREF="readline.html#IDX143">rl_insert_text</A> +<LI><A HREF="readline.html#IDX99">rl_instream</A> +<LI><A HREF="readline.html#IDX127">rl_invoking_keyseqs</A> +<LI><A HREF="readline.html#IDX128">rl_invoking_keyseqs_in_map</A> +<LI><A HREF="readline.html#IDX146">rl_kill_text</A> +<LI><A HREF="readline.html#IDX96">rl_library_version</A> +<LI><A HREF="readline.html#IDX89">rl_line_buffer</A> +<LI><A HREF="readline.html#IDX130">rl_list_funmap_names</A> +<LI><A HREF="readline.html#IDX108">rl_make_bare_keymap</A> +<LI><A HREF="readline.html#IDX110">rl_make_keymap</A> +<LI><A HREF="readline.html#IDX92">rl_mark</A> +<LI><A HREF="readline.html#IDX141">rl_message</A> +<LI><A HREF="readline.html#IDX136">rl_modifying</A> +<LI><A HREF="readline.html#IDX125">rl_named_function</A> +<LI><A HREF="readline.html#IDX139">rl_on_new_line</A> +<LI><A HREF="readline.html#IDX100">rl_outstream</A> +<LI><A HREF="readline.html#IDX123">rl_parse_and_bind</A> +<LI><A HREF="readline.html#IDX94">rl_pending_input</A> +<LI><A HREF="readline.html#IDX90">rl_point</A> +<LI><A HREF="readline.html#IDX169">rl_possible_completions</A> +<LI><A HREF="readline.html#IDX95">rl_prompt</A> +<LI><A HREF="readline.html#IDX124">rl_read_init_file</A> +<LI><A HREF="readline.html#IDX147">rl_read_key</A> +<LI><A HREF="readline.html#IDX98">rl_readline_name</A> +<LI><A HREF="readline.html#IDX137">rl_redisplay</A> +<LI><A HREF="readline.html#IDX104">rl_redisplay_function</A> +<LI><A HREF="readline.html#IDX140">rl_reset_line_state</A> +<LI><A HREF="readline.html#IDX152">rl_reset_terminal</A> +<LI><A HREF="readline.html#IDX113">rl_set_keymap</A> +<LI><A HREF="readline.html#IDX185">rl_special_prefixes</A> +<LI><A HREF="readline.html#IDX101">rl_startup_hook</A> +<LI><A HREF="readline.html#IDX149">rl_stuff_char</A> +<LI><A HREF="readline.html#IDX97">rl_terminal_name</A> +<LI><A HREF="readline.html#IDX121">rl_unbind_command_in_map</A> +<LI><A HREF="readline.html#IDX120">rl_unbind_function_in_map</A> +<LI><A HREF="readline.html#IDX118">rl_unbind_key</A> +<LI><A HREF="readline.html#IDX119">rl_unbind_key_in_map</A> +</DIR> +<H2>s</H2> +<DIR> +<LI><A HREF="readline.html#IDX43">self-insert (a, b, A, 1, !, ...)</A> +<LI><A HREF="readline.html#IDX79">set-mark (C-@)</A> +<LI><A HREF="readline.html#IDX16">show-all-if-ambiguous</A> +<LI><A HREF="readline.html#IDX69">start-kbd-macro (C-x ()</A> +</DIR> +<H2>t</H2> +<DIR> +<LI><A HREF="readline.html#IDX42">tab-insert (M-TAB)</A> +<LI><A HREF="readline.html#IDX78">tilde-expand (M-~)</A> +<LI><A HREF="readline.html#IDX160">to_lower</A> +<LI><A HREF="readline.html#IDX159">to_upper</A> +<LI><A HREF="readline.html#IDX44">transpose-chars (C-t)</A> +<LI><A HREF="readline.html#IDX45">transpose-words (M-t)</A> +</DIR> +<H2>u</H2> +<DIR> +<LI><A HREF="readline.html#IDX76">undo (C-_, C-x C-u)</A> +<LI><A HREF="readline.html#IDX64">universal-argument ()</A> +<LI><A HREF="readline.html#IDX51">unix-line-discard (C-u)</A> +<LI><A HREF="readline.html#IDX55">unix-word-rubout (C-w)</A> +<LI><A HREF="readline.html#IDX46">upcase-word (M-u)</A> +<LI><A HREF="readline.html#IDX156">uppercase_p</A> +<LI><A HREF="readline.html#IDX173">username_completion_function</A> +</DIR> +<H2>v</H2> +<DIR> +<LI><A HREF="readline.html#IDX17">visible-stats</A> +</DIR> +<H2>y</H2> +<DIR> +<LI><A HREF="readline.html#IDX61">yank (C-y)</A> +<LI><A HREF="readline.html#IDX38">yank-last-arg (M-., M-_)</A> +<LI><A HREF="readline.html#IDX37">yank-nth-arg (M-C-y)</A> +<LI><A HREF="readline.html#IDX62">yank-pop (M-y)</A> +</DIR> + +</P> +<P><HR><P> +This document was generated on 2 April 1998 using the +<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A> +translator version 1.51.</P> +</BODY> +</HTML> diff --git a/readline/doc/readline.ps b/readline/doc/readline.ps new file mode 100644 index 0000000..ef8e8e9 --- /dev/null +++ b/readline/doc/readline.ps @@ -0,0 +1,4946 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software +%%Title: readline.dvi +%%Pages: 54 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%DocumentPaperSizes: A4 +%%EndComments +%DVIPSCommandLine: dvips -D 300 -o readline.ps readline.dvi +%DVIPSParameters: dpi=300, comments removed +%DVIPSSource: TeX output 1998.04.02:1444 +%%BeginProcSet: tex.pro +/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}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{dup dup 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 /IE 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 IE N +end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /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 dup definefont setfont}B /ch-width{ch-data dup +length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ +128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub +get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data +dup 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 /sf 0 N /CharBuilder{save 3 1 roll S dup +/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx +0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff +setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff +.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} +if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 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 dup 1 get dup mul exch 0 get dup 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 +/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for +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 /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V +{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 +getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} +ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false +RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 +false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform +round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg +rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail +{dup /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 +TeXDict begin 39158280 55380996 1000 300 300 (readline.dvi) +@start /Fa 1 47 df<70F8F8F0E005057B840E>46 D E /Fb 1 +47 df<0E003F007F807F80FF80FF80FF007E003C000909798815>46 +D E /Fc 1 59 df<60F0F06004047D830B>58 D E /Fd 53 127 +df<60F0F0F0F0F0F0F0F0F0F0F0F0F0600000000060F0F0600417789614>33 +D<071C00071C00071C00071C00071C00FFFF80FFFF807FFF800E38000E38000E38000E38 +000E38000E38000E38007FFF80FFFF80FFFF801C70001C70001C70001C70001C70001117 +7F9614>35 D<0180038006000C001C0018003800700070007000E000E000E000E000E000 +E000E000E000E000700070007000380018001C000C00060003800180091D799914>40 +D<80C0603038181C0E0E0E0707070707070707070E0E0E1C18383060C080081D7C9914> +I<038003800380638CF39E7FFC3FF80FE00FE03FF87FFCF39E638C0380038003800F107E +9214>I<70F8FCFC7C0C1830E0C0060A798414>44 D<FFFEFFFEFFFE0F037E8C14>I<70F8 +F8F8700505798414>I<07C00FE01C7038383018701C701CE00EE00EE00EE00EE00EE00E +E00EE00EE00E701C701C383838381C700FE007C00F177E9614>48 +D<0300030007000F003F00F7004700070007000700070007000700070007000700070007 +000700070007007FF07FF00C177C9614>I<0006001E003E00F801F003C00F801F003C00 +F800F000F8003C001F000F8003C001F000F8003E001E00060F157E9514>60 +D<C000F000F8003E001F00078003E001F00078003E001E003E007801F003E007801F003E +00F800F000C0000F157E9514>62 D<1FE03FF8701CE00EE00E400E003C007000E001C003 +800380038003800300000000000000000003000780078003000F177E9614>I<01E007F0 +0E38181C38FC71FC731E771EEE0EEE0EEE0EEE0EEE0EEE0EEE0E771C731871F038E01806 +0E1E07F801F00F177E9614>I<01C00003E00003E0000360000360000770000770000770 +000770000630000E38000E38000E38000E38001C1C001FFC001FFC001C1C001C1C00380E +00380E00FE3F80FE3F8011177F9614>I<FFF0FFFC381E380E3807380738073807380E38 +1E3FFC3FFC381E380E38073807380738073807380E381EFFFCFFF810177F9614>I<01F1 +8007FF800E1F801C0780380780700380700380700380E00000E00000E00000E00000E000 +00E00000E000007003807003807003803807001C07000E0E0007FC0001F00011177F9614 +>I<FFE000FFF800383C00381E00380E0038070038070038070038038038038038038038 +0380380380380380380380380380380700380700380E00381E00383C00FFF800FFE00011 +177F9614>I<FFFF00FFFF00380700380700380700380700380000380000383800383800 +3FF8003FF800383800383800380000380000380000380380380380380380380380FFFF80 +FFFF8011177F9614>I<FF00FF0038003800380038003800380038003800380038003800 +38003800380038003807380738073807FFFFFFFF10177E9614>76 +D<FC1F80FC1F807C1F007637007637007637007637007777007777007367007367007367 +0073E70071C70071C700700700700700700700700700700700700700F80F80F80F801117 +7F9614>I<FE3F80FE3F803E0E003B0E003B0E003B0E003B0E003B8E00398E00398E0039 +CE0039CE0039CE0038CE0038CE0038EE00386E00386E00386E00386E00383E00FE3E00FE +3E0011177F9614>I<FFE000FFF800383C00381C00380E00380E00380E00380E00381C00 +383C003FF8003FF000383800381C00381C00381C00381C00381C00381C80381DC0381DC0 +FE0F80FE070012177F9614>82 D<0FCC1FFC307C603CE01CE01CE01CE00070007E003FE0 +0FF001F8001C001E000E600EE00EE00EF01CF838FFF0C7E00F177E9614>I<7FFF80FFFF +80E1C380E1C380E1C380E1C38001C00001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C00001C00001C00001C0000FF8000FF80011177F9614>I<FF +E0FFE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000 +E000E000E000E000E000E000E000E000E0FFE0FFE00B1D7F9914>93 +D<FFFEFFFEFFFE0F037E7E14>95 D<1FC0007FF000707800201800001C00001C0007FC00 +1FFC003C1C00701C00E01C00E01C00E01C00707C003FFF800F8F8011107E8F14>97 +D<FC0000FC00001C00001C00001C00001C00001C00001CF8001DFE001F07001E03001C03 +801C01C01C01C01C01C01C01C01C01C01C01C01C03801E03001F0E001DFC000CF8001217 +809614>I<03F80FFE1C0E380470006000E000E000E000E00060007000380E1C1E0FFC03 +F00F107E8F14>I<007E00007E00000E00000E00000E00000E00000E0007CE000FFE001C +3E00301E00700E00E00E00E00E00E00E00E00E00E00E00E00E00700E00301E00383E001F +EFC007CFC012177F9614>I<07E00FF01C38301C700CE00EE00EFFFEFFFEE00060007000 +380E1C1E0FFC03F00F107E8F14>I<00FC01FE038E07040700070007007FFEFFFE070007 +000700070007000700070007000700070007000700FFF8FFF80F177F9614>I<07CF001F +FF80383B80301800701C00701C00701C003018003838003FF00037C0007000007000003F +F8001FFC003FFE00700F00E00380E00380E00380E003807007003C1E001FFC0007F00011 +197F8F14>I<FC0000FC00001C00001C00001C00001C00001C00001C78001DFE001F8600 +1E07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700FF8FE0 +FF8FE01317809614>I<06000F000F0006000000000000000000FF00FF00070007000700 +070007000700070007000700070007000700FFF8FFF80D187C9714>I<FC0000FC00001C +00001C00001C00001C00001C00001CFF801CFF801C1C001C38001C70001CE0001DC0001F +E0001FE0001E70001C38001C3C001C1C001C0E00FF1F80FF1F801117809614>107 +D<FF80FF8003800380038003800380038003800380038003800380038003800380038003 +80038003800380FFFEFFFE0F177E9614>I<FB8E00FFDF003CF3803CF38038E38038E380 +38E38038E38038E38038E38038E38038E38038E38038E380FEFBE0FE79E01310808F14> +I<FC7800FDFE001F86001E07001C07001C07001C07001C07001C07001C07001C07001C07 +001C07001C0700FF8FE0FF8FE01310808F14>I<07C01FF03C78701C701CE00EE00EE00E +E00EE00EE00E701C783C3C781FF007C00F107E8F14>I<FCF800FDFE001F07001E03001C +03801C01C01C01C01C01C01C01C01C01C01C01C01C03801E03001F0E001DFC001CF8001C +00001C00001C00001C00001C00001C0000FF8000FF80001218808F14>I<03E7000FF700 +1C1F00300F00700F00E00700E00700E00700E00700E00700E00700700F00300F001C3F00 +0FF70007C700000700000700000700000700000700000700003FE0003FE013187F8F14> +I<FE1F00FE7F800EE3800F81000F00000F00000E00000E00000E00000E00000E00000E00 +000E00000E0000FFF000FFF00011107F8F14>I<0FD83FF86038C038C038F0007F803FF0 +07F8001C6006E006F006F81CFFF8CFE00F107E8F14>I<06000E000E000E000E007FFCFF +FC0E000E000E000E000E000E000E000E000E0E0E0E0E0E0E1C07F801F00F157F9414>I< +FC3F00FC3F001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700 +1C07001C1F000FFFE003E7E01310808F14>I<FE3F80FE3F803C1E001C1C001C1C001C1C +000E38000E38000E380006300007700007700007700003E00003E00003E00011107F8F14 +>I<FE3F80FE3F80700700380E00380E00380E0039CE0039CE0039CE001B6C001A6C001A +6C001A6C001E7C001E7C000E380011107F8F14>I<7E3F007E3F001E3C000E7800077000 +07E00003E00001C00003C00003E0000770000E78000E38001C1C00FE3F80FE3F8011107F +8F14>I<FE3F80FE3F801C0E001C1C001C1C000E1C000E38000E38000738000730000730 +0003700003700003E00001E00001E00001C00001C00001C0000380007380007700007E00 +003C000011187F8F14>I<3FFF7FFF700E701C7038007000E001C0038007000E001C0738 +077007FFFFFFFF10107F8F14>I<1C103F38E7E041C00D047D9614>126 +D E /Fe 2 121 df<7070F06004047D830B>46 D<3FC7E007838007020003840003C800 +01D80000F00000E00000F00001F000013800023800041C00081E00381E00FC3FC013107F +8F14>120 D E /Ff 38 123 df<00FE000381000601800E03801C01001C00001C00001C +00001C00001C0000FFFF801C03801C03801C03801C03801C03801C03801C03801C03801C +03801C03801C03801C03801C03801C0380FF8FF0141A809915>12 +D<00FF800383800603800E03801C03801C03801C03801C03801C03801C0380FFFF801C03 +801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03 +801C0380FF9FF0141A809915>I<60F0F07010101020204040040B7D830B>44 +D<FFC0FFC00A0280880D>I<03000700FF00070007000700070007000700070007000700 +070007000700070007000700070007000700070007007FF80D187D9713>49 +D<0F80106020304038803CC01CE01C401C003C003800380070006000C001800100020004 +040804100430083FF87FF8FFF80E187E9713>I<07E01838201C601E700E201E001E001C +001C0038007007E00038001C000E000F000FE00FE00FC00F400E601C183807E010187F97 +13>I<001800180038007800F800B8013802380238043808381838103820384038C038FF +FF00380038003800380038003803FF10187F9713>I<30183FF03FE03F80200020002000 +200020002FC03060203000380018001C001C401CE01CE01C80184038403030E00F800E18 +7E9713>I<01F807040C06180E300E300070006000E000E3E0E418E80CF00EE006E007E0 +07E007600760077006300E180C0C3807E010187F9713>I<40007FFF7FFE7FFE40048008 +80108010002000400040008001800100030003000700060006000E000E000E000E000E00 +040010197E9813>I<07E01818300C2006600660067006780C3E181F3007C003E00CF830 +7C601E600FC007C003C003C00360022004181807E010187F9713>I<07E01C303018700C +600EE006E006E007E007E0076007700F3017182707C700070006000E000C700C70186030 +30600F8010187F9713>I<1FC000387000383800101C00001C00001C0003FC001E1C0038 +1C00701C00E01C00E01C80E01C80E03C80705F801F8F0011107F8F13>97 +D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001CFC001D07 +001E03801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01801E03 +0019060010F800131A809915>I<07F81C1C381C70087000E000E000E000E000E000E000 +7000700438081C1807E00E107F8F11>I<003F0000070000070000070000070000070000 +070000070000070000070003E7000C1700180F00300700700700E00700E00700E00700E0 +0700E00700E00700600700700700380F001C370007C7E0131A7F9915>I<07C01C303018 +7018600CE00CFFFCE000E000E000E0006000700438081C1807E00E107F8F11>I<01F007 +180E381C101C001C001C001C001C001C00FFC01C001C001C001C001C001C001C001C001C +001C001C001C001C001C00FF800D1A80990C>I<0FCF0018718030300070380070380070 +38007038003030001860002FC0006000006000007000003FF0003FFC001FFE00600F00C0 +0300C00300C00300C00300600600381C0007E00011187F8F13>I<FC00001C00001C0000 +1C00001C00001C00001C00001C00001C00001C00001C7C001D87001E03801E03801C0380 +1C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF0141A80 +9915>I<183C3C18000000000000FC1C1C1C1C1C1C1C1C1C1C1C1C1C1CFF081A80990A>I< +FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C1FC01C0F00 +1C0C001C18001C20001C40001CE0001DE0001E70001C78001C38001C1C001C1E001C0F00 +1C0F80FF9FE0131A809914>107 D<FC001C001C001C001C001C001C001C001C001C001C +001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091A80990A +>I<FC7C1F001D8E63801E0781C01E0781C01C0701C01C0701C01C0701C01C0701C01C07 +01C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C0FF9FE7F81D107F8F20> +I<FC7C001D87001E03801E03801C03801C03801C03801C03801C03801C03801C03801C03 +801C03801C03801C0380FF9FF01410808F15>I<07E01C38300C700E6006E007E007E007 +E007E007E0076006700E381C1C3807E010107F8F13>I<FCFC001D07001E03801C01C01C +01C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01801E03001D06001CF8001C +00001C00001C00001C00001C00001C0000FF80001317808F15>I<03E1000C1300180B00 +300F00700700E00700E00700E00700E00700E00700E00700700700700700380F001C3700 +07C700000700000700000700000700000700000700003FE013177F8F14>I<FC781D9C1E +1C1E081C001C001C001C001C001C001C001C001C001C001C00FF800E10808F0F>I<1F20 +60E04020C020C020F0007F003FC01FE000F080708030C030C020F0408F800C107F8F0F> +I<0800080008000800180018003800FFC038003800380038003800380038003800382038 +203820382018201C4007800B177F960F>I<FC1F801C03801C03801C03801C03801C0380 +1C03801C03801C03801C03801C03801C03801C07800C07800E0B8003F3F01410808F15> +I<FF0F803C07001C06001C04001C04000E08000E080007100007100007100003A00003A0 +0001C00001C00001C00000800011107F8F14>I<FE7F1F80381C07003C1C06001C0C0400 +1C0E04000E1608000E1708000E170800072310000723900007A3900003C1A00003C1E000 +0180C0000180C0000180C00019107F8F1C>I<FE3F803C1E001C08000E10000F30000760 +0003C00001C00001E00003E000027000043800083800181C00381E00FC3FC012107F8F14 +>I<FF0F803C07001C06001C04001C04000E08000E080007100007100007100003A00003 +A00001C00001C00001C000008000008000010000010000E10000E20000E4000078000011 +177F8F14>I<FFF8E070C07080E081C081C00380070007000E041C041C04380870087038 +FFF80E107F8F11>I E /Fg 2 42 df<00E001C00380078007000F001E001E001C003C00 +3C0038007800780078007000F000F000F000F000F000F000F000F000F000F000F000F000 +F000F000700078007800780038003C003C001C001E001E000F0007000780038001C000E0 +0B2E7CA112>40 D<E000700038003C001C001E000F000F00070007800780038003C003C0 +03C001C001E001E001E001E001E001E001E001E001E001E001E001E001E001E001C003C0 +03C003C003800780078007000F000F001E001C003C0038007000E0000B2E7EA112>I +E /Fh 28 123 df<000FF83F00007FFDFFC001FC1FE3E003F03FC7E007E03FC7E00FC03F +87E00FC03F83C00FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80 +00FFFFFFFC00FFFFFFFC000FC01F80000FC01F80000FC01F80000FC01F80000FC01F8000 +0FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000F +C01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80007FF8FFF8007FF8 +FFF80023237FA221>11 D<0007F800007FFC0001FC0E0003F01F0007E03F000FC03F000F +C03F000FC03F000FC01E000FC00C000FC000000FC000000FC0FF80FFFFFF80FFFFFF800F +C01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800F +C01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F807F +F8FFF07FF8FFF01C237FA220>I<00180030006000C001C00380078007000F001E001E00 +3E003C003C007C007C007C007800F800F800F800F800F800F800F800F800F800F800F800 +F800F80078007C007C007C003C003C003E001E001E000F0007000780038001C000C00060 +003000180D317BA416>40 D<07FE00001FFF80003F07E0003F03F0003F01F0003F01F800 +1E01F8000001F8000001F800003FF80003FDF8001F81F8003E01F8007C01F800F801F800 +F801F800F801F800F801F8007C02F8007E0CF8001FF87F8007E03F8019167E951C>97 +D<FF800000FF8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000 +001F8000001F8000001F8000001F8000001F87F0001FBFFC001FF03E001FC01F001F800F +801F800FC01F8007C01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F8007 +E01F8007C01F8007C01F800FC01F800F801FC01F001E707E001C3FFC00180FE0001B237E +A220>I<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC00 +00FC0000FC0000FC00007C00007E00007E00003E00181F00300FC06007FFC000FF001516 +7E9519>I<0001FF000001FF0000003F0000003F0000003F0000003F0000003F0000003F +0000003F0000003F0000003F0000003F0000003F0000FE3F0007FFBF000FC1FF001F007F +003E003F007E003F007C003F007C003F00FC003F00FC003F00FC003F00FC003F00FC003F +00FC003F00FC003F007C003F007E003F003E003F001F007F000F81FF0007FF3FE001FC3F +E01B237EA220>I<00FE0007FF800F83C01E01E03E00F07E00F07C00F87C0078FC0078FF +FFF8FFFFF8FC0000FC0000FC00007C00007C00003E00183E00181F00300F80E003FFC000 +FF0015167E951A>I<001F8000FFE001F1F003E3F007E3F00FC3F00FC1E00FC0000FC000 +0FC0000FC0000FC0000FC000FFFE00FFFE000FC0000FC0000FC0000FC0000FC0000FC000 +0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000 +7FFC007FFC0014237EA212>I<00FE0F8003FF9FC00F83E3C01F01F3C01E00F0003E00F8 +003E00F8003E00F8003E00F8003E00F8001E00F0001F01F0000F83E0000BFF800008FE00 +0018000000180000001C0000001FFFE0001FFFFC000FFFFF0007FFFF001FFFFF807C001F +C078000FC0F80007C0F80007C0F80007C07C000F803E001F001F807E000FFFFC0001FFE0 +001A217F951D>I<FF800000FF8000001F8000001F8000001F8000001F8000001F800000 +1F8000001F8000001F8000001F8000001F8000001F8000001F83F0001F8FFC001F987E00 +1FA03E001FC03F001FC03F001F803F001F803F001F803F001F803F001F803F001F803F00 +1F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00FFF1FFE0 +FFF1FFE01B237DA220>I<1E003F007F807F807F807F803F001E00000000000000000000 +000000FF80FF801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F +801F801F801F80FFF0FFF00C247EA30F>I<FF800000FF8000001F8000001F8000001F80 +00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80 +FF801F80FF801F803C001F8030001F80E0001F81C0001F8300001F8600001F9E00001FBE +00001FFF00001FDF80001F8FC0001F07C0001F07E0001F03F0001F01F8001F00F8001F00 +FC001F007E00FFE1FFC0FFE1FFC01A237EA21E>107 D<FF80FF801F801F801F801F801F +801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F +801F801F801F801F801F801F801F801F80FFF0FFF00C237EA20F>I<FF03F803F800FF0F +FE0FFE001F183F183F001F201F201F001F401FC01F801F401FC01F801F801F801F801F80 +1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80 +1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80 +1F801F80FFF0FFF0FFF0FFF0FFF0FFF02C167D9531>I<FF03F000FF0FFC001F187E001F +203E001F403F001F403F001F803F001F803F001F803F001F803F001F803F001F803F001F +803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00FFF1FFE0FF +F1FFE01B167D9520>I<00FF0007FFE00F81F01F00F83E007C7C003E7C003E7C003EFC00 +3FFC003FFC003FFC003FFC003FFC003FFC003F7C003E7E007E3E007C1F00F80F81F007FF +E000FF0018167E951D>I<FF87F000FFBFFC001FF07E001FC01F001F800F801F800FC01F +800FC01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F8007C01F +800FC01F800FC01F801F801FC01F001FF07E001FBFFC001F8FE0001F8000001F8000001F +8000001F8000001F8000001F8000001F8000001F800000FFF00000FFF000001B207E9520 +>I<00FE030007FF07000FC1CF001F00DF003F007F007E003F007E003F007C003F00FC00 +3F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F007E003F007E003F003E00 +7F001F00FF000FC1FF0007FF3F0000FC3F0000003F0000003F0000003F0000003F000000 +3F0000003F0000003F0000003F000001FFE00001FFE01B207E951E>I<FF0F80FF1FE01F +33F01F63F01F43F01F43F01FC1E01F80001F80001F80001F80001F80001F80001F80001F +80001F80001F80001F80001F80001F8000FFF800FFF80014167E9518>I<07F9801FFF80 +380780700380F00180F00180F80000FF0000FFF8007FFE003FFF001FFF8007FF80003FC0 +C007C0C003C0E003C0E003C0F00380FC0F00EFFE00C3F80012167E9517>I<0180000180 +000180000180000380000380000780000780000F80003F8000FFFF00FFFF001F80001F80 +001F80001F80001F80001F80001F80001F80001F80001F80001F80001F81801F81801F81 +801F81801F81800F83000FC30007FE0001F80011207F9F16>I<FF81FF00FF81FF001F80 +3F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F80 +3F001F803F001F803F001F803F001F803F001F803F001F807F001F80FF000FC1BF0007FF +3FE001FC3FE01B167D9520>I<FFF01FE0FFF01FE01FC007000FC006000FE00E0007E00C +0007F00C0003F0180003F0180001F8300001F8300000FC600000FC600000FEE000007EC0 +00007FC000003F8000003F8000001F0000001F0000000E0000000E00001B167F951E>I< +FFF3FF83FCFFF3FF83FC1F807C00E00FC07C00C00FC03E00C00FE03E01C007E07F018007 +E07F018003F07F030003F0CF830003F8CF870001F9CFC60001F987C60000FD87EC0000FF +03EC0000FF03FC00007F03F800007E01F800003E01F000003C00F000003C00F000001800 +600026167F9529>I<FFF07FC0FFF07FC00FC01C0007E0380007F0700003F0E00001F8C0 +0000FD8000007F8000007F0000003F0000001F8000003FC0000037E0000067F00000C3F0 +0001C1F8000380FC000700FE000E007F00FF81FFE0FF81FFE01B167F951E>I<FFF01FE0 +FFF01FE01FC007000FC006000FE00E0007E00C0007F00C0003F0180003F0180001F83000 +01F8300000FC600000FC600000FEE000007EC000007FC000003F8000003F8000001F0000 +001F0000000E0000000E0000000C0000000C00000018000078180000FC380000FC300000 +FC60000069C000007F8000001F0000001B207F951E>I<7FFFF07FFFF07C07E0700FC060 +1FC0E01F80C03F00C07F00C07E0000FC0001FC0003F80003F03007E0300FE0300FC0701F +80703F80603F00E07E03E0FFFFE0FFFFE014167E9519>I E /Fi +29 122 df<00E00000E00000E00000E00000E000F0E1E0FCE7E07EEFC01FFF0007FC0001 +F00007FC001FFF007EEFC0FCE7E0F0E1E000E00000E00000E00000E00000E00013157D99 +1A>42 D<007C3801FF3807FFF80F83F81E00F81C00783800783800387000387000387000 +00E00000E00000E00000E00000E00000E00000E00000E000007000007000387000383800 +383800381C00701E00F00F83E007FFC001FF80007C00151E7E9D1A>67 +D<FFFFF8FFFFF8FFFFF81C00381C00381C00381C00381C00381C00001C00001C0E001C0E +001C0E001FFE001FFE001FFE001C0E001C0E001C0E001C00001C00001C00001C001C1C00 +1C1C001C1C001C1C001CFFFFFCFFFFFCFFFFFC161E7E9D1A>69 D<7FFFFCFFFFFC7FFFFC +0E001C0E001C0E001C0E001C0E001C0E00000E00000E03800E03800E03800FFF800FFF80 +0FFF800E03800E03800E03800E00000E00000E00000E00000E00000E00000E00000E0000 +7FE000FFE0007FE000161E7F9D1A>I<FFFF80FFFF80FFFF8001C00001C00001C00001C0 +0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C00001C00001C00001C00001C000FFFF80FFFF80FFFF80111E +7C9D1A>73 D<7F03F8FF87FC7F03F81C01E01C03C01C03801C07001C0F001C1E001C1C00 +1C38001C78001CF0001CF8001DF8001FDC001F9C001F0E001E0F001E07001C07801C0380 +1C01C01C01C01C00E01C00E01C00707F00FCFF81FE7F00FC171E7F9D1A>75 +D<7FE000FFF0007FE0000E00000E00000E00000E00000E00000E00000E00000E00000E00 +000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E001C0E00 +1C0E001C0E001C0E001C7FFFFCFFFFFC7FFFFC161E7F9D1A>I<FFFE00FFFF80FFFFC01C +03E01C00F01C00701C00781C00381C00381C00381C00381C00781C00701C00F01C03E01F +FFC01FFF801FFE001C00001C00001C00001C00001C00001C00001C00001C00001C0000FF +8000FF8000FF8000151E7E9D1A>80 D<FF01FEFF01FEFF01FE1C00701C00701C00701E00 +F00E00E00E00E00E00E00701C00701C00701C00701C003838003838003838003838001C7 +0001C70001C70001C70000C60000EE0000EE0000EE00006C00007C00007C00003800171E +7F9D1A>86 D<7FFFC0FFFFE0FFFFE07FFFC013047D7E1A>95 D<1FF0003FFC007FFE0078 +0F00300700000380000380007F8007FF801FFF803F8380780380700380E00380E00380E0 +0380700780780F803FFFFC1FFDFC07F0FC16157D941A>97 D<FE0000FE0000FE00000E00 +000E00000E00000E00000E00000E00000E3E000EFF800FFFE00FC1F00F80700F00380E00 +380E001C0E001C0E001C0E001C0E001C0E001C0E001C0F00380F00780F80F00FC1E00FFF +C00EFF80063E00161E7F9D1A>I<00FF8003FFC00FFFE01F01E03C00C078000070000070 +0000E00000E00000E00000E00000E000007000007000007800703C00701F01F00FFFE003 +FFC000FE0014157D941A>I<001FC0001FC0001FC00001C00001C00001C00001C00001C0 +0001C001F1C007FDC00FFFC01E0FC03C07C07803C07001C0E001C0E001C0E001C0E001C0 +E001C0E001C0E001C07003C07003C03807C03E0FC01FFFFC07FDFC01F1FC161E7E9D1A> +I<01F80007FF000FFF801E07C03C01C07800E07000E0E00070E00070FFFFF0FFFFF0FFFF +F0E000007000007000007800703C00701F01F00FFFE003FF8000FE0014157D941A>I<00 +07E0001FF0003FF800787800F03000E00000E00000E00000E0007FFFF0FFFFF0FFFFF000 +E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000 +E00000E00000E0003FFF807FFFC03FFF80151E7F9D1A>I<FE0000FE0000FE00000E0000 +0E00000E00000E00000E00000E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E0 +0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0FFE3FE +FFE7FEFFE3FE171E7F9D1A>104 D<01C00003E00003E00003E00001C000000000000000 +0000000000000000007FE0007FE0007FE00000E00000E00000E00000E00000E00000E000 +00E00000E00000E00000E00000E00000E00000E00000E00000E0007FFF80FFFFC07FFF80 +121F7C9E1A>I<FFE000FFE000FFE00000E00000E00000E00000E00000E00000E00000E0 +0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0 +0000E00000E00000E00000E00000E000FFFFE0FFFFE0FFFFE0131E7D9D1A>108 +D<7CE0E000FFFBF8007FFFF8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C +001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C +007F1F1F00FF9F9F807F1F1F00191580941A>I<FE3E00FEFF80FFFFC00FC1C00F80E00F +00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E +00E0FFE3FEFFE7FEFFE3FE17157F941A>I<01F00007FC001FFF003E0F803C07807803C0 +7001C0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07803C03C07803E0F80 +1FFF0007FC0001F00013157D941A>I<FE3E00FEFF80FFFFE00FC1F00F80700F00380E00 +380E001C0E001C0E001C0E001C0E001C0E001C0E001C0F00380F00780F80F00FC1E00FFF +C00EFF800E3E000E00000E00000E00000E00000E00000E00000E00000E0000FFE000FFE0 +00FFE00016207F941A>I<7F81F8FF8FFC7F9FFE03FE1E03F80C03E00003E00003C00003 +80000380000380000380000380000380000380000380000380000380007FFF00FFFF007F +FF0017157F941A>114 D<0180000380000380000380000380000380000380007FFFE0FF +FFE0FFFFE003800003800003800003800003800003800003800003800003800003800003 +807003807003807003807001C1E001FFE000FF80003F00141C7F9B1A>116 +D<FE0FE0FE0FE0FE0FE00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00 +E00E00E00E00E00E00E00E00E00E01E00F03E007FFFE03FFFE00FCFE17157F941A>I<7F +C7FCFFC7FE7FC7FC0E00E00E00E00E00E00701C00701C00701C003838003838003838001 +C70001C70001C70000EE0000EE0000EE00007C00007C0000380017157F941A>I<7FC7F8 +7FCFFC7FC7F80703C003838003C70001EF0000FE00007C00007800003800007C0000EE00 +01EE0001C7000383800783C00701C07FC7FCFFC7FE7FC7FC17157F941A>120 +D<7FC7FCFFC7FE7FC7FC0E00E00E00E00700E00701C00781C00381C003838001C38001C3 +8001C70000E70000E70000E600006600006E00003C00003C00003C000038000038000038 +0000780000700030700078E00071E0007FC0003F80001E000017207F941A>I +E /Fj 1 59 df<70F8F8F87005057C840D>58 D E /Fk 6 102 df<06000F001F800F80 +0F800380070007000F000E003C007C00F0006000090E769B18>39 +D<7FFFC0FFFFE0FFFFE07FFFC013047C8F18>45 D<003E1800FFB801FFF807C1F8078078 +0E00781E00781C0070380030380000700000700000700000E00000E00000E00000E00000 +E00000E00000E000C07001C07001C07003C03807803C0F001FFE000FFC0003F000151C7C +9B18>67 D<07E01F800FE03FC007E03F8003B02E0003B06E0003B06E0003B0CE000730DC +000731DC0007319C0007319C0007339C0007331C000E3338000E3738000E3638000E3E38 +000E3C38000E1838001C0070001C0070001C0070001C0070001C0070001C007000FE03F8 +00FF03FC00FE03F8001A1C7F9B18>77 D<6000F000F000F000F8007800780078007C003C +003C003C003E001E001E001E001F000F000F000F000F8007800780078007C003C003C003 +C003C003E001E001E001E001F000F000600C24789F18>92 D<00F80007FE000FFF001F07 +803C03807801C07001C0E001C0E001C0FFFFC0FFFFC0FFFF80E00000E00000E003007007 +80780F003FFE001FFC0007F00012147B9318>101 D E /Fl 52 122 +df<3C7EFFFFFFFF7E3C08087C8711>46 D<007F800003FFF00007E1F8000F807C001F00 +3E003F003F003E001F007E001F807E001F807E001F807E001F80FE001FC0FE001FC0FE00 +1FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE00 +1FC0FE001FC07E001F807E001F807E001F807E001F803F003F003F003F001F003E000F80 +7C0007E1F80003FFF000007F80001A237EA21F>48 D<001C00003C0000FC00FFFC00FFFC +0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC +0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC +0000FC0000FC0000FC0000FC007FFFFC7FFFFC16237CA21F>I<01FF0007FFC01E07F038 +03F86001FC7C00FEFE00FEFE00FFFE007FFE007F7C007F3800FF0000FF0000FE0000FE00 +01FC0001F80003F00007E0000780000F00001E00003C0000700000E00301C00303800707 +00060600060FFFFE1FFFFE3FFFFE7FFFFCFFFFFCFFFFFC18237DA21F>I<01FF0007FFE0 +1E03F03801F83C01FC7E00FE7E00FE7E00FE3E00FE1C01FE0001FC0001FC0003F80007F0 +000FC001FF0001FF000007E00001F00001F80000FC0000FE0000FF0000FF1000FF7C00FF +FE00FFFE00FFFE00FEFE00FE7C01FC7001F83E07F00FFFC001FF0018237DA21F>I<0000 +380000007800000078000000F8000001F8000003F8000007F8000006F800000CF800001C +F8000038F8000030F8000060F80000E0F80001C0F8000180F8000300F8000700F8000E00 +F8001C00F8001800F8003000F8007000F800E000F800FFFFFFC0FFFFFFC00001F8000001 +F8000001F8000001F8000001F8000001F8000001F800007FFFC0007FFFC01A237EA21F> +I<18000C1F007C1FFFF81FFFF01FFFE01FFFC01FFF801FFC001800001800001800001800 +0018000018FF001BFFE01F03F01C00F80800FC00007E00007E00007E00007F00007F7800 +7FFC007FFC007FFC007FFC007EF8007E6000FC7000FC3801F81E07E007FFC001FE001823 +7DA21F>I<001FC0007FF001F03803E00C07803E0F807E1F007E3F007E3F007E7E003C7E +00007E00007E0000FE3FC0FE7FF0FE80F8FF80FCFF007CFF007EFE007EFE007FFE007FFE +007FFE007F7E007F7E007F7E007F7E007F3E007E3F007E1F007C0F80F807C1F003FFC000 +7F0018237DA21F>I<300000003C0000003FFFFFC03FFFFFC03FFFFF807FFFFF007FFFFE +007FFFFC006000180060001800E0003000C0006000C000C0000001800000018000000300 +0000060000000E0000000E0000001C0000001C0000003C0000003C000000780000007800 +0000F8000000F8000000F8000000F8000001F8000001F8000001F8000001F8000001F800 +0001F8000000F00000006000001A257DA41F>I<00FF8003FFE00F01F81C007C38003C38 +001E78001E78001E7C001E7E001E7F803C7FE03C3FF8781FFDF01FFFC00FFFC003FFE003 +FFF80FFFFC1E1FFC3C07FE7803FE7800FFF0003FF0001FF0000FF0000FF0000FF0000E78 +000E78001C3C00381F80F007FFE001FF0018237DA21F>I<00FF0003FFC00F83E01F00F0 +3F00F87E007C7E007C7E007EFE007EFE007EFE007EFE007FFE007FFE007FFE007F7E007F +7E00FF3E00FF3F01FF1F017F0FFE7F03FC7F00007F00007E00007E3C007E7E00FC7E00FC +7E00F87E00F07C01F03003E01C0F800FFF0003F80018237DA21F>I<00001C0000000000 +1C00000000003E00000000003E00000000003E00000000007F00000000007F0000000000 +FF8000000000FF8000000000FF80000000019FC0000000019FC0000000031FE000000003 +0FE0000000070FF00000000607F00000000607F00000000C07F80000000C03F80000001C +03FC0000001801FC0000001801FC0000003000FE0000003000FE0000007FFFFF0000007F +FFFF000000E0007F800000C0003F800000C0003F80000180003FC0000180001FC0000380 +001FE0000300000FE0000300000FE00007000007F000FFF000FFFF80FFF000FFFF802925 +7EA42E>65 D<FFFFFFE000FFFFFFFC0003F0007F0003F0003F8003F0001FC003F0000FE0 +03F0000FE003F0000FF003F0000FF003F00007F003F0000FF003F0000FF003F0000FE003 +F0001FE003F0001FC003F0007F8003F001FE0003FFFFF80003FFFFFF0003F0003FC003F0 +000FE003F00007F003F00007F803F00003F803F00003FC03F00003FC03F00003FC03F000 +03FC03F00003FC03F00003FC03F00003F803F00007F803F0000FF003F0001FE003F0007F +C0FFFFFFFF00FFFFFFF80026257EA42C>I<0000FF8008000FFFF018003FC03C7800FE00 +06F801F80003F803F00001F807E00000F80FC00000781FC00000783F800000383F800000 +387F800000187F000000187F00000018FF00000000FF00000000FF00000000FF00000000 +FF00000000FF00000000FF00000000FF00000000FF000000007F000000007F000000187F +800000183F800000183F800000181FC00000300FC000003007E000006003F00000C001F8 +00018000FE000700003FC01E00000FFFF8000000FFC00025257DA42C>I<FFFFFFFF00FF +FFFFFF0003F8007F0003F8000F8003F800078003F800038003F800038003F800018003F8 +00018003F800018003F80000C003F80600C003F80600C003F806000003F806000003F80E +000003F81E000003FFFE000003FFFE000003F81E000003F80E000003F806000003F80600 +0003F806006003F806006003F800006003F80000C003F80000C003F80000C003F80000C0 +03F80001C003F80003C003F80003C003F8000F8003F8003F80FFFFFFFF80FFFFFFFF8023 +257EA428>69 D<FFFFFFFE00FFFFFFFE0003F800FE0003F8001F0003F8000F0003F80007 +0003F800070003F800030003F800030003F800030003F800018003F803018003F8030180 +03F803000003F803000003F807000003F80F000003FFFF000003FFFF000003F80F000003 +F807000003F803000003F803000003F803000003F803000003F800000003F800000003F8 +00000003F800000003F800000003F800000003F800000003F800000003F800000003F800 +0000FFFFF00000FFFFF0000021257EA427>I<FFFFE0FFFFE0FFFFE0FFFFE003F80003F8 +0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8 +0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8 +0003F80003F80003F80003F80003FFFFFFF80003FFFFFFF80003F80003F80003F80003F8 +0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8 +0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8 +0003F80003F80003F80003F800FFFFE0FFFFE0FFFFE0FFFFE02B257EA430>72 +D<FFFFE0FFFFE003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8 +0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8 +0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800FFFF +E0FFFFE013257EA417>I<FFFFE007FF80FFFFE007FF8003F80000780003F80000600003 +F80000C00003F80001800003F80007000003F8000E000003F80018000003F80030000003 +F80060000003F800C0000003F80380000003F80700000003F80E00000003F81F00000003 +F83F80000003F87F80000003F8DFC0000003FB8FE0000003FF0FF0000003FC07F0000003 +F803F8000003F803FC000003F801FE000003F800FE000003F8007F000003F8007F800003 +F8003F800003F8001FC00003F8000FE00003F8000FF00003F80007F00003F80003F80003 +F80003FC00FFFFE03FFFC0FFFFE03FFFC02A257EA430>75 D<FFFFF000FFFFF00003F800 +0003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800 +0003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800 +0003F8000003F8000003F8000303F8000303F8000303F8000603F8000603F8000603F800 +0E03F8000E03F8001E03F8003E03F8007C03F803FCFFFFFFFCFFFFFFFC20257EA425>I< +FFF8000000FFF8FFFC000001FFF803FC000001FE00037E0000037E00037E0000037E0003 +7E0000037E00033F0000067E00033F0000067E00031F80000C7E00031F80000C7E00030F +C000187E00030FC000187E000307E000307E000307E000307E000307E000307E000303F0 +00607E000303F000607E000301F800C07E000301F800C07E000300FC01807E000300FC01 +807E0003007E03007E0003007E03007E0003007E03007E0003003F06007E0003003F0600 +7E0003001F8C007E0003001F8C007E0003000FD8007E0003000FD8007E00030007F0007E +00030007F0007E00030007F0007E00030003E0007E00078003E0007E00FFFC01C01FFFF8 +FFFC01C01FFFF835257EA43A>I<FFF80007FFE0FFFC0007FFE003FE00003C0003FF0000 +1800037F00001800033F80001800031FC0001800031FE0001800030FF00018000307F800 +18000303F80018000301FC0018000300FE0018000300FF00180003007F80180003003FC0 +180003001FC0180003000FE0180003000FF01800030007F81800030003FC1800030001FC +1800030000FE18000300007F18000300007F98000300003FD8000300001FF8000300000F +F80003000007F80003000003F80003000003F80003000001F80003000000F80003000000 +7800078000003800FFFC00001800FFFC000018002B257EA430>I<FFFFFF800000FFFFFF +F8000003F801FE000003F8007F000003F8003F800003F8001FC00003F8001FC00003F800 +1FE00003F8001FE00003F8001FE00003F8001FE00003F8001FE00003F8001FC00003F800 +1FC00003F8003F800003F8007F000003F801FE000003FFFFF8000003FFFFC0000003F803 +F0000003F801F8000003F800FC000003F8007E000003F8007E000003F8007F000003F800 +7F000003F8007F000003F8007F000003F8007F800003F8007F800003F8007F800003F800 +7F806003F8003FC06003F8003FC0C003F8001FE1C0FFFFE00FFF80FFFFE001FE002B257E +A42E>82 D<00FF008007FFE3800F80F7801E001F803C000F807800078078000380F80003 +80F8000180F8000180FC000180FC000000FF0000007FE000007FFE00003FFFE0003FFFF8 +001FFFFE0007FFFF0003FFFF80007FFF800003FFC000003FC000000FE0000007E0000007 +E0C00003E0C00003E0C00003E0C00003C0E00003C0F00007C0F8000780FC000F00FFC03E +00E3FFF800803FE0001B257DA422>I<7FFFFFFFF87FFFFFFFF87E00FE01F87800FE0078 +7000FE00386000FE00186000FE0018E000FE001CE000FE000CC000FE000CC000FE000CC0 +00FE000CC000FE000C0000FE00000000FE00000000FE00000000FE00000000FE00000000 +FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE +00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 +000000FE000000FFFFFE0000FFFFFE0026247EA32B>I<FFFFE00FFFC0FFFFE00FFFC003 +F80000780003F80000300003F80000300003F80000300003F80000300003F80000300003 +F80000300003F80000300003F80000300003F80000300003F80000300003F80000300003 +F80000300003F80000300003F80000300003F80000300003F80000300003F80000300003 +F80000300003F80000300003F80000300003F80000300003F80000300003F80000300003 +F80000300003F80000300001F80000600001FC0000600000FC0000C000007C0000C00000 +3E00018000001F00070000000FE03E00000003FFF8000000007FC000002A257EA42F>I< +FFFF8001FFE0FFFF8001FFE007F800001C0003F80000180003F80000180003FC00003800 +01FC0000300001FE0000700000FE0000600000FF00006000007F0000C000007F8000C000 +003F80018000003F80018000003FC0038000001FC0030000001FE0070000000FE0060000 +000FF00600000007F00C00000007F00C00000003F81800000003F81800000003FC380000 +0001FC3000000001FE7000000000FE6000000000FF60000000007FC0000000007FC00000 +00003F80000000003F80000000003F80000000001F00000000001F00000000000E000000 +00000E0000002B257FA42E>I<FFFF81FFFE01FFF0FFFF81FFFE01FFF007F0001FC0000F +0007F0001FE000060003F8000FE0000C0003F8000FE0000C0003F80007F0000C0001FC00 +07F000180001FC0007F000180001FE000FF800380000FE000FF800300000FE001FFC0030 +00007F0019FC006000007F0019FC006000007F8030FE006000003F8030FE00C000003F80 +30FF00C000003FC0607F01C000001FC0607F018000001FC0E07F818000000FE0C03F8300 +00000FE0C03F830000000FF1801FC300000007F1801FC600000007F1801FE600000007FB +000FEE00000003FB000FEC00000003FF000FFC00000001FE0007F800000001FE0007F800 +000001FC0003F800000000FC0003F000000000FC0003F000000000F80001F00000000078 +0001E000000000780001E000000000300000C000003C257FA43F>I<FFFFC001FFE0FFFF +C001FFE007F800001C0003FC0000180003FC0000380001FE0000300000FF0000600000FF +0000E000007F8000C000003FC0018000003FC0038000001FE0030000000FF0060000000F +F00E00000007F80C00000003FC1800000003FC3800000001FE7000000000FF6000000000 +FFE0000000007FC0000000003F80000000003F80000000003F80000000003F8000000000 +3F80000000003F80000000003F80000000003F80000000003F80000000003F8000000000 +3F80000000003F80000000003F80000000003F800000000FFFFC0000000FFFFC00002B25 +7FA42E>89 D<07FF00001FFFE0003E03F0003F00F8003F00FC003F007E001E007E000000 +7E0000007E0000007E00001FFE0003FE7E000FC07E001F007E003E007E007E007E00FC00 +7E00FC007E00FC007E00FC00BE007E01BE003F073E001FFE1FE007F00FE01B187E971E> +97 D<FFC00000FFC000000FC000000FC000000FC000000FC000000FC000000FC000000F +C000000FC000000FC000000FC000000FC000000FC000000FC1FC000FCFFF000FFC0FC00F +F007E00FC003F00FC003F00FC001F80FC001F80FC001FC0FC001FC0FC001FC0FC001FC0F +C001FC0FC001FC0FC001FC0FC001FC0FC001F80FC001F80FC003F00FE003F00FF007E00F +1C1F800E0FFF000C03F8001E267FA522>I<007FE003FFF807C07C1F80FC1F00FC3F00FC +7E00787E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00007E00007F0000 +3F000C1F800C1FC01807E07003FFE0007F0016187E971B>I<0000FFC00000FFC000000F +C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F +C000000FC000000FC0007F0FC003FFCFC00FE0FFC01F803FC03F000FC03F000FC07E000F +C07E000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE000F +C07E000FC07E000FC03F000FC03F001FC01F803FC00FC0EFC003FFCFFC00FE0FFC1E267E +A522>I<007F0003FFC007C1F00F80F81F00F83F007C7E007C7E007EFE007EFE007EFFFF +FEFFFFFEFE0000FE0000FE00007E00007E00007E00063F00061F000C0F801807E07003FF +E0007F8017187E971C>I<001FC0007FF001F8F003E1F807E1F807C1F80FC0F00FC0000F +C0000FC0000FC0000FC0000FC0000FC000FFFF00FFFF000FC0000FC0000FC0000FC0000F +C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000F +C0000FC0000FC0000FC000FFFE00FFFE0015267EA513>I<01FF07C007FFDFE00F83F1E0 +1F01F1E03E00F8007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC003E00F800 +1F01F0000F83E0000FFFC00011FF00003000000030000000380000003C0000003FFFE000 +1FFFFC001FFFFE000FFFFF001FFFFF803C003F8078000FC0F80007C0F80007C0F80007C0 +F80007C07C000F803E001F001F807E0007FFF80000FFC0001B247E971F>I<FFC00000FF +C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F +C000000FC000000FC000000FC000000FC0FE000FC3FF800FCE0FC00FD80FC00FD007E00F +E007E00FE007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00F +C007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E0FFFC7FFEFF +FC7FFE1F267EA522>I<0F001F803FC03FC03FC03FC01F800F0000000000000000000000 +000000007FC07FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0 +0FC00FC00FC00FC00FC00FC0FFF8FFF80D277EA611>I<FFC00000FFC000000FC000000F +C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F +C000000FC000000FC01FF00FC01FF00FC007800FC00E000FC01C000FC030000FC060000F +C1C0000FC380000FC780000FDF80000FFFC0000FE7E0000FC3F0000F81F0000F81F8000F +80FC000F807E000F803F000F803F000F801F800F800FC0FFF83FF8FFF83FF81D267FA520 +>107 D<FFC0FFC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0 +0FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0 +0FC00FC0FFFCFFFC0E267EA511>I<FF80FE007F00FF83FF81FFC00F8E0FC707E00F980F +CC07E00F9007E803F00FA007F003F00FA007F003F00FC007E003F00FC007E003F00FC007 +E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007 +E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007 +E003F0FFFC7FFE3FFFFFFC7FFE3FFF30187E9733>I<FF80FE00FF83FF800F8E0FC00F98 +0FC00F9007E00FA007E00FA007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC0 +07E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC0 +07E0FFFC7FFEFFFC7FFE1F187E9722>I<007F800003FFF00007C0F8001F807E003F003F +003F003F007E001F807E001F80FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001F +C0FE001FC0FE001FC07E001F807E001F803F003F003F003F001F807E000FC0FC0003FFF0 +00007F80001A187E971F>I<FFC1FC00FFCFFF000FFC1FC00FF007E00FC007F00FC003F0 +0FC003F80FC001F80FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC +0FC001FC0FC003F80FC003F80FC003F00FE007F00FF00FE00FDC1F800FCFFF000FC3F800 +0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000 +FFFC0000FFFC00001E237F9722>I<FF83E0FF8FF80F8C7C0F90FC0FB0FC0FA0FC0FA078 +0FE0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000 +0FC0000FC0000FC000FFFE00FFFE0016187F9719>114 D<07F8C01FFFC03C07C07001C0 +F000C0F000C0F000C0FC0000FF80007FFC007FFE003FFF800FFFC003FFC0001FE00003E0 +C001E0C001E0E001E0E001C0F003C0FC0780EFFF00C3FC0013187E9718>I<00C00000C0 +0000C00000C00001C00001C00001C00003C00007C0000FC0001FC000FFFFC0FFFFC00FC0 +000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0 +600FC0600FC0600FC0600FC0600FC06007E0C007E1C001FF80007E0013237FA218>I<FF +C07FE0FFC07FE00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00F +C007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00F +C00FE00FC00FE007C017E007E067E003FFC7FE007F07FE1F187E9722>I<FFF80FF8FFF8 +0FF80FC001C00FC0018007E0030007E0030007F0070003F0060003F80E0001F80C0001FC +0C0000FC180000FE1800007E3000007E3000003F6000003F6000003FE000001FC000001F +C000000F8000000F800000070000000700001D187F9720>I<FFF9FFE0FF80FFF9FFE0FF +801FC03F001C000FC01F0018000FC01F80180007E01F80300007E01F80300007F03FC070 +0003F037C0600003F037E0600001F863E0C00001F863E0C00001FCE3F1C00000FCC1F180 +0000FCC1F98000007F80FB0000007F80FB0000007F80FF0000003F007E0000003F007E00 +00001E003C0000001E003C0000001E003C0000000C0018000029187F972C>I<FFF83FF0 +FFF83FF00FC00F0007E00E0003F01C0003F8380001FC700000FC6000007EC000003F8000 +003F8000001F8000000FC000001FE000001FF0000033F8000061F80000E0FC0001C07E00 +03807F0007003F800F001F80FFC07FF8FFC07FF81D187F9720>I<FFF80FF8FFF80FF80F +C001C00FC0018007E0030007E0030007F0070003F0060003F80E0001F80C0001FC0C0000 +FC180000FE1800007E3000007E3000003F6000003F6000003FE000001FC000001FC00000 +0F8000000F800000070000000700000006000000060000000C0000300C0000781C0000FC +180000FC300000FC70000068E000007FC000001F0000001D237F9720>I +E /Fm 28 122 df<0003E0001C1800381800703C00E03C00E03801C00001C00001C00001 +C00001C0000380007FFFF00380700380700380700380700700E00700E00700E00700E007 +00E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FF0FF016207E9F +19>12 D<FFF0FFF00C027E8A0F>45 D<07FFFFF800F80078007800380078001800F00018 +00F0000800F0000800F0000800F0000800F0000801E0080001E0080001E0080001E01800 +01E0380001FFF80003C0300003C0100003C0100003C0100003C0100003C0000007800000 +07800000078000000780000007800000078000000F0000000F800000FFFC00001D1F7E9E +1E>70 D<07FF803FE000F8001F000078000C00007800180000F000200000F000400000F0 +00800000F001000000F002000000F008000001E010000001E020000001E060000001E0F0 +000001E1F0000001E4F8000003C878000003D07C000003E03C000003C03E000003C01E00 +0003C01F000007800F000007800F80000780078000078007C000078003C000078003E000 +0F0001E0000F8003F000FFF00FFE00231F7E9E23>75 D<07F8000C0C001E06001E07001C +070000070000070000070000FF0007C7001E07003C0E00780E00F00E10F00E10F00E10F0 +1E10F02E20784F401F878014147D9317>97 D<0700003F00000F00000700000700000E00 +000E00000E00000E00000E00000E00001C00001C7C001D83001E01801C01C01C00E03800 +E03800F03800F03800F03800F03800F07001E07001E07001C07003C0700380700700E80E +00CC380083E00014207B9F19>I<00FE000383000E07801C0780380700380000780000F0 +0000F00000F00000F00000E00000E00000E00000F00000F001007002003804001C180007 +E00011147D9314>I<0000380001F8000078000038000038000070000070000070000070 +0000700000700000E000FCE00382E00601E01C01E03C00E03801C07801C0F001C0F001C0 +F001C0F001C0E00380E00380E00380E00380F00380700780380F001C378007C7E015207D +9F19>I<00F800070E000E07001C0700380380780380700380F00380F00380FFFF80F000 +00E00000E00000E00000E00000F001007002003004001C180007E00011147D9314>I<00 +07C0001C600030F00060F000E0E000C00001C00001C00001C00001C00001C0000380003F +FC000380000380000380000380000700000700000700000700000700000700000E00000E +00000E00000E00000E00000E00001C00001E0000FFC00014207F9F0E>I<00000E003E11 +00E1A301C1C20381E00780E00701E00F01E00F01E00F01E00703C007038007870004FC00 +0800000800001800001C00000FFF000FFFC00FFFE01800F0300030600030C00030C00030 +C000306000603000C01C070007FC00181F809417>I<00E00007E00001E00000E00000E0 +0001C00001C00001C00001C00001C00001C000038000038F800390E003A0E003C0600380 +600780E00700E00700E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01 +C01C03801E03C0FF8FF014207E9F19>I<01C003E003E003C00180000000000000000000 +00000003801F800780038003800700070007000700070007000E000E000E000E000E000E +001C001E00FF800B1F7F9E0C>I<00E00007E00001E00000E00000E00001C00001C00001 +C00001C00001C00001C0000380000381FC0380F00380C003818003810007040007080007 +1800073800077C00071C000E1C000E0E000E0E000E0F000E07000E07801C03801E07C0FF +8FF016207E9F18>107 D<00E007E001E000E000E001C001C001C001C001C001C0038003 +8003800380038003800700070007000700070007000E000E000E000E000E000E001C001E +00FF800B207F9F0C>I<0387C07C001F9861860007A072070003C0340300038038030007 +80780700070070070007007007000700700700070070070007007007000E00E00E000E00 +E00E000E00E00E000E00E00E000E00E00E000E00E00E001C01C01C001E01E01E00FFCFFC +FFC022147E9326>I<038F801F90E007A0E003C0600380600780E00700E00700E00700E0 +0700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FF8FF014147E +9319>I<00FC000387000E01801C00C03800E03800E07000F0F000F0F000F0F000F0F000 +F0E001E0E001E0E001C0E003C0F00380700700380E001C1C0007E00014147D9317>I<00 +E3E00007EC380000F01C0000E00E0000E00F0001C0070001C0078001C0078001C0078001 +C0078001C0078003800F0003800F0003800E0003801E0003801C00038038000740700007 +61C000071F00000700000007000000070000000E0000000E0000000E0000000E0000001E +000000FFC00000191D809319>I<00FC200382600702601E01E03C01E03801C07801C0F0 +01C0F001C0F001C0F001C0E00380E00380F00380F00380F00780700780380F001C370007 +C700000700000700000700000E00000E00000E00000E00001E0000FFC0131D7D9318>I< +038E001FB38007C78003C7800383000780000700000700000700000700000700000E0000 +0E00000E00000E00000E00000E00001C00001E0000FFC00011147E9312>I<01F9060708 +031803180138023C001F001FF007FC01FE001F40074003400360036006F004C81887E010 +147F9312>I<0080010001000100030007000F001E00FFF80E000E000E000E001C001C00 +1C001C001C001C00380038103810381038103820382018400F800D1C7C9B12>I<1C0380 +FC1F803C07801C03801C0380380700380700380700380700380700380700700E00700E00 +700E00700E00701E00701E00703C00305E001F9F8011147B9319>I<FF83F81E00E01C00 +C01C00801E00800E01000E03000E02000E040007040007080007080007100003900003A0 +0003E00003C00003800001800001000015147C9318>I<FF9FE1FC3C0780701C0300601C +0380601C0380401C0380800E0780800E0D81000E0981000E19C2000E11C2000F21C40007 +20C4000740C8000740E8000780F0000780F0000300E00003006000020040001E147C9321 +>I<1FF0FF03C07801C07001C04000E0C000E180007300007600003C00003C00001C0000 +2E00004E000087000107000203800403800C01C03C03E0FE07FC18147F9318>I<0FF83F +8001E00E0001C00C0001C0080001E0080000E0100000E0300000E0200000E04000007040 +0000708000007080000071000000390000003A0000003E0000003C000000380000001800 +00001000000010000000200000002000000040000070C00000F0800000F1000000E60000 +0078000000191D809318>I E /Fn 38 124 df<60F0F070101020204040040A7D960A> +39 D<FF80FF80090280870C>45 D<06000E00FE000E000E000E000E000E000E000E000E +000E000E000E000E000E000E000E000E000E00FFE00B157D9412>49 +D<001000003800003800003800005C00005C00005C00008E00008E00008E000107000107 +0002038002038002038007FFC00401C00401C00800E00800E01800F03800F0FE03FE1717 +7F961A>65 D<FFFE001C03801C00E01C00601C00701C00701C00701C00701C00E01C01C0 +1FFF801FFFC01C00E01C00701C00301C00381C00381C00381C00381C00701C00E01C01C0 +FFFF0015177F9619>I<00FC100383300E00B01C0070380030300030700010600010E000 +10E00000E00000E00000E00000E00000E000106000107000103000203800201C00400E00 +8003830000FC0014177E9619>I<FFFF001C01C01C00E01C00301C00381C00181C001C1C +000C1C000E1C000E1C000E1C000E1C000E1C000E1C000E1C000C1C001C1C001C1C00381C +00301C00601C01C0FFFF0017177F961B>I<FFFFE01C00E01C00601C00201C00101C0010 +1C00101C04001C04001C04001C0C001FFC001C0C001C04001C04081C04081C00081C0018 +1C00101C00101C00301C00F0FFFFF015177F9618>I<FFFFE01C00E01C00601C00201C00 +101C00101C00101C04001C04001C04001C0C001FFC001C0C001C04001C04001C04001C00 +001C00001C00001C00001C00001C0000FFC00014177F9617>I<FFC0001C00001C00001C +00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00201C +00201C00201C00601C00601C00401C00C01C03C0FFFFC013177F9616>76 +D<FE0003F81E0003C0170005C0170005C0170005C0138009C0138009C011C011C011C011 +C011C011C010E021C010E021C0107041C0107041C0107041C0103881C0103881C0101D01 +C0101D01C0100E01C0100E01C0380E01C0FE040FF81D177F9620>I<FC00FE1E00381F00 +1017001013801011C01011C01010E010107010103810103810101C10100E10100F101007 +101003901001D01001D01000F0100070100030380030FE001017177F961A>I<FFFE001C +03801C00C01C00601C00701C00701C00701C00701C00601C00C01C03801FFE001C00001C +00001C00001C00001C00001C00001C00001C00001C00001C0000FF800014177F9618>80 +D<FFFC001C03801C00C01C00E01C00701C00701C00701C00701C00E01C00C01C03801FFE +001C07801C01C01C00E01C00E01C00E01C00E01C00E01C00E11C00E11C0072FF803C1817 +7F961A>82 D<0FC4302C601C400CC004C004C004E00070007F003FE00FF801FC001C000E +0006800680068006C004E008D81087E00F177E9614>I<7FFFF860381840380840380880 +380480380480380400380000380000380000380000380000380000380000380000380000 +380000380000380000380000380000380003FF8016177F9619>I<FF80FE1C00381C0010 +1C00101C00101C00101C00101C00101C00101C00101C00101C00101C00101C00101C0010 +1C00101C00101C00100E0020060020030040018180007E0017177F961A>I<FCFCC0C0C0 +C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FCFC06217D980A>91 +D<3FC0706070302038003803F81E3830387038E039E039E07970FF1F1E100E7F8D12>97 +D<F8000038000038000038000038000038000038000038000038000039F0003E0C003806 +00380700380300380380380380380380380380380300380700380600361C0021F0001117 +7F9614>I<003E00000E00000E00000E00000E00000E00000E00000E00000E0007CE001C +3E00300E00700E00600E00E00E00E00E00E00E00E00E00600E00700E00301E00182E0007 +CF8011177F9614>100 D<0FC0186030307038E018FFF8E000E000E00060007008301018 +3007C00D0E7F8D10>I<03E006700E701C201C001C001C001C001C00FF801C001C001C00 +1C001C001C001C001C001C001C001C001C007F800C1780960B>I<0F9E18E33060707070 +707070306018C02F80200060003FE03FF83FFC600EC006C006C006600C38380FE010157F +8D12>I<0300078007800300000000000000000000001F80038003800380038003800380 +0380038003800380038003800380038003804380E300E7007C00091D82960B>106 +D<F80038003800380038003800380038003800383E383838303840388039803FC039E038 +E038F03878383C383CFE7F10177F9613>I<F83838383838383838383838383838383838 +38383838FE07177F960A>I<07C018303018600C600CE00EE00EE00EE00EE00E701C3018 +183007C00F0E7F8D12>111 D<F9F0003E1C003806003807003803003803803803803803 +80380380380300380700380E003E1C0039F000380000380000380000380000380000FE00 +0011147F8D14>I<07C2001C2600381E00700E00600E00E00E00E00E00E00E00E00E0060 +0E00700E00301E001C2E0007CE00000E00000E00000E00000E00000E00003F8011147F8D +13>I<F9E03A703C703820380038003800380038003800380038003800FF000C0E7F8D0E> +I<1F4060C0C040C040E000FF007F801FC001E080608060C060E0C09F000B0E7F8D0E>I< +080008000800180018003800FFC038003800380038003800380038003840384038403840 +1C800F000A147F930E>I<F83E00380E00380E00380E00380E00380E00380E00380E0038 +0E00380E00380E00381E001C2E0007CF80110E7F8D14>I<FEFE7C383838383810383C10 +1C3C201C4C201E4E600ECE400E8740078780070380070380030300020100160E7F8D19> +119 D<FE3F3C1C1C100E20074007C0038001C002E004F008701838383CFC7F100E7F8D13 +>I<FE1F380E3C0C1C081C080E100E100720072007E003C003C00180018001000100E200 +E200A400780010147F8D13>I<FFFF801101808812>123 D E /Fo +2 106 df<00800180030003000300060006000C000C000C001800180018003000300060 +0060006000C000C000600060006000300030001800180018000C000C000C000600060003 +00030003000180008009267D9B0F>104 D<C000C0006000600060003000300018001800 +18000C000C000C000600060003000300030001800180030003000300060006000C000C00 +0C0018001800180030003000600060006000C000C00009267E9B0F>I +E /Fp 8 89 df<0007F008003C0C1800E0033801C000B8078000780F0000380E0000381E +0000183C0000183C0000087C0000087800000878000000F8000000F8000000F8000000F8 +000000F8000000F8000000F8001FFF780000F8780000787C0000783C0000783C0000781E +0000780E0000780F0000780780007801C000B800E00118003C0E080007F00020217C9F27 +>71 D<FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F +000F000F000F000F000F000F000F000F000F000F000F000F000F00FFF00C1F7D9E12>73 +D<FF000FF80F8003E00F8000800BC0008009E0008009E0008008F0008008780080087800 +80083C0080081E0080081E0080080F008008078080080780800803C0800801E0800801E0 +800800F080080078800800788008003C8008001E8008001E8008000F8008000780080007 +8008000380080001803E000180FF8000801D1F7C9E25>78 D<001FE0000070380001C00E +0003800700070003800F0003C01E0001E03C0000F03C0000F07C0000F87C0000F8780000 +78F800007CF800007CF800007CF800007CF800007CF800007CF800007CF800007CF80000 +7C780000787C0000F87C0000F83C0000F03E0001F01E0001E00F0003C007000380038007 +0001E01E0000703800001FE0001E217C9F26>I<FFFFF0000F803E0007800F0007800780 +078003C0078003C0078003E0078003E0078003E0078003E0078003C0078003C007800780 +07800F0007803E0007FFF000078000000780000007800000078000000780000007800000 +078000000780000007800000078000000780000007800000078000000FC00000FFFC0000 +1B1F7D9E22>I<03F0200C0C601803E03000E06000E0600060E00060E00020E00020E000 +20F00000F800007C00007F80003FFC001FFF0007FF8001FFC0000FE00003E00001E00000 +F0000070800070800070800070800070C00060C000E0E000C0F80180C6030081FC001421 +7C9F1C>83 D<FFF00FF80F0003E00F0000800F0000800F0000800F0000800F0000800F00 +00800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F00 +00800F0000800F0000800F0000800F0000800F0000800F0000800F000080070001000780 +0100038001000380020001C0040000E0080000383000000FC0001D207C9E25>85 +D<7FF807FE000FE001F00007C001C00003E000800001E001000001F002000000F8060000 +0078040000003C080000003E180000001F100000000F200000000FC000000007C0000000 +03C000000001E000000003F000000006F80000000478000000087C000000183E00000010 +1E000000201F000000400F800000C0078000008003C000010003E000030001F000070000 +F0001F8001F800FFC007FF80211F7E9E25>88 D E /Fq 34 121 +df<0001C0000003C000000FC000007FC0001FFFC000FFFFC000FFBFC000E03FC000003F +C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F +C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F +C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F +C000003FC000003FC000003FC000003FC000003FC000003FC000003FC0007FFFFFF07FFF +FFF07FFFFFF01C2E7AAD28>49 D<003FE00001FFFE0007FFFF800F80FFC01E003FE03800 +1FF07C000FF87E0007FCFF0007FCFF8007FEFF8007FEFF8003FEFF8003FE7F0003FE3E00 +07FE000007FE000007FC000007FC00000FF800000FF800000FF000001FE000001FC00000 +3F8000007F0000007E000000F8000001F0000003E0000007C000000F0000001E000E003C +000E0038000E0070001E00E0001C01C0001C0300003C07FFFFFC0FFFFFFC1FFFFFFC3FFF +FFFC7FFFFFF8FFFFFFF8FFFFFFF8FFFFFFF81F2E7CAD28>I<000003FF80018000003FFF +F003800001FFFFFC07800007FF003F0F80001FF800079F80003FC00001FF8000FF800000 +FF8001FE0000007F8003FC0000003F8007FC0000001F8007F80000000F800FF00000000F +801FF000000007801FF000000007803FE000000007803FE000000003807FE00000000380 +7FE000000003807FC000000000007FC00000000000FFC00000000000FFC00000000000FF +C00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0 +0000000000FFC000000000007FC000000000007FC000000000007FE000000000007FE000 +000003803FE000000003803FE000000003801FF000000003801FF000000007800FF00000 +00070007F8000000070007FC0000000E0003FC0000001E0001FE0000001C0000FF800000 +7800003FC00000F000001FF80003E0000007FF003F80000001FFFFFE000000003FFFF800 +00000003FF80000031317CB03A>67 D<FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFFF000FF +80003FF000FF800007F800FF800003F800FF800000F800FF800000F800FF8000007800FF +8000007800FF8000003800FF8000003800FF8000003800FF8000001C00FF8007001C00FF +8007001C00FF8007001C00FF8007000000FF8007000000FF800F000000FF801F000000FF +803F000000FFFFFF000000FFFFFF000000FFFFFF000000FF803F000000FF801F000000FF +800F000000FF8007000000FF8007000000FF8007000700FF8007000700FF8007000700FF +8000000E00FF8000000E00FF8000000E00FF8000000E00FF8000001E00FF8000001E00FF +8000003C00FF8000003C00FF8000007C00FF800000FC00FF800001FC00FF800007FC00FF +80003FFCFFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF830317EB035>69 +D<FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE000FF80007FE000FF80000FF000FF800003 +F000FF800001F000FF800001F000FF800000F000FF800000F000FF8000007000FF800000 +7000FF8000007000FF8000003800FF8000003800FF8007003800FF8007003800FF800700 +0000FF8007000000FF8007000000FF800F000000FF801F000000FF803F000000FFFFFF00 +0000FFFFFF000000FFFFFF000000FF803F000000FF801F000000FF800F000000FF800700 +0000FF8007000000FF8007000000FF8007000000FF8007000000FF8000000000FF800000 +0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000 +0000FF8000000000FF8000000000FF8000000000FF80000000FFFFFFC00000FFFFFFC000 +00FFFFFFC000002D317EB033>I<000003FF00030000007FFFF007000001FFFFFC0F0000 +07FF007E1F00001FF0000FBF00007FC00003FF0000FF800001FF0001FE0000007F0003FC +0000007F0007FC0000003F000FF80000001F000FF00000001F001FF00000000F001FF000 +00000F003FE000000007003FE000000007007FE000000007007FE000000007007FC00000 +000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0000000 +0000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC000000000 +00FFC00007FFFFF87FC00007FFFFF87FE00007FFFFF87FE0000001FF003FE0000001FF00 +3FE0000001FF001FF0000001FF001FF0000001FF000FF0000001FF000FF8000001FF0007 +FC000001FF0003FC000001FF0001FE000001FF0000FF800001FF00007FC00003FF00001F +F800077F000007FF003E3F000001FFFFFC1F0000007FFFF00F00000003FF80030035317C +B03F>I<FFFFFF80FFFFFF80FFFFFF8000FF800000FF800000FF800000FF800000FF8000 +00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000 +00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000 +00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000 +00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000 +00FF800000FF8000FFFFFF80FFFFFF80FFFFFF8019317EB01E>73 +D<FFFFFF800000FFFFFF800000FFFFFF80000001FF0000000001FF0000000001FF000000 +0001FF0000000001FF0000000001FF0000000001FF0000000001FF0000000001FF000000 +0001FF0000000001FF0000000001FF0000000001FF0000000001FF0000000001FF000000 +0001FF0000000001FF0000000001FF0000000001FF0000000001FF0000000001FF000000 +0001FF0000000001FF0000000001FF0000000001FF0000000001FF0000000001FF000000 +0001FF0000038001FF0000038001FF0000038001FF0000038001FF0000078001FF000007 +0001FF0000070001FF00000F0001FF00000F0001FF00000F0001FF00001F0001FF00003F +0001FF00007F0001FF0000FF0001FF0001FE0001FF000FFE00FFFFFFFFFE00FFFFFFFFFE +00FFFFFFFFFE0029317DB030>76 D<FFFF800001FFFFC0FFFFC00001FFFFC0FFFFE00001 +FFFFC000FFF0000003E00000FFF8000001C00000EFFC000001C00000E7FC000001C00000 +E7FE000001C00000E3FF000001C00000E1FF800001C00000E0FFC00001C00000E07FE000 +01C00000E03FE00001C00000E03FF00001C00000E01FF80001C00000E00FFC0001C00000 +E007FE0001C00000E003FE0001C00000E001FF0001C00000E001FF8001C00000E000FFC0 +01C00000E0007FE001C00000E0003FF001C00000E0001FF001C00000E0001FF801C00000 +E0000FFC01C00000E00007FE01C00000E00003FF01C00000E00001FF81C00000E00000FF +81C00000E00000FFC1C00000E000007FE1C00000E000003FF1C00000E000001FF9C00000 +E000000FFDC00000E0000007FDC00000E0000007FFC00000E0000003FFC00000E0000001 +FFC00000E0000000FFC00000E00000007FC00000E00000003FC00000E00000003FC00000 +E00000001FC00000E00000000FC00001F000000007C000FFFFE0000003C000FFFFE00000 +01C000FFFFE0000001C0003A317EB03F>78 D<FFFFFFFFE000FFFFFFFFFE00FFFFFFFFFF +8000FF8000FFE000FF80003FF000FF80000FF800FF800007FC00FF800007FC00FF800003 +FE00FF800003FE00FF800003FF00FF800003FF00FF800003FF00FF800003FF00FF800003 +FF00FF800003FF00FF800003FF00FF800003FE00FF800003FE00FF800007FC00FF800007 +F800FF80000FF800FF80003FE000FF8000FFC000FFFFFFFF0000FFFFFFF80000FF800000 +0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000 +0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000 +0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000 +0000FF80000000FFFFFF800000FFFFFF800000FFFFFF80000030317EB037>80 +D<FFFFFFFF80000000FFFFFFFFF8000000FFFFFFFFFE00000000FF8003FF80000000FF80 +007FE0000000FF80001FF0000000FF80000FF8000000FF80000FF8000000FF80000FFC00 +0000FF800007FC000000FF800007FE000000FF800007FE000000FF800007FE000000FF80 +0007FE000000FF800007FE000000FF800007FE000000FF800007FC000000FF80000FFC00 +0000FF80000FF8000000FF80001FF0000000FF80003FE0000000FF80007FC0000000FF80 +03FF00000000FFFFFFF800000000FFFFFFE000000000FF8007F800000000FF8001FC0000 +0000FF8000FE00000000FF80007F00000000FF80007F80000000FF80003FC0000000FF80 +003FC0000000FF80003FE0000000FF80003FE0000000FF80003FE0000000FF80003FE000 +0000FF80003FE0000000FF80003FF0000000FF80003FF0000000FF80003FF0000000FF80 +003FF0000000FF80003FF0038000FF80003FF8038000FF80001FF8038000FF80001FF803 +0000FF80000FFC0700FFFFFF8003FE0E00FFFFFF8001FFFC00FFFFFF80001FF00039317E +B03C>82 D<7FFFFFFFFFFF007FFFFFFFFFFF007FFFFFFFFFFF007FC00FF801FF007E000F +F8003F007C000FF8001F0078000FF8000F0078000FF8000F0070000FF8000700F0000FF8 +000780F0000FF8000780F0000FF8000780E0000FF8000380E0000FF8000380E0000FF800 +0380E0000FF8000380E0000FF800038000000FF800000000000FF800000000000FF80000 +0000000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000 +00000FF800000000000FF800000000000FF800000000000FF800000000000FF800000000 +000FF800000000000FF800000000000FF800000000000FF800000000000FF80000000000 +0FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000F +F800000000000FF800000000000FF800000000000FF800000000000FF8000000007FFFFF +FF0000007FFFFFFF0000007FFFFFFF000031307DAF38>84 D<FFFFFF8003FFFF80FFFFFF +8003FFFF80FFFFFF8003FFFF8000FF80000007C00000FF80000003800000FF8000000380 +0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80 +000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380 +0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80 +000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380 +0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80 +000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380 +0000FF80000003800000FF80000003800000FF800000038000007F800000038000007F80 +0000070000007FC00000070000003FC000000E0000003FC000000E0000001FE000001C00 +00000FF000003800000007F800007000000003FC0001E000000000FF801FC0000000003F +FFFF80000000000FFFFE000000000000FFE000000039317EB03E>I<FFFFFC0000FFFFFF +FFFC0000FFFFFFFFFC0000FFFF03FF00000003C001FF000000038001FF800000078000FF +800000070000FFC000000700007FC000000E00007FC000000E00007FE000001E00003FE0 +00001C00003FF000003C00001FF000003800001FF800003800000FF800007000000FFC00 +0070000007FC0000E0000007FC0000E0000007FE0001E0000003FE0001C0000003FF0003 +C0000001FF000380000001FF800380000000FF800700000000FF800700000000FFC00F00 +0000007FC00E000000007FE01E000000003FE01C000000003FF03C000000001FF0380000 +00001FF838000000000FF870000000000FF870000000000FFCF00000000007FCE0000000 +0007FFE00000000003FFC00000000003FFC00000000001FF800000000001FF8000000000 +00FF000000000000FF000000000000FF0000000000007E0000000000007E000000000000 +3C0000000000003C00000038317EB03D>I<00FFF0000003FFFF00000F803F80000FC00F +E0001FE007F0001FE007F0001FE003F8000FC003FC00078003FC00000003FC00000003FC +00000003FC00000003FC000000FFFC00001FFFFC0000FFE3FC0003FC03FC000FF003FC00 +1FC003FC003FC003FC007F8003FC007F8003FC00FF0003FC00FF0003FC00FF0003FC00FF +0007FC00FF0007FC007F800DFC003FC01DFE001FE078FFF007FFE07FF000FF803FF02420 +7E9F27>97 D<01F8000000FFF8000000FFF8000000FFF80000000FF800000007F8000000 +07F800000007F800000007F800000007F800000007F800000007F800000007F800000007 +F800000007F800000007F800000007F800000007F800000007F83FE00007F8FFFC0007FB +E07F0007FF001F8007FE000FC007FC000FE007F80007F007F80007F807F80007F807F800 +03FC07F80003FC07F80003FC07F80003FE07F80003FE07F80003FE07F80003FE07F80003 +FE07F80003FE07F80003FE07F80003FE07F80003FC07F80003FC07F80003FC07F80007F8 +07F80007F807F80007F007FC000FE007FE000FC007E7003F8007C3C0FE000780FFF80007 +003FC00027327EB12D>I<000FFF00007FFFC001FC01F003F003F007E007F80FE007F81F +C007F83FC003F03FC001E07F8000007F8000007F800000FF800000FF800000FF800000FF +800000FF800000FF800000FF800000FF8000007F8000007F8000007F8000003FC0001C3F +C0001C1FC000380FE0003807E0007003F001E001FC07C0007FFF00000FF8001E207D9F24 +>I<0000000FC0000007FFC0000007FFC0000007FFC00000007FC00000003FC00000003F +C00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0 +0000003FC00000003FC00000003FC00000003FC00007F83FC0003FFF3FC000FE07BFC003 +F801FFC007E0007FC00FE0007FC01FC0003FC03FC0003FC03FC0003FC07F80003FC07F80 +003FC07F80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF8000 +3FC0FF80003FC0FF80003FC07F80003FC07F80003FC07F80003FC03FC0003FC03FC0003F +C01FC0003FC00FE0007FC007E000FFC003F003FFE001FC0F3FFE007FFE3FFE000FF03FFE +27327DB12D>I<000FFC00007FFF8001FC0FC003F003E007E001F00FE001F81FC000FC3F +C000FE3FC000FE7F80007E7F80007F7F80007FFF80007FFF80007FFFFFFFFFFFFFFFFFFF +800000FF800000FF800000FF8000007F8000007F8000007F8000003FC000071FC000071F +C0000E0FE0000E07F0001C03F8007800FE03E0003FFFC00007FE0020207E9F25>I<0001 +FE00000FFF80001FC3C0007F07E000FE0FF001FE0FF001FC0FF003FC0FF003FC07E003FC +018003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000FFFF +FC00FFFFFC00FFFFFC0003FC000003FC000003FC000003FC000003FC000003FC000003FC +000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC +000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC +000003FC00007FFFF0007FFFF0007FFFF0001C327EB119>I<001FF007C000FFFE3FE001 +F83F79F007E00FC3F00FE00FE1F00FC007E0E01FC007F0001FC007F0003FC007F8003FC0 +07F8003FC007F8003FC007F8003FC007F8001FC007F0001FC007F0000FC007E0000FE00F +E00007E00FC00003F83F000006FFFE00000E1FF000000E000000001E000000001E000000 +001F000000001F800000001FFFFF80000FFFFFF0000FFFFFFC0007FFFFFE0003FFFFFF00 +03FFFFFF800FFFFFFFC03F00007FC07E00001FE07C00000FE0FC000007E0FC000007E0FC +000007E0FC000007E07E00000FC03E00000F803F00001F800FC0007E0007F803FC0001FF +FFF000001FFF0000242F7E9F28>I<01F8000000FFF8000000FFF8000000FFF80000000F +F800000007F800000007F800000007F800000007F800000007F800000007F800000007F8 +00000007F800000007F800000007F800000007F800000007F800000007F800000007F807 +F80007F83FFE0007F8783F0007F8C03F8007F9801FC007FB001FC007FE001FE007FC001F +E007FC001FE007FC001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0 +07F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007 +F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0FFFF +C3FFFFFFFFC3FFFFFFFFC3FFFF28327DB12D>I<03C00007E0000FF0001FF8001FF8001F +F8001FF8000FF00007E00003C00000000000000000000000000000000000000000000000 +000000000001F8007FF8007FF8007FF80007F80007F80007F80007F80007F80007F80007 +F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007 +F80007F80007F80007F80007F80007F80007F800FFFF80FFFF80FFFF8011337DB217>I< +01F800FFF800FFF800FFF8000FF80007F80007F80007F80007F80007F80007F80007F800 +07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800 +07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800 +07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800FFFFC0 +FFFFC0FFFFC012327DB117>108 D<03F007F8001FE000FFF03FFE00FFF800FFF0783F01 +E0FC00FFF0C03F8300FE000FF1801FC6007F0007F3001FCC007F0007F6001FF8007F8007 +FC001FF0007F8007FC001FF0007F8007FC001FF0007F8007F8001FE0007F8007F8001FE0 +007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007 +F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0 +007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007 +F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F80FFFFC3FFFF +0FFFFCFFFFC3FFFF0FFFFCFFFFC3FFFF0FFFFC3E207D9F43>I<03F007F800FFF03FFE00 +FFF0783F00FFF0C03F800FF1801FC007F3001FC007F6001FE007FC001FE007FC001FE007 +FC001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8 +001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F800 +1FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0FFFFC3FFFFFFFFC3FF +FFFFFFC3FFFF28207D9F2D>I<0007FC0000007FFFC00001FC07F00003F001F80007E000 +FC000FC0007E001FC0007F003FC0007F803F80003F807F80003FC07F80003FC07F80003F +C0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0 +FF80003FE07F80003FC07F80003FC07F80003FC03FC0007F803FC0007F801FC0007F000F +E000FE0007E000FC0003F803F80001FE0FF000007FFFC0000007FC000023207E9F28>I< +01F83FE000FFF8FFFC00FFFBE07F00FFFF003F8007FE001FC007FC000FE007F8000FF007 +F80007F807F80007F807F80007FC07F80003FC07F80003FC07F80003FE07F80003FE07F8 +0003FE07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE07F80003FC07F800 +07FC07F80007FC07F80007F807F80007F807F8000FF007FC000FE007FE001FC007FF003F +8007FBC0FE0007F8FFF80007F83FC00007F800000007F800000007F800000007F8000000 +07F800000007F800000007F800000007F800000007F800000007F800000007F8000000FF +FFC00000FFFFC00000FFFFC00000272E7E9F2D>I<03F03F00FFF07FC0FFF1C3E0FFF187 +E00FF30FF007F60FF007F60FF007FC07E007FC03C007FC000007FC000007F8000007F800 +0007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F800 +0007F8000007F8000007F8000007F8000007F8000007F8000007F80000FFFFE000FFFFE0 +00FFFFE0001C207E9F21>114 D<01FF860007FFFE001F00FE003C003E0078001E007800 +0E00F8000E00F8000E00F8000E00FC000000FF800000FFFC00007FFFC0003FFFF0003FFF +F8001FFFFC0007FFFE0001FFFF00003FFF000000FF8000003F8060001F80E0000F80E000 +0F80F0000F80F0000F00F8000F00FC001E00FE001C00FF807800F3FFF000C07F80001920 +7D9F20>I<001C0000001C0000001C0000001C0000001C0000003C0000003C0000003C00 +00007C0000007C000000FC000001FC000003FC000007FC00001FFFFE00FFFFFE00FFFFFE +0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00 +0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC038003FC03 +8003FC038003FC038003FC038003FC038003FC038001FC038001FC070000FE0700007F0E +00003FFC000007F000192E7FAD1F>I<01F80007E0FFF803FFE0FFF803FFE0FFF803FFE0 +0FF8003FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007 +F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8 +001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8003FE007F800 +3FE003F8007FE003F8007FE001FC00DFF000FE039FFF007FFF1FFF000FFC1FFF28207D9F +2D>I<FFFF1FFFE03FF8FFFF1FFFE03FF8FFFF1FFFE03FF80FF000FE0007800FF800FE00 +038007F800FF00070007F8007F00070007FC007F000F0003FC00FF800E0003FC00FF800E +0001FE01FFC01C0001FE01DFC01C0001FF01DFC03C0000FF038FE0380000FF038FE03800 +007F878FF07000007F8707F07000007FC707F0F000003FCF07F8E000003FCE03F8E00000 +1FFE03F9C000001FFC01FDC000001FFC01FFC000000FFC01FF8000000FF800FF8000000F +F800FF80000007F0007F00000007F0007F00000003F0007E00000003E0003E00000003E0 +003E00000001C0001C000035207E9F3A>119 D<7FFF807FFC7FFF807FFC7FFF807FFC03 +FC000F0001FE001E0000FF003C0000FF803800007FC07800003FC0F000001FE1E000000F +F3C000000FFF80000007FF00000003FE00000001FE00000000FF00000000FF80000000FF +C0000001FFC0000003DFE00000078FF00000078FF800000F07FC00001E03FE00003C01FE +00007800FF0000F000FF8001E0007FC003E0003FE0FFFC01FFFFFFFC01FFFFFFFC01FFFF +28207F9F2B>I E /Fr 1 14 df<0000FF00000007FFE000001F00F8000078001E0000E0 +000700018000018003000000C006000000600C000000300C000000301800000018300000 +000C300000000C6000000006600000000660000000066000000006C000000003C0000000 +03C000000003C000000003C000000003C000000003C000000003C000000003C000000003 +6000000006600000000660000000066000000006300000000C300000000C18000000180C +000000300C00000030060000006003000000C0018000018000E00007000078001E00001F +00F8000007FFE0000000FF0000282B7EA02D>13 D E /Fs 55 122 +df<0006000C00180038007000E001E003C003C0078007800F800F001F001F003E003E00 +3E007E007E007E007C007C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00 +FC00FC007C007C007E007E007E003E003E003E001F001F000F000F800780078003C003C0 +01E000E0007000380018000C00060F3C7AAC1A>40 D<3C007F00FF80FF80FFC0FFC0FFC0 +7FC03EC000C000C00180018001800300030006000E001C00380010000A157B8813>44 +D<1C007F007F00FF80FF80FF807F007F001C0009097B8813>46 D<000E00001E00007E00 +07FE00FFFE00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 +00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 +00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00FFFFFEFFFFFEFFFFFE +17277BA622>49 D<00FF800007FFF0000FFFFC001E03FE003800FF807C003F80FE003FC0 +FF001FC0FF001FE0FF000FE0FF000FE07E000FE03C001FE000001FE000001FC000001FC0 +00003F8000003F0000007E000000FC000000F8000001F0000003E00000078000000F0000 +001E0000003C00E0007000E000E000E001C001C0038001C0060001C00FFFFFC01FFFFFC0 +3FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007 +FFFC000F81FE001F007F003F807F003F803F803F803F803F803F801F803F801F003F8000 +007F0000007F0000007E000000FC000001F8000007F00000FFC00000FFC0000001F80000 +007E0000003F0000003F8000001FC000001FC000001FE000001FE03C001FE07E001FE0FF +001FE0FF001FE0FF001FC0FF003FC0FE003F807C007F003F01FE001FFFFC0007FFF00000 +FF80001B277DA622>I<00000F0000000F0000001F0000003F0000007F000000FF000001 +FF000001FF000003BF0000073F00000E3F00001C3F00003C3F0000383F0000703F0000E0 +3F0001C03F0003803F0007803F0007003F000E003F001C003F0038003F0070003F00F000 +3F00FFFFFFF8FFFFFFF8FFFFFFF800007F0000007F0000007F0000007F0000007F000000 +7F0000007F0000007F00001FFFF8001FFFF8001FFFF81D277EA622>I<180003001F801F +001FFFFE001FFFFC001FFFF8001FFFF0001FFFC0001FFF00001C0000001C0000001C0000 +001C0000001C0000001C0000001C0000001C7FC0001DFFF8001F80FC001E003F0008003F +0000001F8000001FC000001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001F +E0FE001FE0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFFFC0003FFF0 +0000FF80001B277DA622>I<380000003E0000003FFFFFF03FFFFFF03FFFFFF07FFFFFE0 +7FFFFFC07FFFFF807FFFFF0070000E0070000E0070001C00E0003800E0007000E000E000 +0001C0000001C000000380000007800000070000000F0000001F0000001E0000003E0000 +003E0000007E0000007C0000007C000000FC000000FC000000FC000000FC000001FC0000 +01FC000001FC000001FC000001FC000001FC000001FC000000F80000007000001C297CA8 +22>55 D<007F800001FFF00007FFF8000FC0FC001F803E003F001F007E001F807E001F80 +7E000F80FE000FC0FE000FC0FE000FC0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0 +7E001FE07E001FE03F003FE01F002FE00F80CFE007FF8FE001FF0FE000080FE000000FC0 +00000FC000000FC000001F803E001F807F001F807F003F007F003E007F007E007E00FC00 +3E03F8001FFFE0000FFF800001FE00001B277DA622>57 D<000007800000000007800000 +00000FC0000000000FC0000000000FC0000000001FE0000000001FE0000000003FF00000 +00003FF0000000003FF00000000077F80000000077F800000000F7FC00000000E3FC0000 +0000E3FC00000001C1FE00000001C1FE00000003C1FF0000000380FF0000000380FF0000 +0007007F80000007007F8000000F007FC000000E003FC000000E003FC000001C001FE000 +001C001FE000003FFFFFF000003FFFFFF000003FFFFFF00000700007F80000700007F800 +00F00007FC0000E00003FC0001E00003FE0001C00001FE0001C00001FE0003C00001FF00 +FFFE003FFFFCFFFE003FFFFCFFFE003FFFFC2E297EA833>65 D<FFFFFFF800FFFFFFFF00 +FFFFFFFFC003F8001FE003F8000FF003F80007F803F80003F803F80003FC03F80003FC03 +F80001FC03F80001FC03F80001FC03F80003FC03F80003F803F80003F803F80007F003F8 +000FF003F8001FC003F800FF8003FFFFFE0003FFFFFFC003F8000FF003F80003F803F800 +01FC03F80001FE03F80000FE03F80000FE03F80000FF03F80000FF03F80000FF03F80000 +FF03F80000FF03F80000FF03F80000FE03F80001FE03F80003FC03F80007FC03F8001FF8 +FFFFFFFFE0FFFFFFFFC0FFFFFFFE0028297DA830>I<00007FE0030007FFFC07001FFFFF +0F007FF00F9F00FF0001FF01FC0000FF03F800007F07F000003F0FE000001F1FC000001F +1FC000000F3F8000000F3F800000077F800000077F800000077F00000000FF00000000FF +00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00 +0000007F000000007F800000007F800000073F800000073F800000071FC00000071FC000 +000E0FE000000E07F000001C03F800003C01FC00007800FF0001F0007FF007C0001FFFFF +800007FFFE0000007FF00028297CA831>I<FFFFFFFC0000FFFFFFFF8000FFFFFFFFE000 +03FC001FF80003FC0003FC0003FC0000FE0003FC00007F0003FC00003F8003FC00001FC0 +03FC00001FC003FC00000FE003FC00000FE003FC000007F003FC000007F003FC000007F0 +03FC000007F003FC000007F803FC000007F803FC000007F803FC000007F803FC000007F8 +03FC000007F803FC000007F803FC000007F803FC000007F803FC000007F803FC000007F0 +03FC000007F003FC000007F003FC00000FE003FC00000FE003FC00000FC003FC00001FC0 +03FC00003F8003FC00007F0003FC0000FF0003FC0003FC0003FC001FF800FFFFFFFFF000 +FFFFFFFF8000FFFFFFFC00002D297EA834>I<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE003FC +001FE003FC0007F003FC0001F003FC0001F003FC0000F003FC00007003FC00007003FC00 +007003FC01C07803FC01C03803FC01C03803FC01C03803FC03C00003FC03C00003FC0FC0 +0003FFFFC00003FFFFC00003FFFFC00003FC0FC00003FC03C00003FC03C00003FC01C00E +03FC01C00E03FC01C00E03FC01C01C03FC00001C03FC00001C03FC00001C03FC00003C03 +FC00003803FC00007803FC0000F803FC0001F803FC0003F803FC001FF8FFFFFFFFF0FFFF +FFFFF0FFFFFFFFF027297EA82C>I<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC003FC003 +FC000FE003FC0003E003FC0001E003FC0001E003FC0000E003FC0000E003FC0000E003FC +0000F003FC01C07003FC01C07003FC01C07003FC01C00003FC03C00003FC03C00003FC0F +C00003FFFFC00003FFFFC00003FFFFC00003FC0FC00003FC03C00003FC03C00003FC01C0 +0003FC01C00003FC01C00003FC01C00003FC00000003FC00000003FC00000003FC000000 +03FC00000003FC00000003FC00000003FC00000003FC000000FFFFFC0000FFFFFC0000FF +FFFC000024297EA82A>I<00007FE003000007FFFC0700001FFFFF0F00007FF00F9F0000 +FF0001FF0001FC0000FF0003F800007F0007F000003F000FE000001F001FC000001F001F +C000000F003F8000000F003F80000007007F80000007007F80000007007F0000000000FF +0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF +0000000000FF0000000000FF0000FFFFF87F0000FFFFF87F8000FFFFF87F800000FF003F +800000FF003F800000FF001FC00000FF001FC00000FF000FE00000FF0007F00000FF0003 +F80000FF0001FC0000FF0000FF0001FF00007FF007FF00001FFFFF9F000007FFFE0F0000 +007FF003002D297CA835>I<FFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFF03FC00003FC0 +03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0 +03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0 +03FC00003FC003FC00003FC003FFFFFFFFC003FFFFFFFFC003FFFFFFFFC003FC00003FC0 +03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0 +03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0 +03FC00003FC003FC00003FC003FC00003FC003FC00003FC0FFFFF00FFFFFFFFFF00FFFFF +FFFFF00FFFFF30297EA835>I<FFFFF0FFFFF0FFFFF003FC0003FC0003FC0003FC0003FC +0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC +0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC +0003FC0003FC0003FC0003FC0003FC0003FC00FFFFF0FFFFF0FFFFF014297EA819>I<FF +FFF000FFFEFFFFF000FFFEFFFFF000FFFE03FC00000F0003FC00001E0003FC00003C0003 +FC0000780003FC0000E00003FC0003C00003FC0007800003FC000F000003FC001E000003 +FC003C000003FC00F0000003FC01E0000003FC03C0000003FC07C0000003FC0FC0000003 +FC1FE0000003FC7FF0000003FCFFF8000003FDE7F8000003FFC3FC000003FF83FE000003 +FE01FF000003FC00FF000003FC007F800003FC007FC00003FC003FE00003FC001FE00003 +FC000FF00003FC000FF80003FC0007F80003FC0003FC0003FC0001FE0003FC0001FF0003 +FC0000FF0003FC00007F80FFFFF00FFFFEFFFFF00FFFFEFFFFF00FFFFE2F297EA835>75 +D<FFFFFC0000FFFFFC0000FFFFFC000003FC00000003FC00000003FC00000003FC000000 +03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003 +FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC +00000003FC00000003FC00000003FC0001C003FC0001C003FC0001C003FC0001C003FC00 +03C003FC00038003FC00038003FC00078003FC00078003FC000F8003FC000F8003FC001F +8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297EA828>I<FFFE00 +00003FFF80FFFE0000003FFF80FFFF0000007FFF8003FF0000007FE00003FF0000007FE0 +0003BF800000EFE00003BF800000EFE000039FC00001CFE000039FC00001CFE000038FE0 +00038FE000038FE000038FE000038FE000038FE0000387F000070FE0000387F000070FE0 +000383F8000E0FE0000383F8000E0FE0000381FC001C0FE0000381FC001C0FE0000381FC +001C0FE0000380FE00380FE0000380FE00380FE00003807F00700FE00003807F00700FE0 +0003803F80E00FE00003803F80E00FE00003803F80E00FE00003801FC1C00FE00003801F +C1C00FE00003800FE3800FE00003800FE3800FE000038007F7000FE000038007F7000FE0 +00038007F7000FE000038003FE000FE000038003FE000FE000038001FC000FE000038001 +FC000FE000038000F8000FE000FFFE00F803FFFF80FFFE00F803FFFF80FFFE007003FFFF +8039297DA840>I<FFFC00007FFFFFFE00007FFFFFFF00007FFF03FF800001C003FFC000 +01C003BFE00001C0039FE00001C0039FF00001C0038FF80001C00387FC0001C00383FE00 +01C00381FF0001C00380FF8001C003807F8001C003807FC001C003803FE001C003801FF0 +01C003800FF801C0038007FC01C0038003FC01C0038003FE01C0038001FF01C0038000FF +81C00380007FC1C00380003FE1C00380001FF1C00380000FF1C00380000FF9C003800007 +FDC003800003FFC003800001FFC003800000FFC0038000007FC0038000007FC003800000 +3FC0038000001FC0038000000FC00380000007C0FFFE000003C0FFFE000001C0FFFE0000 +01C030297EA835>I<0000FFC00000000FFFFC0000003F807F000000FE001FC00001F800 +07E00003F00003F00007E00001F8000FE00001FC001FC00000FE001FC00000FE003F8000 +007F003F8000007F007F8000007F807F0000003F807F0000003F807F0000003F80FF0000 +003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000 +003FC0FF0000003FC0FF0000003FC0FF0000003FC07F0000003F807F8000007F807F8000 +007F803F8000007F003F8000007F001FC00000FE001FC00000FE000FE00001FC0007F000 +03F80003F80007F00001FC000FE00000FE001FC000003FC0FF0000000FFFFC00000000FF +C000002A297CA833>I<FFFFFFF800FFFFFFFF00FFFFFFFFC003FC003FE003FC0007F003 +FC0003F803FC0003FC03FC0001FC03FC0001FE03FC0001FE03FC0001FE03FC0001FE03FC +0001FE03FC0001FE03FC0001FE03FC0001FC03FC0003FC03FC0003F803FC0007F003FC00 +3FE003FFFFFF8003FFFFFE0003FC00000003FC00000003FC00000003FC00000003FC0000 +0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000 +03FC00000003FC00000003FC00000003FC000000FFFFF00000FFFFF00000FFFFF0000027 +297EA82E>I<0000FFC00000000FFFFC0000003FC0FF000000FE001FC00001FC000FE000 +03F00003F00007F00003F8000FE00001FC001FC00000FE001FC00000FE003F8000007F00 +3F8000007F007F8000007F807F8000007F807F0000003F807F0000003F80FF0000003FC0 +FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0 +FF0000003FC0FF0000003FC0FF0000003FC07F0000003F807F8000007F807F8000007F80 +3F8000007F003F8000007F001FC00000FE001FC03E00FE000FE07F81FC0007E0C1C1F800 +03F18063F00001F98067E00000FF803FC000003FC07F0000000FFFFC00000000FFF800C0 +0000003C00C00000001E00C00000001E01C00000001F83C00000001FFFC00000000FFF80 +0000000FFF800000000FFF0000000007FF0000000003FE0000000001FC0000000000F800 +2A357CA833>I<FFFFFFE00000FFFFFFFE0000FFFFFFFF800003FC003FE00003FC000FF0 +0003FC0007F80003FC0003FC0003FC0001FC0003FC0001FE0003FC0001FE0003FC0001FE +0003FC0001FE0003FC0001FE0003FC0001FE0003FC0001FC0003FC0003F80003FC0007F8 +0003FC000FE00003FC003FC00003FFFFFE000003FFFFFE000003FC00FF800003FC003FC0 +0003FC001FE00003FC000FF00003FC0007F80003FC0007F80003FC0007F80003FC0007F8 +0003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F8 +0E03FC0007F80E03FC0003F80E03FC0001FC1CFFFFF000FE1CFFFFF0007FF8FFFFF0000F +E02F297EA832>I<00FF806003FFF0E00FFFF8E01F80FDE03F001FE03E0007E07C0003E0 +7C0003E0FC0001E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FFC000007FFC0000 +7FFFE0003FFFF8001FFFFE001FFFFF0007FFFF8003FFFFC000FFFFC0000FFFE000007FE0 +00001FF000000FF0000007F0E00003F0E00003F0E00003F0E00003F0F00003E0F00003E0 +F80007E0FC0007C0FF000F80FFE03F80E3FFFE00E1FFFC00C01FF0001C297CA825>I<7F +FFFFFFFF807FFFFFFFFF807FFFFFFFFF807F807F807F807C007F800F8078007F80078078 +007F80078070007F800380F0007F8003C0F0007F8003C0E0007F8001C0E0007F8001C0E0 +007F8001C0E0007F8001C0E0007F8001C000007F80000000007F80000000007F80000000 +007F80000000007F80000000007F80000000007F80000000007F80000000007F80000000 +007F80000000007F80000000007F80000000007F80000000007F80000000007F80000000 +007F80000000007F80000000007F80000000007F80000000007F80000000007F80000000 +007F80000000FFFFFFC00000FFFFFFC00000FFFFFFC0002A287EA72F>I<FFFFF000FFFE +FFFFF000FFFEFFFFF000FFFE03FC0000038003FC0000038003FC0000038003FC00000380 +03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380 +03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380 +03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380 +03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380 +01FC0000070001FE0000070000FE00000E00007F00000E00003F00003C00001FC0007800 +000FF003F0000007FFFFE0000000FFFF800000001FFC00002F297EA834>I<FFFFF0007F +FFFFFFF0007FFFFFFFF0007FFF03FE000001C001FE0000038001FE0000038001FF000007 +8000FF0000070000FF80000F00007F80000E00007FC0000E00003FC0001C00003FC0001C +00003FE0003C00001FE0003800001FF0007800000FF0007000000FF80070000007F800E0 +000007F800E0000003FC01C0000003FC01C0000003FE03C0000001FE0380000001FF0780 +000000FF0700000000FF87000000007F8E000000007F8E000000007FDE000000003FDC00 +0000003FFC000000001FF8000000001FF8000000000FF0000000000FF0000000000FF000 +00000007E00000000007E00000000003C00000000003C0000030297FA833>I<FFFFE07F +FFE01FFFC0FFFFE07FFFE01FFFC0FFFFE07FFFE01FFFC003FC0003FC0000700003FC0003 +FC0000700003FE0001FE0000700001FE0001FE0000E00001FE0001FE0000E00001FF0001 +FF0001E00000FF0001FF0001C00000FF0003FF8001C00000FF8003FF8003C000007F8003 +FF80038000007F8007FFC0038000003FC0073FC0070000003FC0073FC0070000003FE00E +1FE00F0000001FE00E1FE00E0000001FE00E1FF00E0000001FF01C0FF01E0000000FF01C +0FF01C0000000FF03C0FF81C00000007F83807F83800000007F83807F83800000007F878 +07FC3800000003FC7003FC7000000003FC7003FC7000000003FEE001FEF000000001FEE0 +01FEE000000001FFE001FFE000000001FFC000FFE000000000FFC000FFC000000000FFC0 +00FFC0000000007F80007F80000000007F80007F80000000007F80007F80000000003F00 +003F00000000003F00003F00000000003E00001F00000000001E00001E00000000001E00 +001E00000042297FA845>I<FFFFF0003FFFFFFFF0003FFFFFFFF0003FFF03FE000003C0 +01FF0000038000FF8000070000FF80000F00007FC0000E00007FE0001C00003FE0003C00 +001FF0003800001FF8007000000FF800F0000007FC00E0000007FE01C0000003FE03C000 +0001FF0380000001FF8700000000FF8F000000007FCE000000007FFC000000003FFC0000 +00001FF8000000001FF0000000000FF0000000000FF0000000000FF0000000000FF00000 +00000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00000 +00000FF0000000000FF0000000000FF0000000000FF000000003FFFFC0000003FFFFC000 +0003FFFFC00030297FA833>89 D<03FF80000FFFF0001F01FC003F80FE003F807F003F80 +3F003F803F801F003F8000003F8000003F8000003F8000003F80003FFF8001FC3F800FE0 +3F801F803F803F003F807E003F80FC003F80FC003F80FC003F80FC003F80FC005F807E00 +DF803F839FFC1FFE0FFC03FC03FC1E1B7E9A21>97 D<FFE00000FFE00000FFE000000FE0 +00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0 +00000FE000000FE000000FE1FE000FEFFF800FFE07E00FF803F00FF001F80FE000FC0FE0 +00FC0FE0007E0FE0007E0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0 +007F0FE0007F0FE0007E0FE0007E0FE0007E0FE000FC0FE000FC0FF001F80FF803F00F9C +0FE00F0FFF800E01FC00202A7EA925>I<003FF00001FFFC0003F03E000FC07F001F807F +003F007F003F007F007F003E007E0000007E000000FE000000FE000000FE000000FE0000 +00FE000000FE000000FE0000007E0000007E0000007F0000003F0003803F8003801F8007 +000FE00E0003F83C0001FFF800003FC000191B7E9A1E>I<00007FF000007FF000007FF0 +000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0 +000007F0000007F0000007F0003F87F001FFF7F007F03FF00FC00FF01F8007F03F0007F0 +3F0007F07E0007F07E0007F07E0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0 +FE0007F0FE0007F0FE0007F07E0007F07E0007F03F0007F03F0007F01F800FF00FC01FF0 +07E07FFF01FFE7FF007F87FF202A7EA925>I<003FC00001FFF00003E07C000F803E001F +801F001F001F003F000F807E000F807E000FC07E000FC0FE0007C0FE0007C0FFFFFFC0FF +FFFFC0FE000000FE000000FE0000007E0000007E0000007F0000003F0001C01F0001C00F +80038007C0070003F01E0000FFFC00003FE0001A1B7E9A1F>I<0007F8003FFC007E3E01 +FC7F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007F00007F00007F000FF +FFC0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007F00007F00007 +F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0007F +FF807FFF807FFF80182A7EA915>I<00FF80F003FFE3F80FC1FE1C1F007C7C3F007E7C3E +003E107E003F007E003F007E003F007E003F007E003F007E003F003E003E003F007E001F +007C000FC1F8000BFFE00018FF80001800000038000000380000003C0000003FFFF8003F +FFFF001FFFFFC00FFFFFE007FFFFF01FFFFFF03C0007F07C0001F8F80000F8F80000F8F8 +0000F8F80000F87C0001F07C0001F03F0007E00FC01F8007FFFF00007FF0001E287E9A22 +>I<FFE00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE000000FE0 +00000FE000000FE000000FE000000FE000000FE000000FE000000FE07E000FE1FF800FE3 +0FC00FE40FE00FE807E00FF807F00FF007F00FF007F00FE007F00FE007F00FE007F00FE0 +07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE0 +07F00FE007F00FE007F00FE007F0FFFE3FFFFFFE3FFFFFFE3FFF202A7DA925>I<07000F +801FC03FE03FE03FE01FC00F8007000000000000000000000000000000FFE0FFE0FFE00F +E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F +E00FE00FE0FFFEFFFEFFFE0F2B7EAA12>I<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE0 +0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 +0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7EA912> +108 D<FFC07F001FC000FFC1FFC07FF000FFC307E0C1F8000FC407F101FC000FC803F200 +FC000FD803FE00FE000FD003FC00FE000FD003FC00FE000FE003F800FE000FE003F800FE +000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE00 +0FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000F +E003F800FE000FE003F800FE000FE003F800FE000FE003F800FE00FFFE3FFF8FFFE0FFFE +3FFF8FFFE0FFFE3FFF8FFFE0331B7D9A38>I<FFC07E00FFC1FF80FFC30FC00FC40FE00F +C807E00FD807F00FD007F00FD007F00FE007F00FE007F00FE007F00FE007F00FE007F00F +E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00F +E007F00FE007F0FFFE3FFFFFFE3FFFFFFE3FFF201B7D9A25>I<003FE00001FFFC0003F0 +7E000FC01F801F800FC03F0007E03F0007E07E0003F07E0003F07E0003F0FE0003F8FE00 +03F8FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE0003F87E0003F07E0003F03F00 +07E03F0007E01F800FC00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>I<FFE1FE +00FFEFFF80FFFE0FE00FF803F00FF001F80FE001FC0FE000FC0FE000FE0FE000FE0FE000 +7F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007E0FE000 +FE0FE000FE0FE000FC0FE001FC0FF001F80FF807F00FFC0FE00FEFFF800FE1FC000FE000 +000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000FFFE00 +00FFFE0000FFFE000020277E9A25>I<FFC1F0FFC7FCFFC63E0FCC7F0FD87F0FD07F0FD0 +7F0FF03E0FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0 +000FE0000FE0000FE0000FE0000FE000FFFF00FFFF00FFFF00181B7F9A1B>114 +D<03FE300FFFF03E03F07800F07000F0F00070F00070F80070FE0000FFE0007FFF007FFF +C03FFFE01FFFF007FFF800FFF80007FC0000FCE0007CE0003CF0003CF00038F80038FC00 +70FF01E0E7FFC0C1FF00161B7E9A1B>I<00E00000E00000E00000E00001E00001E00001 +E00003E00003E00007E0000FE0001FFFE0FFFFE0FFFFE00FE0000FE0000FE0000FE0000F +E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0700FE0700FE0700F +E0700FE0700FE0700FE07007F0E003F0C001FF80007F0014267FA51A>I<FFE07FF0FFE0 +7FF0FFE07FF00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE0 +07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE0 +07F00FE007F00FE00FF00FE00FF007E017F003F067FF01FFC7FF007F87FF201B7D9A25> +I<FFFC03FFFFFC03FFFFFC03FF0FF000F007F000E007F800E003F801C003F801C003FC03 +C001FC038001FE078000FE070000FF0700007F0E00007F0E00007F9E00003F9C00003FFC +00001FF800001FF800000FF000000FF000000FF0000007E0000007E0000003C0000003C0 +00201B7F9A23>I<FFFC7FFC1FFCFFFC7FFC1FFCFFFC7FFC1FFC0FE00FE001C007F007E0 +038007F007E0038007F807F0078003F807F0070003F80FF8070003FC0FF80F0001FC0FF8 +0E0001FC1FFC0E0000FE1CFC1C0000FE1CFE1C0000FF387E3C00007F387E3800007F787F +3800003FF03F7000003FF03FF000003FE01FF000001FE01FE000001FE01FE000000FC00F +C000000FC00FC000000F8007C0000007800780000007800780002E1B7F9A31>I<FFFC1F +FEFFFC1FFEFFFC1FFE07F0038003F8078003FC0F0001FE1E0000FE3C00007F3800007FF8 +00003FF000001FE000000FE000000FF0000007F800000FF800001FFC00003CFE000038FF +0000787F0000F03F8001E01FC003C01FE003800FE0FFF03FFFFFF03FFFFFF03FFF201B7F +9A23>I<FFFC03FFFFFC03FFFFFC03FF0FF000F007F000E007F800E003F801C003F801C0 +03FC03C001FC038001FE078000FE070000FF0700007F0E00007F0E00007F9E00003F9C00 +003FFC00001FF800001FF800000FF000000FF000000FF0000007E0000007E0000003C000 +0003C000000380000003800000078000380700007C0F0000FE0E0000FE1E0000FE1C0000 +FE38000074F000003FE000000F80000020277F9A23>I E /Ft 90 +127 df<70F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F870000000000070F8F8F870051C779B +18>33 D<4010E038F078E038E038E038E038E038E038E038E038E038E03860300D0E7B9C +18>I<030600078F00078F00078F00078F00078F00078F007FFFC0FFFFE0FFFFE07FFFC0 +0F1E000F1E000F1E000F1E000F1E000F1E007FFFC0FFFFE0FFFFE07FFFC01E3C001E3C00 +1E3C001E3C001E3C001E3C000C1800131C7E9B18>I<00C00001C00001C00001C00003F0 +000FFC003FFE007DCF0071C700E1C380E1C780E1C780E1C780F1C00079C0003FC0001FE0 +000FF80001FC0001DE0001CF0001C70061C380F1C380F1C380E1C380E1C70071C70079DE +003FFE001FF80007E00001C00001C00001C00000C00011247D9F18>I<3803007C07807C +0780EE0F80EE0F00EE0F00EE1F00EE1E00EE1E00EE3E007C3C007C3C00387C0000780000 +780000F80000F00001F00001E00001E00003E00003C00003C00007C0000783800787C00F +87C00F0EE00F0EE01F0EE01E0EE01E0EE03E0EE03C07C03C07C018038013247E9F18>I< +01C00007E0000FF0000E70001C38001C38001C38001C38001C73F81CF3F81CE3F80FC1C0 +0FC3800F83800F03801F07003F87007B8E0071CE00E1FC00E0FC00E07C00E07870E07870 +70FE707FFFE03FC7E00F03C0151C7F9B18>I<387C7C7E3E0E0E0E1C1C38F8F0C0070E78 +9B18>I<007000F001E003C007800F001E001C00380038007000700070007000E000E000 +E000E000E000E000E000E0007000700070007000380038001C001E000F00078003C001F0 +00F000700C24799F18>I<6000F00078003C001E000F000780038001C001C000E000E000 +E000E00070007000700070007000700070007000E000E000E000E001C001C0038007800F +001E003C007800F00060000C247C9F18>I<01C00001C00001C00001C00041C100F1C780 +FDDF807FFF001FFC0007F00007F0001FFC007FFF00FDDF80F1C78041C10001C00001C000 +01C00001C00011147D9718>I<00600000F00000F00000F00000F00000F00000F00000F0 +007FFFC0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F00000F00000F0000060 +0013147E9718>I<1C3E7E7F3F1F070E1E7CF860080C788518>I<7FFFC0FFFFE0FFFFE07F +FFC013047E8F18>I<3078FCFC78300606778518>I<000300000780000780000F80000F00 +001F00001E00001E00003E00003C00007C0000780000780000F80000F00001F00001E000 +03E00003C00003C00007C0000780000F80000F00000F00001F00001E00003E00003C0000 +3C00007C0000780000F80000F00000F0000060000011247D9F18>I<01F00007FC000FFE +001F1F001C07003803807803C07001C07001C0E000E0E000E0E000E0E000E0E000E0E000 +E0E000E0E000E0E000E0F001E07001C07001C07803C03803801C07001F1F000FFE0007FC +0001F000131C7E9B18>I<01800380038007800F803F80FF80FB80438003800380038003 +800380038003800380038003800380038003800380038003807FFCFFFE7FFC0F1C7B9B18 +>I<03F0000FFE003FFF007C0F807003C0E001C0F000E0F000E06000E00000E00000E000 +01C00001C00003C0000780000F00001E00003C0000780000F00001E00007C0000F80001E +00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<001F00003F0000770000770000E700 +01E70001C7000387000787000707000E07001E07003C0700380700780700F00700FFFFF8 +FFFFF8FFFFF8000700000700000700000700000700000700007FF0007FF0007FF0151C7F +9B18>52 D<3FFF803FFF803FFF8038000038000038000038000038000038000038000038 +00003BF8003FFE003FFF003C07803003C00001C00000E00000E06000E0F000E0F000E0E0 +01C07003C07C0F803FFF001FFC0003F000131C7E9B18>I<007E0001FF0007FF800F83C0 +1E03C01C03C0380180380000700000700000E1F800E7FE00FFFF00FE0780F803C0F001C0 +F000E0E000E0F000E07000E07000E07000E03801C03C03C01E07800FFF0007FE0001F800 +131C7E9B18>I<E00000FFFFE0FFFFE0FFFFC0E00380E00700000F00001E00001C000038 +0000380000700000F00000E00000E00001C00001C00001C0000380000380000380000380 +00070000070000070000070000070000070000070000131D7E9C18>I<03F8000FFE001F +FF003E0F803803807001C07001C07001C07001C03803803C07801FFF0007FC000FFE001F +1F003C07807001C0F001E0E000E0E000E0E000E0E000E07001C07803C03E0F801FFF000F +FE0003F800131C7E9B18>I<3078FCFC783000000000000000003078FCFC783006147793 +18>58 D<183C7E7E3C180000000000000000183C7E7E3E1E0E1C3C78F060071A789318> +I<0000C00003E00007E0001FC0003F8000FE0001FC0007F0000FE0003F80007F0000FC00 +00FC00007F00003F80000FE00007F00001FC0000FE00003F80001FC00007E00003E00000 +C013187E9918>I<7FFFC0FFFFE0FFFFE07FFFC00000000000000000000000007FFFC0FF +FFE0FFFFE07FFFC0130C7E9318>I<600000F80000FC00007F00003F80000FE00007F000 +01FC0000FE00003F80001FC00007E00007E0001FC0003F8000FE0001FC0007F0000FE000 +3F80007F0000FC0000F8000060000013187E9918>I<0FF0003FFC007FFF00700F00F003 +80F00380600780000F00003E00007C0001F00001E00003C00003C00003C00003C00003C0 +0003800000000000000000000000000000000003800007C00007C00007C000038000111C +7D9B18>I<007C0001FE0007FF000F87801E03C03C1DC0387FC070FFE071E3E071C1E0E1 +C1E0E380E0E380E0E380E0E380E0E380E0E380E0E1C1C071C1C071E3C070FF80387F003C +1C001E00E00F83E007FFC001FF80007E00131C7E9B18>I<00700000F80000F80000D800 +00D80001DC0001DC0001DC00018C00038E00038E00038E00038E00070700070700070700 +0707000707000FFF800FFF800FFF800E03801C01C01C01C01C01C07F07F0FF07F87F07F0 +151C7F9B18>I<7FFC00FFFF007FFF801C03C01C01C01C00E01C00E01C00E01C00E01C01 +E01C01C01C07C01FFF801FFF001FFFC01C03C01C00E01C00F01C00701C00701C00701C00 +701C00F01C00E01C03E07FFFC0FFFF807FFE00141C7F9B18>I<00F8E003FEE007FFE00F +07E01E03E03C01E03800E07000E07000E0700000E00000E00000E00000E00000E00000E0 +0000E00000E000007000007000E07000E03800E03C00E01E01C00F07C007FF8003FE0000 +F800131C7E9B18>I<7FF800FFFE007FFF001C0F801C03C01C03C01C01E01C00E01C00E0 +1C00F01C00701C00701C00701C00701C00701C00701C00701C00701C00F01C00E01C00E0 +1C01E01C01C01C03C01C0F807FFF00FFFE007FF800141C7F9B18>I<FFFFF0FFFFF0FFFF +F01C00701C00701C00701C00701C00001C00001C0E001C0E001C0E001FFE001FFE001FFE +001C0E001C0E001C0E001C00001C00001C00381C00381C00381C00381C0038FFFFF8FFFF +F8FFFFF8151C7F9B18>I<FFFFF8FFFFF8FFFFF81C00381C00381C00381C00381C00001C +00001C07001C07001C07001FFF001FFF001FFF001C07001C07001C07001C00001C00001C +00001C00001C00001C00001C0000FFC000FFC000FFC000151C7F9B18>I<01F1C003FDC0 +0FFFC01F0FC01C03C03803C03801C07001C07001C0700000E00000E00000E00000E00000 +E00000E00FF0E01FF0E00FF07001C07001C07003C03803C03803C01C07C01F0FC00FFFC0 +03FDC001F1C0141C7E9B18>I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01 +C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFFC01C01C01C01C01C01C01C01C01C01 +C01C01C01C01C01C01C01C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>I<7FFF00FF +FF807FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001 +C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0007F +FF00FFFF807FFF00111C7D9B18>I<01FFC001FFC001FFC0000E00000E00000E00000E00 +000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00 +000E00000E00000E00F00E00F00E00F03C007FFC003FF0000FC000121C7D9B18>I<7F07 +F0FF87F87F07F01C03C01C07801C07001C0E001C1E001C3C001C38001C70001CF0001DF0 +001DF0001FB8001FB8001F1C001E1C001C0E001C0E001C07001C07001C03801C03801C01 +C07F03F0FF87F87F03F0151C7F9B18>I<FFC000FFC000FFC0001C00001C00001C00001C +00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C +00001C00001C00E01C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE0131C7E9B18>I< +FC01F8FE03F8FE03F83B06E03B06E03B06E03B06E03B8EE03B8EE0398CE0398CE039DCE0 +39DCE039DCE038D8E038D8E038F8E03870E03870E03800E03800E03800E03800E03800E0 +3800E0FE03F8FE03F8FE03F8151C7F9B18>I<7E07F0FF0FF87F07F01D81C01D81C01D81 +C01DC1C01CC1C01CC1C01CE1C01CE1C01CE1C01C61C01C71C01C71C01C31C01C39C01C39 +C01C39C01C19C01C19C01C1DC01C0DC01C0DC01C0DC07F07C0FF87C07F03C0151C7F9B18 +>I<0FFE003FFF807FFFC07803C07001C0F001E0E000E0E000E0E000E0E000E0E000E0E0 +00E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0F001E070 +01C07C07C07FFFC03FFF800FFE00131C7E9B18>I<FFFE00FFFF80FFFFC01C03C01C01E0 +1C00E01C00701C00701C00701C00701C00701C00E01C01E01C03C01FFFC01FFF801FFE00 +1C00001C00001C00001C00001C00001C00001C00001C0000FF8000FF8000FF8000141C7F +9B18>I<0FFE003FFF807FFFC07803C07001C0F001E0E000E0E000E0E000E0E000E0E000 +E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E070E0E070E0F079 +E07039C0783FC07FFFC03FFF800FFE00000F000007800007800003C00001C00001C01322 +7E9B18>I<7FF800FFFE007FFF001C0F801C03801C03C01C01C01C01C01C01C01C03C01C +03801C0F801FFF001FFE001FFE001C0F001C07001C03801C03801C03801C03801C03801C +039C1C039C1C039C7F01F8FF81F87F00F0161C7F9B18>I<03F1C01FFFC03FFFC07C0FC0 +7003C0E001C0E001C0E001C0E000007000007800003F00001FF00007FE0000FF00000F80 +0003C00001C00000E00000E06000E0E000E0E001E0F001C0F80780FFFF80FFFE00E7F800 +131C7E9B18>I<7FFFF8FFFFF8FFFFF8E07038E07038E07038E070380070000070000070 +000070000070000070000070000070000070000070000070000070000070000070000070 +0000700000700000700007FF0007FF0007FF00151C7F9B18>I<FF83FEFF83FEFF83FE1C +00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C +00701C00701C00701C00701C00701C00701C00700E00E00F01E00783C003FF8001FF0000 +7C00171C809B18>I<FE03F8FF07F8FE03F83C01E01C01C01C01C01C01C01E03C00E0380 +0E03800E03800E0380070700070700070700070700038E00038E00038E00038E00018C00 +01DC0001DC0001DC0000D80000F80000F800007000151C7F9B18>I<FE03F8FE03F8FE03 +F87000707000707000703800E03800E03800E03800E03800E038F8E039FCE039DCE039DC +E019DCC019DCC019DCC0198CC0198CC01D8DC01D8DC01D8DC01D05C00D05800F07800F07 +800E0380151C7F9B18>I<7F0FE07F9FE07F0FE00E07000F0700070E00078E00039C0003 +DC0001F80001F80000F80000F00000700000F00000F80001FC0001DC00039E00038E0007 +0F000707000E07800E03801E03C07F07F0FF07F87F07F0151C7F9B18>I<FE03F8FF07F8 +FE03F81C01C01E03C00E03800F0780070700070700038E00038E0001DC0001DC0001DC00 +00F80000F80000700000700000700000700000700000700000700000700000700001FC00 +03FE0001FC00151C7F9B18>I<FFF8FFF8FFF8E000E000E000E000E000E000E000E000E0 +00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0 +00E000E000E000FFF8FFF8FFF80D24779F18>91 D<600000F00000F00000F80000780000 +7C00003C00003C00003E00001E00001F00000F00000F00000F800007800007C00003C000 +03C00003E00001E00001F00000F00000F800007800007800007C00003C00003E00001E00 +001E00001F00000F00000F8000078000078000030011247D9F18>I<FFF8FFF8FFF80038 +003800380038003800380038003800380038003800380038003800380038003800380038 +00380038003800380038003800380038003800380038FFF8FFF8FFF80D247F9F18>I<7F +FFC0FFFFE0FFFFE07FFFC013047E7F18>95 D<061E3E387070E0E0E0F8FC7C7C38070E78 +9E18>I<0FF0001FFC003FFE003C0F0018070000038000038000FF8007FF801FFF807F03 +80780380E00380E00380E00380F00780780F803FFFF81FFDF807F0F815147E9318>I<7E +0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF800FFFC00FC1E00F +80E00F00700E00700E00380E00380E00380E00380E00380E00380F00700F00700F80E00F +C1E00FFFC00EFF80063E00151C809B18>I<01FE0007FF001FFF803E0780380300700000 +700000E00000E00000E00000E00000E00000E000007000007001C03801C03E03C01FFF80 +07FF0001FC0012147D9318>I<001F80003F80001F800003800003800003800003800003 +8003E3800FFB801FFF803C1F80380F80700780700380E00380E00380E00380E00380E003 +80E00380700780700780380F803C1F801FFFF00FFBF803E3F0151C7E9B18>I<01F00007 +FC001FFE003E0F00380780700380700380E001C0E001C0FFFFC0FFFFC0FFFFC0E0000070 +00007001C03801C03E07C01FFF8007FF0001F80012147D9318>I<001F80007FC000FFE0 +00E1E001C0C001C00001C00001C0007FFFC0FFFFC0FFFFC001C00001C00001C00001C000 +01C00001C00001C00001C00001C00001C00001C00001C00001C00001C0007FFF007FFF00 +7FFF00131C7F9B18>I<01E1F007FFF80FFFF81E1E301C0E003807003807003807003807 +003807001C0E001E1E001FFC001FF80039E0003800001C00001FFE001FFFC03FFFE07801 +F0700070E00038E00038E00038E000387800F07E03F01FFFC00FFF8001FC00151F7F9318 +>I<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF800FFFC00F +C1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E +00E00E00E07FC7FCFFE7FE7FC7FC171C809B18>I<038007C007C007C003800000000000 +0000007FC0FFC07FC001C001C001C001C001C001C001C001C001C001C001C001C001C001 +C0FFFFFFFFFFFF101D7C9C18>I<0038007C007C007C003800000000000000000FFC0FFC +0FFC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C +001C001C001C001C001C6038F078FFF07FE03F800E277E9C18>I<7E0000FE00007E0000 +0E00000E00000E00000E00000E00000E3FF00E3FF00E3FF00E07800E0F000E1E000E3C00 +0E78000EF0000FF8000FFC000F9C000F0E000E0F000E07000E03800E03C07FC7F8FFC7F8 +7FC7F8151C7F9B18>I<FFC000FFC000FFC00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C000FFFF80FFFF80FFFF80111C7D9B18>I<F9C1C0FFF7F0FF +FFF03E3E383C3C383C3C3838383838383838383838383838383838383838383838383838 +3838383838383838FE3E3EFE7E7EFE3E3E1714809318>I<7E3E00FEFF807FFFC00FC1C0 +0F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0 +0E00E07FC7FCFFE7FE7FC7FC1714809318>I<01F0000FFE001FFF003E0F803803807001 +C07001C0E000E0E000E0E000E0E000E0E000E0F001E07001C07803C03C07803E0F801FFF +000FFE0001F00013147E9318>I<7E3E00FEFF807FFFC00FC1E00F80E00F00700E00700E +00380E00380E00380E00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF800E +3E000E00000E00000E00000E00000E00000E00000E00007FC000FFE0007FC000151E8093 +18>I<01F38007FB801FFF803E1F80380F80700780700780E00380E00380E00380E00380 +E00380E00380700780700780380F803C1F801FFF800FFB8003E380000380000380000380 +000380000380000380000380001FF0003FF8001FF0151E7E9318>I<FF0FC0FF3FE0FF7F +F007F0F007E06007C0000780000780000700000700000700000700000700000700000700 +00070000070000FFFC00FFFE00FFFC0014147E9318>I<07F7003FFF007FFF00780F00E0 +0700E00700E007007C00007FE0001FFC0003FE00001F00600780E00380E00380F00380F8 +0F00FFFF00FFFC00E7F00011147D9318>I<0180000380000380000380000380007FFFC0 +FFFFC0FFFFC0038000038000038000038000038000038000038000038000038000038040 +0380E00380E00380E001C1C001FFC000FF80003E0013197F9818>I<7E07E0FE0FE07E07 +E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00 +E00E01E00F03E007FFFC03FFFE01FCFC1714809318>I<7F8FF0FF8FF87F8FF01C01C00E +03800E03800E0380070700070700070700078F00038E00038E00038E0001DC0001DC0001 +DC0000F80000F80000700015147F9318>I<FF07F8FF8FF8FF07F83800E03800E03800E0 +3800E01C01C01C71C01CF9C01CF9C01CD9C01DDDC00DDD800DDD800DDD800D8D800F8F80 +0F8F8007070015147F9318>I<7F8FF07F9FF07F8FF00F0700078E00039E0001DC0001F8 +0000F80000700000F00000F80001DC00039E00038E000707000E07807F8FF0FF8FF87F8F +F015147F9318>I<7F8FF0FF8FF87F8FF00E01C00E03800E038007038007070007070003 +8700038700038E0001CE0001CE0001CC0000CC0000DC0000780000780000780000700000 +700000700000F00000E00079E0007BC0007F80003F00001E0000151E7F9318>I<3FFFF0 +7FFFF07FFFF07001E07003C0700780000F00001E00003C0000F80001F00003C000078000 +0F00701E00703C0070780070FFFFF0FFFFF0FFFFF014147F9318>I<0007E0001FE0007F +E000780000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0 +0001E0007FC000FF8000FF80007FC00001E00000E00000E00000E00000E00000E00000E0 +0000E00000E00000E00000E00000E000007800007FE0001FE00007E013247E9F18>I<60 +F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F06004 +24769F18>I<7C0000FF0000FFC00003C00000E00000E00000E00000E00000E00000E000 +00E00000E00000E00000E00000E00000F000007FC0003FE0003FE0007FC000F00000E000 +00E00000E00000E00000E00000E00000E00000E00000E00000E00000E00003C000FFC000 +FF00007C000013247E9F18>I<060C1F1E3FBEFBF8F1F060C00F067C9B18>I +E /Fu 77 123 df<001F83E000F06E3001C078780380F8780300F0300700700007007000 +0700700007007000070070000700700007007000FFFFFF80070070000700700007007000 +070070000700700007007000070070000700700007007000070070000700700007007000 +0700700007007000070070000700700007007000070070003FE3FF001D20809F1B>11 +D<003F0000E0C001C0C00381E00701E00701E00700000700000700000700000700000700 +00FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 +E00700E00700E00700E00700E00700E00700E00700E03FC3FC1620809F19>I<003FE000 +E0E001C1E00381E00700E00700E00700E00700E00700E00700E00700E00700E0FFFFE007 +00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007 +00E00700E00700E00700E00700E00700E03FE7FC1620809F19>I<001F81F80000F04F04 +0001C07C06000380F80F000300F00F000700F00F00070070000007007000000700700000 +070070000007007000000700700000FFFFFFFF0007007007000700700700070070070007 +007007000700700700070070070007007007000700700700070070070007007007000700 +700700070070070007007007000700700700070070070007007007000700700700070070 +07003FE3FE3FE02320809F26>I<7038F87CFC7EFC7E743A040204020402080408041008 +1008201040200F0E7F9F17>34 D<00400000400003F0000C4E0010410020408060408040 +4040C041C0C043C0C043C0E04180E040007040007C40003FC0001FF8000FFC0003FE0000 +7F00004F800043800041C00041C0F040C0F040C0F040C08040C080408040418020410030 +42000C4C0003F00000400000400000400012257EA117>36 D<70F8FCFC74040404080810 +102040060E7C9F0D>39 D<0040008001000300060004000C001800180038003000300070 +006000600060006000E000E000E000E000E000E000E000E000E000E000E000E000600060 +00600060007000300030003800180018000C000400060003000100008000400A2E7BA112 +>I<8000400020003000180008000C000600060007000300030003800180018001800180 +01C001C001C001C001C001C001C001C001C001C001C001C0018001800180018003800300 +03000700060006000C000800180030002000400080000A2E7EA112>I<70F0F8F8780808 +08101010202040050E7C840D>44 D<FFF0FFF00C02808A0F>I<70F8F8F87005057C840D> +I<0000400000C0000180000180000180000300000300000300000600000600000C00000C +00000C0000180000180000180000300000300000600000600000600000C00000C00000C0 +000180000180000180000300000300000600000600000600000C00000C00000C00001800 +00180000300000300000300000600000600000600000C00000C00000122D7EA117>I<03 +F0000E1C001C0E00180600380700700380700380700380700380F003C0F003C0F003C0F0 +03C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C070038070038070 +03807807803807001806001C0E000E1C0003F000121F7E9D17>I<008003800F80F38003 +800380038003800380038003800380038003800380038003800380038003800380038003 +800380038003800380038007C0FFFE0F1E7C9D17>I<03F0000C1C00100E002007004007 +80800780F007C0F803C0F803C0F803C02007C00007C0000780000780000F00000E00001C +0000380000700000600000C0000180000300000600400C00401800401000803FFF807FFF +80FFFF80121E7E9D17>I<03F0000C1C00100E00200F00780F80780780780780380F8000 +0F80000F00000F00001E00001C0000700007F000003C00000E00000F0000078000078000 +07C02007C0F807C0F807C0F807C0F00780400780400F00200E00183C0007F000121F7E9D +17>I<000600000600000E00000E00001E00002E00002E00004E00008E00008E00010E00 +020E00020E00040E00080E00080E00100E00200E00200E00400E00C00E00FFFFF0000E00 +000E00000E00000E00000E00000E00000E0000FFE0141E7F9D17>I<1803001FFE001FFC +001FF8001FE00010000010000010000010000010000010000011F000161C00180E001007 +001007800003800003800003C00003C00003C07003C0F003C0F003C0E003804003804007 +00200600100C0008380007E000121F7E9D17>I<007C000182000701000E03800C078018 +0780380300380000780000700000700000F1F000F21C00F40600F80700F80380F80380F0 +03C0F003C0F003C0F003C0F003C07003C07003C07003803803803807001807000C0E0006 +1C0001F000121F7E9D17>I<4000007FFFE07FFFC07FFFC0400080800100800100800200 +00040000040000080000100000100000200000200000600000600000E00000C00001C000 +01C00001C00001C00003C00003C00003C00003C00003C00003C00003C000018000131F7E +9D17>I<03F0000C0C001006003003002001806001806001806001807001807803003E03 +003F06001FC8000FF00003F80007FC000C7E00103F00300F806007806001C0C001C0C000 +C0C000C0C000C0C000806001802001001002000C0C0003F000121F7E9D17>I<03F0000E +18001C0C00380600380700700700700380F00380F00380F003C0F003C0F003C0F003C0F0 +03C07007C07007C03807C0180BC00E13C003E3C000038000038000038000070030070078 +0600780E00700C002018001070000FC000121F7E9D17>I<70F8F8F87000000000000000 +00000070F8F8F87005147C930D>I<70F8F8F8700000000000000000000070F0F8F87808 +0808101010202040051D7C930D>I<000100000003800000038000000380000007C00000 +07C0000007C0000009E0000009E0000009E0000010F0000010F0000010F0000020780000 +2078000020780000403C0000403C0000C03E0000801E0000801E0001FFFF0001000F0001 +000F00020007800200078002000780040003C0040003C00C0003C01E0003E0FF801FFE1F +207F9F22>65 D<FFFFE0000F0078000F001E000F001E000F000F000F000F800F000F800F +000F800F000F800F000F800F000F000F001F000F001E000F007C000FFFF0000F007C000F +001F000F000F800F0007C00F0003C00F0003E00F0003E00F0003E00F0003E00F0003E00F +0003C00F0007C00F0007800F000F000F003E00FFFFF0001B1F7E9E20>I<000FE0100038 +1C3000E0027003C00170078000F00F0000701E0000701E0000303C0000303C0000107C00 +001078000010F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800 +0000F8000000780000007C0000103C0000103C0000101E0000201E0000200F0000200780 +004003C0008000E0030000380C00000FF0001C217E9F21>I<FFFFF80007801E00078007 +80078003C0078001E0078000F00780007007800078078000780780003C0780003C078000 +3C0780003E0780003E0780003E0780003E0780003E0780003E0780003E0780003E078000 +3C0780003C0780007C0780007807800078078000F0078001E0078003C00780078007801E +00FFFFF8001F1F7F9E23>I<FFFFFF800F000F800F0003800F0001800F0000800F0000C0 +0F0000400F0000400F0000400F0040400F0040000F0040000F00C0000F01C0000FFFC000 +0F01C0000F00C0000F0040000F0040000F0040000F0000200F0000200F0000200F000040 +0F0000400F0000400F0000C00F0001C00F0003800F000F80FFFFFF801B1F7E9E1F>I<FF +FFFF8007800780078001800780018007800080078000C007800040078000400780004007 +800040078020000780200007802000078060000780E00007FFE0000780E0000780600007 +802000078020000780200007800000078000000780000007800000078000000780000007 +8000000780000007C00000FFFE00001A1F7F9E1E>I<000FE01000381C3000E0027003C0 +0170078000F00F0000701E0000701E0000303C0000303C0000107C00001078000010F800 +0000F8000000F8000000F8000000F8000000F8000000F8000000F8003FFEF80001F07800 +00F07C0000F03C0000F03C0000F01E0000F01E0000F00F0000F0078000F003C0017000E0 +023000380C10000FF0001F217E9F24>I<FFF07FF80F0007800F0007800F0007800F0007 +800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007 +800FFFFF800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007 +800F0007800F0007800F0007800F0007800F0007800F0007800F000780FFF07FF81D1F7E +9E22>I<FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00 +0F000F000F000F000F000F000F000F000F000F000F000F000F000F00FFF00C1F7E9E10> +I<FFF007FC0F0003E00F0001800F0001000F0002000F0004000F0008000F0010000F0020 +000F0040000F0080000F0100000F0300000F0780000F0F80000F13C0000F21E0000F41E0 +000F80F0000F0078000F0078000F003C000F001E000F001E000F000F000F0007800F0007 +800F0003C00F0003E00F0003F0FFF01FFE1F1F7E9E23>75 D<FFF8000F80000F00000F00 +000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00 +000F00000F00000F00000F00000F00020F00020F00020F00020F00060F00040F00040F00 +0C0F001C0F007CFFFFFC171F7E9E1C>I<FF800007FE07800007C007800007C005C0000B +C005C0000BC004E00013C004E00013C004E00013C004700023C004700023C004380043C0 +04380043C004380043C0041C0083C0041C0083C0040E0103C0040E0103C0040E0103C004 +070203C004070203C004070203C004038403C004038403C00401C803C00401C803C00401 +C803C00400F003C00400F003C004006003C01F006003C0FFE0607FFE271F7F9E2A>I<FF +000FF80F8003E00F8000800BC0008009E0008009E0008008F00080087800800878008008 +3C0080081E0080081E0080080F008008078080080780800803C0800801E0800801E08008 +00F080080078800800788008003C8008001E8008001E8008000F80080007800800078008 +000380080001803E000180FF8000801D1F7E9E22>I<001FE0000070380001C00E000380 +0700070003800F0003C01E0001E03C0000F03C0000F07C0000F87C0000F878000078F800 +007CF800007CF800007CF800007CF800007CF800007CF800007CF800007CF800007C7800 +00787C0000F87C0000F83C0000F03E0001F01E0001E00F0003C0070003800380070001E0 +1E0000703800001FE0001E217E9F23>I<FFFFE0000F007C000F001E000F000F000F0007 +800F0007800F0007C00F0007C00F0007C00F0007C00F0007800F0007800F000F000F001E +000F007C000FFFE0000F0000000F0000000F0000000F0000000F0000000F0000000F0000 +000F0000000F0000000F0000000F0000000F0000000F0000000F000000FFF000001A1F7E +9E1F>I<FFFF80000F00F0000F003C000F001E000F000F000F000F000F000F800F000F80 +0F000F800F000F800F000F000F000F000F001E000F003C000F00F0000FFF80000F01C000 +0F0070000F0070000F0038000F003C000F003C000F003C000F003E000F003E000F003E00 +0F003E040F003F040F001F040F000F08FFF00788000001F01E207E9E21>82 +D<03F0400C0CC01803C03001C06000C06000C0E000C0E00040E00040E00040F00000F800 +007C00007F80003FF8001FFF0007FF8000FFC0001FE00003E00001E00000F00000708000 +70800070800070800070C00060C000E0E000C0F80180C6030081FC0014217E9F19>I<7F +FFFFE0780F01E0600F0060400F0020400F0020C00F0030800F0010800F0010800F001080 +0F0010000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 +0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 +0F0000000F0000001F800003FFFC001C1F7E9E21>I<FFF00FF80F0003E00F0000800F00 +00800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F00 +00800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F00 +00800F0000800F0000800700010007800100038001000380020001C0040000E008000038 +3000000FC0001D207E9E22>I<FFF003FE1F8000F80F0000600F00002007800040078000 +400780004003C0008003C0008003E0018001E0010001E0010000F0020000F0020000F802 +000078040000780400003C0800003C0800003C0800001E1000001E1000001F1000000F20 +00000F20000007C0000007C0000007C000000380000003800000038000000100001F207F +9E22>I<FFF07FF81FF01F000FC007C00F00078001800F00078001000F0007C001000F80 +07C00300078007C00200078009E0020007C009E0020003C009E0040003C019F0040003C0 +10F0040001E010F0080001E010F0080001E02078080000F02078100000F02078100000F0 +403C10000078403C20000078403C20000078801E2000007C801E6000003C801E4000003D +000F4000003F000F4000001F000F8000001F000F8000001E00078000000E00070000000E +00070000000C000300000004000200002C207F9E2F>I<FFF001FF1F8000780F80006007 +80006007C0004003C0008003E0008001F0010000F0010000F80200007C0600003C040000 +3E0800001E0800001F1000000FB0000007A0000007E0000003C0000003C0000003C00000 +03C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C00000 +3FFC00201F7F9E22>89 D<FFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 +C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFF082D7CA10D>91 +D<080410082010201040204020804080408040B85CFC7EFC7E7C3E381C0F0E7A9F17>I< +FFFF03030303030303030303030303030303030303030303030303030303030303030303 +03030303030303FFFF082D80A10D>I<081020204040808080B8FCFC7C38060E7D9F0D> +96 D<1FE000303000781800781C00300E00000E00000E00000E0000FE00078E001E0E00 +380E00780E00F00E10F00E10F00E10F01E10781E103867200F83C014147E9317>I<1C00 +00FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C +001D87001E01801E00C01C00E01C00701C00701C00781C00781C00781C00781C00781C00 +781C00701C00F01C00E01E00C01A0180198700107C0015207E9F19>I<01FC000706001C +0F00380F00380600780000700000F00000F00000F00000F00000F00000F0000070000078 +00003800803800801C010007060001F80011147F9314>I<0001C0000FC00001C00001C0 +0001C00001C00001C00001C00001C00001C00001C00001C001F1C0070DC00C03C01801C0 +3801C07801C07001C0F001C0F001C0F001C0F001C0F001C0F001C07001C07001C03801C0 +1803C00C03C0070DC001F1F815207F9F19>I<03F0000E1C001C0E003807003807007007 +00700380F00380F00380FFFF80F00000F00000F000007000007000003800803800801C01 +0007060001F80011147F9314>I<007C01C6030F070F0E060E000E000E000E000E000E00 +0E00FFF00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 +0E000E007FE01020809F0E>I<0000E003E3300E3C301C1C30380E00780F00780F00780F +00780F00780F00380E001C1C001E380033E0002000002000003000003000003FFE001FFF +801FFFC03001E0600070C00030C00030C00030C000306000603000C01C038003FC00141F +7F9417>I<1C0000FC00001C00001C00001C00001C00001C00001C00001C00001C00001C +00001C00001C7C001C86001D03001E03801E03801C03801C03801C03801C03801C03801C +03801C03801C03801C03801C03801C03801C03801C03801C0380FF8FF014207E9F19>I< +38007C007C007C0038000000000000000000000000001C00FC001C001C001C001C001C00 +1C001C001C001C001C001C001C001C001C001C001C001C00FF80091F7F9E0C>I<00E001 +F001F001F000E0000000000000000000000000007007F000F00070007000700070007000 +700070007000700070007000700070007000700070007000700070007000706070F060F0 +C061803F000C28829E0E>I<1C0000FC00001C00001C00001C00001C00001C00001C0000 +1C00001C00001C00001C00001C1FE01C07801C06001C04001C08001C10001C20001C6000 +1CE0001DF0001E70001C38001C3C001C1C001C0E001C0F001C07001C07801C07C0FF9FF0 +14207E9F18>I<1C00FC001C001C001C001C001C001C001C001C001C001C001C001C001C +001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF8009 +207F9F0C>I<1C3E03E000FCC30C30001D039038001E01E01C001E01E01C001C01C01C00 +1C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C +01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF802114 +7E9326>I<1C7C00FC86001D03001E03801E03801C03801C03801C03801C03801C03801C +03801C03801C03801C03801C03801C03801C03801C03801C0380FF8FF014147E9319>I< +01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000F0 +F000F07000E07000E03801C03801C01C0380070E0001F80014147F9317>I<1C7C00FD87 +001E01801E01C01C00E01C00F01C00701C00781C00781C00781C00781C00781C00781C00 +701C00F01C00E01E01C01E03801D87001C7C001C00001C00001C00001C00001C00001C00 +001C00001C0000FF8000151D7E9319>I<01F040070CC00E02C01C03C03801C07801C070 +01C0F001C0F001C0F001C0F001C0F001C0F001C07001C07801C03801C01C03C00C05C007 +09C001F1C00001C00001C00001C00001C00001C00001C00001C00001C0000FF8151D7F93 +18>I<1CF0FD181E3C1E3C1E181C001C001C001C001C001C001C001C001C001C001C001C +001C001C00FFC00E147E9312>I<0FC830386018C008C008C008E0007C003FE01FF007F8 +003C800E8006C006C006C004E00CD81887E00F147F9312>I<020002000200060006000E +000E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E040E040E040E +040E040708030801F00E1C7F9B12>I<1C0380FC1F801C03801C03801C03801C03801C03 +801C03801C03801C03801C03801C03801C03801C03801C03801C03801C07800C0780061B +8003E3F014147E9319>I<FF83F83E00E01C00C00E00800E00800E008007010007010007 +830003820003820001C40001C40001E40000E80000E80000700000700000700000200015 +147F9318>I<FF9FE1FC3C0780701C0300601C0380200E0380400E0380400E03C0400704 +C0800704E0800704E08003886100038871000388710001D0320001D03A0001D03E0000E0 +1C0000E01C0000601800004008001E147F9321>I<FF87F81E03C00E01800E0300070200 +03840001C80001D80000F00000700000780000F800009C00010E00020E00060700040380 +0C03C03C03E0FE07FC16147F9318>I<FF83F83E00E01C00C00E00800E00800E00800701 +0007010007830003820003820001C40001C40001E40000E80000E8000070000070000070 +00002000002000004000004000004000F08000F08000F100006200003C0000151D7F9318 +>I<7FFF700E600E401C40384078407000E001E001C00380078007010E011E011C033802 +7006700EFFFE10147F9314>I E /Fv 14 122 df<0000001FFC0000C000000003FFFFC0 +01C00000001FFFFFF003C00000007FFFFFFC07C0000001FFFC00FE0FC0000007FFC0001F +9FC000000FFE000007FFC000003FF8000003FFC000007FF0000000FFC00000FFE0000000 +7FC00001FFC00000007FC00001FF800000003FC00003FF000000001FC00007FE00000000 +1FC0000FFE000000000FC0000FFC000000000FC0001FFC0000000007C0001FFC00000000 +07C0003FF80000000007C0003FF80000000003C0003FF80000000003C0007FF800000000 +03C0007FF80000000003C0007FF0000000000000007FF000000000000000FFF000000000 +000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000000000 +000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000000000 +000000FFF000000000000000FFF000001FFFFFFF807FF000001FFFFFFF807FF000001FFF +FFFF807FF800001FFFFFFF807FF800000001FFC0003FF800000001FFC0003FF800000001 +FFC0003FF800000001FFC0001FFC00000001FFC0001FFC00000001FFC0000FFE00000001 +FFC0000FFE00000001FFC00007FF00000001FFC00003FF00000001FFC00001FF80000001 +FFC00001FFC0000001FFC00000FFE0000001FFC000007FF0000003FFC000003FFC000003 +FFC000000FFF000007FFC0000007FFC0001FBFC0000001FFFC00FF1FC00000007FFFFFFE +0FC00000001FFFFFF803C000000003FFFFE000C0000000001FFE00000000413D7BBB4C> +71 D<FFFFFFFE000000FFFFFFFE000000FFFFFFFE000000FFFFFFFE000000007FF00000 +0000007FF000000000007FF000000000007FF000000000007FF000000000007FF0000000 +00007FF000000000007FF000000000007FF000000000007FF000000000007FF000000000 +007FF000000000007FF000000000007FF000000000007FF000000000007FF00000000000 +7FF000000000007FF000000000007FF000000000007FF000000000007FF000000000007F +F000000000007FF000000000007FF000000000007FF000000000007FF000000000007FF0 +00000000007FF000000000007FF000000000007FF000000000007FF000000000007FF000 +0003C0007FF0000003C0007FF0000003C0007FF0000003C0007FF0000003C0007FF00000 +07C0007FF000000780007FF000000780007FF000000780007FF000000F80007FF000000F +80007FF000000F80007FF000001F80007FF000001F80007FF000003F80007FF000007F80 +007FF00000FF80007FF00001FF80007FF00007FF00007FF0003FFF00FFFFFFFFFFFF00FF +FFFFFFFFFF00FFFFFFFFFFFF00FFFFFFFFFFFF00323B7DBA3A>76 +D<FFFFF0000007FFFFE0FFFFF8000007FFFFE0FFFFFC000007FFFFE0FFFFFE000007FFFF +E0007FFE00000007E000007FFF00000003C000007FFF80000003C000007BFFC0000003C0 +00007BFFE0000003C0000079FFE0000003C0000078FFF0000003C00000787FF8000003C0 +0000783FFC000003C00000783FFE000003C00000781FFE000003C00000780FFF000003C0 +00007807FF800003C000007803FFC00003C000007803FFE00003C000007801FFE00003C0 +00007800FFF00003C0000078007FF80003C0000078003FFC0003C0000078003FFE0003C0 +000078001FFF0003C0000078000FFF0003C00000780007FF8003C00000780003FFC003C0 +0000780003FFE003C00000780001FFF003C00000780000FFF003C000007800007FF803C0 +00007800003FFC03C000007800003FFE03C000007800001FFF03C000007800000FFF03C0 +000078000007FF83C0000078000003FFC3C0000078000003FFE3C0000078000001FFF3C0 +000078000000FFF3C00000780000007FFBC00000780000003FFFC00000780000003FFFC0 +0000780000001FFFC00000780000000FFFC000007800000007FFC000007800000003FFC0 +00007800000003FFC000007800000001FFC000007800000000FFC0000078000000007FC0 +000078000000003FC0000078000000003FC00000FC000000001FC000FFFFFC0000000FC0 +00FFFFFC00000007C000FFFFFC00000003C000FFFFFC00000003C000433B7CBA4C>78 +D<FFFFFFFFF800000000FFFFFFFFFFC0000000FFFFFFFFFFF8000000FFFFFFFFFFFE0000 +00007FF0001FFF000000007FF00003FFC00000007FF00000FFE00000007FF000007FF000 +00007FF000003FF80000007FF000003FF80000007FF000003FFC0000007FF000001FFC00 +00007FF000001FFC0000007FF000001FFE0000007FF000001FFE0000007FF000001FFE00 +00007FF000001FFE0000007FF000001FFE0000007FF000001FFE0000007FF000001FFC00 +00007FF000001FFC0000007FF000003FFC0000007FF000003FF80000007FF000007FF000 +00007FF000007FE00000007FF00001FFC00000007FF00003FF800000007FF0001FFE0000 +00007FFFFFFFF8000000007FFFFFFFC0000000007FFFFFFFC0000000007FF0007FF00000 +00007FF0001FF8000000007FF0000FFC000000007FF00007FE000000007FF00003FF0000 +00007FF00003FF800000007FF00001FF800000007FF00001FF800000007FF00001FFC000 +00007FF00001FFC00000007FF00001FFC00000007FF00001FFC00000007FF00001FFC000 +00007FF00001FFE00000007FF00001FFE00000007FF00001FFE00000007FF00001FFE000 +00007FF00001FFE00000007FF00001FFE001E0007FF00001FFE001E0007FF00000FFF001 +E0007FF00000FFF001E0007FF00000FFF003C0007FF000007FF803C0FFFFFFF8003FFC07 +80FFFFFFF8001FFE0F80FFFFFFF80007FFFF00FFFFFFF80001FFFC000000000000001FF0 +00433C7CBA48>82 D<FFFFFFF80007FFFFE0FFFFFFF80007FFFFE0FFFFFFF80007FFFFE0 +FFFFFFF80007FFFFE0007FF000000007E000007FF000000003C000007FF000000003C000 +007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000 +007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000 +007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000 +007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000 +007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000 +007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000 +007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000 +007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000 +007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000 +007FF000000003C000003FF0000000078000003FF0000000078000003FF8000000078000 +001FF80000000F0000001FF80000000F0000000FFC0000001E00000007FC0000003E0000 +0007FE0000007C00000003FF000000F800000001FF800001F8000000007FE0000FE00000 +00003FFC007FC0000000000FFFFFFF800000000003FFFFFE0000000000007FFFF0000000 +00000007FF80000000433C7DBA4A>85 D<003FFE00000001FFFFE0000007FFFFF800000F +E007FC00000FF001FE00001FF800FF00001FF8007F80001FF8007FC0001FF8003FC0000F +F0003FE00007E0003FE00003C0003FE0000000003FE0000000003FE0000000003FE00000 +00003FE0000000FFFFE000001FFFFFE000007FF83FE00003FF803FE00007FC003FE0000F +F0003FE0001FE0003FE0003FE0003FE0007FC0003FE0007FC0003FE000FF80003FE000FF +80003FE000FF80003FE000FF80003FE000FF80007FE0007FC0007FE0007FC000DFE0003F +E0039FF0001FF80F0FFFE007FFFE0FFFE001FFFC07FFE0003FE000FFE02B267DA52F>97 +D<00FE00000000FFFE00000000FFFE00000000FFFE00000000FFFE0000000007FE000000 +0003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE000000 +0003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE000000 +0003FE0000000003FE0000000003FE0000000003FE0000000003FE01FF000003FE1FFFF0 +0003FE7FFFFC0003FEFC03FE0003FFF000FF0003FFC0003F8003FF00001FC003FE00001F +E003FE00000FF003FE00000FF803FE00000FF803FE000007FC03FE000007FC03FE000007 +FC03FE000007FE03FE000007FE03FE000007FE03FE000007FE03FE000007FE03FE000007 +FE03FE000007FE03FE000007FE03FE000007FE03FE000007FC03FE000007FC03FE000007 +FC03FE00000FFC03FE00000FF803FE00000FF003FE00001FF003FF00001FE003FF80003F +C003FFC0007F8003F9E000FF0003F0FC07FE0003F07FFFF80003E01FFFE00003C003FE00 +002F3C7DBB36>I<000000003F800000003FFF800000003FFF800000003FFF800000003F +FF8000000001FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000 +FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000 +FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000FF80 +FF80000FFFF0FF80003FFFFCFF8000FFC03FFF8001FE000FFF8003FC0003FF8007F80001 +FF800FF00000FF801FF00000FF803FE00000FF803FE00000FF807FE00000FF807FC00000 +FF807FC00000FF807FC00000FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC00000 +FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC00000FF807FC00000 +FF807FC00000FF807FC00000FF803FE00000FF803FE00000FF801FE00000FF800FF00001 +FF8007F80003FF8003F80007FF8001FE001FFFC000FF807EFFFE007FFFF8FFFE000FFFE0 +FFFE0001FF00FFFE2F3C7DBB36>100 D<0001FF8000000FFFF000007FFFFC0000FF81FE +0003FE007F8007F8003F800FF0001FC00FF0000FE01FE0000FE03FE0000FF03FE00007F0 +7FC00007F07FC00007F87FC00007F8FFC00007F8FFC00007F8FFFFFFFFF8FFFFFFFFF8FF +FFFFFFF8FFC0000000FFC0000000FFC0000000FFC00000007FC00000007FC00000007FC0 +0000003FE00000003FE00000781FE00000781FF00000780FF00000F007F80001F003FC00 +03E001FE000FC000FFC07F80003FFFFE00000FFFF8000000FFC00025267DA52C>I<01E0 +0007F8000FFC000FFC001FFE001FFE001FFE001FFE000FFC000FFC0007F80001E0000000 +0000000000000000000000000000000000000000000000000000000000000000FE007FFE +007FFE007FFE007FFE0007FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE +0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE +0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00FFFFF0FFFFF0FFFFF0FFFF +F0143D7DBC1A>105 D<00FE00FFFE00FFFE00FFFE00FFFE0007FE0003FE0003FE0003FE +0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE +0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE +0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE +0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00FFFF +F8FFFFF8FFFFF8FFFFF8153C7DBB1A>108 D<01FC00FF8000FFFC03FFF000FFFC0FFFF8 +00FFFC1E03FC00FFFC3801FE0007FC6001FF0003FCC000FF0003FDC000FF8003FD8000FF +8003FF0000FF8003FF0000FF8003FF0000FF8003FE0000FF8003FE0000FF8003FE0000FF +8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF +8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF +8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF +8003FE0000FF80FFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFE2F267CA536 +>110 D<01FC03F000FFFC0FFC00FFFC1FFF00FFFC3C3F80FFFC707F8007FCE0FFC003FC +C0FFC003FD80FFC003FD80FFC003FF807F8003FF003F0003FF001E0003FF00000003FE00 +000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE0000 +0003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE000000 +03FE00000003FE00000003FE00000003FE00000003FE00000003FE000000FFFFFC0000FF +FFFC0000FFFFFC0000FFFFFC000022267DA528>114 D<FFFFF000FFFCFFFFF000FFFCFF +FFF000FFFCFFFFF000FFFC03FE00001F8003FF00001F0001FF00001E0001FF80001E0000 +FF80003C0000FF80003C0000FFC0007C00007FC0007800007FE000F800003FE000F00000 +3FF001F000001FF001E000001FF803E000000FF803C000000FF803C000000FFC07C00000 +07FC0780000007FE0F80000003FE0F00000003FF1F00000001FF1E00000001FFBE000000 +00FFBC00000000FFFC000000007FF8000000007FF8000000007FF8000000003FF0000000 +003FF0000000001FE0000000001FE0000000000FC0000000000FC0000000000780000000 +000780000000000F80000000000F00000000001F00000000001E00000008003E0000007F +003C0000007F007C000000FF8078000000FF80F8000000FF81F0000000FF83E00000007F +07C00000007C1F800000003FFF000000001FFC0000000007F0000000002E377EA533> +121 D E end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin +%%PaperSize: A4 + +%%EndSetup +%%Page: 1 1 +1 0 bop 75 693 a Fv(GNU)33 b(Readline)h(Library)p 75 +743 1800 17 v 936 791 a Fu(Edition)17 b(2.2,)c(for)i +Ft(Readline)f(Library)g Fu(V)l(ersion)i(2.1.)1559 845 +y(Septem)o(b)q(er)g(1997)75 2467 y Fs(Brian)23 b(F)-6 +b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)75 +2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23 +b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 1800 9 v eop +%%Page: 2 2 +2 1 bop 75 250 a Fu(This)14 b(do)q(cumen)o(t)h(describ)q(es)g(the)f +(GNU)g(Readline)i(Library)l(,)e(a)g(utilit)o(y)h(whic)o(h)f(aids)g(in)h +(the)f(consistency)75 305 y(of)h(user)g(in)o(terface)h(across)e +(discrete)i(programs)e(that)h(need)h(to)e(pro)o(vide)i(a)f(command)g +(line)i(in)o(terface.)75 373 y(Published)g(b)o(y)f(the)f(F)l(ree)g +(Soft)o(w)o(are)f(F)l(oundation)75 427 y(675)g(Massac)o(h)o(usetts)g +(Av)o(en)o(ue,)75 482 y(Cam)o(bridge,)h(MA)g(02139)f(USA)75 +549 y(P)o(ermission)j(is)f(gran)o(ted)g(to)f(mak)o(e)h(and)g +(distribute)i(v)o(erbatim)d(copies)i(of)f(this)h(man)o(ual)f(pro)o +(vided)h(the)75 604 y(cop)o(yrigh)o(t)e(notice)h(and)f(this)h(p)q +(ermission)g(notice)g(are)f(preserv)o(ed)h(on)f(all)h(copies.)75 +671 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g(cop)o(y)h(and)g +(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h(man)o(ual)g +(under)h(the)f(con-)75 726 y(ditions)k(for)e(v)o(erbatim)h(cop)o(ying,) +g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g(deriv)o(ed)g(w)o +(ork)e(is)h(distributed)75 781 y(under)h(the)f(terms)g(of)g(a)f(p)q +(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75 +848 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f +(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another) +g(lan-)75 903 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i +(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q +(ermission)g(notice)75 958 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f +(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(oundation.)75 +2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289 2661 y Fr(\015)g +Fu(1989,)f(1991)g(F)l(ree)h(Soft)o(w)o(are)f(F)l(oundation,)h(Inc.)p +eop +%%Page: 1 3 +1 2 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 +b(1)75 183 y Fq(1)41 b(Command)28 b(Line)e(Editing)137 +294 y Fu(This)16 b(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f +(of)g(the)g Fp(GNU)g Fu(command)g(line)i(editing)f(in)o(terface.)75 +419 y Fs(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137 +514 y Fu(The)16 b(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e +(notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)137 +580 y(The)h(text)327 578 y Fo(h)p 339 552 56 2 v 339 +580 a Fn(C-k)p 339 587 V 393 578 a Fo(i)424 580 y Fu(is)f(read)g(as)g +(`Con)o(trol-K')f(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q +(duced)h(when)f(the)1831 578 y Fo(h)p 1844 552 19 2 v +1844 580 a Fn(k)p 1844 587 V 1860 578 a Fo(i)75 634 y +Fu(k)o(ey)f(is)h(pressed)g(while)g(the)f(Con)o(trol)g(k)o(ey)g(is)h +(depressed.)137 700 y(The)g(text)325 698 y Fo(h)p 337 +672 63 2 v 337 700 a Fn(M-k)p 337 708 V 398 698 a Fo(i)428 +700 y Fu(is)f(read)g(as)g(`Meta-K')f(and)h(describ)q(es)i(the)e(c)o +(haracter)g(pro)q(duced)h(when)f(the)h(meta)75 755 y(k)o(ey)d(\(if)h(y) +o(ou)f(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)g(the)922 +753 y Fo(h)p 935 727 19 2 v 935 755 a Fn(k)p 935 763 +V 951 753 a Fo(i)979 755 y Fu(k)o(ey)g(is)f(pressed.)20 +b(If)14 b(y)o(ou)f(do)g(not)g(ha)o(v)o(e)g(a)g(meta)g(k)o(ey)l(,)75 +810 y(the)k(iden)o(tical)i(k)o(eystrok)o(e)d(can)h(b)q(e)h(generated)f +(b)o(y)g(t)o(yping)1110 808 y Fo(h)p 1122 782 70 2 v +1122 810 a Fn(ESC)p 1122 818 V 1189 808 a Fo(i)1221 810 +y Fm(\014rst)p Fu(,)f(and)i(then)f(t)o(yping)1668 808 +y Fo(h)p 1681 782 19 2 v 1681 810 a Fn(k)p 1681 818 V +1697 808 a Fo(i)1712 810 y Fu(.)26 b(Either)75 865 y(pro)q(cess)15 +b(is)h(kno)o(wn)f(as)g Fm(metafying)k Fu(the)773 863 +y Fo(h)p 785 837 V 785 865 a Fn(k)p 785 873 V 802 863 +a Fo(i)832 865 y Fu(k)o(ey)l(.)137 931 y(The)h(text)334 +929 y Fo(h)p 347 903 100 2 v 347 931 a Fn(M-C-k)p 347 +938 V 444 929 a Fo(i)479 931 y Fu(is)g(read)g(as)f(`Meta-Con)o(trol-k') +f(and)i(describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)i(b)o(y)75 +986 y Fm(metafying)291 984 y Fo(h)p 303 958 56 2 v 303 +986 a Fn(C-k)p 303 993 V 357 984 a Fo(i)372 986 y Fu(.)137 +1052 y(In)e(addition,)h(sev)o(eral)f(k)o(eys)f(ha)o(v)o(e)g(their)h(o)o +(wn)f(names.)30 b(Sp)q(eci\014cally)l(,)1384 1050 y Fo(h)p +1396 1024 73 2 v 1396 1052 a Fn(DEL)p 1396 1059 V 1467 +1050 a Fo(i)1482 1052 y Fu(,)1514 1050 y Fo(h)p 1526 +1024 70 2 v 1526 1052 a Fn(ESC)p 1526 1059 V 1593 1050 +a Fo(i)1608 1052 y Fu(,)1640 1050 y Fo(h)p 1652 1024 +72 2 v 1652 1052 a Fn(LFD)p 1652 1059 V 1722 1050 a Fo(i)1737 +1052 y Fu(,)1768 1050 y Fo(h)p 1780 1024 70 2 v 1780 +1052 a Fn(SPC)p 1780 1059 V 1847 1050 a Fo(i)1862 1052 +y Fu(,)75 1104 y Fo(h)p 87 1078 76 2 v 87 1106 a Fn(RET)p +87 1114 V 160 1104 a Fo(i)175 1106 y Fu(,)23 b(and)306 +1104 y Fo(h)p 318 1078 74 2 v 318 1106 a Fn(T)m(AB)p +318 1114 V 390 1104 a Fo(i)427 1106 y Fu(all)f(stand)g(for)f(themselv)o +(es)h(when)h(seen)f(in)g(this)g(text,)h(or)e(in)i(an)e(init)i(\014le)g +(\(see)75 1161 y(Section)16 b(1.3)e([Readline)j(Init)g(File],)e(page)g +(3\).)75 1286 y Fs(1.2)33 b(Readline)23 b(In)n(teraction)137 +1381 y Fu(Often)13 b(during)h(an)e(in)o(teractiv)o(e)h(session)g(y)o +(ou)g(t)o(yp)q(e)f(in)i(a)e(long)h(line)h(of)e(text,)h(only)g(to)f +(notice)h(that)f(the)75 1436 y(\014rst)k(w)o(ord)f(on)h(the)h(line)h +(is)e(missp)q(elled.)26 b(The)16 b(Readline)j(library)e(giv)o(es)f(y)o +(ou)g(a)g(set)g(of)g(commands)g(for)75 1491 y(manipulating)g(the)f +(text)g(as)f(y)o(ou)h(t)o(yp)q(e)g(it)g(in,)g(allo)o(wing)h(y)o(ou)f +(to)f(just)h(\014x)g(y)o(our)f(t)o(yp)q(o,)g(and)h(not)g(forcing)75 +1545 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s(jorit)o(y)f(of)h(the)g +(line.)21 b(Using)15 b(these)f(editing)h(commands,)f(y)o(ou)g(mo)o(v)o +(e)f(the)h(cursor)75 1600 y(to)i(the)i(place)g(that)e(needs)i +(correction,)g(and)f(delete)h(or)f(insert)g(the)h(text)e(of)h(the)g +(corrections.)26 b(Then,)75 1655 y(when)16 b(y)o(ou)f(are)h +(satis\014ed)g(with)g(the)f(line,)i(y)o(ou)e(simply)i(press)1160 +1653 y Fo(h)p 1172 1627 155 2 v 1172 1655 a Fn(RETURN)p +1172 1663 V 1324 1653 a Fo(i)1339 1655 y Fu(.)k(Y)l(ou)16 +b(do)f(not)g(ha)o(v)o(e)g(to)g(b)q(e)i(at)75 1710 y(the)g(end)g(of)f +(the)g(line)i(to)e(press)634 1708 y Fo(h)p 646 1682 V +646 1710 a Fn(RETURN)p 646 1717 V 798 1708 a Fo(i)813 +1710 y Fu(;)g(the)h(en)o(tire)g(line)h(is)f(accepted)g(regardless)g(of) +f(the)g(lo)q(cation)75 1765 y(of)f(the)g(cursor)g(within)h(the)g(line.) +75 1873 y Fl(1.2.1)30 b(Readline)20 b(Bare)g(Essen)n(tials)137 +1968 y Fu(In)12 b(order)g(to)f(en)o(ter)g(c)o(haracters)g(in)o(to)g +(the)h(line,)h(simply)g(t)o(yp)q(e)f(them.)18 b(The)12 +b(t)o(yp)q(ed)g(c)o(haracter)f(app)q(ears)75 2023 y(where)16 +b(the)h(cursor)f(w)o(as,)f(and)h(then)h(the)f(cursor)g(mo)o(v)o(es)g +(one)g(space)g(to)g(the)g(righ)o(t.)23 b(If)17 b(y)o(ou)f(mist)o(yp)q +(e)g(a)75 2077 y(c)o(haracter,)e(y)o(ou)h(can)g(use)h(y)o(our)f(erase)g +(c)o(haracter)f(to)h(bac)o(k)g(up)g(and)h(delete)g(the)f(mist)o(yp)q +(ed)h(c)o(haracter.)137 2143 y(Sometimes)j(y)o(ou)f(ma)o(y)g(miss)h(t)o +(yping)g(a)f(c)o(haracter)g(that)f(y)o(ou)i(w)o(an)o(ted)f(to)f(t)o(yp) +q(e,)i(and)g(not)f(notice)75 2198 y(y)o(our)c(error)f(un)o(til)i(y)o +(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(sev)o(eral)h(other)e(c)o(haracters.)19 +b(In)c(that)e(case,)h(y)o(ou)g(can)g(t)o(yp)q(e)1739 +2196 y Fo(h)p 1751 2170 57 2 v 1751 2198 a Fn(C-b)p 1751 +2206 V 1806 2196 a Fo(i)1835 2198 y Fu(to)75 2253 y(mo)o(v)o(e)h(the)h +(cursor)g(to)f(the)h(left,)g(and)g(then)h(correct)e(y)o(our)h(mistak)o +(e.)21 b(Afterw)o(ards,)15 b(y)o(ou)h(can)g(mo)o(v)o(e)f(the)75 +2308 y(cursor)g(to)f(the)i(righ)o(t)f(with)559 2306 y +Fo(h)p 571 2280 49 2 v 571 2308 a Fn(C-f)p 571 2315 V +617 2306 a Fo(i)632 2308 y Fu(.)137 2374 y(When)i(y)o(ou)f(add)g(text)g +(in)h(the)g(middle)h(of)e(a)f(line,)j(y)o(ou)e(will)i(notice)f(that)f +(c)o(haracters)f(to)h(the)g(righ)o(t)75 2428 y(of)e(the)g(cursor)g(are) +g(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h(ro)q(om)g(for)f(the)i(text)f +(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)21 b(Lik)o(ewise,)75 +2483 y(when)e(y)o(ou)g(delete)h(text)e(b)q(ehind)j(the)e(cursor,)g(c)o +(haracters)f(to)g(the)h(righ)o(t)f(of)g(the)h(cursor)g(are)f(`pulled)75 +2538 y(bac)o(k')d(to)h(\014ll)h(in)g(the)f(blank)g(space)h(created)f(b) +o(y)f(the)h(remo)o(v)m(al)g(of)g(the)g(text.)21 b(A)16 +b(list)h(of)e(the)h(basic)h(bare)75 2593 y(essen)o(tials)f(for)f +(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o(ws.)75 +2668 y Fo(h)p 87 2642 57 2 v 87 2670 a Fn(C-b)p 87 2678 +V 142 2668 a Fo(i)315 2670 y Fu(Mo)o(v)o(e)d(bac)o(k)h(one)h(c)o +(haracter.)p eop +%%Page: 2 4 +2 3 bop 75 -58 a Fu(2)1322 b(GNU)15 b(Readline)i(Library)75 +181 y Fo(h)p 87 155 49 2 v 87 183 a Fn(C-f)p 87 191 V +133 181 a Fo(i)315 183 y Fu(Mo)o(v)o(e)d(forw)o(ard)g(one)h(c)o +(haracter.)75 258 y Fo(h)p 87 232 73 2 v 87 260 a Fn(DEL)p +87 268 V 158 258 a Fo(i)315 260 y Fu(Delete)h(the)f(c)o(haracter)g(to)f +(the)h(left)h(of)f(the)g(cursor.)75 335 y Fo(h)p 87 309 +57 2 v 87 337 a Fn(C-d)p 87 344 V 142 335 a Fo(i)315 +337 y Fu(Delete)h(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75 +413 y(Prin)o(ting)h(c)o(haracters)315 468 y(Insert)f(the)h(c)o +(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75 +543 y Fo(h)p 87 517 50 2 v 87 545 a Fn(C-)p 126 545 11 +2 v 87 553 50 2 v 135 543 a Fo(i)315 545 y Fu(Undo)i(the)g(last)f +(editing)i(command.)25 b(Y)l(ou)17 b(can)g(undo)g(all)g(the)g(w)o(a)o +(y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 600 y(line.)75 +707 y Fl(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137 +802 y Fu(The)17 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)f(most)g +(basic)g(p)q(ossible)i(k)o(eystrok)o(es)d(that)g(y)o(ou)h(need)h(in)g +(order)f(to)75 857 y(do)e(editing)h(of)f(the)g(input)h(line.)22 +b(F)l(or)13 b(y)o(our)h(con)o(v)o(enience,)h(man)o(y)f(other)f +(commands)h(ha)o(v)o(e)g(b)q(een)h(added)75 912 y(in)f(addition)g(to) +356 910 y Fo(h)p 368 884 57 2 v 368 912 a Fn(C-b)p 368 +919 V 423 910 a Fo(i)438 912 y Fu(,)464 910 y Fo(h)p +476 884 49 2 v 476 912 a Fn(C-f)p 476 919 V 522 910 a +Fo(i)537 912 y Fu(,)563 910 y Fo(h)p 575 884 57 2 v 575 +912 a Fn(C-d)p 575 919 V 629 910 a Fo(i)644 912 y Fu(,)f(and)756 +910 y Fo(h)p 768 884 73 2 v 768 912 a Fn(DEL)p 768 919 +V 839 910 a Fo(i)854 912 y Fu(.)19 b(Here)13 b(are)g(some)g(commands)f +(for)g(mo)o(ving)h(more)g(rapidly)75 966 y(ab)q(out)i(the)g(line.)75 +1041 y Fo(h)p 87 1015 55 2 v 87 1043 a Fn(C-a)p 87 1051 +V 140 1041 a Fo(i)315 1043 y Fu(Mo)o(v)o(e)f(to)h(the)g(start)f(of)h +(the)g(line.)75 1118 y Fo(h)p 87 1092 53 2 v 87 1120 +a Fn(C-e)p 87 1127 V 138 1118 a Fo(i)315 1120 y Fu(Mo)o(v)o(e)f(to)h +(the)g(end)h(of)f(the)g(line.)75 1194 y Fo(h)p 87 1168 +55 2 v 87 1196 a Fn(M-f)p 87 1204 V 140 1194 a Fo(i)315 +1196 y Fu(Mo)o(v)o(e)f(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord) +h(is)h(comp)q(osed)f(of)g(letters)g(and)h(digits.)75 +1271 y Fo(h)p 87 1245 64 2 v 87 1273 a Fn(M-b)p 87 1281 +V 149 1271 a Fo(i)315 1273 y Fu(Mo)o(v)o(e)e(bac)o(kw)o(ard)h(a)g(w)o +(ord.)75 1348 y Fo(h)p 87 1322 48 2 v 87 1350 a Fn(C-l)p +87 1358 V 132 1348 a Fo(i)315 1350 y Fu(Clear)g(the)h(screen,)f(reprin) +o(ting)h(the)f(curren)o(t)g(line)i(at)e(the)g(top.)137 +1427 y(Notice)d(ho)o(w)368 1425 y Fo(h)p 380 1399 49 +2 v 380 1427 a Fn(C-f)p 380 1434 V 426 1425 a Fo(i)452 +1427 y Fu(mo)o(v)o(es)f(forw)o(ard)f(a)i(c)o(haracter,)f(while)1105 +1425 y Fo(h)p 1117 1399 55 2 v 1117 1427 a Fn(M-f)p 1117 +1434 V 1170 1425 a Fo(i)1197 1427 y Fu(mo)o(v)o(es)f(forw)o(ard)h(a)g +(w)o(ord.)18 b(It)12 b(is)g(a)g(lo)q(ose)75 1481 y(con)o(v)o(en)o(tion) +j(that)f(con)o(trol)h(k)o(eystrok)o(es)f(op)q(erate)h(on)f(c)o +(haracters)h(while)h(meta)e(k)o(eystrok)o(es)g(op)q(erate)h(on)75 +1536 y(w)o(ords.)75 1644 y Fl(1.2.3)30 b(Readline)20 +b(Killing)h(Commands)137 1739 y Fm(Killing)26 b Fu(text)18 +b(means)g(to)g(delete)i(the)f(text)f(from)g(the)h(line,)i(but)d(to)g +(sa)o(v)o(e)g(it)h(a)o(w)o(a)o(y)e(for)h(later)h(use,)75 +1793 y(usually)h(b)o(y)e Fm(y)o(anking)k Fu(\(re-inserting\))d(it)g +(bac)o(k)f(in)o(to)g(the)h(line.)31 b(If)18 b(the)h(description)g(for)f +(a)g(command)75 1848 y(sa)o(ys)e(that)f(it)i(`kills')g(text,)f(then)h +(y)o(ou)f(can)h(b)q(e)g(sure)f(that)g(y)o(ou)g(can)h(get)f(the)g(text)g +(bac)o(k)g(in)i(a)e(di\013eren)o(t)75 1903 y(\(or)e(the)i(same\))e +(place)i(later.)137 1969 y(When)c(y)o(ou)g(use)g(a)f(kill)i(command,)f +(the)g(text)f(is)h(sa)o(v)o(ed)f(in)i(a)e Fm(kill-ring)p +Fu(.)21 b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75 +2023 y(kills)17 b(sa)o(v)o(e)e(all)h(of)f(the)h(killed)i(text)d +(together,)f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)h(bac)o(k,)f(y)o +(ou)g(get)g(it)h(all.)22 b(The)75 2078 y(kill)c(ring)f(is)f(not)g(line) +i(sp)q(eci\014c;)g(the)e(text)g(that)f(y)o(ou)h(killed)j(on)d(a)g +(previously)h(t)o(yp)q(ed)g(line)h(is)e(a)o(v)m(ailable)75 +2133 y(to)f(b)q(e)g(y)o(ank)o(ed)g(bac)o(k)h(later,)e(when)i(y)o(ou)f +(are)g(t)o(yping)g(another)g(line.)137 2199 y(Here)h(is)f(the)h(list)g +(of)e(commands)h(for)g(killing)j(text.)75 2274 y Fo(h)p +87 2247 56 2 v 87 2276 a Fn(C-k)p 87 2283 V 141 2274 +a Fo(i)315 2276 y Fu(Kill)f(the)f(text)e(from)h(the)g(curren)o(t)g +(cursor)g(p)q(osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 +2350 y Fo(h)p 87 2324 64 2 v 87 2352 a Fn(M-d)p 87 2360 +V 149 2350 a Fo(i)315 2352 y Fu(Kill)h(from)d(the)i(cursor)e(to)h(the)g +(end)g(of)g(the)g(curren)o(t)g(w)o(ord,)f(or)h(if)g(b)q(et)o(w)o(een)g +(w)o(ords,)g(to)f(the)315 2407 y(end)j(of)f(the)g(next)g(w)o(ord.)75 +2482 y Fo(h)p 87 2456 118 2 v 87 2484 a Fn(M-DEL)p 87 +2491 V 202 2482 a Fo(i)315 2484 y Fu(Kill)i(from)d(the)g(cursor)h(the)f +(start)g(of)g(the)g(previous)i(w)o(ord,)d(or)h(if)h(b)q(et)o(w)o(een)g +(w)o(ords,)f(to)g(the)315 2539 y(start)g(of)h(the)g(previous)h(w)o +(ord.)75 2613 y Fo(h)p 87 2587 63 2 v 87 2615 a Fn(C-w)p +87 2623 V 148 2613 a Fo(i)315 2615 y Fu(Kill)i(from)d(the)h(cursor)g +(to)f(the)h(previous)h(whitespace.)22 b(This)17 b(is)f(di\013eren)o(t)g +(than)1733 2613 y Fo(h)p 1745 2587 118 2 v 1745 2615 +a Fn(M-DEL)p 1745 2623 V 1860 2613 a Fo(i)315 2670 y +Fu(b)q(ecause)g(the)f(w)o(ord)g(b)q(oundaries)h(di\013er.)p +eop +%%Page: 3 5 +3 4 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 +b(3)137 183 y(Here)21 b(is)h(ho)o(w)e(to)g Fm(y)o(ank)j +Fu(the)e(text)f(bac)o(k)h(in)o(to)g(the)f(line.)39 b(Y)l(anking)21 +b(means)g(to)f(cop)o(y)h(the)g(most-)75 238 y(recen)o(tly-killed)d +(text)d(from)f(the)i(kill)h(bu\013er.)75 322 y Fo(h)p +87 296 56 2 v 87 324 a Fn(C-y)p 87 331 V 141 322 a Fo(i)315 +324 y Fu(Y)l(ank)e(the)h(most)e(recen)o(tly)i(killed)h(text)e(bac)o(k)g +(in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)75 405 +y Fo(h)p 87 379 63 2 v 87 407 a Fn(M-y)p 87 415 V 148 +405 a Fo(i)315 407 y Fu(Rotate)h(the)g(kill-ring,)j(and)d(y)o(ank)g +(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f(this)h(if)f(the)h +(prior)315 462 y(command)d(is)568 460 y Fo(h)p 580 434 +56 2 v 580 462 a Fn(C-y)p 580 470 V 634 460 a Fo(i)664 +462 y Fu(or)719 460 y Fo(h)p 732 434 63 2 v 732 462 a +Fn(M-y)p 732 470 V 792 460 a Fo(i)807 462 y Fu(.)75 582 +y Fl(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 682 y +Fu(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g(Readline)i +(commands.)k(Sometimes)15 b(the)g(argumen)o(t)e(acts)75 +737 y(as)20 b(a)g(rep)q(eat)g(coun)o(t,)h(other)f(times)g(it)h(is)g +(the)f Fm(sign)h Fu(of)f(the)g(argumen)o(t)f(that)h(is)h(signi\014can)o +(t.)36 b(If)20 b(y)o(ou)75 792 y(pass)d(a)f(negativ)o(e)h(argumen)o(t)f +(to)g(a)g(command)h(whic)o(h)h(normally)f(acts)f(in)i(a)e(forw)o(ard)g +(direction,)i(that)75 847 y(command)g(will)h(act)e(in)i(a)e(bac)o(kw)o +(ard)g(direction.)28 b(F)l(or)17 b(example,)i(to)e(kill)j(text)d(bac)o +(k)g(to)g(the)h(start)e(of)75 902 y(the)f(line,)i(y)o(ou)e(migh)o(t)g +(t)o(yp)q(e)g(`)p Ft(M--)f(C-k)p Fu('.)137 973 y(The)h(general)f(w)o(a) +o(y)f(to)h(pass)g(n)o(umeric)h(argumen)o(ts)e(to)g(a)h(command)g(is)h +(to)e(t)o(yp)q(e)h(meta)g(digits)h(b)q(efore)75 1027 +y(the)h(command.)23 b(If)16 b(the)g(\014rst)g(`digit')g(t)o(yp)q(ed)g +(is)h(a)f(min)o(us)g(sign)h(\()1194 1025 y Fo(h)p 1206 +999 12 2 v 1206 1027 a Fn(-)p 1206 1035 V 1215 1025 a +Fo(i)1230 1027 y Fu(\),)f(then)g(the)g(sign)h(of)f(the)g(argumen)o(t)75 +1082 y(will)g(b)q(e)f(negativ)o(e.)k(Once)c(y)o(ou)f(ha)o(v)o(e)g(t)o +(yp)q(ed)g(one)h(meta)e(digit)i(to)f(get)f(the)h(argumen)o(t)g +(started,)f(y)o(ou)h(can)75 1137 y(t)o(yp)q(e)19 b(the)g(remainder)g +(of)f(the)h(digits,)h(and)f(then)g(the)g(command.)30 +b(F)l(or)18 b(example,)i(to)e(giv)o(e)h(the)1793 1135 +y Fo(h)p 1805 1109 57 2 v 1805 1137 a Fn(C-d)p 1805 1145 +V 1860 1135 a Fo(i)75 1192 y Fu(command)c(an)g(argumen)o(t)g(of)f(10,)h +(y)o(ou)f(could)j(t)o(yp)q(e)e(`)p Ft(M-1)f(0)h(C-d)p +Fu('.)75 1312 y Fl(1.2.5)30 b(Searc)n(hing)21 b(for)f(Commands)h(in)f +(the)h(History)137 1412 y Fu(Readline)e(pro)o(vides)d(commands)g(for)g +(searc)o(hing)g(through)g(the)g(command)g(history)g(for)g(lines)i(con-) +75 1467 y(taining)e(a)f(sp)q(eci\014ed)i(string.)j(There)c(are)e(t)o(w) +o(o)g(searc)o(h)h(mo)q(des:)20 b Fm(incremen)o(tal)e +Fu(and)e Fm(non-incremen)o(tal)p Fu(.)137 1538 y(Incremen)o(tal)e +(searc)o(hes)f(b)q(egin)h(b)q(efore)f(the)g(user)g(has)g(\014nished)h +(t)o(yping)f(the)g(searc)o(h)g(string.)19 b(As)13 b(eac)o(h)75 +1593 y(c)o(haracter)k(of)g(the)h(searc)o(h)g(string)f(is)h(t)o(yp)q +(ed,)h(Readline)h(displa)o(ys)e(the)g(next)g(en)o(try)f(from)g(the)h +(history)75 1648 y(matc)o(hing)e(the)g(string)g(t)o(yp)q(ed)h(so)e +(far.)22 b(An)17 b(incremen)o(tal)g(searc)o(h)f(requires)h(only)f(as)g +(man)o(y)g(c)o(haracters)75 1702 y(as)j(needed)h(to)f(\014nd)g(the)h +(desired)g(history)f(en)o(try)l(.)31 b(The)1084 1700 +y Fo(h)p 1096 1674 70 2 v 1096 1702 a Fn(ESC)p 1096 1710 +V 1163 1700 a Fo(i)1197 1702 y Fu(c)o(haracter)18 b(is)i(used)f(to)g +(terminate)g(an)75 1757 y(incremen)o(tal)13 b(searc)o(h.)472 +1755 y Fo(h)p 484 1729 49 2 v 484 1757 a Fn(C-j)p 484 +1765 V 530 1755 a Fo(i)556 1757 y Fu(will)g(also)f(terminate)f(the)h +(searc)o(h.)1158 1755 y Fo(h)p 1170 1729 55 2 v 1170 +1757 a Fn(C-g)p 1170 1765 V 1223 1755 a Fo(i)1249 1757 +y Fu(will)h(ab)q(ort)e(an)h(incremen)o(tal)g(searc)o(h)75 +1812 y(and)17 b(restore)f(the)g(original)i(line.)25 b(When)17 +b(the)g(searc)o(h)f(is)h(terminated,)g(the)g(history)f(en)o(try)g(con)o +(taining)75 1867 y(the)i(searc)o(h)g(string)g(b)q(ecomes)g(the)g +(curren)o(t)g(line.)30 b(T)l(o)18 b(\014nd)g(other)g(matc)o(hing)g(en)o +(tries)g(in)h(the)f(history)75 1922 y(list,)g(t)o(yp)q(e)270 +1920 y Fo(h)p 282 1894 52 2 v 282 1922 a Fn(C-s)p 282 +1929 V 331 1920 a Fo(i)363 1922 y Fu(or)420 1920 y Fo(h)p +432 1894 51 2 v 432 1922 a Fn(C-r)p 432 1929 V 481 1920 +a Fo(i)513 1922 y Fu(as)e(appropriate.)25 b(This)18 b(will)g(searc)o(h) +f(bac)o(kw)o(ard)f(or)h(forw)o(ard)e(in)j(the)f(history)75 +1976 y(for)e(the)g(next)h(en)o(try)f(matc)o(hing)h(the)f(searc)o(h)h +(string)f(t)o(yp)q(ed)h(so)f(far.)20 b(An)o(y)c(other)f(k)o(ey)g +(sequence)i(b)q(ound)75 2031 y(to)12 b(a)h(Readline)i(command)e(will)i +(terminate)d(the)i(searc)o(h)e(and)h(execute)h(that)e(command.)19 +b(F)l(or)13 b(instance,)75 2086 y(a)112 2084 y Fo(h)p +124 2058 76 2 v 124 2086 a Fn(RET)p 124 2094 V 197 2084 +a Fo(i)226 2086 y Fu(will)j(terminate)e(the)g(searc)o(h)g(and)h(accept) +f(the)g(line,)i(thereb)o(y)e(executing)h(the)g(command)f(from)75 +2141 y(the)h(history)g(list.)137 2212 y(Non-incremen)o(tal)25 +b(searc)o(hes)e(read)h(the)f(en)o(tire)h(searc)o(h)f(string)g(b)q +(efore)h(starting)f(to)f(searc)o(h)i(for)75 2267 y(matc)o(hing)d +(history)h(lines.)39 b(The)22 b(searc)o(h)f(string)g(ma)o(y)g(b)q(e)h +(t)o(yp)q(ed)f(b)o(y)h(the)f(user)h(or)e(b)q(e)i(part)f(of)g(the)75 +2322 y(con)o(ten)o(ts)15 b(of)f(the)i(curren)o(t)f(line.)75 +2460 y Fs(1.3)33 b(Readline)23 b(Init)h(File)137 2560 +y Fu(Although)18 b(the)g(Readline)i(library)e(comes)g(with)f(a)h(set)f +(of)g Ft(emacs)p Fu(-lik)o(e)h(k)o(eybindings)i(installed)f(b)o(y)75 +2615 y(default,)13 b(it)g(is)g(p)q(ossible)h(to)e(use)g(a)g(di\013eren) +o(t)h(set)f(of)g(k)o(eybindings.)21 b(An)o(y)12 b(user)h(can)f +(customize)h(programs)75 2670 y(that)g(use)i(Readline)h(b)o(y)e +(putting)g(commands)g(in)h(an)f Fm(inputrc)j Fu(\014le)e(in)g(his)g +(home)f(directory)l(.)20 b(The)14 b(name)p eop +%%Page: 4 6 +4 5 bop 75 -58 a Fu(4)1322 b(GNU)15 b(Readline)i(Library)75 +183 y(of)e(this)h(\014le)h(is)f(tak)o(en)f(from)g(the)g(v)m(alue)i(of)e +(the)h(en)o(vironmen)o(t)g(v)m(ariable)h Ft(INPUTRC)p +Fu(.)j(If)c(that)e(v)m(ariable)j(is)75 238 y(unset,)e(the)g(default)h +(is)g(`)p Ft(~/.inputrc)p Fu('.)137 310 y(When)f(a)g(program)f(whic)o +(h)h(uses)g(the)g(Readline)i(library)f(starts)d(up,)i(the)g(init)h +(\014le)g(is)f(read,)g(and)g(the)75 364 y(k)o(ey)g(bindings)i(are)e +(set.)137 436 y(In)f(addition,)h(the)e Ft(C-x)i(C-r)e +Fu(command)g(re-reads)h(this)g(init)g(\014le,)h(th)o(us)e(incorp)q +(orating)h(an)o(y)f(c)o(hanges)75 491 y(that)h(y)o(ou)h(migh)o(t)g(ha)o +(v)o(e)g(made)g(to)g(it.)75 612 y Fl(1.3.1)30 b(Readline)20 +b(Init)g(File)h(Syn)n(tax)137 712 y Fu(There)c(are)g(only)g(a)g(few)f +(basic)i(constructs)e(allo)o(w)o(ed)i(in)f(the)g(Readline)i(init)f +(\014le.)26 b(Blank)18 b(lines)g(are)75 767 y(ignored.)36 +b(Lines)22 b(b)q(eginning)h(with)d(a)h(`)p Ft(#)p Fu(')e(are)h(commen)o +(ts.)35 b(Lines)22 b(b)q(eginning)h(with)e(a)f(`)p Ft($)p +Fu(')f(indicate)75 822 y(conditional)c(constructs)f(\(see)g(Section)g +(1.3.2)f([Conditional)h(Init)h(Constructs],)e(page)h(7\).)k(Other)c +(lines)75 877 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f +(bindings.)75 963 y(V)l(ariable)h(Settings)315 1018 y(Y)l(ou)k(can)h +(mo)q(dify)g(the)f(run-time)h(b)q(eha)o(vior)g(of)e(Readline)k(b)o(y)d +(altering)h(the)f(v)m(alues)h(of)315 1073 y(v)m(ariables)13 +b(in)g(Readline)i(using)d(the)g Ft(set)g Fu(command)g(within)h(the)f +(init)h(\014le.)20 b(Here)13 b(is)f(ho)o(w)g(to)315 1127 +y(c)o(hange)e(from)g(the)g(default)h(Emacs-lik)o(e)g(k)o(ey)f(binding)i +(to)e(use)g Ft(vi)g Fu(line)i(editing)g(commands:)435 +1194 y Ft(set)23 b(editing-mode)g(vi)315 1263 y Fu(A)15 +b(great)g(deal)g(of)g(run-time)h(b)q(eha)o(vior)g(is)g(c)o(hangeable)g +(with)f(the)h(follo)o(wing)f(v)m(ariables.)315 1347 y +Ft(bell-style)555 1402 y Fu(Con)o(trols)21 b(what)h(happ)q(ens)h(when)f +(Readline)i(w)o(an)o(ts)d(to)g(ring)i(the)f(termi-)555 +1457 y(nal)d(b)q(ell.)32 b(If)19 b(set)f(to)g(`)p Ft(none)p +Fu(',)g(Readline)j(nev)o(er)e(rings)g(the)f(b)q(ell.)32 +b(If)19 b(set)g(to)555 1512 y(`)p Ft(visible)p Fu(',)c(Readline)j(uses) +f(a)f(visible)j(b)q(ell)g(if)e(one)f(is)h(a)o(v)m(ailable.)26 +b(If)16 b(set)h(to)555 1567 y(`)p Ft(audible)p Fu(')g(\(the)h +(default\),)i(Readline)h(attempts)d(to)g(ring)h(the)g(terminal's)555 +1621 y(b)q(ell.)315 1705 y Ft(comment-begin)555 1760 +y Fu(The)c(string)f(to)g(insert)i(at)d(the)i(b)q(eginning)i(of)d(the)h +(line)h(when)f(the)g Ft(insert-)555 1815 y(comment)f +Fu(command)h(is)h(executed.)21 b(The)15 b(default)h(v)m(alue)g(is)g +Ft("#")p Fu(.)315 1899 y Ft(completion-ignore-case)555 +1954 y Fu(If)e(set)f(to)g(`)p Ft(on)p Fu(',)g(Readline)j(p)q(erforms)d +(\014lename)i(matc)o(hing)f(and)g(completion)555 2009 +y(in)i(a)f(case-insensitiv)o(e)i(fashion.)k(The)15 b(default)h(v)m +(alue)g(is)g(`)p Ft(off)p Fu('.)315 2093 y Ft(completion-query-items) +555 2148 y Fu(The)d(n)o(um)o(b)q(er)h(of)e(p)q(ossible)j(completions)g +(that)d(determines)i(when)g(the)f(user)555 2202 y(is)21 +b(ask)o(ed)g(whether)g(he)h(w)o(an)o(ts)d(to)i(see)g(the)g(list)h(of)e +(p)q(ossibilitie)q(s.)40 b(If)21 b(the)555 2257 y(n)o(um)o(b)q(er)14 +b(of)f(p)q(ossible)i(completions)f(is)g(greater)f(than)g(this)h(v)m +(alue,)h(Readline)555 2312 y(will)g(ask)e(the)g(user)h(whether)f(or)g +(not)g(he)g(wishes)h(to)f(view)h(them;)f(otherwise,)555 +2367 y(they)i(are)g(simply)i(listed.)k(The)15 b(default)h(limit)h(is)e +Ft(100)p Fu(.)315 2451 y Ft(convert-meta)555 2506 y Fu(If)c(set)g(to)g +(`)p Ft(on)p Fu(',)f(Readline)j(will)g(con)o(v)o(ert)d(c)o(haracters)h +(with)g(the)g(eigh)o(th)h(bit)f(set)555 2560 y(to)i(an)h(ASCI)q(I)h(k)o +(ey)e(sequence)i(b)o(y)f(stripping)g(the)g(eigh)o(th)g(bit)g(and)g +(prep)q(end-)555 2615 y(ing)j(an)695 2613 y Fo(h)p 708 +2587 70 2 v 708 2615 a Fn(ESC)p 708 2623 V 775 2613 a +Fo(i)805 2615 y Fu(c)o(haracter,)f(con)o(v)o(erting)f(them)h(to)g(a)f +(meta-pre\014xed)i(k)o(ey)f(se-)555 2670 y(quence.)21 +b(The)15 b(default)h(v)m(alue)h(is)e(`)p Ft(on)p Fu('.)p +eop +%%Page: 5 7 +5 6 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 +b(5)315 183 y Ft(disable-completion)555 238 y Fu(If)19 +b(set)f(to)f(`)p Ft(On)p Fu(',)h(Readline)j(will)f(inhibit)g(w)o(ord)e +(completion.)30 b(Completion)555 293 y(c)o(haracters)12 +b(will)j(b)q(e)f(inserted)g(in)o(to)f(the)g(line)h(as)f(if)h(they)f +(had)g(b)q(een)h(mapp)q(ed)555 348 y(to)h Ft(self-insert)p +Fu(.)j(The)d(default)h(is)g(`)p Ft(off)p Fu('.)315 446 +y Ft(editing-mode)555 501 y Fu(The)f Ft(editing-mode)d +Fu(v)m(ariable)k(con)o(trols)e(whic)o(h)h(default)g(set)f(of)g(k)o(ey)g +(bind-)555 556 y(ings)f(is)g(used.)20 b(By)12 b(default,)i(Readline)g +(starts)e(up)h(in)g(Emacs)f(editing)i(mo)q(de,)555 611 +y(where)h(the)f(k)o(eystrok)o(es)g(are)g(most)g(similar)i(to)d(Emacs.) +20 b(This)15 b(v)m(ariable)h(can)555 665 y(b)q(e)g(set)f(to)f(either)i +(`)p Ft(emacs)p Fu(')e(or)h(`)p Ft(vi)p Fu('.)315 764 +y Ft(enable-keypad)555 819 y Fu(When)d(set)f(to)h(`)p +Ft(on)p Fu(',)e(Readline)k(will)g(try)d(to)g(enable)i(the)f +(application)h(k)o(eypad)555 873 y(when)h(it)f(is)h(called.)21 +b(Some)13 b(systems)g(need)h(this)g(to)f(enable)h(the)g(arro)o(w)e(k)o +(eys.)555 928 y(The)j(default)h(is)g(`)p Ft(off)p Fu('.)315 +1027 y Ft(expand-tilde)555 1082 y Fu(If)e(set)g(to)f(`)p +Ft(on)p Fu(',)f(tilde)k(expansion)e(is)h(p)q(erformed)f(when)g +(Readline)i(attempts)555 1136 y(w)o(ord)f(completion.)21 +b(The)15 b(default)h(is)f(`)p Ft(off)p Fu('.)315 1235 +y Ft(horizontal-scroll-mode)555 1290 y Fu(This)k(v)m(ariable)g(can)f(b) +q(e)g(set)g(to)f(either)i(`)p Ft(on)p Fu(')e(or)g(`)p +Ft(off)p Fu('.)27 b(Setting)19 b(it)f(to)f(`)p Ft(on)p +Fu(')555 1344 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)i(b)q +(eing)f(edited)g(will)h(scroll)f(horizon)o(tally)555 +1399 y(on)i(a)f(single)i(screen)g(line)g(when)g(they)f(are)f(longer)h +(than)g(the)g(width)g(of)g(the)555 1454 y(screen,)e(instead)f(of)g +(wrapping)g(on)o(to)f(a)h(new)g(screen)h(line.)21 b(By)13 +b(default,)h(this)555 1509 y(v)m(ariable)j(is)e(set)g(to)g(`)p +Ft(off)p Fu('.)315 1607 y Ft(keymap)114 b Fu(Sets)17 +b(Readline's)j(idea)e(of)f(the)h(curren)o(t)g(k)o(eymap)f(for)g(k)o(ey) +g(binding)j(com-)555 1662 y(mands.)41 b(Acceptable)23 +b Ft(keymap)f Fu(names)g(are)f Ft(emacs)p Fu(,)i Ft(emacs-standard)p +Fu(,)555 1717 y Ft(emacs-meta)p Fu(,)15 b Ft(emacs-ctlx)p +Fu(,)h Ft(vi)p Fu(,)g Ft(vi-command)p Fu(,)g(and)h Ft(vi-insert)p +Fu(.)23 b Ft(vi)16 b Fu(is)555 1772 y(equiv)m(alen)o(t)e(to)f +Ft(vi-command)p Fu(;)e Ft(emacs)h Fu(is)i(equiv)m(alen)o(t)g(to)e +Ft(emacs-standard)p Fu(.)555 1827 y(The)f(default)h(v)m(alue)g(is)f +Ft(emacs)p Fu(.)18 b(The)11 b(v)m(alue)i(of)d(the)h Ft(editing-mode)f +Fu(v)m(ariable)555 1881 y(also)15 b(a\013ects)g(the)g(default)h(k)o +(eymap.)315 1980 y Ft(mark-directories)555 2035 y Fu(If)j(set)g(to)g(`) +p Ft(on)p Fu(',)f(completed)i(directory)g(names)f(ha)o(v)o(e)f(a)h +(slash)h(app)q(ended.)555 2089 y(The)15 b(default)h(is)g(`)p +Ft(on)p Fu('.)315 2188 y Ft(mark-modified-lines)555 2243 +y Fu(This)j(v)m(ariable,)g(when)g(set)e(to)h(`)p Ft(on)p +Fu(',)f(causes)h(Readline)i(to)d(displa)o(y)i(an)f(as-)555 +2298 y(terisk)f(\(`)p Ft(*)p Fu('\))e(at)i(the)f(start)g(of)h(history)f +(lines)j(whic)o(h)e(ha)o(v)o(e)g(b)q(een)h(mo)q(di\014ed.)555 +2352 y(This)e(v)m(ariable)g(is)g(`)p Ft(off)p Fu(')e(b)o(y)h(default.) +315 2451 y Ft(input-meta)555 2506 y Fu(If)h(set)g(to)f(`)p +Ft(on)p Fu(',)f(Readline)k(will)g(enable)f(eigh)o(t-bit)f(input)h(\(it) +f(will)h(not)f(strip)555 2560 y(the)f(eigh)o(th)g(bit)h(from)e(the)h(c) +o(haracters)f(it)i(reads\),)e(regardless)h(of)f(what)h(the)555 +2615 y(terminal)21 b(claims)g(it)f(can)g(supp)q(ort.)34 +b(The)20 b(default)h(v)m(alue)g(is)g(`)p Ft(off)p Fu('.)33 +b(The)555 2670 y(name)15 b Ft(meta-flag)f Fu(is)i(a)f(synon)o(ym)g(for) +f(this)i(v)m(ariable.)p eop +%%Page: 6 8 +6 7 bop 75 -58 a Fu(6)1322 b(GNU)15 b(Readline)i(Library)315 +183 y Ft(output-meta)555 238 y Fu(If)h(set)f(to)g(`)p +Ft(on)p Fu(',)g(Readline)j(will)g(displa)o(y)f(c)o(haracters)d(with)j +(the)e(eigh)o(th)h(bit)555 293 y(set)g(directly)i(rather)d(than)h(as)g +(a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555 +348 y(default)16 b(is)f(`)p Ft(off)p Fu('.)315 435 y +Ft(print-completions-horizont)o(ally)555 489 y Fu(If)d(set)g(to)f(`)p +Ft(on)p Fu(',)h(Readline)i(will)f(displa)o(y)h(completions)f(with)f +(matc)o(hes)f(sorted)555 544 y(horizon)o(tally)23 b(in)f(alphab)q +(etical)i(order,)f(rather)e(than)g(do)o(wn)h(the)g(screen.)555 +599 y(The)15 b(default)h(is)g(`)p Ft(off)p Fu('.)315 +686 y Ft(show-all-if-ambiguous)555 741 y Fu(This)g(alters)e(the)i +(default)f(b)q(eha)o(vior)h(of)e(the)h(completion)h(functions.)21 +b(If)15 b(set)555 796 y(to)e(`)p Ft(on)p Fu(',)g(w)o(ords)g(whic)o(h)h +(ha)o(v)o(e)g(more)f(than)g(one)h(p)q(ossible)i(completion)f(cause)555 +850 y(the)20 b(matc)o(hes)f(to)f(b)q(e)j(listed)f(immediately)h +(instead)f(of)f(ringing)i(the)e(b)q(ell.)555 905 y(The)c(default)h(v)m +(alue)h(is)e(`)p Ft(off)p Fu('.)315 992 y Ft(visible-stats)555 +1047 y Fu(If)h(set)g(to)f(`)p Ft(on)p Fu(',)g(a)h(c)o(haracter)f +(denoting)h(a)g(\014le's)h(t)o(yp)q(e)f(is)g(app)q(ended)i(to)d(the)555 +1102 y(\014lename)h(when)g(listing)h(p)q(ossible)g(completions.)j(The)c +(default)g(is)f(`)p Ft(off)p Fu('.)75 1189 y(Key)h(Bindings)315 +1244 y(The)e(syn)o(tax)f(for)g(con)o(trolling)i(k)o(ey)f(bindings)i(in) +e(the)g(init)h(\014le)g(is)f(simple.)21 b(First)14 b(y)o(ou)f(ha)o(v)o +(e)315 1298 y(to)19 b(kno)o(w)f(the)i(name)f(of)g(the)g(command)g(that) +f(y)o(ou)h(w)o(an)o(t)f(to)h(c)o(hange.)32 b(The)19 b(follo)o(wing)315 +1353 y(sections)f(con)o(tain)h(tables)f(of)f(the)h(command)g(name,)g +(the)g(default)h(k)o(eybinding,)h(if)e(an)o(y)l(,)315 +1408 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g(command)g(do)q +(es.)315 1479 y(Once)j(y)o(ou)g(kno)o(w)e(the)i(name)f(of)g(the)h +(command,)f(simply)i(place)g(the)e(name)h(of)f(the)g(k)o(ey)315 +1534 y(y)o(ou)c(wish)h(to)f(bind)i(the)f(command)f(to,)g(a)g(colon,)h +(and)g(then)f(the)h(name)f(of)h(the)f(command)315 1588 +y(on)19 b(a)g(line)i(in)f(the)g(init)g(\014le.)34 b(The)19 +b(name)h(of)e(the)i(k)o(ey)f(can)h(b)q(e)g(expressed)g(in)g(di\013eren) +o(t)315 1643 y(w)o(a)o(ys,)14 b(dep)q(ending)j(on)e(whic)o(h)h(is)g +(most)e(comfortable)h(for)g(y)o(ou.)315 1730 y Fm(k)o(eyname)s +Fu(:)k Fm(function-name)g Fu(or)c Fm(macro)555 1785 y(k)o(eyname)i +Fu(is)e(the)f(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)j(out)d(in)h +(English.)21 b(F)l(or)13 b(example:)675 1853 y Ft(Control-u:)22 +b(universal-argument)675 1905 y(Meta-Rubout:)g(backward-kill-word)675 +1957 y(Control-o:)g(">)i(output")555 2028 y Fu(In)19 +b(the)f(ab)q(o)o(v)o(e)g(example,)1023 2026 y Fo(h)p +1035 2000 57 2 v 1035 2028 a Fn(C-u)p 1035 2035 V 1090 +2026 a Fo(i)1123 2028 y Fu(is)h(b)q(ound)g(to)f(the)g(function)h +Ft(universal-)555 2082 y(argument)p Fu(,)g(and)872 2080 +y Fo(h)p 884 2054 55 2 v 884 2082 a Fn(C-o)p 884 2090 +V 937 2080 a Fo(i)971 2082 y Fu(is)h(b)q(ound)g(to)f(run)h(the)f(macro) +g(expressed)h(on)g(the)555 2137 y(righ)o(t)13 b(hand)h(side)h(\(that)e +(is,)h(to)f(insert)h(the)g(text)f(`)p Ft(>)h(output)p +Fu(')f(in)o(to)g(the)h(line\).)315 2224 y Ft(")p Fm(k)o(eyseq)q +Ft(")p Fu(:)20 b Fm(function-name)e Fu(or)d Fm(macro)555 +2279 y(k)o(eyseq)i Fu(di\013ers)e(from)g Fm(k)o(eyname)j +Fu(ab)q(o)o(v)o(e)d(in)i(that)d(strings)i(denoting)g(an)f(en-)555 +2334 y(tire)i(k)o(ey)g(sequence)h(can)f(b)q(e)g(sp)q(eci\014ed,)i(b)o +(y)e(placing)h(the)f(k)o(ey)g(sequence)h(in)555 2389 +y(double)c(quotes.)19 b(Some)13 b(GNU)g(Emacs)f(st)o(yle)h(k)o(ey)g +(escap)q(es)g(can)g(b)q(e)h(used,)f(as)555 2443 y(in)18 +b(the)f(follo)o(wing)g(example,)h(but)f(the)g(sp)q(ecial)i(c)o +(haracter)d(names)h(are)f(not)555 2498 y(recognized.)675 +2566 y Ft("\\C-u":)23 b(universal-argument)675 2618 y("\\C-x\\C-r":)f +(re-read-init-file)675 2670 y("\\e[11~":)h("Function)f(Key)i(1")p +eop +%%Page: 7 9 +7 8 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 +b(7)555 183 y(In)19 b(the)f(ab)q(o)o(v)o(e)g(example,)1023 +181 y Fo(h)p 1035 155 57 2 v 1035 183 a Fn(C-u)p 1035 +191 V 1090 181 a Fo(i)1123 183 y Fu(is)h(b)q(ound)g(to)f(the)g +(function)h Ft(universal-)555 238 y(argument)9 b Fu(\(just)h(as)h(it)g +(w)o(as)e(in)j(the)e(\014rst)h(example\),)g(`)1463 236 +y Fo(h)p 1475 210 56 2 v 1475 238 a Fn(C-x)p 1475 246 +V 1529 236 a Fo(i)k(h)p 1571 210 51 2 v 1571 238 a Fn(C-r)p +1571 246 V 1620 236 a Fo(i)1635 238 y Fu(')10 b(is)h(b)q(ound)h(to)555 +293 y(the)k(function)i Ft(re-read-init-file)p Fu(,)c(and)i(`)1351 +291 y Fo(h)p 1363 265 70 2 v 1363 293 a Fn(ESC)p 1363 +301 V 1430 291 a Fo(i)f(h)p 1472 265 10 2 v 1472 293 +a Fn([)p 1472 301 V 1480 291 a Fo(i)g(h)p 1522 265 18 +2 v 1522 293 a Fn(1)p 1522 301 V 1538 291 a Fo(i)g(h)p +1580 265 V 1580 293 a Fn(1)p 1580 301 V 1595 291 a Fo(i)g(h)p +1637 265 24 2 v 1637 293 a Ft(~)p 1637 301 V 1659 291 +a Fo(i)1674 293 y Fu(')h(is)h(b)q(ound)555 348 y(to)e(insert)g(the)g +(text)g(`)p Ft(Function)f(Key)h(1)p Fu('.)315 427 y(The)e(follo)o(wing) +h(GNU)f(Emacs)f(st)o(yle)h(escap)q(e)h(sequences)g(are)f(a)o(v)m +(ailable)i(when)e(sp)q(ecifying)315 482 y(k)o(ey)i(sequences:)315 +561 y Fk(\\C-)168 b Fu(con)o(trol)15 b(pre\014x)315 640 +y Fk(\\M-)168 b Fu(meta)15 b(pre\014x)315 719 y Fk(\\e)192 +b Fu(an)15 b(escap)q(e)h(c)o(haracter)315 798 y Fk(\\\\)192 +b Fu(bac)o(kslash)315 877 y Fk(\\)p Ft(")555 875 y Fo(h)p +567 849 V 567 877 a Ft(")p 567 885 V 589 875 a Fo(i)315 +956 y Fk(\\')555 954 y Fo(h)p 567 928 10 2 v 567 956 +a Fn(')p 567 964 V 575 954 a Fo(i)315 1035 y Fu(In)13 +b(addition)g(to)f(the)g(GNU)h(Emacs)f(st)o(yle)g(escap)q(e)h +(sequences,)h(a)e(second)h(set)f(of)g(bac)o(kslash)315 +1090 y(escap)q(es)k(is)g(a)o(v)m(ailable:)315 1169 y +Ft(\\a)192 b Fu(alert)15 b(\(b)q(ell\))315 1248 y Ft(\\b)192 +b Fu(bac)o(kspace)315 1327 y Ft(\\d)g Fu(delete)315 1407 +y Ft(\\f)g Fu(form)14 b(feed)315 1486 y Ft(\\n)192 b +Fu(newline)315 1565 y Ft(\\r)g Fu(carriage)15 b(return)315 +1644 y Ft(\\t)192 b Fu(horizon)o(tal)16 b(tab)315 1723 +y Ft(\\v)192 b Fu(v)o(ertical)16 b(tab)315 1802 y Ft(\\)p +Fm(nnn)141 b Fu(the)12 b(c)o(haracter)f(whose)h(ASCI)q(I)h(co)q(de)g +(is)f(the)g(o)q(ctal)g(v)m(alue)h Fm(nnn)g Fu(\(one)f(to)f(three)555 +1857 y(digits\))315 1936 y Ft(\\x)p Fm(nnn)117 b Fu(the)14 +b(c)o(haracter)f(whose)h(ASCI)q(I)h(co)q(de)f(is)g(the)g(hexadecimal)i +(v)m(alue)f Fm(nnn)f Fu(\(one)555 1991 y(to)h(three)g(digits\))315 +2070 y(When)k(en)o(tering)g(the)g(text)f(of)g(a)h(macro,)f(single)i(or) +e(double)i(quotes)f(m)o(ust)f(b)q(e)h(used)h(to)315 2125 +y(indicate)12 b(a)f(macro)f(de\014nition.)20 b(Unquoted)11 +b(text)f(is)i(assumed)e(to)h(b)q(e)g(a)f(function)i(name.)18 +b(In)315 2180 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o(kslash)g +(escap)q(es)g(describ)q(ed)i(ab)q(o)o(v)o(e)d(are)g(expanded.)20 +b(Bac)o(kslash)315 2234 y(will)i(quote)d(an)o(y)h(other)g(c)o(haracter) +f(in)i(the)f(macro)f(text,)h(including)j(`)p Ft(")p Fu(')c(and)h(`)p +Ft(')p Fu('.)34 b(F)l(or)315 2289 y(example,)14 b(the)f(follo)o(wing)g +(binding)i(will)g(mak)o(e)d(`)p Ft(C-x)i(\\)p Fu(')f(insert)g(a)g +(single)h(`)p Ft(\\)p Fu(')e(in)o(to)h(the)g(line:)435 +2353 y Ft("\\C-x\\\\":)23 b("\\\\")75 2464 y Fl(1.3.2)30 +b(Conditional)20 b(Init)g(Constructs)137 2560 y Fu(Readline)g(implemen) +o(ts)f(a)f(facilit)o(y)g(similar)h(in)g(spirit)f(to)f(the)h +(conditional)h(compilation)g(features)75 2615 y(of)e(the)g(C)g(prepro)q +(cessor)g(whic)o(h)i(allo)o(ws)e(k)o(ey)g(bindings)i(and)f(v)m(ariable) +g(settings)f(to)g(b)q(e)h(p)q(erformed)f(as)75 2670 y(the)e(result)h +(of)f(tests.)k(There)c(are)g(four)g(parser)g(directiv)o(es)h(used.)p +eop +%%Page: 8 10 +8 9 bop 75 -58 a Fu(8)1322 b(GNU)15 b(Readline)i(Library)75 +183 y Ft($if)168 b Fu(The)16 b Ft($if)f Fu(construct)g(allo)o(ws)h +(bindings)i(to)d(b)q(e)h(made)g(based)g(on)f(the)h(editing)h(mo)q(de,)f +(the)315 238 y(terminal)k(b)q(eing)g(used,)g(or)f(the)g(application)i +(using)e(Readline.)34 b(The)19 b(text)g(of)f(the)i(test)315 +293 y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)i(no)e(c)o(haracters) +f(are)h(required)i(to)d(isolate)i(it.)315 373 y Ft(mode)144 +b Fu(The)11 b Ft(mode=)e Fu(form)h(of)g(the)h Ft($if)f +Fu(directiv)o(e)h(is)g(used)g(to)f(test)g(whether)h(Readline)555 +427 y(is)k(in)h Ft(emacs)e Fu(or)g Ft(vi)g Fu(mo)q(de.)20 +b(This)c(ma)o(y)e(b)q(e)h(used)g(in)h(conjunction)g(with)f(the)555 +482 y(`)p Ft(set)f(keymap)p Fu(')f(command,)g(for)h(instance,)g(to)f +(set)h(bindings)h(in)g(the)f Ft(emacs-)555 537 y(standard)d +Fu(and)i Ft(emacs-ctlx)e Fu(k)o(eymaps)h(only)i(if)f(Readline)h(is)f +(starting)f(out)555 592 y(in)k Ft(emacs)f Fu(mo)q(de.)315 +671 y Ft(term)144 b Fu(The)14 b Ft(term=)e Fu(form)h(ma)o(y)g(b)q(e)h +(used)g(to)f(include)j(terminal-sp)q(eci\014c)g(k)o(ey)d(bind-)555 +726 y(ings,)19 b(p)q(erhaps)g(to)e(bind)i(the)g(k)o(ey)e(sequences)j +(output)e(b)o(y)g(the)g(terminal's)555 781 y(function)13 +b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)g(side)g(of)g +(the)g(`)p Ft(=)p Fu(')f(is)h(tested)g(against)555 836 +y(b)q(oth)j(the)g(full)i(name)e(of)f(the)h(terminal)h(and)f(the)g(p)q +(ortion)h(of)e(the)h(terminal)555 891 y(name)i(b)q(efore)g(the)g +(\014rst)f(`)p Ft(-)p Fu('.)24 b(This)17 b(allo)o(ws)g +Ft(sun)f Fu(to)g(matc)o(h)h(b)q(oth)f Ft(sun)h Fu(and)555 +945 y Ft(sun-cmd)p Fu(,)d(for)g(instance.)315 1025 y +Ft(application)555 1080 y Fu(The)d Fm(application)i Fu(construct)e(is)g +(used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555 +1135 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)j +(library)e(sets)f(the)g Fm(application)555 1189 y(name)p +Fu(,)17 b(and)f(y)o(ou)h(can)f(test)g(for)g(it.)24 b(This)18 +b(could)f(b)q(e)g(used)g(to)f(bind)i(k)o(ey)f(se-)555 +1244 y(quences)c(to)e(functions)i(useful)g(for)e(a)h(sp)q(eci\014c)i +(program.)j(F)l(or)12 b(instance,)h(the)555 1299 y(follo)o(wing)i +(command)f(adds)g(a)f(k)o(ey)h(sequence)h(that)f(quotes)f(the)i(curren) +o(t)e(or)555 1354 y(previous)j(w)o(ord)e(in)i(Bash:)675 +1418 y Ft($if)23 b(Bash)675 1470 y(#)h(Quote)f(the)g(current)g(or)h +(previous)f(word)675 1522 y("\\C-xq":)g("\\eb\\"\\ef\\"")675 +1574 y($endif)75 1654 y($endif)96 b Fu(This)16 b(command,)e(as)h(seen)h +(in)g(the)f(previous)h(example,)g(terminates)f(an)g Ft($if)f +Fu(command.)75 1733 y Ft($else)120 b Fu(Commands)15 b(in)h(this)f +(branc)o(h)h(of)e(the)i Ft($if)e Fu(directiv)o(e)j(are)e(executed)h(if) +g(the)f(test)g(fails.)75 1813 y Ft($include)48 b Fu(This)14 +b(directiv)o(e)i(tak)o(es)d(a)g(single)i(\014lename)g(as)f(an)f +(argumen)o(t)g(and)h(reads)g(commands)g(and)315 1868 +y(bindings)j(from)e(that)f(\014le.)435 1932 y Ft($include)23 +b(/etc/inputrc)75 2044 y Fl(1.3.3)30 b(Sample)20 b(Init)h(File)137 +2140 y Fu(Here)16 b(is)g(an)f(example)h(of)f(an)h(inputrc)g(\014le.)22 +b(This)16 b(illustrates)g(k)o(ey)g(binding,)h(v)m(ariable)f(assignmen)o +(t,)75 2195 y(and)f(conditional)i(syn)o(tax.)p eop +%%Page: 9 11 +9 10 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 +b(9)195 235 y Ft(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i +(line)f(input)g(editing)g(for)195 287 y(#)h(programs)e(that)i(use)f +(the)h(Gnu)f(Readline)g(library.)47 b(Existing)22 b(programs)195 +339 y(#)i(include)f(FTP,)g(Bash,)g(and)h(Gdb.)195 391 +y(#)195 443 y(#)g(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h +(C-x)f(C-r.)195 495 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h +(comments.)195 546 y(#)195 598 y(#)g(First,)f(include)g(any)g +(systemwide)g(bindings)f(and)i(variable)f(assignments)f(from)195 +650 y(#)i(/etc/Inputrc)195 702 y($include)f(/etc/Inputrc)195 +806 y(#)195 858 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.) +195 962 y(set)g(editing-mode)g(emacs)195 1065 y($if)g(mode=emacs)195 +1169 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the) +f(function)g(name)g(is)h(ignored)p 1986 1179 21 38 v +195 1273 a(#)195 1325 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195 +1377 y(#)195 1429 y(#"\\M-OD":)190 b(backward-char)195 +1480 y(#"\\M-OC":)g(forward-char)195 1532 y(#"\\M-OA":)g +(previous-history)195 1584 y(#"\\M-OB":)g(next-history)195 +1636 y(#)195 1688 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195 +1740 y(#)195 1792 y("\\M-[D":)190 b(backward-char)195 +1844 y("\\M-[C":)g(forward-char)195 1896 y("\\M-[A":)g +(previous-history)195 1947 y("\\M-[B":)g(next-history)195 +1999 y(#)195 2051 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode) +195 2103 y(#)195 2155 y(#"\\M-\\C-OD":)165 b(backward-char)195 +2207 y(#"\\M-\\C-OC":)g(forward-char)195 2259 y(#"\\M-\\C-OA":)g +(previous-history)195 2311 y(#"\\M-\\C-OB":)g(next-history)195 +2363 y(#)195 2414 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode) +195 2466 y(#)195 2518 y(#"\\M-\\C-[D":)165 b(backward-char)195 +2570 y(#"\\M-\\C-[C":)g(forward-char)195 2622 y(#"\\M-\\C-[A":)g +(previous-history)p eop +%%Page: 10 12 +10 11 bop 75 -58 a Fu(10)1299 b(GNU)15 b(Readline)i(Library)195 +183 y Ft(#"\\M-\\C-[B":)165 b(next-history)195 287 y(C-q:)23 +b(quoted-insert)195 391 y($endif)195 495 y(#)h(An)f(old-style)g +(binding.)47 b(This)23 b(happens)g(to)g(be)h(the)f(default.)195 +546 y(TAB:)g(complete)195 650 y(#)h(Macros)f(that)g(are)h(convenient)e +(for)h(shell)h(interaction)195 702 y($if)f(Bash)195 754 +y(#)h(edit)f(the)g(path)195 806 y("\\C-xp":)g +("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195 858 y(#)h(prepare)f(to)g +(type)h(a)f(quoted)g(word)h(--)f(insert)g(open)h(and)f(close)g(double)g +(quotes)195 910 y(#)h(and)f(move)g(to)h(just)f(after)h(the)f(open)g +(quote)195 962 y("\\C-x\\"":)g("\\"\\"\\C-b")195 1013 +y(#)h(insert)f(a)g(backslash)g(\(testing)g(backslash)g(escapes)f(in)i +(sequences)f(and)g(macros\))195 1065 y("\\C-x\\\\":)g("\\\\")195 +1117 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)195 +1169 y("\\C-xq":)g("\\eb\\"\\ef\\"")195 1221 y(#)h(Add)f(a)h(binding)f +(to)g(refresh)g(the)h(line,)f(which)g(is)h(unbound)195 +1273 y("\\C-xr":)f(redraw-current-line)195 1325 y(#)h(Edit)f(variable)g +(on)g(current)g(line.)195 1377 y("\\M-\\C-v":)f +("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)o(")195 1429 y($endif)195 +1532 y(#)i(use)f(a)h(visible)f(bell)g(if)h(one)f(is)h(available)195 +1584 y(set)f(bell-style)g(visible)195 1688 y(#)h(don't)f(strip)g +(characters)g(to)g(7)h(bits)f(when)h(reading)195 1740 +y(set)f(input-meta)g(on)195 1844 y(#)h(allow)f(iso-latin1)f(characters) +h(to)g(be)h(inserted)f(rather)g(than)g(converted)g(to)195 +1896 y(#)h(prefix-meta)e(sequences)195 1947 y(set)h(convert-meta)g(off) +195 2051 y(#)h(display)f(characters)f(with)h(the)h(eighth)f(bit)g(set)h +(directly)f(rather)g(than)195 2103 y(#)h(as)f(meta-prefixed)f +(characters)195 2155 y(set)h(output-meta)g(on)195 2259 +y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g(completions)f +(for)i(a)f(word,)h(ask)f(the)195 2311 y(#)h(user)f(if)h(he)f(wants)g +(to)h(see)f(all)h(of)f(them)195 2363 y(set)g(completion-query-items)e +(150)195 2466 y(#)j(For)f(FTP)195 2518 y($if)g(Ftp)195 +2570 y("\\C-xg":)g("get)g(\\M-?")195 2622 y("\\C-xt":)g("put)g(\\M-?")p +eop +%%Page: 11 13 +11 12 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 +b(11)195 183 y Ft("\\M-.":)23 b(yank-last-arg)195 235 +y($endif)75 369 y Fs(1.4)33 b(Bindable)24 b(Readline)f(Commands)137 +467 y Fu(This)16 b(section)g(describ)q(es)h(Readline)g(commands)e(that) +g(ma)o(y)f(b)q(e)i(b)q(ound)g(to)f(k)o(ey)g(sequences.)75 +583 y Fl(1.4.1)30 b(Commands)21 b(F)-5 b(or)19 b(Mo)n(ving)75 +695 y Ft(beginning-of-line)13 b(\(C-a\))315 749 y Fu(Mo)o(v)o(e)h(to)h +(the)g(start)f(of)h(the)g(curren)o(t)g(line.)75 831 y +Ft(end-of-line)f(\(C-e\))315 886 y Fu(Mo)o(v)o(e)g(to)h(the)g(end)h(of) +f(the)g(line.)75 967 y Ft(forward-char)f(\(C-f\))315 +1022 y Fu(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)75 +1104 y Ft(backward-char)e(\(C-b\))315 1159 y Fu(Mo)o(v)o(e)h(bac)o(k)h +(a)g(c)o(haracter.)75 1240 y Ft(forward-word)f(\(M-f\))315 +1295 y Fu(Mo)o(v)o(e)g(forw)o(ard)g(to)g(the)i(end)g(of)e(the)h(next)h +(w)o(ord.)j(W)l(ords)c(are)f(comp)q(osed)i(of)f(letters)g(and)315 +1350 y(digits.)75 1431 y Ft(backward-word)e(\(M-b\))315 +1486 y Fu(Mo)o(v)o(e)i(bac)o(k)h(to)g(the)g(start)f(of)h(this,)g(or)g +(the)g(previous,)h(w)o(ord.)22 b(W)l(ords)16 b(are)g(comp)q(osed)g(of) +315 1541 y(letters)f(and)h(digits.)75 1623 y Ft(clear-screen)e(\(C-l\)) +315 1677 y Fu(Clear)f(the)h(screen)g(and)f(redra)o(w)g(the)g(curren)o +(t)g(line,)i(lea)o(ving)g(the)e(curren)o(t)g(line)i(at)e(the)g(top)315 +1732 y(of)i(the)g(screen.)75 1814 y Ft(redraw-current-line)e(\(\))315 +1869 y Fu(Refresh)j(the)f(curren)o(t)g(line.)22 b(By)15 +b(default,)h(this)f(is)h(un)o(b)q(ound.)75 1985 y Fl(1.4.2)30 +b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f(History)75 +2096 y Ft(accept-line)14 b(\(Newline,)g(Return\))315 +2151 y Fu(Accept)h(the)g(line)i(regardless)e(of)g(where)g(the)g(cursor) +f(is.)20 b(If)c(this)f(line)h(is)g(non-empt)o(y)l(,)f(add)315 +2206 y(it)f(to)g(the)g(history)g(list.)20 b(If)14 b(this)h(line)g(w)o +(as)e(a)h(history)g(line,)i(then)e(restore)f(the)h(history)g(line)315 +2261 y(to)h(its)g(original)h(state.)75 2342 y Ft(previous-history)d +(\(C-p\))315 2397 y Fu(Mo)o(v)o(e)h(`up')h(through)g(the)g(history)g +(list.)75 2479 y Ft(next-history)f(\(C-n\))315 2534 y +Fu(Mo)o(v)o(e)g(`do)o(wn')g(through)h(the)h(history)f(list.)75 +2615 y Ft(beginning-of-history)d(\(M-<\))315 2670 y Fu(Mo)o(v)o(e)i(to) +h(the)g(\014rst)g(line)i(in)f(the)f(history)l(.)p eop +%%Page: 12 14 +12 13 bop 75 -58 a Fu(12)1299 b(GNU)15 b(Readline)i(Library)75 +183 y Ft(end-of-history)c(\(M->\))315 238 y Fu(Mo)o(v)o(e)h(to)h(the)g +(end)h(of)f(the)g(input)h(history)l(,)f(i.e.,)g(the)g(line)i(curren)o +(tly)f(b)q(eing)g(en)o(tered.)75 324 y Ft(reverse-search-history)c +(\(C-r\))315 379 y Fu(Searc)o(h)k(bac)o(kw)o(ard)e(starting)h(at)g(the) +h(curren)o(t)f(line)j(and)d(mo)o(ving)h(`up')f(through)g(the)h(his-)315 +433 y(tory)e(as)h(necessary)l(.)20 b(This)c(is)g(an)f(incremen)o(tal)h +(searc)o(h.)75 519 y Ft(forward-search-history)c(\(C-s\))315 +574 y Fu(Searc)o(h)j(forw)o(ard)e(starting)h(at)h(the)f(curren)o(t)h +(line)h(and)f(mo)o(ving)g(`do)o(wn')f(through)g(the)h(the)315 +629 y(history)g(as)g(necessary)l(.)20 b(This)c(is)g(an)f(incremen)o +(tal)h(searc)o(h.)75 715 y Ft(non-incremental-reverse-se)o(arch-hi)o +(story)c(\(M-p\))315 769 y Fu(Searc)o(h)k(bac)o(kw)o(ard)e(starting)h +(at)g(the)h(curren)o(t)f(line)j(and)d(mo)o(ving)h(`up')f(through)g(the) +h(his-)315 824 y(tory)h(as)h(necessary)g(using)h(a)e(non-incremen)o +(tal)j(searc)o(h)e(for)f(a)h(string)g(supplied)i(b)o(y)e(the)315 +879 y(user.)75 965 y Ft(non-incremental-forward-se)o(arch-hi)o(story)12 +b(\(M-n\))315 1019 y Fu(Searc)o(h)j(forw)o(ard)e(starting)h(at)h(the)f +(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)o(wn')f(through)g(the)h(the) +315 1074 y(history)e(as)g(necessary)h(using)g(a)f(non-incremen)o(tal)i +(searc)o(h)e(for)g(a)g(string)g(supplied)j(b)o(y)d(the)315 +1129 y(user.)75 1215 y Ft(history-search-forward)f(\(\))315 +1270 y Fu(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)h(for)f +(the)h(string)g(of)f(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315 +1324 y(start)15 b(of)h(the)h(curren)o(t)f(line)i(and)e(the)h(curren)o +(t)f(cursor)g(p)q(osition)i(\(the)e Fm(p)q(oin)o(t)q +Fu(\).)23 b(This)17 b(is)g(a)315 1379 y(non-incremen)o(tal)g(searc)o +(h.)i(By)d(default,)f(this)h(command)f(is)h(un)o(b)q(ound.)75 +1465 y Ft(history-search-backward)c(\(\))315 1520 y Fu(Searc)o(h)18 +b(bac)o(kw)o(ard)e(through)h(the)h(history)f(for)g(the)g(string)h(of)f +(c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1575 y(start)e(of)h(the)h +(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o(t.)28 b(This)18 +b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27 b(By)315 +1629 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75 +1715 y Ft(yank-nth-arg)e(\(M-C-y\))315 1770 y Fu(Insert)f(the)g +(\014rst)g(argumen)o(t)f(to)g(the)i(previous)f(command)g(\(usually)h +(the)f(second)h(w)o(ord)e(on)315 1825 y(the)i(previous)i(line\).)21 +b(With)14 b(an)h(argumen)o(t)e Fm(n)p Fu(,)i(insert)f(the)h +Fm(n)p Fu(th)f(w)o(ord)g(from)g(the)g(previous)315 1879 +y(command)f(\(the)h(w)o(ords)f(in)h(the)g(previous)g(command)g(b)q +(egin)h(with)f(w)o(ord)e(0\).)19 b(A)14 b(negativ)o(e)315 +1934 y(argumen)o(t)g(inserts)i(the)f Fm(n)p Fu(th)h(w)o(ord)e(from)h +(the)g(end)h(of)e(the)i(previous)g(command.)75 2020 y +Ft(yank-last-arg)d(\(M-.,)i(M-_\))315 2075 y Fu(Insert)j(last)f +(argumen)o(t)g(to)g(the)g(previous)i(command)e(\(the)g(last)h(w)o(ord)f +(of)g(the)g(previous)315 2130 y(history)e(en)o(try\).)20 +b(With)15 b(an)g(argumen)o(t,)g(b)q(eha)o(v)o(e)g(exactly)h(lik)o(e)g +Ft(yank-nth-arg)p Fu(.)j(Succes-)315 2184 y(siv)o(e)f(calls)g(to)f +Ft(yank-last-arg)e Fu(mo)o(v)o(e)i(bac)o(k)g(through)g(the)g(history)g +(list,)i(inserting)f(the)315 2239 y(last)d(argumen)o(t)g(of)f(eac)o(h)i +(line)g(in)g(turn.)75 2363 y Fl(1.4.3)30 b(Commands)21 +b(F)-5 b(or)19 b(Changing)i(T)-5 b(ext)75 2481 y Ft(delete-char)14 +b(\(C-d\))315 2536 y Fu(Delete)j(the)f(c)o(haracter)g(under)h(the)f +(cursor.)23 b(If)16 b(the)h(cursor)f(is)h(at)e(the)i(b)q(eginning)h(of) +e(the)315 2591 y(line,)j(there)e(are)g(no)g(c)o(haracters)f(in)i(the)g +(line,)h(and)e(the)g(last)g(c)o(haracter)g(t)o(yp)q(ed)g(w)o(as)f(not) +315 2646 y(b)q(ound)g(to)f Ft(delete-char)p Fu(,)e(then)j(return)f +Ft(EOF)p Fu(.)p eop +%%Page: 13 15 +13 14 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 +b(13)75 183 y Ft(backward-delete-char)12 b(\(Rubout\))315 +238 y Fu(Delete)k(the)f(c)o(haracter)f(b)q(ehind)j(the)f(cursor.)j(A)c +(n)o(umeric)h(argumen)o(t)e(means)i(to)e(kill)j(the)315 +293 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75 +378 y Ft(quoted-insert)c(\(C-q,)i(C-v\))315 432 y Fu(Add)j(the)f(next)g +(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)g(v)o(erbatim.)26 +b(This)18 b(is)f(ho)o(w)g(to)g(insert)g(k)o(ey)315 487 +y(sequences)f(lik)o(e)605 485 y Fo(h)p 617 459 56 2 v +617 487 a Fn(C-q)p 617 495 V 671 485 a Fo(i)685 487 y +Fu(,)f(for)g(example.)75 572 y Ft(tab-insert)f(\(M-TAB\))315 +627 y Fu(Insert)h(a)g(tab)g(c)o(haracter.)75 712 y Ft(self-insert)f +(\(a,)g(b,)h(A,)g(1,)g(!,)g(...\))315 766 y Fu(Insert)g(y)o(ourself.)75 +851 y Ft(transpose-chars)e(\(C-t\))315 906 y Fu(Drag)i(the)h(c)o +(haracter)f(b)q(efore)h(the)h(cursor)e(forw)o(ard)g(o)o(v)o(er)g(the)h +(c)o(haracter)f(at)h(the)g(cursor,)315 961 y(mo)o(ving)i(the)f(cursor)h +(forw)o(ard)e(as)i(w)o(ell.)28 b(If)18 b(the)g(insertion)h(p)q(oin)o(t) +f(is)g(at)f(the)h(end)h(of)e(the)315 1016 y(line,)c(then)e(this)h +(transp)q(oses)e(the)h(last)g(t)o(w)o(o)f(c)o(haracters)g(of)h(the)g +(line.)20 b(Negativ)o(e)11 b(argumen)o(ts)315 1070 y(don't)k(w)o(ork.) +75 1155 y Ft(transpose-words)e(\(M-t\))315 1210 y Fu(Drag)j(the)h(w)o +(ord)f(b)q(ehind)k(the)d(cursor)f(past)h(the)g(w)o(ord)g(in)g(fron)o(t) +g(of)f(the)h(cursor)g(mo)o(ving)315 1265 y(the)e(cursor)g(o)o(v)o(er)g +(that)f(w)o(ord)g(as)h(w)o(ell.)75 1350 y Ft(upcase-word)f(\(M-u\))315 +1404 y Fu(Upp)q(ercase)j(the)f(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o +(ord.)22 b(With)16 b(a)g(negativ)o(e)g(argumen)o(t,)f(upp)q(er-)315 +1459 y(case)g(the)g(previous)h(w)o(ord,)f(but)g(do)g(not)g(mo)o(v)o(e)f +(the)i(cursor.)75 1544 y Ft(downcase-word)d(\(M-l\))315 +1599 y Fu(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))h +(w)o(ord.)17 b(With)11 b(a)g(negativ)o(e)g(argumen)o(t,)f(lo)o(w)o +(ercase)315 1654 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o +(v)o(e)f(the)h(cursor.)75 1738 y Ft(capitalize-word)e(\(M-c\))315 +1793 y Fu(Capitalize)f(the)f(curren)o(t)f(\(or)g(follo)o(wing\))h(w)o +(ord.)18 b(With)11 b(a)f(negativ)o(e)h(argumen)o(t,)f(capitalize)315 +1848 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f +(the)h(cursor.)75 1970 y Fl(1.4.4)30 b(Killing)20 b(And)h(Y)-5 +b(anking)75 2087 y Ft(kill-line)14 b(\(C-k\))315 2142 +y Fu(Kill)j(the)f(text)e(from)h(the)g(curren)o(t)g(cursor)g(p)q +(osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 2226 +y Ft(backward-kill-line)e(\(C-x)h(Rubout\))315 2281 y +Fu(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g(line.) +75 2366 y Ft(unix-line-discard)e(\(C-u\))315 2421 y Fu(Kill)18 +b(bac)o(kw)o(ard)d(from)g(the)h(cursor)g(to)f(the)h(b)q(eginning)i(of)e +(the)g(curren)o(t)g(line.)24 b(The)16 b(killed)315 2476 +y(text)f(is)g(sa)o(v)o(ed)g(on)g(the)h(kill-ring.)75 +2560 y Ft(kill-whole-line)d(\(\))315 2615 y Fu(Kill)h(all)e(c)o +(haracters)f(on)g(the)g(curren)o(t)h(line,)h(no)f(matter)e(where)h(the) +h(cursor)f(is.)19 b(By)12 b(default,)315 2670 y(this)k(is)f(un)o(b)q +(ound.)p eop +%%Page: 14 16 +14 15 bop 75 -58 a Fu(14)1299 b(GNU)15 b(Readline)i(Library)75 +183 y Ft(kill-word)d(\(M-d\))315 238 y Fu(Kill)i(from)d(the)i(cursor)e +(to)h(the)g(end)g(of)g(the)g(curren)o(t)g(w)o(ord,)f(or)h(if)g(b)q(et)o +(w)o(een)g(w)o(ords,)g(to)f(the)315 293 y(end)j(of)f(the)g(next)g(w)o +(ord.)k(W)l(ord)c(b)q(oundaries)i(are)e(the)g(same)g(as)g +Ft(forward-word)p Fu(.)75 372 y Ft(backward-kill-word)e(\(M-DEL\))315 +426 y Fu(Kill)18 b(the)d(w)o(ord)g(b)q(ehind)j(the)d(cursor.)20 +b(W)l(ord)c(b)q(oundaries)g(are)f(the)h(same)f(as)g Ft(backward-)315 +481 y(word)p Fu(.)75 560 y Ft(unix-word-rubout)e(\(C-w\))315 +615 y Fu(Kill)20 b(the)d(w)o(ord)g(b)q(ehind)j(the)d(cursor,)h(using)g +(white)g(space)g(as)f(a)g(w)o(ord)g(b)q(oundary)l(.)28 +b(The)315 670 y(killed)17 b(text)e(is)h(sa)o(v)o(ed)f(on)g(the)g +(kill-ring.)75 749 y Ft(delete-horizontal-space)d(\(\))315 +803 y Fu(Delete)k(all)g(spaces)f(and)h(tabs)e(around)i(p)q(oin)o(t.)k +(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 882 +y Ft(kill-region)e(\(\))315 937 y Fu(Kill)h(the)e(text)f(b)q(et)o(w)o +(een)h(the)g(p)q(oin)o(t)g(and)g(the)g Fm(mark)i Fu(\(sa)o(v)o(ed)d +(cursor)g(p)q(osition\).)20 b(This)13 b(text)315 992 +y(is)j(referred)f(to)g(as)f(the)i Fm(region)p Fu(.)k(By)15 +b(default,)h(this)f(command)g(is)h(un)o(b)q(ound.)75 +1071 y Ft(copy-region-as-kill)d(\(\))315 1125 y Fu(Cop)o(y)j(the)i +(text)e(in)i(the)f(region)g(to)g(the)g(kill)h(bu\013er,)f(so)g(it)g +(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o(a)o(y)l(.)315 +1180 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q(ound.)75 +1259 y Ft(copy-backward-word)d(\(\))315 1314 y Fu(Cop)o(y)19 +b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i(kill)h +(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315 +1369 y(same)c(as)g Ft(backward-word)p Fu(.)j(By)d(default,)g(this)h +(command)f(is)h(un)o(b)q(ound.)75 1448 y Ft(copy-forward-word)d(\(\)) +315 1502 y Fu(Cop)o(y)i(the)h(w)o(ord)e(follo)o(wing)j(p)q(oin)o(t)f +(to)f(the)g(kill)j(bu\013er.)i(The)c(w)o(ord)f(b)q(oundaries)i(are)e +(the)315 1557 y(same)g(as)g Ft(forward-word)p Fu(.)j(By)d(default,)h +(this)f(command)g(is)h(un)o(b)q(ound.)75 1636 y Ft(yank)f(\(C-y\))315 +1691 y Fu(Y)l(ank)g(the)h(top)f(of)f(the)i(kill)h(ring)e(in)o(to)g(the) +h(bu\013er)f(at)f(the)i(curren)o(t)f(cursor)g(p)q(osition.)75 +1770 y Ft(yank-pop)f(\(M-y\))315 1824 y Fu(Rotate)j(the)g(kill-ring,)j +(and)d(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f +(this)h(if)f(the)h(prior)315 1879 y(command)d(is)h(y)o(ank)f(or)f(y)o +(ank-p)q(op.)75 1990 y Fl(1.4.5)30 b(Sp)r(ecifying)20 +b(Numeric)h(Argumen)n(ts)75 2098 y Ft(digit-argument)13 +b(\(M-0,)i(M-1,)f(...)h(M--\))315 2153 y Fu(Add)f(this)g(digit)g(to)f +(the)h(argumen)o(t)e(already)i(accum)o(ulating,)g(or)f(start)f(a)h(new) +h(argumen)o(t.)315 2206 y Fo(h)p 327 2180 50 2 v 327 +2208 a Fn(M{)p 327 2215 V 375 2206 a Fo(i)405 2208 y +Fu(starts)g(a)h(negativ)o(e)g(argumen)o(t.)75 2286 y +Ft(universal-argument)e(\(\))315 2341 y Fu(This)g(is)h(another)e(w)o(a) +o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)13 +b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315 +2396 y(or)h(more)h(digits,)g(optionally)h(with)f(a)g(leading)h(min)o +(us)f(sign,)g(those)g(digits)g(de\014ne)h(the)f(ar-)315 +2451 y(gumen)o(t.)k(If)c(the)g(command)f(is)h(follo)o(w)o(ed)g(b)o(y)g +(digits,)g(executing)g Ft(universal-argument)315 2506 +y Fu(again)h(ends)g(the)g(n)o(umeric)h(argumen)o(t,)e(but)h(is)h +(otherwise)f(ignored.)22 b(As)16 b(a)g(sp)q(ecial)h(case,)315 +2560 y(if)g(this)g(command)f(is)h(immediately)h(follo)o(w)o(ed)f(b)o(y) +f(a)g(c)o(haracter)g(that)g(is)h(neither)g(a)f(digit)315 +2615 y(or)d(min)o(us)i(sign,)f(the)g(argumen)o(t)g(coun)o(t)f(for)h +(the)g(next)g(command)g(is)g(m)o(ultiplied)j(b)o(y)d(four.)315 +2670 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f +(executing)i(this)f(function)h(the)e(\014rst)h(time)p +eop +%%Page: 15 17 +15 16 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 +b(15)315 183 y(mak)o(es)15 b(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h +(second)g(time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315 +238 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f +(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 341 y Fl(1.4.6)30 +b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5 +b(ou)75 444 y Ft(complete)14 b(\(TAB\))315 499 y Fu(A)o(ttempt)j(to)g +(do)h(completion)g(on)g(the)g(text)f(b)q(efore)h(the)g(cursor.)27 +b(This)18 b(is)g(application-)315 554 y(sp)q(eci\014c.)k(Generally)l(,) +15 b(if)g(y)o(ou)g(are)f(t)o(yping)h(a)g(\014lename)g(argumen)o(t,)f(y) +o(ou)g(can)h(do)g(\014lename)315 609 y(completion;)h(if)g(y)o(ou)f(are) +g(t)o(yping)h(a)f(command,)f(y)o(ou)h(can)h(do)f(command)g(completion;) +h(if)315 663 y(y)o(ou)i(are)g(t)o(yping)g(in)h(a)f(sym)o(b)q(ol)h(to)e +(GDB,)h(y)o(ou)g(can)g(do)g(sym)o(b)q(ol)h(name)f(completion;)i(if)315 +718 y(y)o(ou)13 b(are)g(t)o(yping)g(in)h(a)f(v)m(ariable)h(to)f(Bash,)g +(y)o(ou)g(can)g(do)g(v)m(ariable)h(name)f(completion,)i(and)315 +773 y(so)g(on.)75 847 y Ft(possible-completions)d(\(M-?\))315 +902 y Fu(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b)q +(efore)h(the)f(cursor.)75 976 y Ft(insert-completions)e(\(M-*\))315 +1030 y Fu(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p) +q(oin)o(t)f(that)g(w)o(ould)h(ha)o(v)o(e)f(b)q(een)h(generated)315 +1085 y(b)o(y)f Ft(possible-completions)p Fu(.)75 1159 +y Ft(menu-complete)e(\(\))315 1214 y Fu(Similar)g(to)f +Ft(complete)p Fu(,)f(but)h(replaces)h(the)f(w)o(ord)f(to)g(b)q(e)i +(completed)f(with)h(a)e(single)j(matc)o(h)315 1269 y(from)k(the)h(list) +h(of)e(p)q(ossible)j(completions.)32 b(Rep)q(eated)20 +b(execution)g(of)f Ft(menu-complete)315 1323 y Fu(steps)h(through)g +(the)g(list)h(of)f(p)q(ossible)i(completions,)g(inserting)f(eac)o(h)f +(matc)o(h)f(in)i(turn.)315 1378 y(A)o(t)c(the)g(end)h(of)f(the)h(list)g +(of)f(completions,)i(the)e(b)q(ell)j(is)e(rung)f(and)h(the)f(original)i +(text)d(is)315 1433 y(restored.)26 b(An)17 b(argumen)o(t)g(of)g +Fm(n)g Fu(mo)o(v)o(es)g Fm(n)g Fu(p)q(ositions)h(forw)o(ard)e(in)i(the) +g(list)g(of)f(matc)o(hes;)315 1488 y(a)j(negativ)o(e)g(argumen)o(t)f +(ma)o(y)g(b)q(e)i(used)f(to)f(mo)o(v)o(e)h(bac)o(kw)o(ard)f(through)g +(the)h(list.)35 b(This)315 1543 y(command)15 b(is)h(in)o(tended)g(to)f +(b)q(e)h(b)q(ound)g(to)f Ft(TAB)p Fu(,)f(but)h(is)h(un)o(b)q(ound)g(b)o +(y)f(default.)75 1646 y Fl(1.4.7)30 b(Keyb)r(oard)20 +b(Macros)75 1749 y Ft(start-kbd-macro)13 b(\(C-x)i(\(\))315 +1804 y Fu(Begin)h(sa)o(ving)f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o +(to)f(the)g(curren)o(t)g(k)o(eyb)q(oard)g(macro.)75 1878 +y Ft(end-kbd-macro)e(\(C-x)i(\)\))315 1932 y Fu(Stop)f(sa)o(ving)f(the) +h(c)o(haracters)f(t)o(yp)q(ed)h(in)o(to)f(the)h(curren)o(t)g(k)o(eyb)q +(oard)f(macro)g(and)h(sa)o(v)o(e)f(the)315 1987 y(de\014nition.)75 +2061 y Ft(call-last-kbd-macro)g(\(C-x)h(e\))315 2116 +y Fu(Re-execute)19 b(the)f(last)f(k)o(eyb)q(oard)h(macro)f(de\014ned,)i +(b)o(y)e(making)h(the)g(c)o(haracters)e(in)j(the)315 +2171 y(macro)14 b(app)q(ear)i(as)f(if)g(t)o(yp)q(ed)h(at)e(the)i(k)o +(eyb)q(oard.)75 2274 y Fl(1.4.8)30 b(Some)20 b(Miscellaneous)h +(Commands)75 2377 y Ft(re-read-init-file)13 b(\(C-x)h(C-r\))315 +2432 y Fu(Read)e(in)g(the)f(con)o(ten)o(ts)g(of)f(the)i(inputrc)g +(\014le,)g(and)g(incorp)q(orate)f(an)o(y)g(bindings)i(or)e(v)m(ariable) +315 2487 y(assignmen)o(ts)k(found)h(there.)75 2560 y +Ft(abort)e(\(C-g\))315 2615 y Fu(Ab)q(ort)f(the)g(curren)o(t)h(editing) +g(command)f(and)h(ring)f(the)h(terminal's)f(b)q(ell)i(\(sub)s(ject)e +(to)g(the)315 2670 y(setting)i(of)g Ft(bell-style)p Fu(\).)p +eop +%%Page: 16 18 +16 17 bop 75 -58 a Fu(16)1299 b(GNU)15 b(Readline)i(Library)75 +183 y Ft(do-uppercase-version)12 b(\(M-a,)j(M-b,)f(M-)p +Fm(x)p Ft(,)h Fj(:)8 b(:)g(:)n Ft(\))315 238 y Fu(If)14 +b(the)g(meta\014ed)g(c)o(haracter)f Fm(x)k Fu(is)d(lo)o(w)o(ercase,)g +(run)g(the)g(command)f(that)h(is)g(b)q(ound)h(to)e(the)315 +293 y(corresp)q(onding)j(upp)q(ercase)g(c)o(haracter.)75 +372 y Ft(prefix-meta)e(\(ESC\))315 427 y Fu(Mak)o(e)j(the)i(next)f(c)o +(haracter)f(t)o(yp)q(ed)i(b)q(e)g(meta\014ed.)28 b(This)19 +b(is)g(for)e(k)o(eyb)q(oards)h(without)g(a)315 482 y(meta)d(k)o(ey)l(.) +20 b(T)o(yping)15 b(`)p Ft(ESC)g(f)p Fu(')f(is)i(equiv)m(alen)o(t)h(to) +d(t)o(yping)i(`)p Ft(M-f)p Fu('.)75 561 y Ft(undo)f(\(C-_,)f(C-x)h +(C-u\))315 616 y Fu(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q +(ered)g(for)e(eac)o(h)h(line.)75 695 y Ft(revert-line)f(\(M-r\))315 +750 y Fu(Undo)j(all)g(c)o(hanges)g(made)f(to)g(this)h(line.)26 +b(This)17 b(is)g(lik)o(e)h(executing)f(the)g Ft(undo)f +Fu(command)315 805 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g +(b)q(eginning.)75 884 y Ft(tilde-expand)f(\(M-~\))315 +939 y Fu(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o +(ord.)75 1018 y Ft(set-mark)f(\(C-@\))315 1073 y Fu(Set)g(the)f(mark)g +(to)g(the)h(curren)o(t)g(p)q(oin)o(t.)19 b(If)14 b(a)g(n)o(umeric)g +(argumen)o(t)f(is)h(supplied,)i(the)e(mark)315 1128 y(is)i(set)f(to)f +(that)h(p)q(osition.)75 1207 y Ft(exchange-point-and-mark)d(\(C-x)j +(C-x\))315 1262 y Fu(Sw)o(ap)g(the)h(p)q(oin)o(t)g(with)g(the)g(mark.)k +(The)c(curren)o(t)f(cursor)h(p)q(osition)g(is)g(set)g(to)f(the)g(sa)o +(v)o(ed)315 1317 y(p)q(osition,)h(and)f(the)h(old)f(cursor)g(p)q +(osition)h(is)g(sa)o(v)o(ed)f(as)g(the)g(mark.)75 1396 +y Ft(character-search)e(\(C-]\))315 1451 y Fu(A)f(c)o(haracter)g(is)h +(read)g(and)f(p)q(oin)o(t)h(is)g(mo)o(v)o(ed)f(to)g(the)g(next)h(o)q +(ccurrence)g(of)f(that)g(c)o(haracter.)315 1506 y(A)j(negativ)o(e)h +(coun)o(t)f(searc)o(hes)g(for)f(previous)i(o)q(ccurrences.)75 +1585 y Ft(character-search-backward)c(\(M-C-]\))315 1640 +y Fu(A)22 b(c)o(haracter)g(is)h(read)f(and)h(p)q(oin)o(t)g(is)g(mo)o(v) +o(ed)f(to)g(the)g(previous)h(o)q(ccurrence)h(of)e(that)315 +1695 y(c)o(haracter.)d(A)c(negativ)o(e)h(coun)o(t)f(searc)o(hes)g(for)f +(subsequen)o(t)i(o)q(ccurrences.)75 1774 y Ft(insert-comment)d(\(M-#\)) +315 1829 y Fu(The)19 b(v)m(alue)i(of)e(the)g Ft(comment-begin)e +Fu(v)m(ariable)k(is)f(inserted)g(at)e(the)i(b)q(eginning)h(of)e(the)315 +1884 y(curren)o(t)c(line,)i(and)e(the)g(line)i(is)f(accepted)g(as)e(if) +i(a)f(newline)i(had)f(b)q(een)g(t)o(yp)q(ed.)75 1963 +y Ft(dump-functions)d(\(\))315 2018 y Fu(Prin)o(t)g(all)h(of)f(the)g +(functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(Readline)h +(output)e(stream.)315 2073 y(If)j(a)g(n)o(umeric)g(argumen)o(t)f(is)i +(supplied,)h(the)e(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o +(y)f(that)315 2128 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g +Fm(inputrc)k Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o +(y)f(default.)75 2207 y Ft(dump-variables)e(\(\))315 +2262 y Fu(Prin)o(t)e(all)g(of)f(the)h(settable)g(v)m(ariables)h(and)f +(their)g(v)m(alues)h(to)e(the)h(Readline)i(output)d(stream.)315 +2317 y(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)i(supplied,)h(the)e +(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o(y)f(that)315 +2371 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g Fm(inputrc)k +Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.) +75 2451 y Ft(dump-macros)f(\(\))315 2506 y Fu(Prin)o(t)j(all)h(of)e +(the)h(Readline)i(k)o(ey)e(sequences)h(b)q(ound)g(to)e(macros)g(and)h +(the)g(strings)g(they)315 2560 y(ouput.)30 b(If)19 b(a)f(n)o(umeric)i +(argumen)o(t)d(is)i(supplied,)j(the)c(output)h(is)g(formatted)e(in)i +(suc)o(h)g(a)315 2615 y(w)o(a)o(y)14 b(that)g(it)i(can)f(b)q(e)g(made)g +(part)g(of)f(an)h Fm(inputrc)k Fu(\014le.)i(This)15 b(command)g(is)h +(un)o(b)q(ound)g(b)o(y)315 2670 y(default.)p eop +%%Page: 17 19 +17 18 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 +b(17)75 183 y Fs(1.5)33 b(Readline)23 b(vi)h(Mo)r(de)137 +280 y Fu(While)13 b(the)f(Readline)j(library)d(do)q(es)g(not)g(ha)o(v)o +(e)f(a)h(full)h(set)f(of)f Ft(vi)g Fu(editing)j(functions,)f(it)f(do)q +(es)g(con)o(tain)75 334 y(enough)17 b(to)g(allo)o(w)g(simple)h(editing) +h(of)d(the)i(line.)27 b(The)17 b(Readline)i Ft(vi)e Fu(mo)q(de)g(b)q +(eha)o(v)o(es)g(as)g(sp)q(eci\014ed)i(in)75 389 y(the)c +Fp(POSIX)h Fu(1003.2)d(standard.)137 456 y(In)i(order)g(to)f(switc)o(h) +g(in)o(teractiv)o(ely)i(b)q(et)o(w)o(een)f Ft(emacs)e +Fu(and)i Ft(vi)f Fu(editing)i(mo)q(des,)f(use)f(the)h(command)75 +511 y(M-C-j)g(\(toggle-editing-mo)q(de\).)21 b(The)15 +b(Readline)j(default)d(is)h Ft(emacs)f Fu(mo)q(de.)137 +578 y(When)h(y)o(ou)e(en)o(ter)h(a)g(line)i(in)e Ft(vi)g +Fu(mo)q(de,)g(y)o(ou)g(are)f(already)i(placed)g(in)g(`insertion')f(mo)q +(de,)g(as)g(if)g(y)o(ou)75 633 y(had)e(t)o(yp)q(ed)h(an)f(`)p +Ft(i)p Fu('.)18 b(Pressing)608 631 y Fo(h)p 620 605 70 +2 v 620 633 a Fn(ESC)p 620 641 V 687 631 a Fo(i)715 633 +y Fu(switc)o(hes)13 b(y)o(ou)g(in)o(to)g(`command')f(mo)q(de,)i(where)f +(y)o(ou)g(can)g(edit)h(the)75 688 y(text)i(of)h(the)g(line)h(with)g +(the)f(standard)f Ft(vi)h Fu(mo)o(v)o(emen)o(t)f(k)o(eys,)g(mo)o(v)o(e) +g(to)h(previous)g(history)g(lines)i(with)75 743 y(`)p +Ft(k)p Fu(')14 b(and)i(subsequen)o(t)f(lines)i(with)f(`)p +Ft(j)p Fu(',)e(and)h(so)g(forth.)p eop +%%Page: 18 20 +18 19 bop 75 -58 a Fu(18)1299 b(GNU)15 b(Readline)i(Library)p +eop +%%Page: 19 21 +19 20 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(19)75 183 y Fq(2)41 b(Programming)28 +b(with)e(GNU)i(Readline)137 305 y Fu(This)16 b(c)o(hapter)f(describ)q +(es)i(the)f(in)o(terface)g(b)q(et)o(w)o(een)f(the)h(GNU)f(Readline)j +(Library)e(and)f(other)g(pro-)75 360 y(grams.)38 b(If)22 +b(y)o(ou)f(are)g(a)g(programmer,)h(and)f(y)o(ou)g(wish)i(to)d(include)k +(the)e(features)f(found)h(in)g(GNU)75 414 y(Readline)16 +b(suc)o(h)e(as)f(completion,)h(line)h(editing,)g(and)f(in)o(teractiv)o +(e)g(history)f(manipulation)i(in)g(y)o(our)d(o)o(wn)75 +469 y(programs,)i(this)h(section)h(is)g(for)e(y)o(ou.)75 +602 y Fs(2.1)33 b(Basic)22 b(Beha)n(vior)137 700 y Fu(Man)o(y)15 +b(programs)f(pro)o(vide)i(a)f(command)g(line)i(in)o(terface,)e(suc)o(h) +h(as)f Ft(mail)p Fu(,)f Ft(ftp)p Fu(,)h(and)g Ft(sh)p +Fu(.)20 b(F)l(or)15 b(suc)o(h)75 754 y(programs,)e(the)h(default)h(b)q +(eha)o(viour)g(of)f(Readline)j(is)d(su\016cien)o(t.)21 +b(This)14 b(section)h(describ)q(es)h(ho)o(w)e(to)g(use)75 +809 y(Readline)19 b(in)g(the)e(simplest)h(w)o(a)o(y)e(p)q(ossible,)j(p) +q(erhaps)f(to)f(replace)h(calls)g(in)g(y)o(our)f(co)q(de)h(to)e +Ft(gets\(\))g Fu(or)75 864 y Ft(fgets)e(\(\))p Fu(.)137 +933 y(The)j(function)h Ft(readline)c(\(\))j Fu(prin)o(ts)g(a)g(prompt)f +(and)h(then)g(reads)g(and)g(returns)g(a)g(single)h(line)g(of)75 +988 y(text)12 b(from)f(the)i(user.)19 b(The)12 b(line)i +Ft(readline)d Fu(returns)h(is)h(allo)q(cated)g(with)g +Ft(malloc)h(\(\))p Fu(;)e(y)o(ou)g(should)i Ft(free)75 +1042 y(\(\))h Fu(the)g(line)i(when)f(y)o(ou)f(are)f(done)i(with)g(it.)k +(The)15 b(declaration)h(for)f Ft(readline)f Fu(in)i(ANSI)g(C)f(is)195 +1108 y Ft(char)23 b(*readline)g(\(char)g(*)p Fm(prompt)q +Ft(\);)75 1177 y Fu(So,)15 b(one)g(migh)o(t)g(sa)o(y)195 +1243 y Ft(char)23 b(*line)g(=)h(readline)f(\("Enter)g(a)h(line:)f("\);) +75 1312 y Fu(in)12 b(order)f(to)g(read)h(a)f(line)i(of)e(text)g(from)f +(the)i(user.)19 b(The)11 b(line)j(returned)d(has)h(the)f(\014nal)h +(newline)i(remo)o(v)o(ed,)75 1366 y(so)h(only)h(the)f(text)g(remains.) +137 1435 y(If)21 b Ft(readline)e Fu(encoun)o(ters)h(an)g +Ft(EOF)g Fu(while)i(reading)f(the)f(line,)j(and)d(the)h(line)g(is)g +(empt)o(y)f(at)g(that)75 1490 y(p)q(oin)o(t,)15 b(then)g +Ft(\(char)f(*\)NULL)g Fu(is)h(returned.)21 b(Otherwise,)15 +b(the)g(line)h(is)f(ended)h(just)e(as)h(if)g(a)f(newline)j(had)75 +1545 y(b)q(een)f(t)o(yp)q(ed.)137 1614 y(If)d(y)o(ou)g(w)o(an)o(t)f +(the)h(user)g(to)f(b)q(e)i(able)g(to)e(get)g(at)h(the)g(line)h(later,)f +(\(with)1325 1612 y Fo(h)p 1338 1586 57 2 v 1338 1614 +a Fn(C-p)p 1338 1621 V 1392 1612 a Fo(i)1420 1614 y Fu(for)f +(example\),)i(y)o(ou)f(m)o(ust)75 1668 y(call)j Ft(add_history)e(\(\))h +Fu(to)f(sa)o(v)o(e)h(the)g(line)i(a)o(w)o(a)o(y)d(in)i(a)f +Fm(history)k Fu(list)d(of)e(suc)o(h)i(lines.)195 1734 +y Ft(add_history)22 b(\(line\);)75 1803 y Fu(F)l(or)15 +b(full)h(details)g(on)f(the)h(GNU)f(History)g(Library)l(,)g(see)h(the)f +(asso)q(ciated)g(man)o(ual.)137 1872 y(It)h(is)g(preferable)h(to)e(a)o +(v)o(oid)g(sa)o(ving)h(empt)o(y)f(lines)i(on)f(the)g(history)f(list,)i +(since)f(users)g(rarely)g(ha)o(v)o(e)f(a)75 1927 y(burning)h(need)g(to) +e(reuse)h(a)g(blank)g(line.)22 b(Here)15 b(is)g(a)g(function)g(whic)o +(h)h(usefully)h(replaces)e(the)g(standard)75 1981 y Ft(gets)g(\(\))f +Fu(library)i(function,)g(and)g(has)f(the)g(adv)m(an)o(tage)f(of)h(no)g +(static)g(bu\013er)h(to)e(o)o(v)o(er\015o)o(w:)195 2047 +y Ft(/*)24 b(A)f(static)g(variable)g(for)h(holding)e(the)i(line.)f(*/) +195 2099 y(static)g(char)g(*line_read)g(=)h(\(char)f(*\)NULL;)195 +2203 y(/*)h(Read)f(a)h(string,)f(and)g(return)g(a)h(pointer)f(to)g(it.) +48 b(Returns)22 b(NULL)i(on)f(EOF.)h(*/)195 2255 y(char)f(*)195 +2307 y(rl_gets)g(\(\))195 2359 y({)243 2411 y(/*)g(If)h(the)f(buffer)g +(has)h(already)f(been)g(allocated,)g(return)g(the)g(memory)314 +2462 y(to)h(the)f(free)h(pool.)f(*/)243 2514 y(if)g(\(line_read\))290 +2566 y({)338 2618 y(free)g(\(line_read\);)338 2670 y(line_read)g(=)h +(\(char)f(*\)NULL;)p eop +%%Page: 20 22 +20 21 bop 75 -58 a Fu(20)1299 b(GNU)15 b(Readline)i(Library)290 +183 y Ft(})243 287 y(/*)23 b(Get)h(a)f(line)h(from)f(the)h(user.)f(*/) +243 339 y(line_read)f(=)i(readline)f(\(""\);)243 443 +y(/*)g(If)h(the)f(line)h(has)f(any)h(text)f(in)g(it,)h(save)f(it)h(on)f +(the)h(history.)f(*/)243 495 y(if)g(\(line_read)g(&&)g(*line_read\))290 +546 y(add_history)g(\(line_read\);)243 650 y(return)g(\(line_read\);) +195 702 y(})137 771 y Fu(This)13 b(function)f(giv)o(es)h(the)e(user)h +(the)g(default)h(b)q(eha)o(viour)g(of)1169 769 y Fo(h)p +1181 742 74 2 v 1181 771 a Fn(T)m(AB)p 1181 778 V 1253 +769 a Fo(i)1280 771 y Fu(completion:)19 b(completion)13 +b(on)f(\014le)75 825 y(names.)20 b(If)c(y)o(ou)f(do)g(not)g(w)o(an)o(t) +f(Readline)k(to)c(complete)j(on)e(\014lenames,)h(y)o(ou)f(can)g(c)o +(hange)h(the)f(binding)75 880 y(of)g(the)205 878 y Fo(h)p +217 852 V 217 880 a Fn(T)m(AB)p 217 888 V 289 878 a Fo(i)319 +880 y Fu(k)o(ey)g(with)h Ft(rl_bind_key)d(\(\))p Fu(.)195 +946 y Ft(int)23 b(rl_bind_key)g(\(int)g Fm(k)o(ey)p Ft(,)h(int)f(\(*)p +Fm(function)p Ft(\)\(\)\);)137 1014 y(rl_bind_key)14 +b(\(\))h Fu(tak)o(es)g(t)o(w)o(o)g(argumen)o(ts:)20 b +Fm(k)o(ey)f Fu(is)d(the)g(c)o(haracter)f(that)g(y)o(ou)g(w)o(an)o(t)g +(to)g(bind,)i(and)75 1069 y Fm(function)i Fu(is)f(the)g(address)g(of)g +(the)g(function)g(to)g(call)h(when)f Fm(k)o(ey)k Fu(is)c(pressed.)29 +b(Binding)1628 1067 y Fo(h)p 1641 1041 V 1641 1069 a +Fn(T)m(AB)p 1641 1076 V 1712 1067 a Fo(i)1745 1069 y +Fu(to)17 b Ft(rl_)75 1124 y(insert)d(\(\))i Fu(mak)o(es)433 +1122 y Fo(h)p 446 1096 V 446 1124 a Fn(T)m(AB)p 446 1131 +V 517 1122 a Fo(i)548 1124 y Fu(insert)g(itself.)22 b +Ft(rl_bind_key)13 b(\(\))i Fu(returns)h(non-zero)g(if)g +Fm(k)o(ey)j Fu(is)d(not)f(a)g(v)m(alid)75 1178 y(ASCI)q(I)h(c)o +(haracter)f(co)q(de)h(\(b)q(et)o(w)o(een)f(0)g(and)g(255\).)137 +1247 y(Th)o(us,)g(to)g(disable)h(the)g(default)703 1245 +y Fo(h)p 716 1219 V 716 1247 a Fn(T)m(AB)p 716 1254 V +787 1245 a Fo(i)817 1247 y Fu(b)q(eha)o(vior,)g(the)f(follo)o(wing)h +(su\016ces:)195 1312 y Ft(rl_bind_key)22 b(\('\\t',)h(rl_insert\);)137 +1381 y Fu(This)14 b(co)q(de)g(should)g(b)q(e)g(executed)g(once)g(at)e +(the)h(start)f(of)h(y)o(our)g(program;)f(y)o(ou)h(migh)o(t)g(write)g(a) +g(func-)75 1435 y(tion)i(called)h Ft(initialize_readline)d(\(\))h +Fu(whic)o(h)i(p)q(erforms)e(this)h(and)g(other)g(desired)g +(initializations,)75 1490 y(suc)o(h)h(as)e(installing)k(custom)c +(completers)i(\(see)f(Section)h(2.5)f([Custom)f(Completers],)g(page)h +(30\).)75 1622 y Fs(2.2)33 b(Custom)21 b(F)-6 b(unctions)137 +1719 y Fu(Readline)15 b(pro)o(vides)e(man)o(y)e(functions)i(for)f +(manipulating)i(the)e(text)g(of)g(the)g(line,)i(but)e(it)h(isn't)f(p)q +(ossi-)75 1774 y(ble)i(to)f(an)o(ticipate)h(the)f(needs)h(of)f(all)h +(programs.)k(This)13 b(section)h(describ)q(es)h(the)e(v)m(arious)h +(functions)g(and)75 1829 y(v)m(ariables)g(de\014ned)h(within)f(the)f +(Readline)j(library)d(whic)o(h)h(allo)o(w)g(a)e(user)h(program)f(to)h +(add)g(customized)75 1884 y(functionalit)o(y)j(to)f(Readline.)75 +1998 y Fl(2.2.1)30 b(The)20 b(F)-5 b(unction)20 b(T)n(yp)r(e)137 +2095 y Fu(F)l(or)f(readabilt)o(y)l(,)h(w)o(e)f(declare)h(a)f(new)g(t)o +(yp)q(e)g(of)g(ob)s(ject,)g(called)i Fm(F)l(unction)p +Fu(.)32 b(A)19 b Ft(Function)f Fu(is)h(a)g(C)75 2150 +y(function)d(whic)o(h)g(returns)f(an)g Ft(int)p Fu(.)20 +b(The)15 b(t)o(yp)q(e)g(declaration)h(for)f Ft(Function)f +Fu(is:)75 2218 y Ft(typedef)g(int)h(Function)f(\(\);)137 +2287 y Fu(The)21 b(reason)g(for)f(declaring)i(this)g(new)f(t)o(yp)q(e)g +(is)g(to)g(mak)o(e)f(it)h(easier)g(to)g(write)g(co)q(de)g(describing)75 +2342 y(p)q(oin)o(ters)16 b(to)f(C)g(functions.)21 b(Let)16 +b(us)f(sa)o(y)g(w)o(e)g(had)h(a)f(v)m(ariable)i(called)g +Fm(func)i Fu(whic)o(h)d(w)o(as)e(a)i(p)q(oin)o(ter)f(to)g(a)75 +2396 y(function.)21 b(Instead)15 b(of)g(the)g(classic)i(C)e +(declaration)137 2465 y Ft(int)g(\(*\)\(\)func;)75 2533 +y Fu(w)o(e)g(ma)o(y)f(write)137 2602 y Ft(Function)g(*func;)75 +2670 y Fu(Similarly)l(,)j(there)e(are)p eop +%%Page: 21 23 +21 22 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(21)195 183 y Ft(typedef)23 b(void)g(VFunction)g(\(\);) +195 235 y(typedef)g(char)g(*CPFunction)g(\(\);)g Fu(and)195 +287 y Ft(typedef)g(char)g(**CPPFunction)f(\(\);)75 353 +y Fu(for)17 b(functions)h(returning)g(no)f(v)m(alue,)h +Ft(pointer)d(to)g(char)p Fu(,)h(and)i Ft(pointer)c(to)h(pointer)f(to)h +(char)p Fu(,)i(re-)75 408 y(sp)q(ectiv)o(ely)l(.)75 517 +y Fl(2.2.2)30 b(W)-5 b(riting)20 b(a)h(New)f(F)-5 b(unction)137 +612 y Fu(In)17 b(order)f(to)f(write)h(new)h(functions)g(for)e +(Readline,)j(y)o(ou)e(need)h(to)e(kno)o(w)h(the)g(calling)i(con)o(v)o +(en)o(tions)75 667 y(for)g(k)o(eyb)q(oard-in)o(v)o(ok)o(ed)h +(functions,)g(and)g(the)f(names)h(of)f(the)g(v)m(ariables)i(that)d +(describ)q(e)k(the)d(curren)o(t)75 722 y(state)c(of)h(the)g(line)i +(read)e(so)g(far.)137 788 y(The)h(calling)h(sequence)f(for)f(a)f +(command)i Ft(foo)e Fu(lo)q(oks)i(lik)o(e)195 851 y Ft(foo)23 +b(\(int)h(count,)f(int)g(key\))75 917 y Fu(where)18 b +Fm(coun)o(t)h Fu(is)f(the)g(n)o(umeric)h(argumen)o(t)e(\(or)h(1)f(if)i +(defaulted\))f(and)g Fm(k)o(ey)k Fu(is)d(the)f(k)o(ey)g(that)f(in)o(v)o +(ok)o(ed)75 972 y(this)f(function.)137 1038 y(It)c(is)g(completely)h +(up)f(to)f(the)g(function)i(as)e(to)g(what)g(should)h(b)q(e)g(done)g +(with)g(the)g(n)o(umeric)g(argumen)o(t.)75 1093 y(Some)20 +b(functions)h(use)f(it)g(as)g(a)g(rep)q(eat)g(coun)o(t,)g(some)g(as)g +(a)f(\015ag,)i(and)f(others)g(to)f(c)o(ho)q(ose)h(alternate)75 +1148 y(b)q(eha)o(vior)i(\(refreshing)g(the)g(curren)o(t)f(line)j(as)d +(opp)q(osed)h(to)f(refreshing)i(the)e(screen,)j(for)d(example\).)75 +1203 y(Some)c(c)o(ho)q(ose)f(to)g(ignore)h(it.)24 b(In)18 +b(general,)f(if)g(a)f(function)h(uses)g(the)g(n)o(umeric)h(argumen)o(t) +d(as)i(a)f(rep)q(eat)75 1258 y(coun)o(t,)e(it)g(should)h(b)q(e)f(able)h +(to)e(do)h(something)h(useful)g(with)f(b)q(oth)g(negativ)o(e)g(and)g(p) +q(ositiv)o(e)h(argumen)o(ts.)75 1312 y(A)o(t)g(the)g(v)o(ery)g(least,)g +(it)g(should)h(b)q(e)g(a)o(w)o(are)e(that)h(it)g(can)g(b)q(e)h(passed)g +(a)f(negativ)o(e)g(argumen)o(t.)75 1438 y Fs(2.3)33 b(Readline)23 +b(V)-6 b(ariables)137 1533 y Fu(These)16 b(v)m(ariables)g(are)f(a)o(v)m +(ailable)i(to)e(function)h(writers.)1661 1622 y(V)l(ariable)-1749 +b Fi(char)20 b(*)f Fh(rl)p 286 1622 18 3 v 21 w(line)p +395 1622 V 23 w(bu\013er)195 1677 y Fu(This)c(is)f(the)h(line)h +(gathered)e(so)f(far.)19 b(Y)l(ou)c(are)f(w)o(elcome)g(to)g(mo)q(dify)g +(the)h(con)o(ten)o(ts)e(of)h(the)195 1732 y(line,)i(but)g(see)f +(Section)h(2.4.5)e([Allo)o(wing)i(Undoing],)f(page)g(25.)1661 +1821 y(V)l(ariable)-1749 b Fi(int)20 b Fh(rl)p 215 1821 +V 21 w(p)r(oin)n(t)195 1876 y Fu(The)15 b(o\013set)g(of)f(the)i(curren) +o(t)f(cursor)g(p)q(osition)h(in)g Ft(rl_line_buffer)d +Fu(\(the)i Fm(p)q(oin)o(t)q Fu(\).)1661 1965 y(V)l(ariable)-1749 +b Fi(int)20 b Fh(rl)p 215 1965 V 21 w(end)195 2019 y +Fu(The)e(n)o(um)o(b)q(er)g(of)f(c)o(haracters)g(presen)o(t)h(in)g +Ft(rl_line_buffer)p Fu(.)26 b(When)18 b Ft(rl_point)e +Fu(is)j(at)195 2074 y(the)c(end)h(of)f(the)g(line,)i +Ft(rl_point)d Fu(and)h Ft(rl_end)f Fu(are)h(equal.)1661 +2163 y(V)l(ariable)-1749 b Fi(int)20 b Fh(rl)p 215 2163 +V 21 w(mark)195 2218 y Fu(The)14 b(mark)e(\(sa)o(v)o(ed)h(p)q +(osition\))h(in)g(the)g(curren)o(t)f(line.)21 b(If)14 +b(set,)f(the)h(mark)e(and)i(p)q(oin)o(t)g(de\014ne)195 +2273 y(a)h Fm(region)p Fu(.)1661 2362 y(V)l(ariable)-1749 +b Fi(int)20 b Fh(rl)p 215 2362 V 21 w(done)195 2417 y +Fu(Setting)j(this)g(to)f(a)h(non-zero)g(v)m(alue)h(causes)f(Readline)i +(to)d(return)h(the)g(curren)o(t)f(line)195 2471 y(immediately)l(.)1661 +2560 y(V)l(ariable)-1749 b Fi(int)20 b Fh(rl)p 215 2560 +V 21 w(p)r(ending)p 436 2560 V 20 w(input)195 2615 y +Fu(Setting)15 b(this)h(to)f(a)f(v)m(alue)j(mak)o(es)d(it)i(the)f(next)g +(k)o(eystrok)o(e)f(read.)20 b(This)c(is)f(a)g(w)o(a)o(y)f(to)h(stu\013) +195 2670 y(a)g(single)h(c)o(haracter)f(in)o(to)g(the)g(input)i(stream.) +p eop +%%Page: 22 24 +22 23 bop 75 -58 a Fu(22)1299 b(GNU)15 b(Readline)i(Library)1661 +183 y(V)l(ariable)-1749 b Fi(char)20 b(*)f Fh(rl)p 286 +183 18 3 v 21 w(prompt)195 238 y Fu(The)14 b(prompt)f(Readline)j(uses.) +k(This)14 b(is)g(set)g(from)f(the)g(argumen)o(t)g(to)g +Ft(readline)h(\(\))p Fu(,)g(and)195 293 y(should)i(not)f(b)q(e)h +(assigned)g(to)e(directly)l(.)1661 399 y(V)l(ariable)-1749 +b Fi(char)20 b(*)f Fh(rl)p 286 399 V 21 w(library)p 475 +399 V 22 w(v)n(ersion)195 453 y Fu(The)c(v)o(ersion)h(n)o(um)o(b)q(er)f +(of)g(this)h(revision)g(of)f(the)g(library)l(.)1661 559 +y(V)l(ariable)-1749 b Fi(char)20 b(*)f Fh(rl)p 286 559 +V 21 w(terminal)p 518 559 V 21 w(name)195 614 y Fu(The)c(terminal)h(t)o +(yp)q(e,)f(used)h(for)f(initialization.)1661 720 y(V)l(ariable)-1749 +b Fi(char)20 b(*)f Fh(rl)p 286 720 V 21 w(readline)p +505 720 V 22 w(name)195 774 y Fu(This)d(v)m(ariable)h(is)f(set)f(to)g +(a)g(unique)i(name)f(b)o(y)f(eac)o(h)g(application)j(using)e(Readline.) +23 b(The)195 829 y(v)m(alue)12 b(allo)o(ws)e(conditional)i(parsing)f +(of)f(the)g(inputrc)h(\014le)h(\(see)e(Section)h(1.3.2)e([Conditional) +195 884 y(Init)16 b(Constructs],)e(page)h(7\).)1661 990 +y(V)l(ariable)-1749 b Fi(FILE)20 b(*)f Fh(rl)p 286 990 +V 21 w(instream)195 1044 y Fu(The)c(stdio)h(stream)e(from)h(whic)o(h)h +(Readline)h(reads)e(input.)1661 1150 y(V)l(ariable)-1749 +b Fi(FILE)20 b(*)f Fh(rl)p 286 1150 V 21 w(outstream)195 +1205 y Fu(The)c(stdio)h(stream)e(to)h(whic)o(h)h(Readline)h(p)q +(erforms)e(output.)1661 1311 y(V)l(ariable)-1749 b Fi(Function)20 +b(*)g Fh(rl)p 391 1311 V 21 w(startup)p 595 1311 V 20 +w(ho)r(ok)195 1365 y Fu(If)15 b(non-zero,)f(this)h(is)g(the)f(address)h +(of)e(a)h(function)i(to)d(call)j(just)e(b)q(efore)h Ft(readline)e +Fu(prin)o(ts)195 1420 y(the)i(\014rst)g(prompt.)1661 +1526 y(V)l(ariable)-1749 b Fi(Function)20 b(*)g Fh(rl)p +391 1526 V 21 w(ev)n(en)n(t)p 544 1526 V 22 w(ho)r(ok)195 +1581 y Fu(If)d(non-zero,)f(this)h(is)f(the)h(address)f(of)g(a)g +(function)h(to)f(call)h(p)q(erio)q(dically)j(when)c(readline)195 +1636 y(is)g(w)o(aiting)f(for)g(terminal)h(input.)1661 +1741 y(V)l(ariable)-1749 b Fi(Function)20 b(*)g Fh(rl)p +391 1741 V 21 w(getc)p 514 1741 V 21 w(function)195 1796 +y Fu(If)13 b(non-zero,)g Ft(readline)e Fu(will)k(call)e(indirectly)i +(through)d(this)h(p)q(oin)o(ter)g(to)f(get)g(a)h(c)o(haracter)195 +1851 y(from)i(the)i(input)g(stream.)22 b(By)16 b(default,)h(it)f(is)h +(set)f(to)f Ft(rl_getc)p Fu(,)g(the)h(default)h Ft(readline)195 +1906 y Fu(c)o(haracter)d(input)j(function)f(\(see)f(Section)h(2.4.8)e +([Utilit)o(y)h(F)l(unctions],)h(page)f(27\).)1661 2011 +y(V)l(ariable)-1749 b Fi(VFunction)20 b(*)g Fh(rl)p 417 +2011 V 21 w(redispla)n(y)p 661 2011 V 22 w(function)195 +2066 y Fu(If)g(non-zero,)h Ft(readline)d Fu(will)j(call)g(indirectly)h +(through)d(this)h(p)q(oin)o(ter)h(to)e(up)q(date)h(the)195 +2121 y(displa)o(y)h(with)f(the)g(curren)o(t)g(con)o(ten)o(ts)g(of)f +(the)h(editing)i(bu\013er.)34 b(By)20 b(default,)h(it)g(is)f(set)195 +2176 y(to)f Ft(rl_redisplay)p Fu(,)f(the)i(default)g +Ft(readline)e Fu(redispla)o(y)j(function)f(\(see)f(Section)i(2.4.6)195 +2231 y([Redispla)o(y],)16 b(page)f(26\).)1661 2336 y(V)l(ariable)-1749 +b Fi(Keymap)20 b Fh(rl)p 293 2336 V 21 w(executing)p +551 2336 V 22 w(k)n(eymap)195 2391 y Fu(This)g(v)m(ariable)g(is)f(set)g +(to)f(the)h(k)o(eymap)g(\(see)g(Section)h(2.4.2)d([Keymaps],)i(page)g +(23\))f(in)195 2446 y(whic)o(h)e(the)f(curren)o(tly)h(executing)g +(readline)h(function)f(w)o(as)f(found.)1661 2552 y(V)l(ariable)-1749 +b Fi(Keymap)20 b Fh(rl)p 293 2552 V 21 w(binding)p 501 +2552 V 22 w(k)n(eymap)195 2606 y Fu(This)g(v)m(ariable)g(is)f(set)g(to) +f(the)h(k)o(eymap)g(\(see)g(Section)h(2.4.2)d([Keymaps],)i(page)g(23\)) +f(in)195 2661 y(whic)o(h)e(the)f(last)g(k)o(ey)h(binding)h(o)q +(ccurred.)p eop +%%Page: 23 25 +23 24 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(23)75 183 y Fs(2.4)33 b(Readline)23 b(Con)n(v)n +(enience)g(F)-6 b(unctions)75 331 y Fl(2.4.1)30 b(Naming)20 +b(a)g(F)-5 b(unction)137 430 y Fu(The)20 b(user)g(can)g(dynamically)i +(c)o(hange)e(the)g(bindings)i(of)d(k)o(eys)h(while)h(using)g(Readline.) +36 b(This)20 b(is)75 485 y(done)f(b)o(y)f(represen)o(ting)h(the)g +(function)g(with)g(a)f(descriptiv)o(e)i(name.)29 b(The)19 +b(user)f(is)h(able)h(to)d(t)o(yp)q(e)i(the)75 540 y(descriptiv)o(e)e +(name)e(when)h(referring)f(to)g(the)g(function.)21 b(Th)o(us,)14 +b(in)i(an)f(init)i(\014le,)f(one)f(migh)o(t)g(\014nd)195 +607 y Ft(Meta-Rubout:)46 b(backward-kill-word)137 678 +y Fu(This)20 b(binds)h(the)f(k)o(eystrok)o(e)659 676 +y Fo(h)p 671 650 209 2 v 671 678 a Fn(Meta-Rub)q(out)p +671 685 V 878 676 a Fo(i)912 678 y Fu(to)f(the)h(function)g +Fm(descriptiv)o(ely)25 b Fu(named)20 b Ft(backward-)75 +733 y(kill-word)p Fu(.)29 b(Y)l(ou,)19 b(as)f(the)h(programmer,)f +(should)i(bind)f(the)g(functions)h(y)o(ou)e(write)h(to)e(descriptiv)o +(e)75 787 y(names)e(as)g(w)o(ell.)21 b(Readline)c(pro)o(vides)f(a)f +(function)h(for)e(doing)i(that:)1650 886 y(F)l(unction)-1749 +b Fi(int)20 b Fh(rl)p 215 886 18 3 v 21 w(add)p 328 886 +V 20 w(defun)i Fg(\()p Ft(char)14 b(*name,)g(Function)g(*function,)g +(int)h(key)p Fg(\))195 941 y Fu(Add)i Fm(name)h Fu(to)e(the)g(list)h +(of)e(named)i(functions.)23 b(Mak)o(e)15 b Fm(function)i +Fu(b)q(e)g(the)f(function)h(that)195 995 y(gets)e(called.)21 +b(If)16 b Fm(k)o(ey)j Fu(is)c(not)g(-1,)g(then)g(bind)i(it)e(to)g +Fm(function)h Fu(using)g Ft(rl_bind_key)d(\(\))p Fu(.)137 +1094 y(Using)j(this)f(function)h(alone)g(is)f(su\016cien)o(t)h(for)f +(most)f(applications.)21 b(It)15 b(is)h(the)f(recommended)h(w)o(a)o(y) +75 1149 y(to)d(add)h(a)f(few)g(functions)h(to)f(the)h(default)g +(functions)g(that)f(Readline)j(has)d(built)i(in.)20 b(If)14 +b(y)o(ou)f(need)h(to)f(do)75 1204 y(something)k(other)g(than)f(adding)i +(a)e(function)i(to)e(Readline,)j(y)o(ou)e(ma)o(y)f(need)i(to)e(use)h +(the)g(underlying)75 1258 y(functions)f(describ)q(ed)h(b)q(elo)o(w.)75 +1377 y Fl(2.4.2)30 b(Selecting)20 b(a)h(Keymap)137 1476 +y Fu(Key)16 b(bindings)i(tak)o(e)c(place)j(on)e(a)g Fm(k)o(eymap)p +Fu(.)21 b(The)15 b(k)o(eymap)h(is)f(the)h(asso)q(ciation)g(b)q(et)o(w)o +(een)g(the)f(k)o(eys)75 1531 y(that)f(the)g(user)g(t)o(yp)q(es)g(and)h +(the)f(functions)h(that)f(get)g(run.)19 b(Y)l(ou)c(can)f(mak)o(e)g(y)o +(our)g(o)o(wn)f(k)o(eymaps,)h(cop)o(y)75 1586 y(existing)i(k)o(eymaps,) +f(and)g(tell)h(Readline)i(whic)o(h)e(k)o(eymap)f(to)f(use.)1650 +1684 y(F)l(unction)-1749 b Fi(Keymap)20 b Fh(rl)p 293 +1684 V 21 w(mak)n(e)p 445 1684 V 20 w(bare)p 575 1684 +V 20 w(k)n(eymap)j Fg(\(\))195 1739 y Fu(Returns)d(a)f(new,)i(empt)o(y) +e(k)o(eymap.)32 b(The)20 b(space)g(for)e(the)i(k)o(eymap)f(is)h(allo)q +(cated)h(with)195 1794 y Ft(malloc)14 b(\(\))p Fu(;)h(y)o(ou)g(should)h +Ft(free)e(\(\))h Fu(it)h(when)g(y)o(ou)e(are)h(done.)1650 +1892 y(F)l(unction)-1749 b Fi(Keymap)20 b Fh(rl)p 293 +1892 V 21 w(cop)n(y)p 428 1892 V 21 w(k)n(eymap)j Fg(\()p +Ft(Keymap)14 b(map)p Fg(\))195 1947 y Fu(Return)i(a)f(new)g(k)o(eymap)g +(whic)o(h)h(is)g(a)f(cop)o(y)g(of)g Fm(map)p Fu(.)1650 +2046 y(F)l(unction)-1749 b Fi(Keymap)20 b Fh(rl)p 293 +2046 V 21 w(mak)n(e)p 445 2046 V 20 w(k)n(eymap)j Fg(\(\))195 +2101 y Fu(Return)15 b(a)f(new)h(k)o(eymap)f(with)h(the)g(prin)o(ting)h +(c)o(haracters)d(b)q(ound)j(to)e(rl)p 1443 2101 14 2 +v 17 w(insert,)g(the)h(lo)o(w-)195 2155 y(ercase)21 b(Meta)f(c)o +(haracters)g(b)q(ound)i(to)f(run)g(their)g(equiv)m(alen)o(ts,)j(and)d +(the)g(Meta)f(digits)195 2210 y(b)q(ound)c(to)f(pro)q(duce)h(n)o +(umeric)g(argumen)o(ts.)1650 2309 y(F)l(unction)-1749 +b Fi(void)20 b Fh(rl)p 241 2309 18 3 v 21 w(discard)p +441 2309 V 21 w(k)n(eymap)i Fg(\()p Ft(Keymap)14 b(keymap)p +Fg(\))195 2363 y Fu(F)l(ree)h(the)h(storage)d(asso)q(ciated)j(with)f +Fm(k)o(eymap)p Fu(.)137 2462 y(Readline)25 b(has)e(sev)o(eral)g(in)o +(ternal)g(k)o(eymaps.)42 b(These)23 b(functions)g(allo)o(w)g(y)o(ou)f +(to)g(c)o(hange)h(whic)o(h)75 2517 y(k)o(eymap)15 b(is)h(activ)o(e.) +1650 2615 y(F)l(unction)-1749 b Fi(Keymap)20 b Fh(rl)p +293 2615 V 21 w(get)p 391 2615 V 21 w(k)n(eymap)i Fg(\(\))195 +2670 y Fu(Returns)16 b(the)f(curren)o(tly)h(activ)o(e)f(k)o(eymap.)p +eop +%%Page: 24 26 +24 25 bop 75 -58 a Fu(24)1299 b(GNU)15 b(Readline)i(Library)1650 +183 y(F)l(unction)-1749 b Fi(void)20 b Fh(rl)p 241 183 +18 3 v 21 w(set)p 333 183 V 21 w(k)n(eymap)i Fg(\()p +Ft(Keymap)14 b(keymap)p Fg(\))195 238 y Fu(Mak)o(es)g +Fm(k)o(eymap)j Fu(the)e(curren)o(tly)h(activ)o(e)f(k)o(eymap.)1650 +336 y(F)l(unction)-1749 b Fi(Keymap)20 b Fh(rl)p 293 +336 V 21 w(get)p 391 336 V 21 w(k)n(eymap)p 605 336 V +20 w(b)n(y)p 685 336 V 21 w(name)i Fg(\()p Ft(char)14 +b(*name)p Fg(\))195 391 y Fu(Return)h(the)f(k)o(eymap)g(matc)o(hing)h +Fm(name)p Fu(.)k Fm(name)e Fu(is)e(one)g(whic)o(h)g(w)o(ould)f(b)q(e)h +(supplied)i(in)e(a)195 446 y Ft(set)g(keymap)f Fu(inputrc)i(line)h +(\(see)e(Section)h(1.3)f([Readline)i(Init)f(File],)f(page)g(3\).)1650 +544 y(F)l(unction)-1749 b Fi(char)20 b(*)f Fh(rl)p 286 +544 V 21 w(get)p 384 544 V 21 w(k)n(eymap)p 598 544 V +20 w(name)i Fg(\()p Ft(Keymap)14 b(keymap)p Fg(\))195 +599 y Fu(Return)h(the)f(name)h(matc)o(hing)f Fm(k)o(eymap)p +Fu(.)19 b Fm(name)e Fu(is)e(one)g(whic)o(h)g(w)o(ould)f(b)q(e)h +(supplied)i(in)e(a)195 654 y Ft(set)g(keymap)f Fu(inputrc)i(line)h +(\(see)e(Section)h(1.3)f([Readline)i(Init)f(File],)f(page)g(3\).)75 +772 y Fl(2.4.3)30 b(Binding)20 b(Keys)137 871 y Fu(Y)l(ou)j(asso)q +(ciate)f(k)o(eys)g(with)h(functions)g(through)f(the)g(k)o(eymap.)41 +b(Readline)25 b(has)d(sev)o(eral)h(in)o(ter-)75 926 y(nal)h(k)o +(eymaps:)35 b Ft(emacs_standard_keymap)p Fu(,)22 b Ft +(emacs_meta_keymap)p Fu(,)g Ft(emacs_ctlx_keymap)p Fu(,)g +Ft(vi_)75 981 y(movement_keymap)p Fu(,)e(and)i Ft(vi_insertion_keymap)p +Fu(.)35 b Ft(emacs_standard_keymap)18 b Fu(is)k(the)f(default,)75 +1036 y(and)15 b(the)h(examples)g(in)g(this)f(man)o(ual)h(assume)f +(that.)137 1106 y(These)h(functions)g(manage)e(k)o(ey)i(bindings.)1650 +1204 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 1204 +V 21 w(bind)p 347 1204 V 21 w(k)n(ey)k Fg(\()p Ft(int)14 +b(key,)h(Function)f(*function)p Fg(\))195 1259 y Fu(Binds)i +Fm(k)o(ey)j Fu(to)14 b Fm(function)h Fu(in)h(the)f(curren)o(tly)g +(activ)o(e)g(k)o(eymap.)20 b(Returns)15 b(non-zero)g(in)h(the)195 +1314 y(case)f(of)g(an)g(in)o(v)m(alid)j Fm(k)o(ey)p Fu(.)1650 +1412 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 1412 +V 21 w(bind)p 347 1412 V 21 w(k)n(ey)p 452 1412 V 21 +w(in)p 520 1412 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h(Function)f +(*function,)283 1467 y(Keymap)g(map)p Fg(\))195 1521 +y Fu(Bind)i Fm(k)o(ey)j Fu(to)c Fm(function)h Fu(in)g +Fm(map)p Fu(.)k(Returns)15 b(non-zero)h(in)g(the)f(case)g(of)g(an)g(in) +o(v)m(alid)j Fm(k)o(ey)p Fu(.)1650 1620 y(F)l(unction)-1749 +b Fi(int)20 b Fh(rl)p 215 1620 V 21 w(un)n(bind)p 409 +1620 V 21 w(k)n(ey)k Fg(\()p Ft(int)14 b(key)p Fg(\))195 +1674 y Fu(Bind)g Fm(k)o(ey)j Fu(to)c(the)g(n)o(ull)i(function)f(in)g +(the)f(curren)o(tly)h(activ)o(e)f(k)o(eymap.)19 b(Returns)14 +b(non-zero)195 1729 y(in)i(case)f(of)g(error.)1650 1827 +y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 1827 V +21 w(un)n(bind)p 409 1827 V 21 w(k)n(ey)p 514 1827 V +21 w(in)p 582 1827 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h(Keymap)f +(map)p Fg(\))195 1882 y Fu(Bind)i Fm(k)o(ey)j Fu(to)c(the)g(n)o(ull)i +(function)f(in)g Fm(map)p Fu(.)k(Returns)15 b(non-zero)h(in)g(case)f +(of)g(error.)1650 1980 y(F)l(unction)-1749 b Fi(int)20 +b Fh(rl)p 215 1980 V 21 w(un)n(bind)p 409 1980 V 21 w(function)p +635 1980 V 21 w(in)p 703 1980 V 21 w(map)h Fg(\()p Ft(Function)14 +b(*function,)283 2035 y(Keymap)g(map)p Fg(\))195 2090 +y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f(execute)i Fm(function)g +Fu(in)g Fm(map)p Fu(.)1650 2188 y(F)l(unction)-1749 b +Fi(int)20 b Fh(rl)p 215 2188 V 21 w(un)n(bind)p 409 2188 +V 21 w(command)p 674 2188 V 17 w(in)p 738 2188 V 22 w(map)h +Fg(\()p Ft(char)14 b(*command,)g(Keymap)283 2243 y(map)p +Fg(\))195 2298 y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f(are)h(b)q(ound)h +(to)f Fm(command)i Fu(in)f Fm(map)p Fu(.)1650 2396 y(F)l(unction)-1749 +b Fi(int)20 b Fh(rl)p 215 2396 V 21 w(generic)p 413 2396 +V 21 w(bind)j Fg(\()p Ft(int)15 b(type,)f(char)h(*keyseq,)f(char)h +(*data,)283 2451 y(Keymap)f(map)p Fg(\))195 2506 y Fu(Bind)g(the)f(k)o +(ey)g(sequence)i(represen)o(ted)e(b)o(y)g(the)g(string)g +Fm(k)o(eyseq)h Fu(to)f(the)g(arbitrary)f(p)q(oin)o(ter)195 +2560 y Fm(data)p Fu(.)19 b Fm(t)o(yp)q(e)e Fu(sa)o(ys)c(what)h(kind)i +(of)e(data)f(is)i(p)q(oin)o(ted)g(to)f(b)o(y)g Fm(data)p +Fu(;)g(this)h(can)f(b)q(e)h(a)f(function)195 2615 y(\()p +Ft(ISFUNC)p Fu(\),)f(a)h(macro)g(\()p Ft(ISMACR)p Fu(\),)f(or)i(a)f(k)o +(eymap)h(\()p Ft(ISKMAP)p Fu(\).)j(This)d(mak)o(es)f(new)h(k)o(eymaps) +195 2670 y(as)g(necessary)l(.)20 b(The)c(initial)h(k)o(eymap)e(in)h +(whic)o(h)g(to)e(do)i(bindings)h(is)e Fm(map)p Fu(.)p +eop +%%Page: 25 27 +25 26 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(25)1650 183 y(F)l(unction)-1749 b Fi(int)20 +b Fh(rl)p 215 183 18 3 v 21 w(parse)p 369 183 V 19 w(and)p +480 183 V 21 w(bind)j Fg(\()p Ft(char)14 b(*line)p Fg(\))195 +238 y Fu(P)o(arse)k Fm(line)23 b Fu(as)c(if)g(it)g(had)g(b)q(een)h +(read)e(from)h(the)f Ft(inputrc)g Fu(\014le)i(and)f(p)q(erform)g(an)o +(y)f(k)o(ey)195 293 y(bindings)i(and)e(v)m(ariable)i(assignmen)o(ts)d +(found)i(\(see)f(Section)h(1.3)e([Readline)j(Init)f(File],)195 +348 y(page)c(3\).)1650 449 y(F)l(unction)-1749 b Fi(int)20 +b Fh(rl)p 215 449 V 21 w(read)p 346 449 V 20 w(init)p +450 449 V 22 w(\014le)k Fg(\()p Ft(char)14 b(*filename)p +Fg(\))195 504 y Fu(Read)25 b(k)o(eybindings)i(and)e(v)m(ariable)h +(assignmen)o(ts)e(from)g Fm(\014lename)29 b Fu(\(see)24 +b(Section)i(1.3)195 559 y([Readline)17 b(Init)f(File],)g(page)f(3\).)75 +680 y Fl(2.4.4)30 b(Asso)r(ciating)20 b(F)-5 b(unction)20 +b(Names)h(and)f(Bindings)137 781 y Fu(These)11 b(functions)h(allo)o(w)e +(y)o(ou)h(to)f(\014nd)h(out)f(what)g(k)o(eys)h(in)o(v)o(ok)o(e)f(named) +h(functions)h(and)e(the)h(functions)75 836 y(in)o(v)o(ok)o(ed)k(b)o(y)h +(a)e(particular)i(k)o(ey)f(sequence.)1650 937 y(F)l(unction)-1749 +b Fi(Function)20 b(*)g Fh(rl)p 391 937 V 21 w(named)p +579 937 V 19 w(function)j Fg(\()p Ft(char)14 b(*name)p +Fg(\))195 992 y Fu(Return)i(the)f(function)h(with)g(name)f +Fm(name)p Fu(.)1650 1093 y(F)l(unction)-1749 b Fi(Function)20 +b(*)g Fh(rl)p 391 1093 V 21 w(function)p 617 1093 V 21 +w(of)p 685 1093 V 19 w(k)n(eyseq)k Fg(\()p Ft(char)15 +b(*keyseq,)f(Keymap)283 1148 y(map,)g(int)h(*type)p Fg(\))195 +1203 y Fu(Return)j(the)f(function)g(in)o(v)o(ok)o(ed)g(b)o(y)g +Fm(k)o(eyseq)h Fu(in)g(k)o(eymap)f Fm(map)p Fu(.)25 b(If)17 +b Fm(map)h Fu(is)f(NULL,)h(the)195 1258 y(curren)o(t)13 +b(k)o(eymap)g(is)h(used.)20 b(If)14 b Fm(t)o(yp)q(e)i +Fu(is)e(not)f(NULL,)h(the)f(t)o(yp)q(e)g(of)g(the)h(ob)s(ject)f(is)h +(returned)195 1313 y(in)i(it)f(\(one)g(of)g Ft(ISFUNC)p +Fu(,)f Ft(ISKMAP)p Fu(,)g(or)h Ft(ISMACR)p Fu(\).)1650 +1414 y(F)l(unction)-1749 b Fi(char)20 b(**)f Fh(rl)p +312 1414 V 21 w(in)n(v)n(oking)p 541 1414 V 23 w(k)n(eyseqs)k +Fg(\()p Ft(Function)14 b(*function)p Fg(\))195 1469 y +Fu(Return)i(an)f(arra)o(y)f(of)h(strings)g(represen)o(ting)h(the)g(k)o +(ey)f(sequences)h(used)g(to)f(in)o(v)o(ok)o(e)g Fm(func-)195 +1524 y(tion)g Fu(in)h(the)g(curren)o(t)f(k)o(eymap.)1650 +1625 y(F)l(unction)-1749 b Fi(char)20 b(**)f Fh(rl)p +312 1625 V 21 w(in)n(v)n(oking)p 541 1625 V 23 w(k)n(eyseqs)p +750 1625 V 21 w(in)p 818 1625 V 22 w(map)i Fg(\()p Ft(Function)14 +b(*function,)283 1680 y(Keymap)g(map)p Fg(\))195 1735 +y Fu(Return)i(an)f(arra)o(y)f(of)h(strings)g(represen)o(ting)h(the)g(k) +o(ey)f(sequences)h(used)g(to)f(in)o(v)o(ok)o(e)g Fm(func-)195 +1789 y(tion)g Fu(in)h(the)g(k)o(eymap)f Fm(map)p Fu(.)1650 +1891 y(F)l(unction)-1749 b Fi(void)20 b Fh(rl)p 241 1891 +V 21 w(function)p 467 1891 V 21 w(dump)r(er)g Fg(\()p +Ft(int)15 b(readable)p Fg(\))195 1946 y Fu(Prin)o(t)k(the)h(readline)g +(function)g(names)g(and)f(the)g(k)o(ey)g(sequences)i(curren)o(tly)e(b)q +(ound)i(to)195 2000 y(them)16 b(to)f Ft(rl_outstream)p +Fu(.)k(If)d Fm(readable)j Fu(is)d(non-zero,)g(the)g(list)g(is)g +(formatted)f(in)h(suc)o(h)g(a)195 2055 y(w)o(a)o(y)e(that)h(it)g(can)g +(b)q(e)h(made)g(part)e(of)h(an)g Ft(inputrc)f Fu(\014le)i(and)g +(re-read.)1650 2157 y(F)l(unction)-1749 b Fi(void)20 +b Fh(rl)p 241 2157 V 21 w(list)p 337 2157 V 22 w(funmap)p +550 2157 V 18 w(names)h Fg(\(\))195 2211 y Fu(Prin)o(t)15 +b(the)g(names)h(of)e(all)j(bindable)g(Readline)g(functions)f(to)f +Ft(rl_outstream)p Fu(.)75 2333 y Fl(2.4.5)30 b(Allo)n(wing)21 +b(Undoing)137 2434 y Fu(Supp)q(orting)14 b(the)g(undo)f(command)g(is)h +(a)f(painless)h(thing,)g(and)f(mak)o(es)g(y)o(our)f(functions)i(m)o(uc) +o(h)f(more)75 2489 y(useful.)28 b(It)17 b(is)h(certainly)h(easy)e(to)g +(try)g(something)g(if)h(y)o(ou)f(kno)o(w)g(y)o(ou)h(can)f(undo)h(it.)27 +b(I)18 b(could)g(use)g(an)75 2543 y(undo)e(function)g(for)e(the)i(sto)q +(c)o(k)e(mark)o(et.)137 2615 y(If)g(y)o(our)e(function)i(simply)h +(inserts)f(text)e(once,)i(or)e(deletes)j(text)d(once,)i(and)f(uses)h +Ft(rl_insert_text)75 2670 y(\(\))h Fu(or)g Ft(rl_delete_text)e(\(\))i +Fu(to)f(do)h(it,)g(then)h(undoing)g(is)g(already)f(done)h(for)f(y)o(ou) +f(automatically)l(.)p eop +%%Page: 26 28 +26 27 bop 75 -58 a Fu(26)1299 b(GNU)15 b(Readline)i(Library)137 +183 y(If)11 b(y)o(ou)f(do)g(m)o(ultiple)i(insertions)f(or)f(m)o +(ultiple)i(deletions,)g(or)e(an)o(y)g(com)o(bination)h(of)f(these)g(op) +q(erations,)75 238 y(y)o(ou)19 b(should)h(group)e(them)h(together)g(in) +o(to)g(one)g(op)q(eration.)31 b(This)20 b(is)f(done)h(with)f +Ft(rl_begin_undo_)75 293 y(group)14 b(\(\))h Fu(and)h +Ft(rl_end_undo_group)d(\(\))p Fu(.)137 360 y(The)j(t)o(yp)q(es)f(of)g +(ev)o(en)o(ts)g(that)f(can)h(b)q(e)h(undone)g(are:)195 +425 y Ft(enum)23 b(undo_code)g({)h(UNDO_DELETE,)e(UNDO_INSERT,)g +(UNDO_BEGIN,)g(UNDO_END)h(};)137 492 y Fu(Notice)16 b(that)e +Ft(UNDO_DELETE)g Fu(means)h(to)g(insert)g(some)g(text,)f(and)i +Ft(UNDO_INSERT)d Fu(means)i(to)g(delete)75 547 y(some)d(text.)18 +b(That)12 b(is,)h(the)f(undo)g(co)q(de)h(tells)g(undo)g(what)e(to)h +(undo,)h(not)f(ho)o(w)f(to)h(undo)g(it.)19 b Ft(UNDO_BEGIN)75 +602 y Fu(and)c Ft(UNDO_END)f Fu(are)h(tags)g(added)g(b)o(y)h +Ft(rl_begin_undo_group)c(\(\))j Fu(and)g Ft(rl_end_undo_group)e(\(\))p +Fu(.)1650 694 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p +215 694 18 3 v 21 w(b)r(egin)p 372 694 V 20 w(undo)p +517 694 V 20 w(group)h Fg(\(\))195 749 y Fu(Begins)e(sa)o(ving)g(undo)g +(information)f(in)i(a)e(group)g(construct.)29 b(The)19 +b(undo)g(information)195 804 y(usually)f(comes)f(from)f(calls)h(to)g +Ft(rl_insert_text)c(\(\))j Fu(and)h Ft(rl_delete_text)c(\(\))p +Fu(,)k(but)195 858 y(could)f(b)q(e)g(the)f(result)h(of)f(calls)h(to)f +Ft(rl_add_undo)e(\(\))p Fu(.)1650 951 y(F)l(unction)-1749 +b Fi(int)20 b Fh(rl)p 215 951 V 21 w(end)p 326 951 V +20 w(undo)p 471 951 V 20 w(group)h Fg(\(\))195 1005 y +Fu(Closes)c(the)g(curren)o(t)g(undo)h(group)e(started)h(with)g +Ft(rl_begin_undo_group)c(\(\))p Fu(.)25 b(There)195 1060 +y(should)17 b(b)q(e)f(one)f(call)i(to)e Ft(rl_end_undo_group)e(\(\))i +Fu(for)g(eac)o(h)g(call)i(to)e Ft(rl_begin_undo_)195 +1115 y(group)f(\(\))p Fu(.)1650 1207 y(F)l(unction)-1749 +b Fi(void)20 b Fh(rl)p 241 1207 V 21 w(add)p 354 1207 +V 20 w(undo)i Fg(\()p Ft(enum)14 b(undo_code)g(what,)g(int)h(start,)g +(int)f(end,)283 1262 y(char)g(*text)p Fg(\))195 1317 +y Fu(Remem)o(b)q(er)j(ho)o(w)f(to)f(undo)i(an)f(ev)o(en)o(t)g +(\(according)h(to)e Fm(what)q Fu(\).)23 b(The)16 b(a\013ected)g(text)g +(runs)195 1372 y(from)e Fm(start)h Fu(to)g Fm(end)p Fu(,)g(and)h +(encompasses)f Fm(text)p Fu(.)1650 1464 y(F)l(unction)-1749 +b Fi(void)20 b Fh(free)p 296 1464 V 20 w(undo)p 441 1464 +V 20 w(list)k Fg(\(\))195 1519 y Fu(F)l(ree)15 b(the)h(existing)g(undo) +f(list.)1650 1611 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p +215 1611 V 21 w(do)p 297 1611 V 20 w(undo)i Fg(\(\))195 +1666 y Fu(Undo)16 b(the)g(\014rst)f(thing)h(on)g(the)f(undo)h(list.)22 +b(Returns)17 b Ft(0)e Fu(if)h(there)g(w)o(as)f(nothing)h(to)f(undo,)195 +1721 y(non-zero)g(if)h(something)g(w)o(as)e(undone.)137 +1813 y(Finally)l(,)j(if)f(y)o(ou)f(neither)i(insert)f(nor)f(delete)i +(text,)e(but)g(directly)i(mo)q(dify)f(the)g(existing)g(text)g(\(e.g.,) +75 1868 y(c)o(hange)i(its)h(case\),)g(call)g Ft(rl_modifying)14 +b(\(\))k Fu(once,)h(just)f(b)q(efore)h(y)o(ou)f(mo)q(dify)h(the)f +(text.)29 b(Y)l(ou)19 b(m)o(ust)75 1923 y(supply)d(the)g(indices)h(of)e +(the)g(text)g(range)g(that)f(y)o(ou)h(are)g(going)g(to)g(mo)q(dify)l(.) +1650 2015 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 +2015 V 21 w(mo)r(difying)h Fg(\()p Ft(int)15 b(start,)f(int)h(end)p +Fg(\))195 2070 y Fu(T)l(ell)i(Readline)i(to)c(sa)o(v)o(e)g(the)i(text)e +(b)q(et)o(w)o(een)h Fm(start)g Fu(and)g Fm(end)j Fu(as)c(a)h(single)h +(undo)g(unit.)23 b(It)195 2125 y(is)16 b(assumed)f(that)g(y)o(ou)f +(will)j(subsequen)o(tly)g(mo)q(dify)e(that)g(text.)75 +2237 y Fl(2.4.6)30 b(Redispla)n(y)1650 2358 y Fu(F)l(unction)-1749 +b Fi(void)20 b Fh(rl)p 241 2358 V 21 w(redispla)n(y)k +Fg(\(\))195 2413 y Fu(Change)19 b(what's)f(displa)o(y)o(ed)i(on)f(the)f +(screen)i(to)e(re\015ect)h(the)g(curren)o(t)g(con)o(ten)o(ts)f(of)g +Ft(rl_)195 2468 y(line_buffer)p Fu(.)1650 2560 y(F)l(unction)-1749 +b Fi(int)20 b Fh(rl)p 215 2560 V 21 w(forced)p 390 2560 +V 20 w(up)r(date)p 584 2560 V 20 w(displa)n(y)k Fg(\(\))195 +2615 y Fu(F)l(orce)17 b(the)f(line)j(to)d(b)q(e)i(up)q(dated)f(and)g +(redispla)o(y)o(ed,)h(whether)f(or)g(not)f(Readline)j(thinks)195 +2670 y(the)c(screen)h(displa)o(y)g(is)g(correct.)p eop +%%Page: 27 29 +27 28 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(27)1650 183 y(F)l(unction)-1749 b Fi(int)20 +b Fh(rl)p 215 183 18 3 v 21 w(on)p 297 183 V 20 w(new)p +416 183 V 21 w(line)k Fg(\(\))195 238 y Fu(T)l(ell)17 +b(the)f(up)q(date)g(routines)g(that)f(w)o(e)g(ha)o(v)o(e)g(mo)o(v)o(ed) +g(on)o(to)g(a)g(new)h(\(empt)o(y\))f(line,)i(usually)195 +293 y(after)d(ouputting)i(a)f(newline.)1650 380 y(F)l(unction)-1749 +b Fi(int)20 b Fh(rl)p 215 380 V 21 w(reset)p 357 380 +V 20 w(line)p 465 380 V 23 w(state)j Fg(\(\))195 434 +y Fu(Reset)17 b(the)f(displa)o(y)h(state)f(to)f(a)h(clean)h(state)f +(and)g(redispla)o(y)h(the)g(curren)o(t)f(line)i(starting)195 +489 y(on)d(a)g(new)g(line.)1650 576 y(F)l(unction)-1749 +b Fi(int)20 b Fh(rl)p 215 576 V 21 w(message)g Fg(\()p +Ft(va_alist)p Fg(\))195 631 y Fu(The)h(argumen)o(ts)f(are)g(a)g(string) +h(as)f(w)o(ould)h(b)q(e)g(supplied)i(to)d Ft(printf)p +Fu(.)35 b(The)21 b(resulting)195 686 y(string)h(is)g(displa)o(y)o(ed)h +(in)g(the)f Fm(ec)o(ho)g(area)p Fu(.)39 b(The)23 b(ec)o(ho)f(area)f(is) +h(also)g(used)h(to)e(displa)o(y)195 740 y(n)o(umeric)16 +b(argumen)o(ts)e(and)i(searc)o(h)f(strings.)1650 827 +y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 827 V 21 +w(clear)p 354 827 V 21 w(message)h Fg(\(\))195 882 y +Fu(Clear)15 b(the)h(message)e(in)i(the)g(ec)o(ho)f(area.)75 +989 y Fl(2.4.7)30 b(Mo)r(difying)20 b(T)-5 b(ext)1650 +1105 y Fu(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 +1105 V 21 w(insert)p 378 1105 V 21 w(text)k Fg(\()p Ft(char)14 +b(*text)p Fg(\))195 1159 y Fu(Insert)h Fm(text)h Fu(in)o(to)f(the)h +(line)g(at)f(the)g(curren)o(t)g(cursor)g(p)q(osition.)1650 +1246 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 1246 +V 21 w(delete)p 383 1246 V 22 w(text)k Fg(\()p Ft(int)14 +b(start,)h(int)f(end)p Fg(\))195 1301 y Fu(Delete)i(the)f(text)g(b)q +(et)o(w)o(een)g Fm(start)g Fu(and)h Fm(end)h Fu(in)f(the)g(curren)o(t)f +(line.)1650 1388 y(F)l(unction)-1749 b Fi(char)20 b(*)f +Fh(rl)p 286 1388 V 21 w(cop)n(y)p 421 1388 V 21 w(text)24 +b Fg(\()p Ft(int)14 b(start,)h(int)g(end)p Fg(\))195 +1443 y Fu(Return)h(a)f(cop)o(y)g(of)g(the)g(text)f(b)q(et)o(w)o(een)i +Fm(start)f Fu(and)g Fm(end)j Fu(in)e(the)f(curren)o(t)g(line.)1650 +1529 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 1529 +V 21 w(kill)p 311 1529 V 23 w(text)k Fg(\()p Ft(int)14 +b(start,)h(int)g(end)p Fg(\))195 1584 y Fu(Cop)o(y)j(the)h(text)f(b)q +(et)o(w)o(een)h Fm(start)f Fu(and)h Fm(end)i Fu(in)e(the)g(curren)o(t)f +(line)i(to)e(the)h(kill)h(ring,)g(ap-)195 1639 y(p)q(ending)15 +b(or)f(prep)q(ending)h(to)e(the)h(last)f(kill)j(if)e(the)g(last)f +(command)h(w)o(as)f(a)g(kill)i(command.)195 1694 y(The)j(text)f(is)h +(deleted.)28 b(If)18 b Fm(start)f Fu(is)h(less)g(than)f +Fm(end)p Fu(,)i(the)e(text)g(is)h(app)q(ended,)i(otherwise)195 +1749 y(prep)q(ended.)i(If)15 b(the)g(last)h(command)f(w)o(as)f(not)h(a) +g(kill,)h(a)f(new)h(kill)h(ring)e(slot)g(is)h(used.)75 +1855 y Fl(2.4.8)30 b(Utilit)n(y)21 b(F)-5 b(unctions)1650 +1971 y Fu(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 +1971 V 21 w(read)p 346 1971 V 20 w(k)n(ey)k Fg(\(\))195 +2026 y Fu(Return)14 b(the)g(next)g(c)o(haracter)e(a)o(v)m(ailable.)22 +b(This)14 b(handles)h(input)f(inserted)h(in)o(to)e(the)h(input)195 +2081 y(stream)k(via)g Fm(p)q(ending)j(input)f Fu(\(see)f(Section)g(2.3) +f([Readline)i(V)l(ariables],)g(page)e(21\))g(and)195 +2136 y Ft(rl_stuff_char)13 b(\(\))p Fu(,)i(macros,)f(and)h(c)o +(haracters)g(read)g(from)f(the)i(k)o(eyb)q(oard.)1650 +2222 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 2222 +V 21 w(getc)j Fg(\()p Ft(FILE)14 b(*)p Fg(\))195 2277 +y Fu(Return)i(the)f(next)g(c)o(haracter)g(a)o(v)m(ailable)i(from)d(the) +h(k)o(eyb)q(oard.)1650 2364 y(F)l(unction)-1749 b Fi(int)20 +b Fh(rl)p 215 2364 V 21 w(stu\013)p 346 2364 V 20 w(c)n(har)j +Fg(\()p Ft(int)15 b(c)p Fg(\))195 2419 y Fu(Insert)22 +b Fm(c)i Fu(in)o(to)e(the)g(Readline)i(input)f(stream.)38 +b(It)22 b(will)h(b)q(e)f Ft(")p Fu(read)p Ft(")g Fu(b)q(efore)g +(Readline)195 2474 y(attempts)14 b(to)h(read)g(c)o(haracters)f(from)h +(the)g(terminal)h(with)f Ft(rl_read_key)f(\(\))p Fu(.)1650 +2560 y(F)l(unction)-1749 b Fi(rl_extend_line_buffer)22 +b Fh(\(in)n(t)j Ft(len)p Fg(\))195 2615 y Fu(Ensure)14 +b(that)e Ft(rl_line_buffer)g Fu(has)h(enough)h(space)f(to)g(hold)h +Fm(len)h Fu(c)o(haracters,)d(p)q(ossibly)195 2670 y(reallo)q(cating)k +(it)g(if)f(necessary)l(.)p eop +%%Page: 28 30 +28 29 bop 75 -58 a Fu(28)1299 b(GNU)15 b(Readline)i(Library)1650 +183 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 183 +18 3 v 21 w(initiali)q(z)q(e)26 b Fg(\(\))195 238 y Fu(Initialize)18 +b(or)d(re-initialize)j(Readline's)f(in)o(ternal)f(state.)1650 +328 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 328 +V 21 w(reset)p 357 328 V 20 w(terminal)j Fg(\()p Ft(char)15 +b(*terminal_name)p Fg(\))195 383 y Fu(Reinitializ)q(e)h(Readline's)g +(idea)e(of)f(the)h(terminal)g(settings)g(using)g Fm(terminal)p +1501 383 14 2 v 17 w(name)j Fu(as)c(the)195 437 y(terminal)j(t)o(yp)q +(e)f(\(e.g.,)f Ft(vt100)p Fu(\).)1650 527 y(F)l(unction)-1749 +b Fi(int)20 b Fh(alphab)r(etic)k Fg(\()p Ft(int)14 b(c)p +Fg(\))195 582 y Fu(Return)i(1)f(if)g Fm(c)j Fu(is)e(an)f(alphab)q(etic) +i(c)o(haracter.)1650 671 y(F)l(unction)-1749 b Fi(int)20 +b Fh(n)n(umeric)i Fg(\()p Ft(int)15 b(c)p Fg(\))195 726 +y Fu(Return)h(1)f(if)g Fm(c)j Fu(is)e(a)f(n)o(umeric)h(c)o(haracter.) +1650 816 y(F)l(unction)-1749 b Fi(int)20 b Fh(ding)i +Fg(\(\))195 871 y Fu(Ring)16 b(the)f(terminal)h(b)q(ell,)h(ob)q(eying)f +(the)g(setting)f(of)g Ft(bell-style)p Fu(.)137 960 y(The)h(follo)o +(wing)g(are)f(implemen)o(ted)h(as)f(macros,)f(de\014ned)j(in)f +Ft(chartypes.h)p Fu(.)1650 1050 y(F)l(unction)-1749 b +Fi(int)20 b Fh(upp)r(ercase)p 426 1050 18 3 v 19 w(p)j +Fg(\()p Ft(int)14 b(c)p Fg(\))195 1105 y Fu(Return)i(1)f(if)g +Fm(c)j Fu(is)e(an)f(upp)q(ercase)i(alphab)q(etic)f(c)o(haracter.)1650 +1195 y(F)l(unction)-1749 b Fi(int)20 b Fh(lo)n(w)n(ercase)p +409 1195 V 22 w(p)i Fg(\()p Ft(int)15 b(c)p Fg(\))195 +1249 y Fu(Return)h(1)f(if)g Fm(c)j Fu(is)e(a)f(lo)o(w)o(ercase)g +(alphab)q(etic)i(c)o(haracter.)1650 1339 y(F)l(unction)-1749 +b Fi(int)20 b Fh(digit)p 289 1339 V 22 w(p)i Fg(\()p +Ft(int)15 b(c)p Fg(\))195 1394 y Fu(Return)h(1)f(if)g +Fm(c)j Fu(is)e(a)f(n)o(umeric)h(c)o(haracter.)1650 1484 +y(F)l(unction)-1749 b Fi(int)20 b Fh(to)p 227 1484 V +20 w(upp)r(er)i Fg(\()p Ft(int)14 b(c)p Fg(\))195 1538 +y Fu(If)21 b Fm(c)i Fu(is)e(a)g(lo)o(w)o(ercase)f(alphab)q(etic)i(c)o +(haracter,)f(return)g(the)f(corresp)q(onding)i(upp)q(ercase)195 +1593 y(c)o(haracter.)1650 1683 y(F)l(unction)-1749 b +Fi(int)20 b Fh(to)p 227 1683 V 20 w(lo)n(w)n(er)k Fg(\()p +Ft(int)15 b(c)p Fg(\))195 1738 y Fu(If)j Fm(c)j Fu(is)e(an)f(upp)q +(ercase)h(alphab)q(etic)h(c)o(haracter,)e(return)g(the)g(corresp)q +(onding)h(lo)o(w)o(ercase)195 1792 y(c)o(haracter.)1650 +1882 y(F)l(unction)-1749 b Fi(int)20 b Fh(digit)p 289 +1882 V 22 w(v)m(alue)j Fg(\()p Ft(int)15 b(c)p Fg(\))195 +1937 y Fu(If)g Fm(c)k Fu(is)c(a)g(n)o(um)o(b)q(er,)g(return)g(the)h(v)m +(alue)g(it)g(represen)o(ts.)75 2046 y Fl(2.4.9)30 b(Alternate)20 +b(In)n(terface)137 2142 y Fu(An)j(alternate)f(in)o(terface)h(is)g(a)o +(v)m(ailable)h(to)d(plain)j Ft(readline\(\))p Fu(.)40 +b(Some)22 b(applications)i(need)g(to)75 2197 y(in)o(terlea)o(v)o(e)15 +b(k)o(eyb)q(oard)f(I/O)h(with)g(\014le,)h(device,)f(or)f(windo)o(w)h +(system)f(I/O,)h(t)o(ypically)h(b)o(y)e(using)h(a)g(main)75 +2252 y(lo)q(op)f(to)g Ft(select\(\))e Fu(on)i(v)m(arious)g(\014le)h +(descriptors.)20 b(T)l(o)14 b(accomo)q(date)f(this)h(need,)h(readline)g +(can)f(also)g(b)q(e)75 2306 y(in)o(v)o(ok)o(ed)i(as)f(a)g(`callbac)o +(k')h(function)h(from)d(an)i(ev)o(en)o(t)f(lo)q(op.)22 +b(There)16 b(are)f(functions)h(a)o(v)m(ailable)i(to)c(mak)o(e)75 +2361 y(this)i(easy)l(.)1650 2451 y(F)l(unction)-1749 +b Fi(void)20 b Fh(rl)p 241 2451 V 21 w(callbac)n(k)p +458 2451 V 23 w(handler)p 670 2451 V 21 w(install)25 +b Fg(\()p Ft(char)14 b(*prompt,)g(Vfunction)283 2506 +y(*lhandler)p Fg(\))195 2560 y Fu(Set)i(up)h(the)g(terminal)g(for)f +(readline)i(I/O)e(and)h(displa)o(y)g(the)g(initial)h(expanded)g(v)m +(alue)f(of)195 2615 y Fm(prompt)p Fu(.)24 b(Sa)o(v)o(e)17 +b(the)g(v)m(alue)h(of)e Fm(lhandler)22 b Fu(to)17 b(use)g(as)f(a)h +(callbac)o(k)h(when)f(a)g(complete)g(line)195 2670 y(of)e(input)h(has)f +(b)q(een)h(en)o(tered.)p eop +%%Page: 29 31 +29 30 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(29)1650 183 y(F)l(unction)-1749 b Fi(void)20 +b Fh(rl)p 241 183 18 3 v 21 w(callbac)n(k)p 458 183 V +23 w(read)p 591 183 V 20 w(c)n(har)j Fg(\(\))195 238 +y Fu(Whenev)o(er)14 b(an)f(application)i(determines)f(that)f(k)o(eyb)q +(oard)g(input)h(is)g(a)o(v)m(ailable,)h(it)f(should)195 +293 y(call)20 b Ft(rl_callback_read_char\(\))p Fu(,)c(whic)o(h)k(will)g +(read)f(the)g(next)g(c)o(haracter)f(from)g(the)195 348 +y(curren)o(t)25 b(input)h(source.)48 b(If)25 b(that)g(c)o(haracter)f +(completes)h(the)g(line,)k Ft(rl_callback_)195 402 y(read_char)14 +b Fu(will)k(in)o(v)o(ok)o(e)e(the)f Fm(lhandler)21 b +Fu(function)c(sa)o(v)o(ed)e(b)o(y)h Ft(rl_callback_handler_)195 +457 y(install)g Fu(to)h(pro)q(cess)g(the)g(line.)27 b +Ft(EOF)17 b Fu(is)h(indicated)g(b)o(y)f(calling)i Fm(lhandler)j +Fu(with)c(a)f Ft(NULL)195 512 y Fu(line.)1650 609 y(F)l(unction)-1749 +b Fi(void)20 b Fh(rl)p 241 609 V 21 w(callbac)n(k)p 458 +609 V 23 w(handler)p 670 609 V 21 w(remo)n(v)n(e)i Fg(\(\))195 +664 y Fu(Restore)15 b(the)g(terminal)g(to)g(its)g(initial)i(state)d +(and)h(remo)o(v)o(e)f(the)h(line)h(handler.)21 b(This)16 +b(ma)o(y)195 719 y(b)q(e)g(called)h(from)d(within)j(a)d(callbac)o(k)j +(as)d(w)o(ell)j(as)d(indep)q(enden)o(tly)m(.)75 835 y +Fl(2.4.10)29 b(An)21 b(Example)137 934 y Fu(Here)f(is)g(a)f(function)i +(whic)o(h)f(c)o(hanges)f(lo)o(w)o(ercase)h(c)o(haracters)e(to)h(their)h +(upp)q(ercase)h(equiv)m(alen)o(ts,)75 989 y(and)e(upp)q(ercase)i(c)o +(haracters)d(to)h(lo)o(w)o(ercase.)31 b(If)20 b(this)f(function)h(w)o +(as)f(b)q(ound)h(to)f(`)p Ft(M-c)p Fu(',)f(then)i(t)o(yping)75 +1044 y(`)p Ft(M-c)p Fu(')12 b(w)o(ould)h(c)o(hange)h(the)f(case)g(of)g +(the)g(c)o(haracter)g(under)g(p)q(oin)o(t.)20 b(T)o(yping)14 +b(`)p Ft(M-1)g(0)h(M-c)p Fu(')d(w)o(ould)i(c)o(hange)75 +1098 y(the)h(case)g(of)g(the)h(follo)o(wing)f(10)g(c)o(haracters,)f +(lea)o(ving)i(the)f(cursor)g(on)g(the)h(last)f(c)o(haracter)f(c)o +(hanged.)195 1165 y Ft(/*)24 b(Invert)f(the)g(case)g(of)h(the)f(COUNT)h +(following)e(characters.)h(*/)195 1217 y(int)195 1269 +y(invert_case_line)f(\(count,)h(key\))314 1321 y(int)h(count,)f(key;) +195 1373 y({)243 1425 y(register)f(int)i(start,)f(end,)g(i;)243 +1528 y(start)g(=)h(rl_point;)243 1632 y(if)f(\(rl_point)g(>=)h +(rl_end\))290 1684 y(return)f(\(0\);)243 1788 y(if)g(\(count)g(<)h(0\)) +290 1840 y({)338 1892 y(direction)f(=)h(-1;)338 1944 +y(count)f(=)h(-count;)290 1995 y(})243 2047 y(else)290 +2099 y(direction)f(=)h(1;)243 2203 y(/*)f(Find)h(the)f(end)h(of)f(the)h +(range)f(to)g(modify.)g(*/)243 2255 y(end)g(=)h(start)f(+)h(\(count)f +(*)h(direction\);)243 2359 y(/*)f(Force)g(it)h(to)g(be)f(within)g +(range.)g(*/)243 2411 y(if)g(\(end)h(>)f(rl_end\))290 +2462 y(end)h(=)g(rl_end;)243 2514 y(else)f(if)h(\(end)f(<)h(0\))290 +2566 y(end)g(=)g(0;)243 2670 y(if)f(\(start)g(==)h(end\))p +eop +%%Page: 30 32 +30 31 bop 75 -58 a Fu(30)1299 b(GNU)15 b(Readline)i(Library)290 +183 y Ft(return)23 b(\(0\);)243 287 y(if)g(\(start)g(>)h(end\))290 +339 y({)338 391 y(int)g(temp)f(=)h(start;)338 443 y(start)f(=)h(end;) +338 495 y(end)g(=)f(temp;)290 546 y(})243 650 y(/*)g(Tell)h(readline)e +(that)i(we)f(are)h(modifying)e(the)i(line,)f(so)h(it)f(will)h(save)314 +702 y(the)g(undo)f(information.)f(*/)243 754 y(rl_modifying)g(\(start,) +h(end\);)243 858 y(for)g(\(i)h(=)f(start;)h(i)f(!=)h(end;)f(i++\))290 +910 y({)338 962 y(if)h(\(uppercase_p)e(\(rl_line_buffer[i]\)\))386 +1013 y(rl_line_buffer[i])f(=)j(to_lower)f(\(rl_line_buffer[i]\);)338 +1065 y(else)g(if)h(\(lowercase_p)e(\(rl_line_buffer[i]\)\))386 +1117 y(rl_line_buffer[i])f(=)j(to_upper)f(\(rl_line_buffer[i]\);)290 +1169 y(})243 1221 y(/*)g(Move)h(point)f(to)g(on)h(top)f(of)h(the)f +(last)h(character)e(changed.)h(*/)243 1273 y(rl_point)f(=)i +(\(direction)f(==)g(1\))h(?)g(end)f(-)h(1)g(:)f(start;)243 +1325 y(return)g(\(0\);)195 1377 y(})75 1509 y Fs(2.5)33 +b(Custom)21 b(Completers)137 1607 y Fu(T)o(ypically)l(,)e(a)d(program)f +(that)h(reads)h(commands)f(from)g(the)h(user)f(has)h(a)f(w)o(a)o(y)g +(of)g(disam)o(biguating)75 1662 y(commands)i(and)f(data.)27 +b(If)18 b(y)o(our)f(program)g(is)h(one)g(of)f(these,)i(then)f(it)g(can) +f(pro)o(vide)i(completion)g(for)75 1717 y(commands,)14 +b(data,)g(or)g(b)q(oth.)20 b(The)15 b(follo)o(wing)g(sections)g +(describ)q(e)h(ho)o(w)e(y)o(our)g(program)g(and)h(Readline)75 +1771 y(co)q(op)q(erate)g(to)g(pro)o(vide)g(this)h(service.)75 +1887 y Fl(2.5.1)30 b(Ho)n(w)21 b(Completing)f(W)-5 b(orks)137 +1984 y Fu(In)18 b(order)f(to)f(complete)i(some)f(text,)g(the)g(full)i +(list)e(of)g(p)q(ossible)i(completions)f(m)o(ust)f(b)q(e)h(a)o(v)m +(ailable.)75 2039 y(That)e(is,)i(it)f(is)h(not)f(p)q(ossible)h(to)f +(accurately)g(expand)h(a)e(partial)i(w)o(ord)e(without)h(kno)o(wing)g +(all)h(of)f(the)75 2094 y(p)q(ossible)i(w)o(ords)e(whic)o(h)h(mak)o(e)f +(sense)h(in)h(that)d(con)o(text.)26 b(The)18 b(Readline)i(library)e +(pro)o(vides)g(the)g(user)75 2149 y(in)o(terface)f(to)f(completion,)i +(and)e(t)o(w)o(o)g(of)g(the)h(most)f(common)g(completion)i(functions:) +23 b(\014lename)18 b(and)75 2204 y(username.)h(F)l(or)10 +b(completing)i(other)e(t)o(yp)q(es)h(of)f(text,)h(y)o(ou)g(m)o(ust)f +(write)h(y)o(our)f(o)o(wn)h(completion)g(function.)75 +2258 y(This)16 b(section)g(describ)q(es)g(exactly)g(what)f(suc)o(h)g +(functions)h(m)o(ust)f(do,)f(and)i(pro)o(vides)f(an)h(example.)137 +2327 y(There)g(are)f(three)g(ma)s(jor)f(functions)i(used)f(to)g(p)q +(erform)g(completion:)100 2396 y(1.)29 b(The)21 b(user-in)o(terface)g +(function)g Ft(rl_complete)14 b(\(\))p Fu(.)35 b(This)21 +b(function)g(is)g(called)h(with)f(the)f(same)165 2451 +y(argumen)o(ts)c(as)g(other)h(Readline)i(functions)f(in)o(tended)g(for) +e(in)o(teractiv)o(e)i(use:)23 b Fm(coun)o(t)18 b Fu(and)f +Fm(in)o(v)o(ok-)165 2506 y(ing)p 228 2506 14 2 v 17 w(k)o(ey)p +Fu(.)34 b(It)20 b(isolates)g(the)g(w)o(ord)f(to)h(b)q(e)g(completed)h +(and)f(calls)h Ft(completion_matches)13 b(\(\))20 b Fu(to)165 +2560 y(generate)f(a)f(list)i(of)e(p)q(ossible)j(completions.)32 +b(It)18 b(then)i(either)f(lists)h(the)f(p)q(ossible)h(completions,)165 +2615 y(inserts)g(the)f(p)q(ossible)j(completions,)f(or)e(actually)h(p)q +(erforms)f(the)h(completion,)h(dep)q(ending)h(on)165 +2670 y(whic)o(h)16 b(b)q(eha)o(vior)g(is)f(desired.)p +eop +%%Page: 31 33 +31 32 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(31)100 183 y(2.)29 b(The)11 b(in)o(ternal)g(function)g +Ft(completion_matches)i(\(\))d Fu(uses)h(y)o(our)e Fm(generator)k +Fu(function)e(to)f(generate)165 238 y(the)16 b(list)h(of)f(p)q(ossible) +i(matc)o(hes,)d(and)h(then)h(returns)f(the)g(arra)o(y)f(of)g(these)i +(matc)o(hes.)22 b(Y)l(ou)16 b(should)165 293 y(place)g(the)f(address)h +(of)e(y)o(our)h(generator)f(function)i(in)g Ft +(rl_completion_entry_function)p Fu(.)100 356 y(3.)29 +b(The)19 b(generator)e(function)j(is)f(called)h(rep)q(eatedly)f(from)f +Ft(completion_matches)13 b(\(\))p Fu(,)18 b(returning)165 +411 y(a)e(string)g(eac)o(h)h(time.)24 b(The)17 b(argumen)o(ts)e(to)h +(the)g(generator)g(function)h(are)f Fm(text)h Fu(and)g +Fm(state)p Fu(.)22 b Fm(text)165 466 y Fu(is)17 b(the)f(partial)g(w)o +(ord)f(to)h(b)q(e)h(completed.)23 b Fm(state)18 b Fu(is)e(zero)g(the)g +(\014rst)g(time)g(the)g(function)h(is)g(called,)165 520 +y(allo)o(wing)f(the)e(generator)g(to)g(p)q(erform)h(an)o(y)f(necessary) +h(initialization,)j(and)d(a)f(p)q(ositiv)o(e)i(non-zero)165 +575 y(in)o(teger)i(for)f(eac)o(h)g(subsequen)o(t)h(call.)28 +b(When)18 b(the)g(generator)f(function)h(returns)f Ft(\(char)e(*\)NULL) +165 630 y Fu(this)h(signals)h Ft(completion_matches)c(\(\))i +Fu(that)g(there)h(are)g(no)g(more)f(p)q(ossibilitie)q(s)j(left.)23 +b(Usually)165 685 y(the)c(generator)g(function)h(computes)g(the)f(list) +h(of)f(p)q(ossible)i(completions)g(when)e Fm(state)j +Fu(is)d(zero,)165 740 y(and)13 b(returns)g(them)f(one)h(at)f(a)h(time)g +(on)g(subsequen)o(t)g(calls.)20 b(Eac)o(h)13 b(string)f(the)h +(generator)f(function)165 794 y(returns)k(as)f(a)h(matc)o(h)f(m)o(ust)h +(b)q(e)g(allo)q(cated)h(with)g Ft(malloc\(\))p Fu(;)d(Readline)19 +b(frees)d(the)g(strings)f(when)165 849 y(it)g(has)h(\014nished)g(with)g +(them.)1650 929 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p +215 929 18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h +(invoking_key)p Fg(\))195 984 y Fu(Complete)20 b(the)g(w)o(ord)f(at)g +(or)g(b)q(efore)h(p)q(oin)o(t.)34 b(Y)l(ou)20 b(ha)o(v)o(e)f(supplied)j +(the)e(function)h(that)195 1038 y(do)q(es)15 b(the)g(initial)h(simple)h +(matc)o(hing)d(selection)i(algorithm)f(\(see)f Ft(completion_matches) +195 1093 y(\(\))p Fu(\).)19 b(The)d(default)f(is)h(to)f(do)g +(\014lename)h(completion.)1661 1173 y(V)l(ariable)-1749 +b Fi(Function)20 b(*)g Fh(rl)p 391 1173 V 21 w(completion)p +686 1173 V 21 w(en)n(try)p 839 1173 V 21 w(function)195 +1228 y Fu(This)c(is)f(a)g(p)q(oin)o(ter)g(to)g(the)g(generator)f +(function)i(for)e Ft(completion_matches)f(\(\))p Fu(.)20 +b(If)15 b(the)195 1283 y(v)m(alue)21 b(of)e Ft +(rl_completion_entry_functio)o(n)e Fu(is)j Ft(\(Function)14 +b(*\)NULL)19 b Fu(then)h(the)f(de-)195 1337 y(fault)11 +b(\014lename)h(generator)d(function,)j Ft(filename_completion_function) +g(\(\))p Fu(,)f(is)g(used.)75 1437 y Fl(2.5.2)30 b(Completion)20 +b(F)-5 b(unctions)137 1529 y Fu(Here)16 b(is)f(the)h(complete)g(list)g +(of)e(callable)k(completion)e(functions)g(presen)o(t)f(in)h(Readline.) +1650 1609 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 +1609 V 21 w(complete)p 460 1609 V 21 w(in)n(ternal)k +Fg(\()p Ft(int)15 b(what_to_do)p Fg(\))195 1664 y Fu(Complete)k(the)f +(w)o(ord)g(at)g(or)g(b)q(efore)g(p)q(oin)o(t.)30 b Fm(what)p +1105 1664 14 2 v 16 w(to)p 1162 1664 V 16 w(do)21 b Fu(sa)o(ys)c(what)h +(to)g(do)g(with)h(the)195 1718 y(completion.)33 b(A)19 +b(v)m(alue)h(of)f(`)p Ft(?)p Fu(')f(means)h(list)h(the)f(p)q(ossible)i +(completions.)33 b(`)p Ft(TAB)p Fu(')18 b(means)195 1773 +y(do)g(standard)g(completion.)30 b(`)p Ft(*)p Fu(')18 +b(means)g(insert)g(all)i(of)d(the)i(p)q(ossible)h(completions.)30 +b(`)p Ft(!)p Fu(')195 1828 y(means)17 b(to)f(displa)o(y)i(all)g(of)e +(the)h(p)q(ossible)i(completions,)f(if)f(there)g(is)g(more)g(than)f +(one,)h(as)195 1883 y(w)o(ell)f(as)f(p)q(erforming)h(partial)f +(completion.)1650 1963 y(F)l(unction)-1749 b Fi(int)20 +b Fh(rl)p 215 1963 18 3 v 21 w(complete)j Fg(\()p Ft(int)14 +b(ignore,)g(int)h(invoking_key)p Fg(\))195 2017 y Fu(Complete)20 +b(the)g(w)o(ord)f(at)g(or)g(b)q(efore)h(p)q(oin)o(t.)34 +b(Y)l(ou)20 b(ha)o(v)o(e)f(supplied)j(the)e(function)h(that)195 +2072 y(do)q(es)15 b(the)g(initial)h(simple)h(matc)o(hing)d(selection)i +(algorithm)f(\(see)f Ft(completion_matches)195 2127 y(\(\))h +Fu(and)h Ft(rl_completion_entry_functi)o(on)p Fu(\).)i(The)e(default)g +(is)g(to)f(do)g(\014lename)i(com-)195 2182 y(pletion.)k(This)15 +b(calls)g Ft(rl_complete_internal)e(\(\))h Fu(with)h(an)f(argumen)o(t)f +(dep)q(ending)k(on)195 2237 y Fm(in)o(v)o(oking)p 364 +2237 14 2 v 17 w(k)o(ey)p Fu(.)1650 2316 y(F)l(unction)-1749 +b Fi(int)19 b Fh(rl)p 214 2316 18 3 v 21 w(p)r(ossible)p +432 2316 V 20 w(completions)k Fg(\()p Ft(int)15 b(count,)f(int)h +(invoking_key)p Fg(\)\))195 2371 y Fu(List)k(the)f(p)q(ossible)i +(completions.)29 b(See)19 b(description)h(of)d Ft(rl_complete)d(\(\))p +Fu(.)28 b(This)19 b(calls)195 2426 y Ft(rl_complete_internal)12 +b(\(\))j Fu(with)h(an)f(argumen)o(t)f(of)h(`)p Ft(?)p +Fu('.)1650 2506 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p +215 2506 V 21 w(insert)p 378 2506 V 21 w(completions)j +Fg(\()p Ft(int)14 b(count,)g(int)h(invoking_key)p Fg(\)\))195 +2560 y Fu(Insert)24 b(the)h(list)f(of)g(p)q(ossible)i(completions)f(in) +o(to)f(the)g(line,)k(deleting)e(the)e(partially-)195 +2615 y(completed)16 b(w)o(ord.)j(See)c(description)i(of)d +Ft(rl_complete)g(\(\))p Fu(.)19 b(This)d(calls)g Ft(rl_complete_)195 +2670 y(internal)e(\(\))h Fu(with)g(an)h(argumen)o(t)e(of)h(`)p +Ft(*)p Fu('.)p eop +%%Page: 32 34 +32 33 bop 75 -58 a Fu(32)1299 b(GNU)15 b(Readline)i(Library)1650 +183 y(F)l(unction)-1749 b Fi(char)20 b(**)f Fh(completion)p +547 183 18 3 v 21 w(matc)n(hes)j Fg(\()p Ft(char)15 b(*text,)f +(CPFunction)283 238 y(*entry_func)p Fg(\))195 293 y Fu(Returns)f(an)f +(arra)o(y)f(of)h Ft(\(char)j(*\))d Fu(whic)o(h)h(is)g(a)f(list)h(of)f +(completions)i(for)e Fm(text)p Fu(.)18 b(If)13 b(there)f(are)195 +348 y(no)17 b(completions,)g(returns)g Ft(\(char)d(**\)NULL)p +Fu(.)23 b(The)17 b(\014rst)f(en)o(try)g(in)i(the)e(returned)h(arra)o(y) +195 402 y(is)c(the)h(substitution)f(for)g Fm(text)p Fu(.)18 +b(The)13 b(remaining)i(en)o(tries)e(are)f(the)i(p)q(ossible)g +(completions.)195 457 y(The)h(arra)o(y)f(is)i(terminated)g(with)f(a)g +Ft(NULL)g Fu(p)q(oin)o(ter.)195 522 y Fm(en)o(try)p 302 +522 14 2 v 16 w(func)g Fu(is)d(a)f(function)h(of)g(t)o(w)o(o)e(args,)h +(and)g(returns)h(a)f Ft(\(char)k(*\))p Fu(.)j(The)12 +b(\014rst)f(argumen)o(t)195 577 y(is)j Fm(text)p Fu(.)19 +b(The)14 b(second)g(is)g(a)f(state)f(argumen)o(t;)h(it)h(is)g(zero)f +(on)h(the)f(\014rst)g(call,)i(and)f(non-zero)195 632 +y(on)g(subsequen)o(t)g(calls.)21 b Fm(en)o(try)p 714 +632 V 16 w(func)c Fu(returns)d(a)f Ft(NULL)h Fu(p)q(oin)o(ter)g(to)f +(the)h(caller)h(when)g(there)195 686 y(are)g(no)g(more)g(matc)o(hes.) +1650 771 y(F)l(unction)-1749 b Fi(char)20 b(*)f Fh(\014lename)p +455 771 18 3 v 20 w(completion)p 749 771 V 21 w(function)k +Fg(\()p Ft(char)15 b(*text,)f(int)283 826 y(state)p Fg(\))195 +881 y Fu(A)19 b(generator)g(function)h(for)f(\014lename)h(completion)h +(in)f(the)f(general)h(case.)33 b(Note)19 b(that)195 936 +y(completion)e(in)f(Bash)f(is)h(a)f(little)i(di\013eren)o(t)f(b)q +(ecause)g(of)f(all)h(the)g(pathnames)f(that)g(m)o(ust)195 +991 y(b)q(e)i(follo)o(w)o(ed)g(when)g(lo)q(oking)h(up)f(completions)h +(for)e(a)g(command.)24 b(The)17 b(Bash)g(source)f(is)195 +1045 y(a)f(useful)h(reference)g(for)f(writing)g(custom)g(completion)h +(functions.)1650 1130 y(F)l(unction)-1749 b Fi(char)20 +b(*)f Fh(username)p 487 1130 V 19 w(completion)p 780 +1130 V 21 w(function)k Fg(\()p Ft(char)14 b(*text,)g(int)283 +1185 y(state)p Fg(\))195 1240 y Fu(A)k(completion)g(generator)f(for)g +(usernames.)28 b Fm(text)18 b Fu(con)o(tains)f(a)h(partial)g(username)g +(pre-)195 1295 y(ceded)f(b)o(y)f(a)g(random)f(c)o(haracter)h(\(usually) +h(`)p Ft(~)p Fu('\).)k(As)16 b(with)g(all)h(completion)g(generators,) +195 1350 y Fm(state)g Fu(is)f(zero)f(on)g(the)g(\014rst)g(call)h(and)g +(non-zero)f(for)g(subsequen)o(t)h(calls.)75 1454 y Fl(2.5.3)30 +b(Completion)20 b(V)-5 b(ariables)1661 1569 y Fu(V)l(ariable)-1749 +b Fi(Function)20 b(*)g Fh(rl)p 391 1569 V 21 w(completion)p +686 1569 V 21 w(en)n(try)p 839 1569 V 21 w(function)195 +1623 y Fu(A)c(p)q(oin)o(ter)h(to)e(the)i(generator)e(function)i(for)e +Ft(completion_matches)e(\(\))p Fu(.)22 b Ft(NULL)16 b +Fu(means)195 1678 y(to)f(use)g Ft(filename_entry_function)d(\(\))p +Fu(,)j(the)g(default)h(\014lename)g(completer.)1661 1763 +y(V)l(ariable)-1749 b Fi(CPPFunction)21 b(*)e Fh(rl)p +469 1763 V 21 w(attempted)p 749 1763 V 20 w(completion)p +1043 1763 V 21 w(function)195 1818 y Fu(A)d(p)q(oin)o(ter)h(to)f(an)g +(alternativ)o(e)h(function)g(to)f(create)g(matc)o(hes.)23 +b(The)16 b(function)i(is)e(called)195 1873 y(with)f Fm(text)p +Fu(,)g Fm(start)p Fu(,)e(and)i Fm(end)p Fu(.)21 b Fm(start)15 +b Fu(and)g Fm(end)i Fu(are)e(indices)i(in)f Ft(rl_line_buffer)d +Fu(sa)o(ying)195 1927 y(what)22 b(the)h(b)q(oundaries)h(of)e +Fm(text)h Fu(are.)42 b(If)23 b(this)g(function)h(exists)f(and)f +(returns)h Ft(NULL)p Fu(,)195 1982 y(or)c(if)h(this)g(v)m(ariable)h(is) +f(set)g(to)e Ft(NULL)p Fu(,)i(then)g Ft(rl_complete)14 +b(\(\))19 b Fu(will)i(call)g(the)f(v)m(alue)g(of)195 +2037 y Ft(rl_completion_entry_functi)o(on)14 b Fu(to)j(generate)g(matc) +o(hes,)g(otherwise)g(the)g(arra)o(y)f(of)195 2092 y(strings)f(returned) +h(will)h(b)q(e)e(used.)1661 2177 y(V)l(ariable)-1749 +b Fi(CPFunction)21 b(*)e Fh(rl)p 443 2177 V 21 w(\014lename)p +672 2177 V 20 w(quoting)p 881 2177 V 21 w(function)195 +2232 y Fu(A)g(p)q(oin)o(ter)g(to)f(a)h(function)g(that)g(will)h(quote)f +(a)f(\014lename)i(in)g(an)e(application-)j(sp)q(eci\014c)195 +2286 y(fashion.)33 b(This)20 b(is)g(called)h(if)f(\014lename)g +(completion)h(is)f(b)q(eing)g(attempted)f(and)h(one)f(of)195 +2341 y(the)13 b(c)o(haracters)f(in)h Ft(rl_filename_quote_characte)o +(rs)d Fu(app)q(ears)i(in)i(a)e(completed)i(\014le-)195 +2396 y(name.)29 b(The)18 b(function)h(is)g(called)h(with)e +Fm(text)p Fu(,)g Fm(matc)o(h)p 1144 2396 14 2 v 16 w(t)o(yp)q(e)p +Fu(,)h(and)f Fm(quote)p 1480 2396 V 16 w(p)q(oin)o(ter)p +Fu(.)30 b(The)195 2451 y Fm(text)17 b Fu(is)h(the)f(\014lename)h(to)e +(b)q(e)h(quoted.)25 b(The)17 b Fm(matc)o(h)p 1115 2451 +V 16 w(t)o(yp)q(e)i Fu(is)f(either)f Ft(SINGLE_MATCH)p +Fu(,)e(if)195 2506 y(there)j(is)g(only)h(one)f(completion)h(matc)o(h,)f +(or)f Ft(MULT_MATCH)p Fu(.)27 b(Some)18 b(functions)g(use)h(this)195 +2560 y(to)13 b(decide)i(whether)f(or)g(not)f(to)g(insert)h(a)f(closing) +i(quote)f(c)o(haracter.)k(The)c Fm(quote)p 1600 2560 +V 16 w(p)q(oin)o(ter)195 2615 y Fu(is)20 b(a)g(p)q(oin)o(ter)g(to)f(an) +o(y)g(op)q(ening)i(quote)e(c)o(haracter)g(the)h(user)g(t)o(yp)q(ed.)34 +b(Some)19 b(functions)195 2670 y(c)o(ho)q(ose)c(to)g(reset)g(this)g(c)o +(haracter.)p eop +%%Page: 33 35 +33 34 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(33)1661 183 y(V)l(ariable)-1749 b Fi(CPFunction)21 +b(*)e Fh(rl)p 443 183 18 3 v 21 w(\014lename)p 672 183 +V 20 w(dequoting)p 939 183 V 21 w(function)195 238 y +Fu(A)14 b(p)q(oin)o(ter)g(to)e(a)i(function)g(that)f(will)i(remo)o(v)o +(e)e(application-sp)q(eci\014c)k(quoting)d(c)o(haracters)195 +293 y(from)21 b(a)g(\014lename)h(b)q(efore)f(completion)i(is)f +(attempted,)g(so)f(those)g(c)o(haracters)f(do)h(not)195 +348 y(in)o(terfere)e(with)f(matc)o(hing)h(the)f(text)g(against)g(names) +g(in)h(the)f(\014lesystem.)30 b(It)19 b(is)f(called)195 +402 y(with)g Fm(text)p Fu(,)g(the)g(text)g(of)g(the)g(w)o(ord)f(to)g(b) +q(e)i(dequoted,)g(and)f Fm(quote)p 1381 402 14 2 v 16 +w(c)o(har)p Fu(,)g(whic)o(h)h(is)g(the)195 457 y(quoting)e(c)o +(haracter)f(that)g(delimits)i(the)f(\014lename)h(\(usually)f(`)p +Ft(')p Fu(')f(or)g(`)p Ft(")p Fu('\).)23 b(If)17 b Fm(quote)p +1657 457 V 16 w(c)o(har)195 512 y Fu(is)f(zero,)e(the)i(\014lename)g(w) +o(as)e(not)h(in)h(an)f(em)o(b)q(edded)i(string.)1661 +611 y(V)l(ariable)-1749 b Fi(Function)20 b(*)g Fh(rl)p +391 611 18 3 v 21 w(c)n(har)p 519 611 V 20 w(is)p 577 +611 V 22 w(quoted)p 770 611 V 20 w(p)195 665 y Fu(A)c(p)q(oin)o(ter)g +(to)f(a)h(function)g(to)g(call)g(that)g(determines)g(whether)g(or)g +(not)f(a)g(sp)q(eci\014c)j(c)o(har-)195 720 y(acter)12 +b(in)i(the)f(line)i(bu\013er)e(is)g(quoted,)g(according)h(to)e(whatev)o +(er)g(quoting)h(mec)o(hanism)h(the)195 775 y(program)e(calling)j +(readline)g(uses.)20 b(The)13 b(function)h(is)g(called)h(with)f(t)o(w)o +(o)e(argumen)o(ts:)18 b Fm(text)p Fu(,)195 830 y(the)11 +b(text)g(of)g(the)g(line,)i(and)f Fm(index)p Fu(,)g(the)g(index)g(of)f +(the)g(c)o(haracter)g(in)h(the)f(line.)20 b(It)11 b(is)h(used)g(to)195 +884 y(decide)20 b(whether)e(a)g(c)o(haracter)g(found)h(in)g +Ft(rl_completer_word_break_)o(charact)o(ers)195 939 y +Fu(should)d(b)q(e)g(used)g(to)e(break)i(w)o(ords)e(for)h(the)g +(completer.)1661 1038 y(V)l(ariable)-1749 b Fi(int)20 +b Fh(rl)p 215 1038 V 21 w(completion)p 510 1038 V 21 +w(query)p 673 1038 V 21 w(items)195 1093 y Fu(Up)d(to)e(this)i(man)o(y) +f(items)h(will)h(b)q(e)f(displa)o(y)o(ed)g(in)g(resp)q(onse)g(to)f(a)g +(p)q(ossible-completions)195 1147 y(call.)26 b(After)16 +b(that,)g(w)o(e)h(ask)f(the)h(user)g(if)g(she)g(is)h(sure)e(she)i(w)o +(an)o(ts)d(to)h(see)h(them)g(all.)26 b(The)195 1202 y(default)16 +b(v)m(alue)g(is)g(100.)1661 1301 y(V)l(ariable)-1749 +b Fi(char)20 b(*)f Fh(rl)p 286 1301 V 21 w(basic)p 430 +1301 V 21 w(w)n(ord)p 575 1301 V 21 w(break)p 736 1301 +V 20 w(c)n(haracters)195 1356 y Fu(The)13 b(basic)h(list)f(of)g(c)o +(haracters)f(that)g(signal)i(a)e(break)h(b)q(et)o(w)o(een)g(w)o(ords)f +(for)g(the)h(completer)195 1410 y(routine.)20 b(The)c(default)g(v)m +(alue)g(of)f(this)g(v)m(ariable)i(is)f(the)f(c)o(haracters)g(whic)o(h)h +(break)f(w)o(ords)195 1465 y(for)g(completion)h(in)g(Bash,)f(i.e.,)g +Ft(")g(\\t\\n\\"\\\\'`@$><=;|&{\(")p Fu(.)1661 1564 y(V)l(ariable)-1749 +b Fi(char)20 b(*)f Fh(rl)p 286 1564 V 21 w(basic)p 430 +1564 V 21 w(quote)p 590 1564 V 21 w(c)n(haracters)195 +1618 y Fu(List)d(of)f(quote)g(c)o(haracters)f(whic)o(h)i(can)f(cause)h +(a)f(w)o(ord)f(break.)1661 1717 y(V)l(ariable)-1749 b +Fi(char)20 b(*)f Fh(rl)p 286 1717 V 21 w(completer)p +555 1717 V 21 w(w)n(ord)p 700 1717 V 20 w(break)p 860 +1717 V 20 w(c)n(haracters)195 1772 y Fu(The)j(list)g(of)f(c)o +(haracters)g(that)g(signal)h(a)g(break)f(b)q(et)o(w)o(een)h(w)o(ords)f +(for)g Ft(rl_complete_)195 1827 y(internal)14 b(\(\))p +Fu(.)k(The)10 b(default)h(list)g(is)g(the)f(v)m(alue)h(of)f +Ft(rl_basic_word_break_charac)o(ters)p Fu(.)p 1909 1831 +21 36 v 1661 1925 a(V)l(ariable)-1749 b Fi(char)20 b(*)f +Fh(rl)p 286 1925 18 3 v 21 w(completer)p 555 1925 V 21 +w(quote)p 715 1925 V 21 w(c)n(haracters)195 1980 y Fu(List)11 +b(of)g(c)o(haracters)f(whic)o(h)h(can)g(b)q(e)h(used)f(to)g(quote)f(a)h +(substring)g(of)f(the)h(line.)20 b(Completion)195 2035 +y(o)q(ccurs)c(on)g(the)g(en)o(tire)g(substring,)g(and)g(within)h(the)e +(substring)h Ft(rl_completer_word_)195 2089 y(break_characters)d +Fu(are)h(treated)g(as)h(an)o(y)f(other)g(c)o(haracter,)g(unless)i(they) +f(also)g(app)q(ear)195 2144 y(within)h(this)g(list.)1661 +2243 y(V)l(ariable)-1749 b Fi(char)20 b(*)f Fh(rl)p 286 +2243 V 21 w(\014lename)p 515 2243 V 20 w(quote)p 674 +2243 V 21 w(c)n(haracters)195 2298 y Fu(A)d(list)g(of)g(c)o(haracters)e +(that)h(cause)h(a)g(\014lename)h(to)e(b)q(e)h(quoted)g(b)o(y)f(the)h +(completer)g(when)195 2352 y(they)f(app)q(ear)h(in)g(a)f(completed)h +(\014lename.)21 b(The)15 b(default)h(is)g(the)f(n)o(ull)i(string.)1661 +2451 y(V)l(ariable)-1749 b Fi(char)20 b(*)f Fh(rl)p 286 +2451 V 21 w(sp)r(ecial)p 473 2451 V 22 w(pre\014xes)195 +2506 y Fu(The)14 b(list)h(of)e(c)o(haracters)g(that)g(are)g(w)o(ord)g +(break)h(c)o(haracters,)f(but)h(should)g(b)q(e)h(left)f(in)g +Fm(text)195 2560 y Fu(when)19 b(it)g(is)g(passed)f(to)g(the)h +(completion)g(function.)31 b(Programs)17 b(can)h(use)h(this)g(to)f +(help)195 2615 y(determine)e(what)e(kind)i(of)e(completing)i(to)e(do.) +19 b(F)l(or)14 b(instance,)h(Bash)g(sets)f(this)i(v)m(ariable)195 +2670 y(to)f Ft(")p Fu($)p Ft(@")f Fu(so)h(that)f(it)i(can)f(complete)h +(shell)h(v)m(ariables)f(and)g(hostnames.)p eop +%%Page: 34 36 +34 35 bop 75 -58 a Fu(34)1299 b(GNU)15 b(Readline)i(Library)1661 +183 y(V)l(ariable)-1749 b Fi(int)20 b Fh(rl)p 215 183 +18 3 v 21 w(completion)p 510 183 V 21 w(app)r(end)p 715 +183 V 19 w(c)n(haracter)195 238 y Fu(When)15 b(a)e(single)j(completion) +f(alternativ)o(e)f(matc)o(hes)g(at)g(the)g(end)h(of)e(the)i(command)f +(line,)195 293 y(this)20 b(c)o(haracter)e(is)i(app)q(ended)h(to)d(the)i +(inserted)g(completion)g(text.)31 b(The)20 b(default)g(is)f(a)195 +348 y(space)14 b(c)o(haracter)f(\(`)i('\).)j(Setting)c(this)h(to)e(the) +h(n)o(ull)h(c)o(haracter)e(\(`)p Ft(\\0)p Fu('\))f(prev)o(en)o(ts)i(an) +o(ything)195 402 y(b)q(eing)24 b(app)q(ended)g(automatically)l(.)42 +b(This)23 b(can)g(b)q(e)g(c)o(hanged)f(in)i(custom)e(completion)195 +457 y(functions)15 b(to)e(pro)o(vide)i(the)f(\\most)f(sensible)j(w)o +(ord)d(separator)g(c)o(haracter")g(according)i(to)195 +512 y(an)g(application-sp)q(eci\014)q(c)j(command)d(line)i(syn)o(tax)d +(sp)q(eci\014cation.)1661 599 y(V)l(ariable)-1749 b Fi(int)20 +b Fh(rl)p 215 599 V 21 w(ignore)p 391 599 V 20 w(completion)p +685 599 V 21 w(duplicates)195 654 y Fu(If)15 b(non-zero,)h(then)f +(disallo)o(w)h(duplicates)h(in)f(the)g(matc)o(hes.)j(Default)c(is)h(1.) +1661 741 y(V)l(ariable)-1749 b Fi(int)20 b Fh(rl)p 215 +741 V 21 w(\014lename)p 444 741 V 20 w(completion)p 738 +741 V 21 w(desired)195 796 y Fu(Non-zero)15 b(means)g(that)g(the)g +(results)h(of)f(the)g(matc)o(hes)g(are)f(to)h(b)q(e)h(treated)f(as)f +(\014lenames.)195 851 y(This)e(is)h Fm(alw)o(a)o(ys)f +Fu(zero)g(on)g(en)o(try)l(,)g(and)g(can)f(only)i(b)q(e)f(c)o(hanged)g +(within)h(a)e(completion)i(en)o(try)195 905 y(generator)f(function.)20 +b(If)14 b(it)f(is)h(set)f(to)g(a)g(non-zero)g(v)m(alue,)i(directory)e +(names)h(ha)o(v)o(e)f(a)g(slash)195 960 y(app)q(ended)k(and)f(Readline) +h(attempts)e(to)f(quote)i(completed)g(\014lenames)g(if)g(they)g(con)o +(tain)195 1015 y(an)o(y)f(em)o(b)q(edded)i(w)o(ord)d(break)h(c)o +(haracters.)1661 1102 y(V)l(ariable)-1749 b Fi(int)20 +b Fh(rl)p 215 1102 V 21 w(\014lename)p 444 1102 V 20 +w(quoting)p 653 1102 V 21 w(desired)195 1157 y Fu(Non-zero)c(means)f +(that)g(the)h(results)g(of)g(the)f(matc)o(hes)h(are)f(to)g(b)q(e)h +(quoted)g(using)h(double)195 1212 y(quotes)12 b(\(or)f(an)g +(application-sp)q(eci)q(\014c)k(quoting)d(mec)o(hanism\))g(if)g(the)g +(completed)h(\014lename)195 1267 y(con)o(tains)f(an)o(y)g(c)o +(haracters)g(in)h Ft(rl_filename_quote_chars)p Fu(.)j(This)c(is)h +Fm(alw)o(a)o(ys)h Fu(non-zero)195 1321 y(on)d(en)o(try)l(,)g(and)h(can) +f(only)h(b)q(e)g(c)o(hanged)f(within)h(a)f(completion)i(en)o(try)d +(generator)g(function.)195 1376 y(The)16 b(quoting)h(is)g(e\013ected)f +(via)h(a)e(call)j(to)d(the)i(function)g(p)q(oin)o(ted)g(to)e(b)o(y)i +Ft(rl_filename_)195 1431 y(quoting_function)p Fu(.)1661 +1518 y(V)l(ariable)-1749 b Fi(int)20 b Fh(rl)p 215 1518 +V 21 w(inhibit)p 399 1518 V 23 w(completion)195 1573 +y Fu(If)15 b(this)f(v)m(ariable)i(is)f(non-zero,)f(completion)i(is)f +(inhibit)p Ft(<)p Fu(ed.)22 b(The)14 b(completion)i(c)o(haracter)195 +1628 y(will)h(b)q(e)f(inserted)g(as)f(an)o(y)f(other)h(b)q(ound)h(to)f +Ft(self-insert)p Fu(.)1661 1715 y(V)l(ariable)-1749 b +Fi(Function)20 b(*)g Fh(rl)p 391 1715 V 21 w(ignore)p +567 1715 V 20 w(some)p 714 1715 V 19 w(completions)p +1030 1715 V 21 w(function)195 1770 y Fu(This)15 b(function,)g(if)f +(de\014ned,)i(is)e(called)i(b)o(y)e(the)h(completer)f(when)h(real)g +(\014lename)g(comple-)195 1824 y(tion)k(is)g(done,)g(after)f(all)i(the) +f(matc)o(hing)f(names)h(ha)o(v)o(e)f(b)q(een)i(generated.)30 +b(It)19 b(is)g(passed)195 1879 y(a)h Ft(NULL)f Fu(terminated)h(arra)o +(y)f(of)g(matc)o(hes.)34 b(The)20 b(\014rst)g(elemen)o(t)h(\()p +Ft(matches[0])p Fu(\))c(is)k(the)195 1934 y(maximal)e(substring)f +(common)g(to)g(all)h(matc)o(hes.)29 b(This)19 b(function)g(can)f +(re-arrange)g(the)195 1989 y(list)h(of)e(matc)o(hes)h(as)f(required,)i +(but)f(eac)o(h)g(elemen)o(t)h(deleted)g(from)e(the)h(arra)o(y)f(m)o +(ust)g(b)q(e)195 2044 y(freed.)1661 2131 y(V)l(ariable)-1749 +b Fi(Function)20 b(*)g Fh(rl)p 391 2131 V 21 w(directory)p +639 2131 V 21 w(completion)p 934 2131 V 21 w(ho)r(ok)195 +2185 y Fu(This)13 b(function,)h(if)g(de\014ned,)g(is)f(allo)o(w)o(ed)h +(to)e(mo)q(dify)h(the)g(directory)g(p)q(ortion)g(of)g(\014lenames)195 +2240 y(Readline)k(completes.)j(It)15 b(is)g(called)h(with)f(the)g +(address)g(of)f(a)g(string)h(\(the)f(curren)o(t)h(direc-)195 +2295 y(tory)f(name\))g(as)h(an)f(argumen)o(t.)19 b(It)c(could)h(b)q(e)f +(used)h(to)e(expand)h(sym)o(b)q(olic)h(links)g(or)e(shell)195 +2350 y(v)m(ariables)j(in)f(pathnames.)75 2457 y Fl(2.5.4)30 +b(A)21 b(Short)f(Completion)g(Example)137 2552 y Fu(Here)11 +b(is)f(a)g(small)h(application)h(demonstrating)e(the)g(use)h(of)e(the)i +(GNU)f(Readline)i(library)l(.)19 b(It)11 b(is)f(called)75 +2606 y Ft(fileman)p Fu(,)17 b(and)h(the)g(source)g(co)q(de)g(resides)h +(in)f(`)p Ft(examples/fileman.c)p Fu('.)25 b(This)18 +b(sample)g(application)75 2661 y(pro)o(vides)c(completion)g(of)e +(command)h(names,)g(line)i(editing)g(features,)d(and)i(access)f(to)f +(the)h(history)h(list.)p eop +%%Page: 35 37 +35 36 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(35)195 183 y Ft(/*)24 b(fileman.c)e(--)i(A)g(tiny)f +(application)f(which)h(demonstrates)g(how)g(to)h(use)f(the)267 +235 y(GNU)g(Readline)g(library.)46 b(This)24 b(application)e +(interactively)g(allows)h(users)267 287 y(to)g(manipulate)g(files)g +(and)g(their)g(modes.)h(*/)195 391 y(#include)f(<stdio.h>)195 +443 y(#include)g(<sys/types.h>)195 495 y(#include)g(<sys/file.h>)195 +546 y(#include)g(<sys/stat.h>)195 598 y(#include)g(<sys/errno.h>)195 +702 y(#include)g(<readline/readline.h>)195 754 y(#include)g +(<readline/history.h>)195 858 y(extern)g(char)g(*getwd)g(\(\);)195 +910 y(extern)g(char)g(*xmalloc)g(\(\);)195 1013 y(/*)h(The)f(names)g +(of)h(functions)e(that)i(actually)f(do)g(the)h(manipulation.)e(*/)195 +1065 y(int)h(com_list)g(\(\),)h(com_view)e(\(\),)i(com_rename)e(\(\),)i +(com_stat)f(\(\),)g(com_pwd)g(\(\);)195 1117 y(int)g(com_delete)g +(\(\),)g(com_help)g(\(\),)h(com_cd)f(\(\),)g(com_quit)g(\(\);)195 +1221 y(/*)h(A)f(structure)g(which)g(contains)g(information)f(on)i(the)f +(commands)g(this)g(program)267 1273 y(can)g(understand.)f(*/)195 +1377 y(typedef)h(struct)g({)243 1429 y(char)g(*name;)g(/*)h(User)f +(printable)g(name)g(of)h(the)f(function.)g(*/)243 1480 +y(Function)f(*func;)i(/*)f(Function)g(to)g(call)h(to)f(do)h(the)f(job.) +h(*/)243 1532 y(char)f(*doc;)g(/*)h(Documentation)e(for)h(this)h +(function.)46 b(*/)195 1584 y(})24 b(COMMAND;)195 1688 +y(COMMAND)f(commands[])f(=)i({)243 1740 y({)f("cd",)h(com_cd,)f +("Change)f(to)i(directory)f(DIR")g(},)243 1792 y({)g("delete",)g +(com_delete,)f("Delete)h(FILE")h(},)243 1844 y({)f("help",)g(com_help,) +g("Display)g(this)g(text")g(},)243 1896 y({)g("?",)h(com_help,)e +("Synonym)h(for)h(`help'")f(},)243 1947 y({)g("list",)g(com_list,)g +("List)g(files)g(in)h(DIR")f(},)243 1999 y({)g("ls",)h(com_list,)e +("Synonym)h(for)g(`list'")g(},)243 2051 y({)g("pwd",)g(com_pwd,)g +("Print)g(the)h(current)f(working)g(directory")f(},)243 +2103 y({)h("quit",)g(com_quit,)g("Quit)g(using)g(Fileman")g(},)243 +2155 y({)g("rename",)g(com_rename,)f("Rename)h(FILE)h(to)f(NEWNAME")g +(},)243 2207 y({)g("stat",)g(com_stat,)g("Print)g(out)g(statistics)g +(on)h(FILE")f(},)243 2259 y({)g("view",)g(com_view,)g("View)g(the)h +(contents)e(of)i(FILE")f(},)243 2311 y({)g(\(char)h(*\)NULL,)f +(\(Function)f(*\)NULL,)h(\(char)g(*\)NULL)g(})195 2363 +y(};)195 2466 y(/*)h(Forward)e(declarations.)h(*/)195 +2518 y(char)g(*stripwhite)g(\(\);)195 2570 y(COMMAND)g(*find_command)f +(\(\);)p eop +%%Page: 36 38 +36 37 bop 75 -58 a Fu(36)1299 b(GNU)15 b(Readline)i(Library)195 +183 y Ft(/*)24 b(The)f(name)g(of)h(this)f(program,)g(as)h(taken)f(from) +g(argv[0].)g(*/)195 235 y(char)g(*progname;)195 339 y(/*)h(When)f +(non-zero,)g(this)g(global)g(means)g(the)h(user)f(is)g(done)h(using)f +(this)g(program.)g(*/)p 1985 349 21 42 v 195 391 a(int)g(done;)195 +495 y(char)g(*)195 546 y(dupstr)g(\(s\))314 598 y(int)h(s;)195 +650 y({)243 702 y(char)f(*r;)243 806 y(r)g(=)h(xmalloc)f(\(strlen)g +(\(s\))g(+)h(1\);)243 858 y(strcpy)f(\(r,)g(s\);)243 +910 y(return)g(\(r\);)195 962 y(})195 1065 y(main)g(\(argc,)g(argv\)) +314 1117 y(int)h(argc;)314 1169 y(char)g(**argv;)195 +1221 y({)243 1273 y(char)f(*line,)g(*s;)243 1377 y(progname)f(=)i +(argv[0];)243 1480 y(initialize_readline)d(\(\);)i(/*)h(Bind)f(our)h +(completer.)e(*/)243 1584 y(/*)h(Loop)h(reading)f(and)g(executing)g +(lines)g(until)g(the)g(user)h(quits.)f(*/)243 1636 y(for)g(\()h(;)g +(done)f(==)h(0;)f(\))290 1688 y({)338 1740 y(line)g(=)h(readline)f +(\("FileMan:)f("\);)338 1844 y(if)i(\(!line\))386 1896 +y(break;)338 1999 y(/*)g(Remove)f(leading)g(and)g(trailing)g +(whitespace)f(from)i(the)f(line.)410 2051 y(Then,)g(if)h(there)f(is)g +(anything)g(left,)g(add)h(it)f(to)h(the)f(history)g(list)410 +2103 y(and)g(execute)g(it.)h(*/)338 2155 y(s)g(=)g(stripwhite)e +(\(line\);)338 2259 y(if)i(\(*s\))386 2311 y({)434 2363 +y(add_history)e(\(s\);)434 2414 y(execute_line)g(\(s\);)386 +2466 y(})338 2570 y(free)h(\(line\);)290 2622 y(})p eop +%%Page: 37 39 +37 38 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(37)243 183 y Ft(exit)23 b(\(0\);)195 +235 y(})195 339 y(/*)h(Execute)e(a)i(command)f(line.)g(*/)195 +391 y(int)195 443 y(execute_line)f(\(line\))314 495 y(char)i(*line;)195 +546 y({)243 598 y(register)e(int)i(i;)243 650 y(COMMAND)f(*command;)243 +702 y(char)g(*word;)243 806 y(/*)g(Isolate)g(the)h(command)f(word.)g +(*/)243 858 y(i)g(=)h(0;)243 910 y(while)f(\(line[i])g(&&)g(whitespace) +g(\(line[i]\)\))290 962 y(i++;)243 1013 y(word)g(=)h(line)f(+)h(i;)243 +1117 y(while)f(\(line[i])g(&&)g(!whitespace)g(\(line[i]\)\))290 +1169 y(i++;)243 1273 y(if)g(\(line[i]\))290 1325 y(line[i++])g(=)h +('\\0';)243 1429 y(command)f(=)g(find_command)g(\(word\);)243 +1532 y(if)g(\(!command\))290 1584 y({)338 1636 y(fprintf)g(\(stderr,)g +("\045s:)g(No)h(such)f(command)g(for)g(FileMan.\\n",)g(word\);)338 +1688 y(return)g(\(-1\);)290 1740 y(})243 1844 y(/*)g(Get)h(argument)f +(to)g(command,)g(if)g(any.)h(*/)243 1896 y(while)f(\(whitespace)f +(\(line[i]\)\))290 1947 y(i++;)243 2051 y(word)h(=)h(line)f(+)h(i;)243 +2155 y(/*)f(Call)h(the)f(function.)g(*/)243 2207 y(return)g +(\(\(*\(command->func\)\))e(\(word\)\);)195 2259 y(})195 +2363 y(/*)j(Look)f(up)g(NAME)h(as)f(the)h(name)f(of)h(a)f(command,)g +(and)h(return)f(a)g(pointer)g(to)h(that)267 2414 y(command.)46 +b(Return)23 b(a)h(NULL)f(pointer)g(if)h(NAME)f(isn't)g(a)h(command)f +(name.)g(*/)195 2466 y(COMMAND)g(*)195 2518 y(find_command)f(\(name\)) +314 2570 y(char)i(*name;)195 2622 y({)p eop +%%Page: 38 40 +38 39 bop 75 -58 a Fu(38)1299 b(GNU)15 b(Readline)i(Library)243 +183 y Ft(register)22 b(int)i(i;)243 287 y(for)f(\(i)h(=)f(0;)h +(commands[i].name;)e(i++\))290 339 y(if)i(\(strcmp)f(\(name,)g +(commands[i].name\))f(==)h(0\))338 391 y(return)g(\(&commands[i]\);)243 +495 y(return)g(\(\(COMMAND)f(*\)NULL\);)195 546 y(})195 +650 y(/*)i(Strip)f(whitespace)f(from)i(the)f(start)g(and)h(end)f(of)h +(STRING.)46 b(Return)24 b(a)f(pointer)267 702 y(into)g(STRING.)g(*/)195 +754 y(char)g(*)195 806 y(stripwhite)f(\(string\))314 +858 y(char)i(*string;)195 910 y({)243 962 y(register)e(char)i(*s,)f +(*t;)243 1065 y(for)g(\(s)h(=)f(string;)g(whitespace)g(\(*s\);)g(s++\)) +290 1117 y(;)243 1221 y(if)g(\(*s)h(==)f(0\))290 1273 +y(return)g(\(s\);)243 1377 y(t)g(=)h(s)g(+)g(strlen)f(\(s\))g(-)h(1;) +243 1429 y(while)f(\(t)g(>)h(s)g(&&)g(whitespace)e(\(*t\)\))290 +1480 y(t--;)243 1532 y(*++t)h(=)h('\\0';)243 1636 y(return)f(s;)195 +1688 y(})195 1792 y(/*)h(***********************)o(*******)o(********)o +(*******)o(*******)o(********)o(****)d(*/)195 1844 y(/*)1575 +b(*/)195 1896 y(/*)429 b(Interface)23 b(to)g(Readline)g(Completion)381 +b(*/)195 1947 y(/*)1575 b(*/)195 1999 y(/*)24 b +(***********************)o(*******)o(********)o(*******)o(*******)o +(********)o(****)d(*/)195 2103 y(char)i(*command_generator)f(\(\);)195 +2155 y(char)h(**fileman_completion)e(\(\);)195 2259 y(/*)j(Tell)f(the)g +(GNU)h(Readline)f(library)f(how)i(to)g(complete.)46 b(We)24 +b(want)f(to)h(try)f(to)h(complete)p 2034 2269 21 42 v +267 2311 a(on)f(command)g(names)g(if)h(this)f(is)h(the)f(first)g(word)h +(in)f(the)h(line,)f(or)h(on)f(filenames)p 1962 2317 21 +35 v 267 2363 a(if)g(not.)g(*/)195 2414 y(initialize_readline)e(\(\)) +195 2466 y({)243 2518 y(/*)i(Allow)g(conditional)g(parsing)g(of)g(the)h +(~/.inputrc)e(file.)h(*/)243 2570 y(rl_readline_name)e(=)j("FileMan";)p +eop +%%Page: 39 41 +39 40 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(39)243 183 y Ft(/*)23 b(Tell)h(the)f(completer)g(that)g +(we)h(want)f(a)h(crack)f(first.)g(*/)243 235 y +(rl_attempted_completion_)o(functio)o(n)e(=)j(\(CPPFunction)e +(*\)fileman_completion;)195 287 y(})195 391 y(/*)i(Attempt)e(to)i +(complete)f(on)g(the)h(contents)f(of)g(TEXT.)47 b(START)23 +b(and)h(END)f(bound)h(the)267 443 y(region)f(of)g(rl_line_buffer)f +(that)h(contains)g(the)h(word)f(to)h(complete.)46 b(TEXT)23 +b(is)267 495 y(the)g(word)g(to)h(complete.)46 b(We)24 +b(can)f(use)h(the)f(entire)g(contents)g(of)h(rl_line_buffer)p +1963 505 21 38 v 267 546 a(in)f(case)g(we)h(want)f(to)h(do)g(some)f +(simple)g(parsing.)47 b(Return)23 b(the)g(array)g(of)h(matches,)p +1986 557 V 267 598 a(or)f(NULL)g(if)h(there)f(aren't)g(any.)h(*/)195 +650 y(char)f(**)195 702 y(fileman_completion)e(\(text,)i(start,)g +(end\))314 754 y(char)h(*text;)314 806 y(int)g(start,)f(end;)195 +858 y({)243 910 y(char)g(**matches;)243 1013 y(matches)g(=)g(\(char)h +(**\)NULL;)243 1117 y(/*)f(If)h(this)f(word)h(is)f(at)h(the)f(start)g +(of)h(the)f(line,)h(then)f(it)g(is)h(a)g(command)314 +1169 y(to)g(complete.)46 b(Otherwise)23 b(it)h(is)f(the)h(name)f(of)h +(a)f(file)h(in)f(the)h(current)314 1221 y(directory.)f(*/)243 +1273 y(if)g(\(start)g(==)h(0\))290 1325 y(matches)f(=)h +(completion_matches)d(\(text,)j(command_generator\);)243 +1429 y(return)f(\(matches\);)195 1480 y(})195 1584 y(/*)h(Generator)e +(function)h(for)g(command)g(completion.)47 b(STATE)23 +b(lets)g(us)h(know)f(whether)p 1938 1594 21 42 v 267 +1636 a(to)g(start)g(from)h(scratch;)e(without)h(any)h(state)f(\(i.e.)g +(STATE)g(==)h(0\),)f(then)h(we)267 1688 y(start)f(at)g(the)h(top)f(of)h +(the)f(list.)g(*/)195 1740 y(char)g(*)195 1792 y(command_generator)f +(\(text,)h(state\))314 1844 y(char)h(*text;)314 1896 +y(int)g(state;)195 1947 y({)243 1999 y(static)f(int)g(list_index,)g +(len;)243 2051 y(char)g(*name;)243 2155 y(/*)g(If)h(this)f(is)h(a)g +(new)f(word)g(to)h(complete,)f(initialize)f(now.)47 b(This)24 +b(includes)314 2207 y(saving)f(the)h(length)f(of)g(TEXT)h(for)f +(efficiency,)g(and)g(initializing)f(the)i(index)p 1938 +2217 21 38 v 314 2259 a(variable)f(to)h(0.)f(*/)243 2311 +y(if)g(\(!state\))290 2363 y({)338 2414 y(list_index)g(=)g(0;)338 +2466 y(len)h(=)f(strlen)g(\(text\);)290 2518 y(})243 +2622 y(/*)g(Return)g(the)h(next)f(name)g(which)h(partially)e(matches)h +(from)g(the)h(command)f(list.)g(*/)p 1985 2632 21 42 +v eop +%%Page: 40 42 +40 41 bop 75 -58 a Fu(40)1299 b(GNU)15 b(Readline)i(Library)243 +183 y Ft(while)23 b(\(name)g(=)h(commands[list_index].name)o(\))290 +235 y({)338 287 y(list_index++;)338 391 y(if)g(\(strncmp)f(\(name,)g +(text,)g(len\))g(==)h(0\))386 443 y(return)f(\(dupstr\(name\)\);)290 +495 y(})243 598 y(/*)g(If)h(no)f(names)h(matched,)e(then)i(return)f +(NULL.)g(*/)243 650 y(return)g(\(\(char)g(*\)NULL\);)195 +702 y(})195 806 y(/*)h(***********************)o(*******)o(********)o +(*******)o(*******)o(********)o(****)d(*/)195 858 y(/*)1575 +b(*/)195 910 y(/*)549 b(FileMan)22 b(Commands)644 b(*/)195 +962 y(/*)1575 b(*/)195 1013 y(/*)24 b(***********************)o +(*******)o(********)o(*******)o(*******)o(********)o(****)d(*/)195 +1117 y(/*)j(String)f(to)g(pass)h(to)f(system)g(\(\).)47 +b(This)24 b(is)f(for)h(the)f(LIST,)g(VIEW)h(and)f(RENAME)267 +1169 y(commands.)f(*/)195 1221 y(static)h(char)g(syscom[1024];)195 +1325 y(/*)h(List)f(the)g(file\(s\))g(named)g(in)h(arg.)f(*/)195 +1377 y(com_list)g(\(arg\))314 1429 y(char)h(*arg;)195 +1480 y({)243 1532 y(if)f(\(!arg\))290 1584 y(arg)h(=)g("";)243 +1688 y(sprintf)f(\(syscom,)f("ls)i(-FClg)f(\045s",)g(arg\);)243 +1740 y(return)g(\(system)g(\(syscom\)\);)195 1792 y(})195 +1896 y(com_view)g(\(arg\))314 1947 y(char)h(*arg;)195 +1999 y({)243 2051 y(if)f(\(!valid_argument)f(\("view",)h(arg\)\))290 +2103 y(return)g(1;)243 2207 y(sprintf)g(\(syscom,)f("more)i(\045s",)f +(arg\);)243 2259 y(return)g(\(system)g(\(syscom\)\);)195 +2311 y(})195 2414 y(com_rename)f(\(arg\))314 2466 y(char)i(*arg;)195 +2518 y({)243 2570 y(too_dangerous)e(\("rename"\);)243 +2622 y(return)h(\(1\);)p eop +%%Page: 41 43 +41 42 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(41)195 183 y Ft(})195 287 y(com_stat)23 +b(\(arg\))314 339 y(char)h(*arg;)195 391 y({)243 443 +y(struct)f(stat)g(finfo;)243 546 y(if)g(\(!valid_argument)f(\("stat",)h +(arg\)\))290 598 y(return)g(\(1\);)243 702 y(if)g(\(stat)g(\(arg,)h +(&finfo\))f(==)g(-1\))290 754 y({)338 806 y(perror)g(\(arg\);)338 +858 y(return)g(\(1\);)290 910 y(})243 1013 y(printf)g(\("Statistics)f +(for)h(`\045s':\\n",)g(arg\);)243 1117 y(printf)g(\("\045s)g(has)h +(\045d)f(link\045s,)g(and)g(is)h(\045d)g(byte\045s)f(in)g(length.\\n",) +g(arg,)434 1169 y(finfo.st_nlink,)434 1221 y(\(finfo.st_nlink)e(==)j +(1\))g(?)f("")h(:)g("s",)434 1273 y(finfo.st_size,)434 +1325 y(\(finfo.st_size)e(==)h(1\))h(?)f("")h(:)g("s"\);)243 +1377 y(printf)f(\("Inode)g(Last)g(Change)g(at:)g(\045s",)h(ctime)f +(\(&finfo.st_ctime\)\);)243 1429 y(printf)g(\(")143 b(Last)23 +b(access)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_atime\)\);)243 +1480 y(printf)g(\(")95 b(Last)23 b(modified)g(at:)g(\045s",)h(ctime)f +(\(&finfo.st_mtime\)\);)243 1532 y(return)g(\(0\);)195 +1584 y(})195 1688 y(com_delete)f(\(arg\))314 1740 y(char)i(*arg;)195 +1792 y({)243 1844 y(too_dangerous)e(\("delete"\);)243 +1896 y(return)h(\(1\);)195 1947 y(})195 2051 y(/*)h(Print)f(out)g(help) +h(for)f(ARG,)g(or)h(for)f(all)h(of)f(the)h(commands)f(if)g(ARG)h(is)267 +2103 y(not)f(present.)g(*/)195 2155 y(com_help)g(\(arg\))314 +2207 y(char)h(*arg;)195 2259 y({)243 2311 y(register)e(int)i(i;)243 +2363 y(int)f(printed)g(=)h(0;)243 2466 y(for)f(\(i)h(=)f(0;)h +(commands[i].name;)e(i++\))290 2518 y({)338 2570 y(if)i(\(!*arg)f(||)g +(\(strcmp)g(\(arg,)g(commands[i].name\))f(==)i(0\)\))386 +2622 y({)p eop +%%Page: 42 44 +42 43 bop 75 -58 a Fu(42)1299 b(GNU)15 b(Readline)i(Library)434 +183 y Ft(printf)23 b(\("\045s\\t\\t\045s.\\n",)e(commands[i].name,)h +(commands[i].doc\);)434 235 y(printed++;)386 287 y(})290 +339 y(})243 443 y(if)h(\(!printed\))290 495 y({)338 546 +y(printf)g(\("No)h(commands)e(match)h(`\045s'.)48 b(Possibilties)22 +b(are:\\n",)h(arg\);)338 650 y(for)h(\(i)f(=)h(0;)g(commands[i].name;)d +(i++\))386 702 y({)434 754 y(/*)i(Print)g(in)h(six)f(columns.)g(*/)434 +806 y(if)g(\(printed)g(==)h(6\))481 858 y({)529 910 y(printed)f(=)h(0;) +529 962 y(printf)f(\("\\n"\);)481 1013 y(})434 1117 y(printf)g +(\("\045s\\t",)f(commands[i].name\);)434 1169 y(printed++;)386 +1221 y(})338 1325 y(if)i(\(printed\))386 1377 y(printf)f(\("\\n"\);)290 +1429 y(})243 1480 y(return)g(\(0\);)195 1532 y(})195 +1636 y(/*)h(Change)f(to)g(the)h(directory)e(ARG.)i(*/)195 +1688 y(com_cd)f(\(arg\))314 1740 y(char)h(*arg;)195 1792 +y({)243 1844 y(if)f(\(chdir)g(\(arg\))h(==)f(-1\))290 +1896 y({)338 1947 y(perror)g(\(arg\);)338 1999 y(return)g(1;)290 +2051 y(})243 2155 y(com_pwd)g(\(""\);)243 2207 y(return)g(\(0\);)195 +2259 y(})195 2363 y(/*)h(Print)f(out)g(the)h(current)f(working)f +(directory.)h(*/)195 2414 y(com_pwd)g(\(ignore\))314 +2466 y(char)h(*ignore;)195 2518 y({)243 2570 y(char)f(dir[1024],)g(*s;) +p eop +%%Page: 43 45 +43 44 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g +(Readline)844 b(43)243 183 y Ft(s)23 b(=)h(getwd)f(\(dir\);)243 +235 y(if)g(\(s)h(==)f(0\))290 287 y({)338 339 y(printf)g(\("Error)g +(getting)g(pwd:)g(\045s\\n",)g(dir\);)338 391 y(return)g(1;)290 +443 y(})243 546 y(printf)g(\("Current)f(directory)h(is)h(\045s\\n",)f +(dir\);)243 598 y(return)g(0;)195 650 y(})195 754 y(/*)h(The)f(user)g +(wishes)g(to)h(quit)f(using)g(this)h(program.)46 b(Just)24 +b(set)f(DONE)h(non-zero.)e(*/)p 1961 764 21 42 v 195 +806 a(com_quit)h(\(arg\))314 858 y(char)h(*arg;)195 910 +y({)243 962 y(done)f(=)h(1;)243 1013 y(return)f(\(0\);)195 +1065 y(})195 1169 y(/*)h(Function)e(which)i(tells)f(you)g(that)g(you)h +(can't)f(do)h(this.)f(*/)195 1221 y(too_dangerous)f(\(caller\))314 +1273 y(char)i(*caller;)195 1325 y({)243 1377 y(fprintf)f(\(stderr,)457 +1429 y("\045s:)h(Too)f(dangerous)g(for)g(me)h(to)g(distribute.)46 +b(Write)23 b(it)h(yourself.\\n",)p 1987 1439 V 457 1480 +a(caller\);)195 1532 y(})195 1636 y(/*)g(Return)f(non-zero)f(if)i(ARG)f +(is)h(a)g(valid)f(argument)g(for)g(CALLER,)g(else)g(print)267 +1688 y(an)g(error)g(message)g(and)h(return)f(zero.)g(*/)195 +1740 y(int)195 1792 y(valid_argument)f(\(caller,)h(arg\))314 +1844 y(char)h(*caller,)e(*arg;)195 1896 y({)243 1947 +y(if)h(\(!arg)g(||)h(!*arg\))290 1999 y({)338 2051 y(fprintf)f +(\(stderr,)g("\045s:)g(Argument)g(required.\\n",)f(caller\);)338 +2103 y(return)h(\(0\);)290 2155 y(})243 2259 y(return)g(\(1\);)195 +2311 y(})p eop +%%Page: 44 46 +44 45 bop 75 -58 a Fu(44)1299 b(GNU)15 b(Readline)i(Library)p +eop +%%Page: 45 47 +45 46 bop 75 -58 a Fu(Concept)15 b(Index)1466 b(45)75 +183 y Fq(Concept)27 b(Index)75 359 y Fs(C)75 417 y Ff(command)14 +b(editing)9 b Fe(.)f(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 +b Ff(1)75 517 y Fs(E)75 575 y Ff(editing)15 b(command)f(lines)8 +b Fe(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(1)75 675 +y Fs(I)75 733 y Ff(initiali)q(zati)q(on)c(\014le,)e(readline)8 +b Fe(.)g(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(3)75 782 y(in)o(teraction,)15 +b(readline)e Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 +b Ff(1)75 882 y Fs(K)75 940 y Ff(kill)15 b(ring)e Fe(.)6 +b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)24 b Ff(2)1012 359 y(killin)q(g)16 b(text)11 +b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)24 b Ff(2)1012 495 y Fs(N)1012 553 y Ff(notation,)15 +b(readline)5 b Fe(.)k(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +19 b Ff(1)1012 688 y Fs(R)1012 747 y Ff(readline,)c(function)6 +b Fe(.)i(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 +b Ff(19)1012 882 y Fs(Y)1012 940 y Ff(y)o(anking)c(text)6 +b Fe(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)19 b Ff(2)p eop +%%Page: 46 48 +46 47 bop 75 -58 a Fu(46)1299 b(GNU)15 b(Readline)i(Library)p +eop +%%Page: 47 49 +47 48 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187 +b(47)75 183 y Fq(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26 +b(Index)75 345 y Fs(\()75 403 y Fd(\(int)10 b Fe(.)c(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)24 b Ff(27)75 513 y Fs(A)75 571 y Fd(abort)11 b(\(C-g\))6 +b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)18 b Ff(15)75 621 y Fd(accept-lin)o(e)10 b(\(Newline)o(,)g(Return\)) +s Fe(.)s(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 +b Ff(11)75 671 y Fd(alphabetic)r Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(28)75 +781 y Fs(B)75 839 y Fd(backward-c)o(ha)o(r)10 b(\(C-b\))t +Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(11)75 889 +y Fd(backward-d)o(el)o(ete)o(-c)o(har)9 b(\(Rubout\))f +Fe(.)s(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 +b Ff(12)75 939 y Fd(backward-k)o(il)o(l-l)o(in)o(e)10 +b(\(C-x)h(Rubout\))e Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +22 b Ff(13)75 989 y Fd(backward-k)o(il)o(l-w)o(or)o(d)10 +b(\(M-DEL\))t Fe(.)s(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)16 b Ff(14)75 1038 y Fd(backward-w)o(or)o(d)10 +b(\(M-b\))t Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(11)75 +1088 y Fd(beginning-)o(of)o(-hi)o(st)o(ory)9 b(\(M-<\))t +Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)16 b Ff(11)75 1138 y Fd(beginning-)o(of)o(-li)o(ne)9 +b(\(C-a\))e Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(11)75 1188 y(b)q(ell-st)o(yle)13 +b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)23 b Ff(4)75 1298 y Fs(C)75 1356 +y Fd(call-last-)o(kb)o(d-m)o(ac)o(ro)9 b(\(C-x)j(e\))6 +b Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +18 b Ff(15)75 1406 y Fd(capitalize)o(-w)o(ord)9 b(\(M-c\))f +Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(13)75 1456 y Fd(character-)o(se)o(arc)o +(h)10 b(\(C-]\))f Fe(.)s(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(16)75 1506 +y Fd(character-)o(se)o(arc)o(h-)o(bac)o(kwa)o(rd)9 b(\(M-C-]\))s +Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(16)75 +1555 y Fd(clear-scre)o(en)9 b(\(C-l\))c Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)18 b Ff(11)75 1605 y(commen)o(t-b)q(egin)9 b +Fe(.)f(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 +b Ff(4)75 1655 y Fd(complete)10 b(\(TAB\))e Fe(.)e(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(15)75 1705 y(completion-query-i)q +(tems)9 b Fe(.)f(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(4)75 +1755 y Fd(completion)p 276 1755 12 2 v 10 w(matches)5 +b Fe(.)s(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(32)75 +1804 y(con)o(v)o(ert-meta)11 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(4)75 1854 y Fd(copy-backw)o(ar) +o(d-w)o(or)o(d)10 b(\(\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 +b Ff(14)75 1904 y Fd(copy-forwa)o(rd)o(-wo)o(rd)9 b(\(\))i +Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(14)75 1954 y Fd(copy-regio)o(n-)o +(as-)o(ki)o(ll)9 b(\(\))g Fe(.)c(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(14)75 +2064 y Fs(D)75 2122 y Fd(delete-cha)o(r)10 b(\(C-d\))c +Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(12)75 +2172 y Fd(delete-hor)o(iz)o(ont)o(al)o(-sp)o(ace)9 b(\(\))t +Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)16 b Ff(14)75 2222 y Fd(digit-argu)o(me)o(nt)9 b(\(M-0,)i(M-1,)h +(...)f(M--\))t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)16 +b Ff(14)75 2271 y Fd(digit)p 177 2271 V 12 w(p)10 b Fe(.)c(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 +b Ff(28)75 2321 y Fd(digit)p 177 2321 V 12 w(value)5 +b Fe(.)t(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)18 b Ff(28)75 2371 y Fd(ding)10 b Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 +b Ff(28)75 2421 y(disable-comple)q(tion)7 b Fe(.)i(.)d(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(5)75 2471 y Fd(do-upperca)o(se)o(-ve)o +(rs)o(ion)9 b(\(M-a,)i(M-b,)g(M-)p Fe(x)p Fd(,)h Fc(:)6 +b(:)g(:)p Fd(\))j Fe(.)d(.)23 b Ff(16)75 2521 y Fd(downcase-w)o(or)o(d) +10 b(\(M-l\))t Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Ff(13)75 2570 y Fd(dump-funct)o(io)o(ns)9 b(\(\))d +Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(16)75 +2620 y Fd(dump-macro)o(s)10 b(\(\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)23 b Ff(16)75 2670 y Fd(dump-varia)o(bl)o(es)9 +b(\(\))d Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 +b Ff(16)1012 345 y Fs(E)1012 403 y Ff(editing-mo)q(de)13 +b Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)23 b Ff(5)1012 453 y(enable-k)o(eypad)13 b Fe(.)6 +b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 +b Ff(5)1012 503 y Fd(end-kbd-mac)o(ro)9 b(\(C-x)i(\)\))5 +b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(15)1012 553 y Fd(end-of-hist)o(or)o +(y)10 b(\(M->\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)24 b Ff(12)1012 +603 y Fd(end-of-line)9 b(\(C-e\))d Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)20 b Ff(11)1012 652 y Fd(exchange-po)o(in)o(t-a)o(nd)o(-ma)o +(rk)9 b(\(C-x)j(C-x\))7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 +b Ff(16)1012 702 y(expand-tilde)8 b Fe(.)h(.)d(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(5)1012 +811 y Fs(F)1012 869 y Fd(filename)p 1174 869 V 11 w(completion)p +1385 869 V 11 w(function)s Fe(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(32)1012 919 y Fd(forward-cha)o(r)10 +b(\(C-f\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)18 +b Ff(11)1012 969 y Fd(forward-sea)o(rc)o(h-h)o(is)o(tor)o(y)10 +b(\(C-s\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)23 b Ff(12)1012 1019 y Fd(forward-wor)o(d)10 b(\(M-f\))5 +b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)18 b Ff(11)1012 +1069 y Fd(free)p 1094 1069 V 13 w(undo)p 1187 1069 V +13 w(list)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)17 b Ff(26)1012 1178 y Fs(H)1012 1236 y Fd(history-sea)o(rc)o(h-b)o +(ac)o(kwa)o(rd)9 b(\(\))t Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(12)1012 1286 y Fd(history-sea)o(rc) +o(h-f)o(or)o(war)o(d)10 b(\(\))5 b Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(12)1012 +1336 y(horizon)o(tal-scrol)q(l-mo)r(de)c Fe(.)6 b(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)24 b Ff(5)1012 1445 y Fs(I)1012 1503 y Ff(input-meta)12 +b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)23 b Ff(5)1012 1553 y Fd(insert-comm)o(en)o(t)10 +b(\(M-#\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)24 b Ff(16)1012 +1602 y Fd(insert-comp)o(le)o(tio)o(ns)9 b(\(M-*\))d Fe(.)t(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 +b Ff(15)1012 1712 y Fs(K)1012 1770 y Ff(k)o(eymap)t Fe(.)7 +b(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)17 b Ff(5)1012 1820 y Fd(kill-line)10 +b(\(C-k\))f Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 +b Ff(13)1012 1869 y Fd(kill-region)9 b(\(\))g Fe(.)e(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(14)1012 1919 y +Fd(kill-whole-)o(li)o(ne)9 b(\(\))c Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +h(.)18 b Ff(13)1012 1969 y Fd(kill-word)10 b(\(M-d\))f +Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 +b Ff(14)1012 2078 y Fs(L)1012 2136 y Fd(lowercase)p 1194 +2136 V 11 w(p)5 b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)18 b Ff(28)1012 2245 y Fs(M)1012 2303 +y Ff(mark-mo)q(di\014ed-li)q(nes)6 b Fe(.)j(.)d(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)18 b Ff(5)1012 2353 y Fd(menu-comple)o(te)9 +b(\(\))f Fe(.)d(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)21 +b Ff(15)1012 2403 y(meta-\015ag)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 +b Ff(5)1012 2512 y Fs(N)1012 2570 y Fd(next-histor)o(y)10 +b(\(C-n\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)18 +b Ff(11)1012 2620 y Fd(non-increme)o(nt)o(al-)o(fo)o(rwa)o(rd)o(-se)o +(arc)o(h-)o(his)o(to)o(ry)10 b(\(M-n\))1093 2670 y Fe(.)c(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)17 b Ff(12)p eop +%%Page: 48 50 +48 49 bop 75 -58 a Fu(48)1299 b(GNU)15 b(Readline)i(Library)75 +183 y Fd(non-increm)o(en)o(tal)o(-r)o(eve)o(rse)o(-s)o(ear)o(ch)o(-hi)o +(st)o(ory)9 b(\(M-p\))155 233 y Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)16 +b Ff(12)75 283 y Fd(numeric)7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b +Ff(28)75 386 y Fs(O)75 444 y Ff(output-meta)7 b Fe(.)g(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 +b Ff(6)75 547 y Fs(P)75 605 y Fd(possible-c)o(om)o(ple)o(ti)o(ons)9 +b(\(M-?\))t Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)16 b Ff(15)75 655 y Fd(prefix-met)o(a)10 +b(\(ESC\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 +b Ff(16)75 704 y Fd(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))f +Fe(.)s(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)21 b Ff(11)75 807 y Fs(Q)75 865 y +Fd(quoted-ins)o(er)o(t)10 b(\(C-q,)h(C-v\))d Fe(.)e(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22 +b Ff(13)75 968 y Fs(R)75 1026 y Fd(re-read-in)o(it)o(-fi)o(le)9 +b(\(C-x)i(C-r\))6 b Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)18 b Ff(15)75 1076 y Fd(readline)6 +b Fe(.)s(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)19 b Ff(19)75 1126 y Fd(redraw-cur)o(re)o(nt-)o(li)o(ne) +9 b(\(\))g Fe(.)c(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(11)75 1176 y Fd(reverse-se)o(ar) +o(ch-)o(hi)o(sto)o(ry)9 b(\(C-r\))f Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)22 b Ff(12)75 1225 y Fd(revert-lin)o(e)10 +b(\(M-r\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 +b Ff(16)75 1275 y Fd(rl)p 117 1275 12 2 v 13 w(add)p +190 1275 V 13 w(defun)6 b Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(23)75 1325 y Fd(rl)p 117 +1325 V 13 w(add)p 190 1325 V 13 w(undo)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(26)75 +1375 y Fd(rl)p 117 1375 V 13 w(attempted)p 310 1375 V +11 w(completion)p 520 1375 V 10 w(function)h Fe(.)6 b(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)24 b Ff(32)75 1425 y Fd(rl)p 117 1425 +V 13 w(basic)p 230 1425 V 13 w(quote)p 343 1425 V 12 +w(character)o(s)13 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(33)75 1474 y Fd(rl)p +117 1474 V 13 w(basic)p 230 1474 V 13 w(word)p 323 1474 +V 12 w(break)p 435 1474 V 12 w(characters)h Fe(.)6 b(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(33)75 1524 y Fd(rl)p +117 1524 V 13 w(begin)p 230 1524 V 13 w(undo)p 323 1524 +V 12 w(group)9 b Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21 +b Ff(26)75 1574 y Fd(rl)p 117 1574 V 13 w(bind)p 210 +1574 V 13 w(key)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)20 b Ff(24)75 1624 y Fd(rl)p 117 +1624 V 13 w(bind)p 210 1624 V 13 w(key)p 283 1624 V 13 +w(in)p 336 1624 V 13 w(map)t Fe(.)5 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)17 b Ff(24)75 1674 y Fd(rl)p 117 1674 V 13 w(binding)p +270 1674 V 12 w(keymap)k Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23 +b Ff(22)75 1724 y Fd(rl)p 117 1724 V 13 w(callback)p +290 1724 V 11 w(handler)p 441 1724 V 12 w(install)7 b +Fe(.)s(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 +b Ff(28)75 1773 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(rem)o(ov)o(e)9 +b Fe(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +21 b Ff(29)75 1823 y Fd(rl_callbac)o(k_)o(rea)o(d_)o(cha)o(r)6 +b Fe(.)s(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(29)75 1873 y Fd(rl)p +117 1873 V 13 w(char)p 210 1873 V 13 w(is)p 263 1873 +V 13 w(quoted)p 396 1873 V 12 w(p)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)18 b Ff(33)75 1923 y Fd(rl)p 117 1923 V 13 w(clear)p +230 1923 V 13 w(message)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +h(.)22 b Ff(27)75 1973 y Fd(rl)p 117 1973 V 13 w(complete)5 +b Fe(.)s(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)18 b Ff(31)75 2022 y Fd(rl)p 117 2022 V 13 w(complete)p +290 2022 V 11 w(internal)5 b Fe(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 +b Ff(31)75 2072 y Fd(rl)p 117 2072 V 13 w(completer)p +310 2072 V 11 w(quote)p 421 2072 V 12 w(characters)f +Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 +b Ff(33)75 2122 y Fd(rl)p 117 2122 V 13 w(completer)p +310 2122 V 11 w(word)p 401 2122 V 13 w(break)p 514 2122 +V 12 w(character)o(s)13 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 +b Ff(33)75 2172 y Fd(rl)p 117 2172 V 13 w(completion)p +329 2172 V 11 w(append)p 461 2172 V 11 w(character)f +Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)18 +b Ff(34)75 2222 y Fd(rl)p 117 2222 V 13 w(completion)p +329 2222 V 11 w(entry)p 441 2222 V 12 w(function)j Fe(.)6 +b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(31,)13 +b(32)75 2271 y Fd(rl)p 117 2271 V 13 w(completion)p 329 +2271 V 11 w(query)p 441 2271 V 12 w(items)h Fe(.)6 b(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 +b Ff(33)75 2321 y Fd(rl)p 117 2321 V 13 w(copy)p 210 +2321 V 13 w(keymap)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)17 b Ff(23)75 2371 y Fd(rl)p 117 2371 V 13 +w(copy)p 210 2371 V 13 w(text)6 b Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(27)75 2421 y Fd(rl)p +117 2421 V 13 w(delete)p 250 2421 V 12 w(text)t Fe(.)5 +b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Ff(27)75 2471 y Fd(rl)p 117 2471 V 13 w(directory)p +310 2471 V 11 w(completion)p 520 2471 V 10 w(hook)i Fe(.)7 +b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 +b Ff(34)75 2521 y Fd(rl)p 117 2521 V 13 w(discard)p 270 +2521 V 12 w(keymap)9 b Fe(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 +b Ff(23)75 2570 y Fd(rl)p 117 2570 V 13 w(do)p 170 2570 +V 14 w(undo)9 b Fe(.)t(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)22 b Ff(26)75 2620 y Fd(rl)p 117 +2620 V 13 w(done)15 b Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)16 b Ff(21)75 +2670 y Fd(rl)p 117 2670 V 13 w(end)h Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 +b Ff(21)1012 183 y Fd(rl)p 1054 183 V 14 w(end)p 1128 +183 V 13 w(undo)p 1221 183 V 12 w(group)10 b Fe(.)c(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)25 b Ff(26)1012 233 y Fd(rl)p 1054 233 +V 14 w(event)p 1168 233 V 12 w(hook)18 b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(22)1012 283 y +Fd(rl)p 1054 283 V 14 w(executing)p 1247 283 V 10 w(keymap)e +Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(22)1012 333 y +Fd(rl)p 1054 333 V 14 w(filename)p 1228 333 V 11 w(completio)o(n)p +1438 333 V 11 w(desired)16 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)19 b Ff(34)1012 382 y Fd(rl)p 1054 382 +V 14 w(filename)p 1228 382 V 11 w(dequoting)p 1418 382 +V 10 w(function)d Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)19 b Ff(33)1012 432 y Fd(rl)p 1054 432 V 14 w(filename)p +1228 432 V 11 w(quote)p 1339 432 V 12 w(character)o(s)f +Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 +b Ff(33)1012 482 y Fd(rl)p 1054 482 V 14 w(filename)p +1228 482 V 11 w(quoting)p 1379 482 V 11 w(desired)f Fe(.)6 +b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 +b Ff(34)1012 532 y Fd(rl)p 1054 532 V 14 w(filename)p +1228 532 V 11 w(quoting)p 1379 532 V 11 w(function)18 +b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 +b Ff(32)1012 582 y Fd(rl)p 1054 582 V 14 w(forced)p 1188 +582 V 12 w(update)p 1320 582 V 11 w(display)9 b Fe(.)d(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 +b Ff(26)1012 632 y Fd(rl)p 1054 632 V 14 w(function)p +1228 632 V 11 w(dumper)7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 +b Ff(25)1012 681 y Fd(rl)p 1054 681 V 14 w(function)p +1228 681 V 11 w(of)p 1279 681 V 13 w(keyseq)6 b Fe(.)t(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +h(.)19 b Ff(25)1012 731 y Fd(rl)p 1054 731 V 14 w(generic)p +1208 731 V 11 w(bind)10 b Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)24 b Ff(24)1012 781 y Fd(rl)p 1054 781 V 14 w(get)p +1128 781 V 13 w(keymap)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)18 b Ff(23)1012 831 y Fd(rl)p 1054 +831 V 14 w(get)p 1128 831 V 13 w(keymap)p 1261 831 V +11 w(by)p 1312 831 V 14 w(name)9 b Fe(.)t(.)d(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22 +b Ff(24)1012 881 y Fd(rl)p 1054 881 V 14 w(get)p 1128 +881 V 13 w(keymap)p 1261 881 V 11 w(name)9 b Fe(.)d(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)23 b Ff(24)1012 930 y Fd(rl)p 1054 930 V +14 w(getc)8 b Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(27)1012 980 y +Fd(rl)p 1054 980 V 14 w(getc)p 1148 980 V 12 w(function)13 +b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Ff(22)1012 1030 y Fd(rl)p 1054 1030 V 14 w(ignore)p +1188 1030 V 12 w(completi)o(on)p 1399 1030 V 11 w(duplicate)o(s)d +Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 +b Ff(34)1012 1080 y Fd(rl)p 1054 1080 V 14 w(ignore)p +1188 1080 V 12 w(some)p 1280 1080 V 12 w(completion)o(s)p +1511 1080 V 11 w(function)j Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)24 +b Ff(34)1012 1130 y Fd(rl)p 1054 1130 V 14 w(inhibit)p +1208 1130 V 11 w(completion)15 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 +b Ff(34)1012 1180 y Fd(rl)p 1054 1180 V 14 w(initializ)o(e)8 +b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 +b Ff(28)1012 1229 y Fd(rl)p 1054 1229 V 14 w(insert)p +1188 1229 V 12 w(completi)o(ons)r Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Ff(31)1012 1279 y Fd(rl)p 1054 1279 V 14 w(insert)p +1188 1279 V 12 w(text)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)17 b Ff(27)1012 1329 y Fd(rl)p 1054 1329 +V 14 w(instream)g Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)20 b Ff(22)1012 1379 y Fd(rl)p 1054 1379 +V 14 w(invoking)p 1228 1379 V 11 w(keyseqs)6 b Fe(.)s(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)19 b Ff(25)1012 1429 y Fd(rl)p 1054 1429 +V 14 w(invoking)p 1228 1429 V 11 w(keyseqs)p 1379 1429 +V 11 w(in)p 1430 1429 V 14 w(map)9 b Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)24 b Ff(25)1012 +1478 y Fd(rl)p 1054 1478 V 14 w(kill)p 1148 1478 V 12 +w(text)6 b Fe(.)f(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)20 b Ff(27)1012 1528 y Fd(rl)p 1054 1528 V 14 +w(library)p 1208 1528 V 11 w(version)g Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)23 b Ff(22)1012 1578 y Fd(rl)p 1054 1578 V 14 w(line)p +1148 1578 V 12 w(buffer)17 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)19 b Ff(21)1012 1628 y Fd(rl)p 1054 1628 +V 14 w(list)p 1148 1628 V 12 w(funmap)p 1280 1628 V 12 +w(names)7 b Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(25)1012 +1678 y Fd(rl)p 1054 1678 V 14 w(make)p 1148 1678 V 12 +w(bare)p 1240 1678 V 13 w(keymap)9 b Fe(.)s(.)d(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +22 b Ff(23)1012 1727 y Fd(rl)p 1054 1727 V 14 w(make)p +1148 1727 V 12 w(keymap)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)17 b Ff(23)1012 1777 y Fd(rl)p 1054 1777 +V 14 w(mark)e Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(21)1012 1827 +y Fd(rl)p 1054 1827 V 14 w(message)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(27)1012 +1877 y Fd(rl)p 1054 1877 V 14 w(modifying)s Fe(.)s(.)6 +b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Ff(26)1012 1927 y Fd(rl)p 1054 1927 V 14 w(named)p +1168 1927 V 12 w(function)8 b Fe(.)s(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)22 b Ff(25)1012 1977 y Fd(rl)p 1054 1977 V 14 w(on)p +1108 1977 V 13 w(new)p 1181 1977 V 13 w(line)7 b Fe(.)t(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(27)1012 2026 +y Fd(rl)p 1054 2026 V 14 w(outstream)15 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(22)1012 2076 +y Fd(rl)p 1054 2076 V 14 w(parse)p 1168 2076 V 12 w(and)p +1240 2076 V 13 w(bind)10 b Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +25 b Ff(25)1012 2126 y Fd(rl)p 1054 2126 V 14 w(pending)p +1208 2126 V 11 w(input)14 b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)17 b Ff(21)1012 2176 y Fd(rl)p 1054 2176 V 14 +w(point)k Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)24 b Ff(21)1012 2226 y Fd(rl)p 1054 +2226 V 14 w(possible)p 1228 2226 V 11 w(completio)o(ns)6 +b Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)23 b Ff(31)1012 2275 y Fd(rl)p 1054 2275 +V 14 w(prompt)d Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(22)1012 2325 y Fd(rl)p +1054 2325 V 14 w(read)p 1148 2325 V 12 w(init)p 1240 +2325 V 13 w(file)10 b Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)25 +b Ff(25)1012 2375 y Fd(rl)p 1054 2375 V 14 w(read)p 1148 +2375 V 12 w(key)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)21 b Ff(27)1012 2425 y Fd(rl)p 1054 +2425 V 14 w(readline)p 1228 2425 V 11 w(name)14 b Fe(.)7 +b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(22)1012 +2475 y Fd(rl)p 1054 2475 V 14 w(redisplay)s Fe(.)s(.)6 +b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Ff(26)1012 2524 y Fd(rl)p 1054 2524 V 14 w(redisplay)p +1247 2524 V 10 w(function)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 +b Ff(22)1012 2574 y Fd(rl)p 1054 2574 V 14 w(reset)p +1168 2574 V 12 w(line)p 1260 2574 V 12 w(state)9 b Fe(.)t(.)d(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)g(.)22 b Ff(27)1012 2624 y Fd(rl)p 1054 2624 +V 14 w(reset)p 1168 2624 V 12 w(terminal)8 b Fe(.)s(.)f(.)f(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)22 b Ff(28)p eop +%%Page: 49 51 +49 50 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187 +b(49)75 183 y Fd(rl)p 117 183 12 2 v 13 w(set)p 190 183 +V 13 w(keymap)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)18 b Ff(24)75 233 y Fd(rl)p 117 233 V 13 w(special)p +270 233 V 12 w(prefixes)g Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 +b Ff(33)75 283 y Fd(rl)p 117 283 V 13 w(startup)p 270 +283 V 12 w(hook)16 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)17 b Ff(22)75 333 y Fd(rl)p 117 333 V 13 w(stuff)p +230 333 V 13 w(char)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)18 b Ff(27)75 382 y Fd(rl)p 117 382 V +13 w(terminal)p 290 382 V 11 w(name)d Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)16 b Ff(22)75 432 y Fd(rl)p 117 432 V +13 w(unbind)p 250 432 V 12 w(command)p 402 432 V 12 w(in)p +454 432 V 13 w(map)5 b Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(24)75 +482 y Fd(rl)p 117 482 V 13 w(unbind)p 250 482 V 12 w(function)p +422 482 V 11 w(in)p 473 482 V 14 w(map)t Fe(.)t(.)6 b(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Ff(24)75 532 y Fd(rl)p 117 532 V 13 w(unbind)p 250 +532 V 12 w(key)5 b Fe(.)g(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)18 b Ff(24)75 582 y Fd(rl)p 117 582 V 13 +w(unbind)p 250 582 V 12 w(key)p 322 582 V 13 w(in)p 375 +582 V 13 w(map)10 b Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 +b Ff(24)75 681 y Fs(S)75 739 y Fd(self-inser)o(t)10 b(\(a,)h(b,)h(A,)g +(1,)g(!,)g(...\))t Fe(.)5 b(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)17 b Ff(13)75 789 y Fd(set-mark)10 b(\(C-@\))e Fe(.)e(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(16)75 839 +y(sho)o(w-all-if-am)o(biguo)q(us)7 b Fe(.)i(.)d(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)19 b Ff(6)75 889 y Fd(start-kbd-)o(ma)o(cro)9 b(\(C-x)i(\(\))f +Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)23 b Ff(15)75 989 y Fs(T)75 1047 y Fd(tab-insert)9 +b(\(M-TAB\))c Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 +b Ff(13)75 1096 y Fd(tilde-expa)o(nd)9 b(\(M-~\))c Fe(.)g(.)h(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)18 b Ff(16)75 1146 y Fd(to)p 117 +1146 V 13 w(lower)9 b Fe(.)t(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(28)75 1196 +y Fd(to)p 117 1196 V 13 w(upper)9 b Fe(.)t(.)d(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b +Ff(28)1012 183 y Fd(transpose-c)o(ha)o(rs)9 b(\(C-t\))f +Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(13)1012 233 y Fd(transpose-w)o(or)o(ds)9 +b(\(M-t\))f Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(13)1012 347 +y Fs(U)1012 405 y Fd(undo)12 b(\(C-)p 1166 405 V 13 w(,)g(C-x)g(C-u\))5 +b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(16)1012 +454 y Fd(universal-a)o(rg)o(ume)o(nt)9 b(\(\))g Fe(.)d(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +23 b Ff(14)1012 504 y Fd(unix-line-d)o(is)o(car)o(d)10 +b(\(C-u\))d Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(13)1012 554 y Fd(unix-word-r)o(ub)o +(out)9 b(\(C-w\))g Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(14)1012 +604 y Fd(upcase-word)9 b(\(M-u\))d Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)20 b Ff(13)1012 654 y Fd(uppercase)p 1194 654 +V 11 w(p)5 b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)18 b Ff(28)1012 704 y Fd(username)p 1174 +704 V 11 w(completion)p 1385 704 V 11 w(function)s Fe(.)s(.)6 +b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 +b Ff(32)1012 817 y Fs(V)1012 875 y Ff(visible-stats)t +Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)17 b Ff(6)1012 989 y Fs(Y)1012 1047 y Fd(yank)12 +b(\(C-y\))7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)20 b Ff(14)1012 1096 y Fd(yank-last-a)o(rg)9 +b(\(M-.,)i(M-)p 1433 1096 V 13 w(\))t Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)17 +b Ff(12)1012 1146 y Fd(yank-nth-ar)o(g)10 b(\(M-C-y\))e +Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)24 b Ff(12)1012 1196 y Fd(yank-pop)10 +b(\(M-y\))e Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 +b Ff(14)p eop +%%Page: 50 52 +50 51 bop 75 -58 a Fu(50)1299 b(GNU)15 b(Readline)i(Library)p +eop +%%Page: -1 53 +-1 52 bop 1862 -58 a Fu(i)75 183 y Fq(T)-7 b(able)27 +b(of)f(Con)n(ten)n(ts)75 354 y Fs(1)67 b(Command)22 b(Line)i(Editing)d +Fb(.)10 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)42 b Fs(1)224 423 y Fu(1.1)j(In)o(tro)q(duction)16 +b(to)f(Line)h(Editing)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)27 b Fu(1)224 478 y(1.2)45 b(Readline)17 b(In)o(teraction)8 +b Fa(.)g(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)23 b Fu(1)374 532 y(1.2.1)44 b(Readline)17 +b(Bare)e(Essen)o(tials)f Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 +b Fu(1)374 587 y(1.2.2)44 b(Readline)17 b(Mo)o(v)o(emen)o(t)d(Commands) +7 b Fa(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)21 b Fu(2)374 642 y(1.2.3)44 b(Readline)17 b(Killing)h(Commands) +11 b Fa(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)25 b Fu(2)374 697 y(1.2.4)44 b(Readline)17 +b(Argumen)o(ts)12 b Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 +b Fu(3)374 752 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h +(the)f(History)e Fa(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 +b Fu(3)224 806 y(1.3)45 b(Readline)17 b(Init)g(File)e +Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)29 b Fu(3)374 861 y(1.3.1)44 b(Readline)17 +b(Init)f(File)h(Syn)o(tax)7 b Fa(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 +b Fu(4)374 916 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5 +b Fa(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)19 b Fu(7)374 971 y(1.3.3)44 b(Sample)16 +b(Init)g(File)11 b Fa(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)26 b Fu(8)224 1026 y(1.4)45 b(Bindable)17 b(Readline)h +(Commands)6 b Fa(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 +b Fu(11)374 1080 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e +Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fu(11)374 1135 y(1.4.2)44 +b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9 +b Fa(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fu(11)374 1190 y(1.4.3)44 +b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fa(.)8 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30 +b Fu(12)374 1245 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9 +b Fa(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fu(13)374 +1299 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c +Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27 +b Fu(14)374 1354 y(1.4.6)44 b(Letting)15 b(Readline)j(T)o(yp)q(e)d(F)l +(or)g(Y)l(ou)10 b Fa(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)25 b Fu(15)374 1409 y(1.4.7)44 b(Keyb)q(oard)15 +b(Macros)6 b Fa(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 +b Fu(15)374 1464 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7 +b Fa(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +22 b Fu(15)224 1519 y(1.5)45 b(Readline)17 b(vi)f(Mo)q(de)e +Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)28 b Fu(17)75 1640 y Fs(2)67 b(Programming)23 +b(with)g(GNU)f(Readline)12 b Fb(.)f(.)g(.)f(.)g(.)g(.)g(.)h(.)f(.)35 +b Fs(19)224 1708 y Fu(2.1)45 b(Basic)16 b(Beha)o(vior)8 +b Fa(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)23 b Fu(19)224 1763 y(2.2)45 +b(Custom)14 b(F)l(unctions)7 b Fa(.)i(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)22 b Fu(20)374 +1818 y(2.2.1)44 b(The)15 b(F)l(unction)h(T)o(yp)q(e)11 +b Fa(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26 b Fu(20)374 +1873 y(2.2.2)44 b(W)l(riting)16 b(a)e(New)i(F)l(unction)6 +b Fa(.)i(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 b Fu(21)224 1928 y(2.3)45 +b(Readline)17 b(V)l(ariables)f Fa(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)29 b Fu(21)224 +1982 y(2.4)45 b(Readline)17 b(Con)o(v)o(enience)g(F)l(unctions)7 +b Fa(.)i(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)23 b Fu(23)374 2037 y(2.4.1)44 +b(Naming)15 b(a)g(F)l(unction)e Fa(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)27 b Fu(23)374 2092 y(2.4.2)44 b(Selecting)17 +b(a)e(Keymap)6 b Fa(.)h(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 +b Fu(23)374 2147 y(2.4.3)44 b(Binding)17 b(Keys)5 b Fa(.)j(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)20 b +Fu(24)374 2202 y(2.4.4)44 b(Asso)q(ciating)16 b(F)l(unction)g(Names)f +(and)g(Bindings)8 b Fa(.)h(.)f(.)f(.)h(.)f(.)h(.)23 b +Fu(25)374 2256 y(2.4.5)44 b(Allo)o(wing)16 b(Undoing)f +Fa(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b +Fu(25)374 2311 y(2.4.6)44 b(Redispla)o(y)10 b Fa(.)f(.)f(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26 +b Fu(26)374 2366 y(2.4.7)44 b(Mo)q(difying)16 b(T)l(ext)7 +b Fa(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22 +b Fu(27)374 2421 y(2.4.8)44 b(Utilit)o(y)16 b(F)l(unctions)e +Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 +b Fu(27)374 2475 y(2.4.9)44 b(Alternate)15 b(In)o(terface)5 +b Fa(.)i(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)20 b +Fu(28)374 2530 y(2.4.10)43 b(An)16 b(Example)f Fa(.)8 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30 +b Fu(29)224 2585 y(2.5)45 b(Custom)14 b(Completers)f +Fa(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)28 b Fu(30)374 2640 y(2.5.1)44 b(Ho)o(w)14 b(Completing)i(W)l +(orks)10 b Fa(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)25 b Fu(30)p eop +%%Page: -2 54 +-2 53 bop 75 -58 a Fu(ii)1321 b(GNU)15 b(Readline)i(Library)374 +42 y(2.5.2)44 b(Completion)16 b(F)l(unctions)6 b Fa(.)i(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)21 b Fu(31)374 96 y(2.5.3)44 b(Completion)16 +b(V)l(ariables)c Fa(.)c(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 +b Fu(32)374 151 y(2.5.4)44 b(A)15 b(Short)g(Completion)h(Example)5 +b Fa(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)20 b Fu(34)75 272 y Fs(Concept)i(Index)10 b Fb(.)i(.)e(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)33 b Fs(45)75 407 +y(F)-6 b(unction)25 b(and)d(V)-6 b(ariable)24 b(Index)9 +b Fb(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)32 b Fs(47)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/readline/doc/readline_toc.html b/readline/doc/readline_toc.html new file mode 100644 index 0000000..bf6d5d1 --- /dev/null +++ b/readline/doc/readline_toc.html @@ -0,0 +1,77 @@ +<HTML> +<HEAD> +<!-- This HTML file has been created by texi2html 1.51 + from /usr/homes/chet/src/bash/readline-2.2/doc/rlman.texinfo on 2 April 1998 --> + +<TITLE>GNU Readline Library - Table of Contents</TITLE> +</HEAD> +<BODY> +<H1>GNU Readline Library</H1> +<H2>Edition 2.2, for <CODE>Readline Library</CODE> Version 2.1.</H2> +<H2>September 1997</H2> +<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS> +<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS> +<P> +<P><HR><P> +<UL> +<LI><A NAME="TOC1" HREF="readline.html#SEC1">Command Line Editing</A> +<UL> +<LI><A NAME="TOC2" HREF="readline.html#SEC2">Introduction to Line Editing</A> +<LI><A NAME="TOC3" HREF="readline.html#SEC3">Readline Interaction</A> +<UL> +<LI><A NAME="TOC4" HREF="readline.html#SEC4">Readline Init File Syntax</A> +<LI><A NAME="TOC5" HREF="readline.html#SEC5">Conditional Init Constructs</A> +<LI><A NAME="TOC6" HREF="readline.html#SEC6">Sample Init File</A> +</UL> +<LI><A NAME="TOC7" HREF="readline.html#SEC7">Bindable Readline Commands</A> +<UL> +<LI><A NAME="TOC8" HREF="readline.html#SEC8">Commands For Moving</A> +<LI><A NAME="TOC9" HREF="readline.html#SEC9">Commands For Manipulating The History</A> +<LI><A NAME="TOC10" HREF="readline.html#SEC10">Commands For Changing Text</A> +<LI><A NAME="TOC11" HREF="readline.html#SEC11">Killing And Yanking</A> +<LI><A NAME="TOC12" HREF="readline.html#SEC12">Specifying Numeric Arguments</A> +<LI><A NAME="TOC13" HREF="readline.html#SEC13">Letting Readline Type For You</A> +<LI><A NAME="TOC14" HREF="readline.html#SEC14">Keyboard Macros</A> +<LI><A NAME="TOC15" HREF="readline.html#SEC15">Some Miscellaneous Commands</A> +</UL> +<LI><A NAME="TOC16" HREF="readline.html#SEC16">Readline vi Mode</A> +</UL> +<LI><A NAME="TOC17" HREF="readline.html#SEC17">Programming with GNU Readline</A> +<UL> +<LI><A NAME="TOC18" HREF="readline.html#SEC18">Basic Behavior</A> +<LI><A NAME="TOC19" HREF="readline.html#SEC19">Custom Functions</A> +<UL> +<LI><A NAME="TOC20" HREF="readline.html#SEC20">The Function Type</A> +<LI><A NAME="TOC21" HREF="readline.html#SEC21">Writing a New Function</A> +</UL> +<LI><A NAME="TOC22" HREF="readline.html#SEC22">Readline Variables</A> +<LI><A NAME="TOC23" HREF="readline.html#SEC23">Readline Convenience Functions</A> +<UL> +<LI><A NAME="TOC24" HREF="readline.html#SEC24">Naming a Function</A> +<LI><A NAME="TOC25" HREF="readline.html#SEC25">Selecting a Keymap</A> +<LI><A NAME="TOC26" HREF="readline.html#SEC26">Binding Keys</A> +<LI><A NAME="TOC27" HREF="readline.html#SEC27">Associating Function Names and Bindings</A> +<LI><A NAME="TOC28" HREF="readline.html#SEC28">Allowing Undoing</A> +<LI><A NAME="TOC29" HREF="readline.html#SEC29">Redisplay</A> +<LI><A NAME="TOC30" HREF="readline.html#SEC30">Modifying Text</A> +<LI><A NAME="TOC31" HREF="readline.html#SEC31">Utility Functions</A> +<LI><A NAME="TOC32" HREF="readline.html#SEC32">Alternate Interface</A> +<LI><A NAME="TOC33" HREF="readline.html#SEC33">An Example</A> +</UL> +<LI><A NAME="TOC34" HREF="readline.html#SEC34">Custom Completers</A> +<UL> +<LI><A NAME="TOC35" HREF="readline.html#SEC35">How Completing Works</A> +<LI><A NAME="TOC36" HREF="readline.html#SEC36">Completion Functions</A> +<LI><A NAME="TOC37" HREF="readline.html#SEC37">Completion Variables</A> +<LI><A NAME="TOC38" HREF="readline.html#SEC38">A Short Completion Example</A> +</UL> +</UL> +<LI><A NAME="TOC39" HREF="readline.html#SEC39">Concept Index</A> +<LI><A NAME="TOC40" HREF="readline.html#SEC40">Function and Variable Index</A> +</UL> +<P><HR><P> +This document was generated on 2 April 1998 using the +<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A> +translator version 1.51.</P> +</BODY> +</HTML> |