commit bash-20180105 snapshot

This commit is contained in:
Chet Ramey
2018-01-08 11:55:31 -05:00
parent ce0469bfbe
commit 879213c630
60 changed files with 11056 additions and 10266 deletions
+60
View File
@@ -14740,3 +14740,63 @@ lib/readline/bind.c
doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
- document new `if variable comparison value' construct
1/2/2018
--------
lib/glob/sm_loop.c
- EXTMATCH: when matching against !(patlist), if a filename beginning
with a `.' does not match any of the patterns in patlist, don't
return it as a match if leading dots need to be matched explicitly
(flags & FNM_PERIOD). Report from Eric Cook <llua@gmx.com>
1/3
---
variables.[ch]
- bind_function_def: takes an additional flags argument. If FLAGS&1,
overwrite any existing function_def hash table entry; if FLAGS==0,
leave any existing function_def alone.
make_cmd.c
- make_function_def: call bind_function_def with flags == 0
execute_cmd.c
- execute_intern_function: call bind_function_def with flags == 1 so
we have function_def information that's correct for where the
function is defined, not just where it's last parsed. Fixes report
from Bruno Vasselle <bruno.vasselle@laposte.net>; final piece of
fix from 12/15/2011
1/4
---
subst.c
- param_expand: deal with string_list_dollar_star returning NULL.
Fixes bug reported by Martijn Dekker <martijn@inlv.org>
builtins/history.def
- history_builtin: enabled code that performs range deletion
1/5
---
subst.c
- do_assignment_internal: if performing a compound assignment, make
sure to pass ASS_CHKLOCAL flag to do_compound_assignment if the
assignment word has the W_CHKLOCAL flag set
- do_compound_assignment: honor ASS_CHKLOCAL flag and check for an
existing local variable before creating or modifying a global
variable
builtins/declare.def
- declare_internal: new (undocumented so far) option: -G. Means to
act on global variables (create, modify) if no local variable is
found with the specified name
- declare_find_variable: new declare-specific wrapper functon for
declare builtin; obeys -g and -G options in one place
- declare_internal: if no variable is found after following any nameref
chain, look up the variable using declare_find_variable to honor the
-G option. XXX - so far, this is the only place that function is used
subst.c
- shell_expand_word_list: before calling make_internal_declare, add
'G' to the options list if W_CHKLOCAL is set in the word's flags.
This makes builtins like `readonly' that modify local variables in
a function behave the same for scalar and array variables
+3
View File
@@ -1067,6 +1067,7 @@ tests/history.right f
tests/history.list f 444
tests/history1.sub f
tests/history2.sub f
tests/history3.sub f
tests/ifs.tests f
tests/ifs.right f
tests/ifs1.sub f
@@ -1091,6 +1092,7 @@ tests/jobs2.sub f
tests/jobs3.sub f
tests/jobs4.sub f
tests/jobs5.sub f
tests/jobs6.sub f
tests/jobs.right f
tests/lastpipe.right f
tests/lastpipe.tests f
@@ -1344,6 +1346,7 @@ tests/varenv5.sub f
tests/varenv6.sub f
tests/varenv7.sub f
tests/varenv8.sub f
tests/varenv9.sub f
tests/version f
tests/version.mini f
tests/vredir.tests f
+34 -10
View File
@@ -88,6 +88,7 @@ $END
#include "builtext.h"
#include "bashgetopt.h"
static SHELL_VAR *declare_find_variable __P((const char *, int, int));
static int declare_internal __P((register WORD_LIST *, int));
/* Declare or change variable attributes. */
@@ -134,11 +135,31 @@ local_builtin (list)
}
#if defined (ARRAY_VARS)
# define DECLARE_OPTS "+acfgilnprtuxAF"
# define DECLARE_OPTS "+acfgilnprtuxAFG"
#else
# define DECLARE_OPTS "+cfgilnprtuxF"
# define DECLARE_OPTS "+cfgilnprtuxFG"
#endif
static SHELL_VAR *
declare_find_variable (name, mkglobal, chklocal)
const char *name;
int mkglobal, chklocal;
{
SHELL_VAR *var;
if (mkglobal == 0)
return (find_variable (name));
else if (chklocal)
{
var = find_variable (name);
if (var && local_p (var) && var->context == variable_context)
return var;
return (find_global_variable (name));
}
else
return (find_global_variable (name));
}
/* The workhorse function. */
static int
declare_internal (list, local_var)
@@ -146,12 +167,14 @@ declare_internal (list, local_var)
int local_var;
{
int flags_on, flags_off, *flags;
int any_failed, assign_error, pflag, nodefs, opt, mkglobal, onref, offref;
int any_failed, assign_error, pflag, nodefs, opt, onref, offref;
int mkglobal, chklocal;
char *t, *subscript_start;
SHELL_VAR *var, *refvar, *v;
FUNCTION_DEF *shell_fn;
flags_on = flags_off = any_failed = assign_error = pflag = nodefs = mkglobal = 0;
flags_on = flags_off = any_failed = assign_error = pflag = nodefs = 0;
mkglobal = chklocal = 0;
refvar = (SHELL_VAR *)NULL;
reset_internal_getopt ();
while ((opt = internal_getopt (list, DECLARE_OPTS)) != -1)
@@ -189,6 +212,10 @@ declare_internal (list, local_var)
case 'f':
*flags |= att_function;
break;
case 'G':
if (flags == &flags_on)
chklocal = 1;
/*FALLTHROUGH*/
case 'g':
if (flags == &flags_on)
mkglobal = 1;
@@ -538,14 +565,9 @@ restart_new_var_name:
#endif
if (var == 0 && (flags_on & att_nameref))
{
#if 0
/* See if we are trying to modify an existing nameref variable */
var = mkglobal ? find_global_variable_last_nameref (name, 1) : find_variable_last_nameref (name, 1);
#else
/* See if we are trying to modify an existing nameref variable,
but don't follow the nameref chain. */
var = mkglobal ? find_global_variable_noref (name) : find_variable_noref (name);
#endif
if (var && nameref_p (var) == 0)
var = 0;
}
@@ -571,6 +593,7 @@ restart_new_var_name:
NEXT_VARIABLE ();
}
if (refvar)
/* XXX - use declare_find_variable here? */
var = mkglobal ? find_global_variable (nameref_cell (refvar)) : find_variable (nameref_cell (refvar));
}
#if defined (ARRAY_VARS)
@@ -602,6 +625,7 @@ restart_new_var_name:
if (refvar && nameref_p (refvar) == 0)
refvar = 0;
if (refvar)
/* XXX - use declare_find_variable here? */
var = mkglobal ? find_global_variable (nameref_cell (refvar)) : find_variable (nameref_cell (refvar));
if (refvar && var == 0)
{
@@ -652,7 +676,7 @@ restart_new_var_name:
}
}
if (var == 0)
var = mkglobal ? find_global_variable (name) : find_variable (name);
var = declare_find_variable (name, mkglobal, chklocal);
#if defined (ARRAY_VARS)
var_exists = var != 0;
+10 -5
View File
@@ -1,7 +1,7 @@
This file is history.def, from which is created history.c.
It implements the builtin "history" in Bash.
Copyright (C) 1987-2016 Free Software Foundation, Inc.
Copyright (C) 1987-2018 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -177,13 +177,13 @@ history_builtin (list)
return (sh_chkwrite (EXECUTION_SUCCESS));
}
#endif
#if defined (BASH_50) /* bash 5.0 */
else if ((flags & DFLAG) && (range = strchr (delete_arg[0] == '-' ? delete_arg + 1 : delete_arg, '-')))
else if ((flags & DFLAG) && (range = strchr ((delete_arg[0] == '-') ? delete_arg + 1 : delete_arg, '-')))
{
intmax_t delete_start, delete_end;
*range++ = '\0';
if (legal_number (delete_arg, &delete_start) == 0 || legal_number (range, &delete_end) == 0)
{
range[-1] = '-';
sh_erange (delete_arg, _("history position"));
return (EXECUTION_FAILURE);
}
@@ -193,6 +193,7 @@ history_builtin (list)
delete_start += history_length;
if (delete_start < history_base)
{
start_error:
sh_erange (delete_arg, _("history position"));
return (EXECUTION_FAILURE);
}
@@ -200,23 +201,27 @@ history_builtin (list)
/* numbers as displayed by display_history are offset by history_base */
else if (delete_start > 0)
delete_start -= history_base;
if (delete_start < 0 || delete_start >= history_length)
goto start_error;
if (range[0] == '-' && delete_end < 0)
{
delete_end += history_length;
if (delete_end < history_base)
{
sh_erange (delete_arg, _("history position"));
range_error:
sh_erange (range, _("history position"));
return (EXECUTION_FAILURE);
}
}
else if (delete_end > 0)
delete_end -= history_base;
if (delete_end < 0 || delete_end >= history_length)
goto range_error;
result = bash_delete_history_range (delete_start, delete_end);
if (where_history () > history_length)
history_set_pos (history_length);
return (result ? EXECUTION_SUCCESS : EXECUTION_FAILURE);
}
#endif /* BASH_50 */
else if (flags & DFLAG)
{
if (legal_number (delete_arg, &delete_offset) == 0)
+1258 -1243
View File
File diff suppressed because it is too large Load Diff
+11 -4
View File
@@ -5,12 +5,12 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Thu Dec 28 14:50:35 EST 2017
.\" Last Change: Thu Jan 4 15:29:06 EST 2018
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
.TH BASH 1 "2017 December 28" "GNU Bash 4.4"
.TH BASH 1 "2018 January 4" "GNU Bash 4.4"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -50,8 +50,8 @@ bash \- GNU Bourne-Again SHell
[options]
[command_string | file]
.SH COPYRIGHT
.if n Bash is Copyright (C) 1989-2017 by the Free Software Foundation, Inc.
.if t Bash is Copyright \(co 1989-2017 by the Free Software Foundation, Inc.
.if n Bash is Copyright (C) 1989-2018 by the Free Software Foundation, Inc.
.if t Bash is Copyright \(co 1989-2018 by the Free Software Foundation, Inc.
.SH DESCRIPTION
.B Bash
is an \fBsh\fR-compatible command language interpreter that
@@ -8552,6 +8552,8 @@ The return status is 0 unless no command matches
.TP
\fBhistory \-d\fP \fIoffset\fP
.TP
\fBhistory \-d\fP \fIstart\fP\-\fIend\fP
.TP
\fBhistory\fP \fB\-anrw\fP [\fIfilename\fP]
.TP
\fBhistory\fP \fB\-p\fP \fIarg\fP [\fIarg ...\fP]
@@ -8593,6 +8595,11 @@ than the last history position, so negative indices count back from the
end of the history, and an index of \-1 refers to the current
\fBhistory -d\fP command.
.TP
\fB\-d\fP \fIstart\fP\-\fIend\fP
Delete the history entries between positions \fIstart\fP and \fIend\fP,
inclusive. Positive and negative values for \fIstart\fP and \fIend\fP
are interpreted as described above.
.TP
.B \-a
Append the ``new'' history lines to the history file.
These are history lines entered since the beginning of the current
+63 -20
View File
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2017 October 7<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2017 December 28<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -3398,14 +3398,18 @@ builtin is used to destroy arrays. <B>unset</B> <I>name</I>[<I>subscript</I>]
destroys the array element at index <I>subscript</I>,
for both indexed and associative arrays.
Negative subscripts to indexed arrays are interpreted as described above.
Care must be taken to avoid unwanted side effects caused by pathname
expansion.
Unsetting the last element of an array variable does not unset the variable.
<B>unset</B> <I>name</I>, where <I>name</I> is an array, or
<B>unset</B> <I>name</I>[<I>subscript</I>], where
<I>subscript</I> is <B>*</B> or <B>@</B>, removes the entire array.
<P>
When using a variable name with a subscript as an argument to a command,
such as with <B>unset</B>, without using the word expansion syntax
described above, the argument is subject to pathname expansion.
If pathname expansion is not desired, the argument should be quoted.
<P>
The
<B>declare</B>,
@@ -3735,6 +3739,8 @@ it introduces a level of variable indirection.
expanded and that value is used in the rest of the substitution, rather
than the value of <I>parameter</I> itself.
This is known as <I>indirect expansion</I>.
The value is subject to tilde expansion,
parameter expansion, command substitution, and arithmetic expansion.
If <I>parameter</I> is a nameref, this expands to the name of the
variable referenced by <I>parameter</I> instead of performing the
complete indirect expansion.
@@ -4131,7 +4137,7 @@ is an array variable subscripted with
or
<B>*</B>,
the case modification operation is applied to each member of the
the operation is applied to each member of the
array in turn, and the expansion is the resultant list.
<P>
The result of the expansion is subject to word splitting and pathname
@@ -5528,10 +5534,6 @@ the
<B>unset</B>
builtin.
Note that shell functions and variables with the same name may result
in multiple identically-named entries in the environment passed to the
shell's children.
Care should be taken in cases where this may cause a problem.
<P>
Functions may be recursive.
@@ -7295,7 +7297,8 @@ or
<DT><B>emacs-mode-string (@)</B>
<DD>
This string is displayed immediately before the last line of the primary
If the <I>show-mode-in-prompt</I> variable is enabled,
this string is displayed immediately before the last line of the primary
prompt when emacs editing mode is active. The value is expanded like a
key binding, so the standard set of meta- and control prefixes and
backslash escape sequences is available.
@@ -7478,9 +7481,9 @@ of ringing the bell.
<DT><B>show-mode-in-prompt (Off)</B>
<DD>
If set to <B>On</B>, add a character to the beginning of the prompt
indicating the editing mode: emacs (@), vi command (:) or vi
insertion (+).
If set to <B>On</B>, add a string to the beginning of the prompt
indicating the editing mode: emacs, vi command, or vi insertion.
The mode strings are user-settable (e.g., <I>emacs-mode-string</I>).
<DT><B>skip-completed-text (Off)</B>
<DD>
@@ -7493,7 +7496,8 @@ following the cursor are not duplicated.
<DT><B>vi-cmd-mode-string ((cmd))</B>
<DD>
This string is displayed immediately before the last line of the primary
If the <I>show-mode-in-prompt</I> variable is enabled,
this string is displayed immediately before the last line of the primary
prompt when vi editing mode is active and in command mode.
The value is expanded like a
key binding, so the standard set of meta- and control prefixes and
@@ -7504,7 +7508,8 @@ sequence into the mode string.
<DT><B>vi-ins-mode-string ((ins))</B>
<DD>
This string is displayed immediately before the last line of the primary
If the <I>show-mode-in-prompt</I> variable is enabled,
this string is displayed immediately before the last line of the primary
prompt when vi editing mode is active and in insertion mode.
The value is expanded like a
key binding, so the standard set of meta- and control prefixes and
@@ -7536,8 +7541,9 @@ The
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.
readline. The text of the test, after any comparison operator,
<BR>&nbsp;extends&nbsp;to&nbsp;the&nbsp;end&nbsp;of&nbsp;the&nbsp;line;
unless otherwise noted, no characters are required to isolate it.
<DL COMPACT><DT><DD>
<DL COMPACT>
<DT><B>mode</B><DD>
@@ -7564,6 +7570,33 @@ and
<I>sun-cmd</I>,
for instance.
<DT><B>version</B><DD>
The <B>version</B> test may be used to perform comparisons against
specific readline versions.
The <B>version</B> expands to the current readline version.
The set of comparison operators includes
<B>=</B>,
(and
<B>==</B>),
<B>!=</B>,
<B>&lt;=</B>,
<B>&gt;=</B>,
<B>&lt;</B>,
and
<B>&gt;</B>.
The version number supplied on the right side of the operator consists
of a major version number, an optional decimal point, and an optional
minor version (e.g., <B>7.1</B>). If the minor version is omitted, it
is assumed to be <B>0</B>.
The operator may be separated from the string <B>version</B>
and from the version number argument by whitespace.
<DT><B>application</B><DD>
The <B>application</B> construct is used to include
application-specific settings. Each program using the readline
@@ -7583,6 +7616,15 @@ key sequence that quotes the current or previous word in <B>bash</B>:
</DL>
<DT><I>variable</I><DD>
The <I>variable</I> construct provides simple equality tests for readline
variables and values.
The permitted comparison operators are <I>=</I>, <I>==</I>, and <I>!=</I>.
The variable name must be separated from the comparison operator by
whitespace; the operator may be separated from the value on the right hand
side by whitespace.
Both string and boolean variables may be tested. Boolean variables must be
tested against the values <I>on</I> and <I>off</I>.
</DL></DL>
<DT><B>$endif</B><DD>
@@ -11610,7 +11652,7 @@ is omitted, the return status is that of the last command
executed in the function body.
If <B>return</B> is executed by a trap handler, the last command used to
determine the status is the last command executed before the trap handler.
if <B>return</B> is executed during a <B>DEBUG</B> trap, the last command
If <B>return</B> is executed during a <B>DEBUG</B> trap, the last command
used to determine the status is the last command executed by the trap
handler before <B>return</B> was invoked.
If
@@ -12171,7 +12213,8 @@ With no options, or with the
<B>-p</B>
option, a list of all settable options is displayed, with
an indication of whether or not each is set.
an indication of whether or not each is set;
if <I>optnames</I> are supplied, the output is restricted to those options.
The <B>-p</B> option causes output to be displayed in a form that
may be reused as input.
Other options have the following meanings:
@@ -13754,7 +13797,7 @@ There may be only one active coprocess at a time.
<HR>
<TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>GNU Bash 4.4<TH ALIGN=CENTER width=33%>2017 October 7<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>GNU Bash 4.4<TH ALIGN=CENTER width=33%>2017 December 28<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -13860,6 +13903,6 @@ There may be only one active coprocess at a time.
</DL>
<HR>
This document was created by man2html from bash.1.<BR>
Time: 09 October 2017 15:38:40 EDT
Time: 02 January 2018 10:55:16 EST
</BODY>
</HTML>
+223 -189
View File
@@ -1,10 +1,10 @@
This is bash.info, produced by makeinfo version 6.4 from
This is bash.info, produced by makeinfo version 6.5 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 4.4, 7 October 2017).
Bash shell (version 4.4, 19 December 2017).
This is Edition 4.4, last updated 7 October 2017, of 'The GNU Bash
This is Edition 4.4, last updated 19 December 2017, of 'The GNU Bash
Reference Manual', for 'Bash', Version 4.4.
Copyright (C) 1988-2017 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 4.4, 7 October 2017). The Bash home page is
Bash shell (version 4.4, 19 December 2017). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 4.4, last updated 7 October 2017, of 'The GNU Bash
This is Edition 4.4, last updated 19 December 2017, of 'The GNU Bash
Reference Manual', for 'Bash', Version 4.4.
Bash contains features that appear in other popular shells, and some
@@ -1274,10 +1274,7 @@ the 'declare' ('typeset') builtin command (*note Bash Builtins::). The
(and optionally the source file and line number, if the 'extdebug' shell
option is enabled). Functions may be exported so that subshells
automatically have them defined with the '-f' option to the 'export'
builtin (*note Bourne Shell Builtins::). Note that shell functions and
variables with the same name may result in multiple identically-named
entries in the environment passed to the shell's children. Care should
be taken in cases where this may cause a problem.
builtin (*note Bourne Shell Builtins::).
Functions may be recursive. The 'FUNCNEST' variable may be used to
limit the depth of the function call stack and restrict the number of
@@ -1548,10 +1545,7 @@ each term. The default increment is 1 or -1 as appropriate.
Brace expansion is performed before any other expansions, and any
characters special to other expansions are preserved in the result. It
is strictly textual. Bash does not apply any syntactic interpretation
to the context of the expansion or the text between the braces. To
avoid conflicts with parameter expansion, the string '${' is not
considered eligible for brace expansion, and inhibits brace expansion
until the closing '}'..
to the context of the expansion or the text between the braces.
A correctly-formed brace expansion must contain unquoted opening and
closing braces, and at least one unquoted comma or a valid sequence
@@ -1560,7 +1554,7 @@ expression. Any incorrectly formed brace expansion is left unchanged.
A { or ',' may be quoted with a backslash to prevent its being
considered part of a brace expression. To avoid conflicts with
parameter expansion, the string '${' is not considered eligible for
brace expansion.
brace expansion, and inhibits brace expansion until the closing '}'..
This construct is typically used as shorthand when the common prefix
of the strings to be generated is longer than in the above example:
@@ -1660,12 +1654,14 @@ PARAMETER is not a NAMEREF, it introduces a level of variable
indirection. Bash uses the value of the variable formed from the rest
of PARAMETER as the name of the variable; this variable is then expanded
and that value is used in the rest of the substitution, rather than the
value of PARAMETER itself. This is known as 'indirect expansion'. If
PARAMETER is a nameref, this expands to the name of the variable
referenced by PARAMETER instead of performing the complete indirect
expansion. The exceptions to this are the expansions of ${!PREFIX*} and
${!NAME[@]} described below. The exclamation point must immediately
follow the left brace in order to introduce indirection.
value of PARAMETER itself. This is known as 'indirect expansion'. The
value is subject to tilde expansion, parameter expansion, command
substitution, and arithmetic expansion. If PARAMETER is a nameref, this
expands to the name of the variable referenced by PARAMETER instead of
performing the complete indirect expansion. The exceptions to this are
the expansions of ${!PREFIX*} and ${!NAME[@]} described below. The
exclamation point must immediately follow the left brace in order to
introduce indirection.
In each of the cases below, WORD is subject to tilde expansion,
parameter expansion, command substitution, and arithmetic expansion.
@@ -3098,7 +3094,7 @@ standard.
status of the last command executed in the function. If 'return'
is executed by a trap handler, the last command used to determine
the status is the last command executed before the trap handler.
if 'return' is executed during a 'DEBUG' trap, the last command
If 'return' is executed during a 'DEBUG' trap, the last command
used to determine the status is the last command executed by the
trap handler before 'return' was invoked. 'return' may also be
used to terminate execution of a script being executed with the '.'
@@ -4305,9 +4301,10 @@ This builtin allows you to change additional shell optional behavior.
option is used, those available with the '-o' option to the 'set'
builtin command (*note The Set Builtin::). With no options, or
with the '-p' option, a list of all settable options is displayed,
with an indication of whether or not each is set. The '-p' option
causes output to be displayed in a form that may be reused as
input. Other options have the following meanings:
with an indication of whether or not each is set; if OPTNAMES are
supplied, the output is restricted to those options. The '-p'
option causes output to be displayed in a form that may be reused
as input. Other options have the following meanings:
'-s'
Enable (set) each OPTNAME.
@@ -6233,11 +6230,15 @@ quotes.
The 'unset' builtin is used to destroy arrays. 'unset
NAME[SUBSCRIPT]' destroys the array element at index SUBSCRIPT.
Negative subscripts to indexed arrays are interpreted as described
above. Care must be taken to avoid unwanted side effects caused by
filename expansion. Unsetting the last element of an array variable
does not unset the variable. 'unset NAME', where NAME is an array,
removes the entire array. A subscript of '*' or '@' also removes the
entire array.
above. Unsetting the last element of an array variable does not unset
the variable. 'unset NAME', where NAME is an array, removes the entire
array. A subscript of '*' or '@' also removes the entire array.
When using a variable name with a subscript as an argument to a
command, such as with 'unset', without using the word expansion syntax
described above, the argument is subject to the shell's filename
expansion. If filename expansion is not desired, the argument should be
quoted.
The 'declare', 'local', and 'readonly' builtins each accept a '-a'
option to specify an indexed array and a '-A' option to specify an
@@ -7393,14 +7394,14 @@ Variable Settings
This variable can be set to either 'emacs' or 'vi'.
'emacs-mode-string'
This string is displayed immediately before the last line of
the primary prompt when emacs editing mode is active. The
value is expanded like a key binding, so the standard set of
meta- and control prefixes and backslash escape sequences is
available. Use the '\1' and '\2' escapes to begin and end
sequences of non-printing characters, which can be used to
embed a terminal control sequence into the mode string. The
default is '@'.
If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
displayed immediately before the last line of the primary
prompt when emacs editing mode is active. The value is
expanded like a key binding, so the standard set of meta- and
control prefixes and backslash escape sequences is available.
Use the '\1' and '\2' escapes to begin and end sequences of
non-printing characters, which can be used to embed a terminal
control sequence into the mode string. The default is '@'.
'enable-bracketed-paste'
When set to 'On', Readline will configure the terminal in a
@@ -7552,10 +7553,10 @@ Variable Settings
default value is 'off'.
'show-mode-in-prompt'
If set to 'on', add a character to the beginning of the prompt
If set to 'on', add a string to the beginning of the prompt
indicating the editing mode: emacs, vi command, or vi
insertion. The mode strings are user-settable. The default
value is 'off'.
insertion. The mode strings are user-settable (e.g.,
EMACS-MODE-STRING). The default value is 'off'.
'skip-completed-text'
If set to 'on', this alters the default completion behavior
@@ -7571,24 +7572,26 @@ Variable Settings
'off'.
'vi-cmd-mode-string'
This string is displayed immediately before the last line of
the primary prompt when vi editing mode is active and in
command mode. The value is expanded like a key binding, so
the standard set of meta- and control prefixes and backslash
escape sequences is available. Use the '\1' and '\2' escapes
to begin and end sequences of non-printing characters, which
can be used to embed a terminal control sequence into the mode
string. The default is '(cmd)'.
If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
displayed immediately before the last line of the primary
prompt when vi editing mode is active and in command mode.
The value is expanded like a key binding, so the standard set
of meta- and control prefixes and backslash escape sequences
is available. Use the '\1' and '\2' escapes to begin and end
sequences of non-printing characters, which can be used to
embed a terminal control sequence into the mode string. The
default is '(cmd)'.
'vi-ins-mode-string'
This string is displayed immediately before the last line of
the primary prompt when vi editing mode is active and in
insertion mode. The value is expanded like a key binding, so
the standard set of meta- and control prefixes and backslash
escape sequences is available. Use the '\1' and '\2' escapes
to begin and end sequences of non-printing characters, which
can be used to embed a terminal control sequence into the mode
string. The default is '(ins)'.
If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
displayed immediately before the last line of the primary
prompt when vi editing mode is active and in insertion mode.
The value is expanded like a key binding, so the standard set
of meta- and control prefixes and backslash escape sequences
is available. Use the '\1' and '\2' escapes to begin and end
sequences of non-printing characters, which can be used to
embed a terminal control sequence into the mode string. The
default is '(ins)'.
'visible-stats'
If set to 'on', a character denoting a file's type is appended
@@ -7715,8 +7718,9 @@ four parser directives used.
'$if'
The '$if' 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.
The text of the test, after any comparison operator, extends to the
end of the line; unless otherwise noted, no characters are required
to isolate it.
'mode'
The 'mode=' form of the '$if' directive is used to test
@@ -7733,6 +7737,22 @@ four parser directives used.
the portion of the terminal name before the first '-'. This
allows 'sun' to match both 'sun' and 'sun-cmd', for instance.
'version'
The 'version' test may be used to perform comparisons against
specific Readline versions. The 'version' expands to the
current Readline version. The set of comparison operators
includes '=' (and '=='), '!=', '<=', '>=', '<', and '>'. The
version number supplied on the right side of the operator
consists of a major version number, an optional decimal point,
and an optional minor version (e.g., '7.1'). If the minor
version is omitted, it is assumed to be '0'. The operator may
be separated from the string 'version' and from the version
number argument by whitespace. The following example sets a
variable if the Readline version being used is 7.0 or newer:
$if version >= 7.0
set show-mode-in-prompt on
$endif
'application'
The APPLICATION construct is used to include
application-specific settings. Each program using the
@@ -7746,6 +7766,20 @@ four parser directives used.
"\C-xq": "\eb\"\ef\""
$endif
'variable'
The VARIABLE construct provides simple equality tests for
Readline variables and values. The permitted comparison
operators are '=', '==', and '!='. The variable name must be
separated from the comparison operator by whitespace; the
operator may be separated from the value on the right hand
side by whitespace. Both string and boolean variables may be
tested. Boolean variables must be tested against the values
ON and OFF. The following example is equivalent to the
'mode=emacs' test described above:
$if editing-mode == emacs
set show-mode-in-prompt on
$endif
'$endif'
This command, as seen in the previous example, terminates an '$if'
command.
@@ -11139,9 +11173,9 @@ D.3 Parameter and Variable Index
* vi-cmd-mode-string: Readline Init File Syntax.
(line 310)
* vi-ins-mode-string: Readline Init File Syntax.
(line 320)
(line 321)
* visible-stats: Readline Init File Syntax.
(line 330)
(line 332)

File: bash.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes
@@ -11504,134 +11538,134 @@ D.5 Concept Index

Tag Table:
Node: Top893
Node: Introduction2809
Node: What is Bash?3025
Node: What is a shell?4139
Node: Definitions6677
Node: Basic Shell Features9628
Node: Shell Syntax10847
Node: Shell Operation11873
Node: Quoting13166
Node: Escape Character14466
Node: Single Quotes14951
Node: Double Quotes15299
Node: ANSI-C Quoting16577
Node: Locale Translation17836
Node: Comments18732
Node: Shell Commands19350
Node: Simple Commands20222
Node: Pipelines20853
Node: Lists23785
Node: Compound Commands25524
Node: Looping Constructs26536
Node: Conditional Constructs29031
Node: Command Grouping40086
Node: Coprocesses41565
Node: GNU Parallel43397
Node: Shell Functions47371
Node: Shell Parameters54570
Node: Positional Parameters58983
Node: Special Parameters59883
Node: Shell Expansions63220
Node: Brace Expansion65343
Node: Tilde Expansion68177
Node: Shell Parameter Expansion70525
Node: Command Substitution84702
Node: Arithmetic Expansion86057
Node: Process Substitution86989
Node: Word Splitting88109
Node: Filename Expansion90053
Node: Pattern Matching92427
Node: Quote Removal96413
Node: Redirections96708
Node: Executing Commands106266
Node: Simple Command Expansion106936
Node: Command Search and Execution108866
Node: Command Execution Environment111242
Node: Environment114226
Node: Exit Status115885
Node: Signals117555
Node: Shell Scripts119522
Node: Shell Builtin Commands122037
Node: Bourne Shell Builtins124075
Node: Bash Builtins144730
Node: Modifying Shell Behavior173639
Node: The Set Builtin173984
Node: The Shopt Builtin184397
Node: Special Builtins200732
Node: Shell Variables201711
Node: Bourne Shell Variables202148
Node: Bash Variables204252
Node: Bash Features234045
Node: Invoking Bash234944
Node: Bash Startup Files240930
Node: Interactive Shells246033
Node: What is an Interactive Shell?246443
Node: Is this Shell Interactive?247092
Node: Interactive Shell Behavior247907
Node: Bash Conditional Expressions251395
Node: Shell Arithmetic255761
Node: Aliases258578
Node: Arrays261126
Node: The Directory Stack266288
Node: Directory Stack Builtins267072
Node: Controlling the Prompt270040
Node: The Restricted Shell272802
Node: Bash POSIX Mode274627
Node: Job Control284978
Node: Job Control Basics285438
Node: Job Control Builtins290406
Node: Job Control Variables295133
Node: Command Line Editing296289
Node: Introduction and Notation297960
Node: Readline Interaction299583
Node: Readline Bare Essentials300774
Node: Readline Movement Commands302557
Node: Readline Killing Commands303517
Node: Readline Arguments305435
Node: Searching306479
Node: Readline Init File308665
Node: Readline Init File Syntax309812
Node: Conditional Init Constructs329999
Node: Sample Init File332524
Node: Bindable Readline Commands335641
Node: Commands For Moving336845
Node: Commands For History338694
Node: Commands For Text342989
Node: Commands For Killing346378
Node: Numeric Arguments348859
Node: Commands For Completion349998
Node: Keyboard Macros354189
Node: Miscellaneous Commands354876
Node: Readline vi Mode360829
Node: Programmable Completion361736
Node: Programmable Completion Builtins369197
Node: A Programmable Completion Example379083
Node: Using History Interactively384334
Node: Bash History Facilities385018
Node: Bash History Builtins388019
Node: History Interaction392311
Node: Event Designators395373
Node: Word Designators396592
Node: Modifiers398229
Node: Installing Bash399631
Node: Basic Installation400768
Node: Compilers and Options403459
Node: Compiling For Multiple Architectures404200
Node: Installation Names405863
Node: Specifying the System Type406681
Node: Sharing Defaults407397
Node: Operation Controls408070
Node: Optional Features409028
Node: Reporting Bugs419554
Node: Major Differences From The Bourne Shell420748
Node: GNU Free Documentation License437600
Node: Indexes462777
Node: Builtin Index463231
Node: Reserved Word Index470058
Node: Variable Index472506
Node: Function Index488184
Node: Concept Index501487
Node: Top897
Node: Introduction2817
Node: What is Bash?3033
Node: What is a shell?4147
Node: Definitions6685
Node: Basic Shell Features9636
Node: Shell Syntax10855
Node: Shell Operation11881
Node: Quoting13174
Node: Escape Character14474
Node: Single Quotes14959
Node: Double Quotes15307
Node: ANSI-C Quoting16585
Node: Locale Translation17844
Node: Comments18740
Node: Shell Commands19358
Node: Simple Commands20230
Node: Pipelines20861
Node: Lists23793
Node: Compound Commands25532
Node: Looping Constructs26544
Node: Conditional Constructs29039
Node: Command Grouping40094
Node: Coprocesses41573
Node: GNU Parallel43405
Node: Shell Functions47379
Node: Shell Parameters54355
Node: Positional Parameters58768
Node: Special Parameters59668
Node: Shell Expansions63005
Node: Brace Expansion65128
Node: Tilde Expansion67852
Node: Shell Parameter Expansion70200
Node: Command Substitution84488
Node: Arithmetic Expansion85843
Node: Process Substitution86775
Node: Word Splitting87895
Node: Filename Expansion89839
Node: Pattern Matching92213
Node: Quote Removal96199
Node: Redirections96494
Node: Executing Commands106052
Node: Simple Command Expansion106722
Node: Command Search and Execution108652
Node: Command Execution Environment111028
Node: Environment114012
Node: Exit Status115671
Node: Signals117341
Node: Shell Scripts119308
Node: Shell Builtin Commands121823
Node: Bourne Shell Builtins123861
Node: Bash Builtins144516
Node: Modifying Shell Behavior173425
Node: The Set Builtin173770
Node: The Shopt Builtin184183
Node: Special Builtins200592
Node: Shell Variables201571
Node: Bourne Shell Variables202008
Node: Bash Variables204112
Node: Bash Features233905
Node: Invoking Bash234804
Node: Bash Startup Files240790
Node: Interactive Shells245893
Node: What is an Interactive Shell?246303
Node: Is this Shell Interactive?246952
Node: Interactive Shell Behavior247767
Node: Bash Conditional Expressions251255
Node: Shell Arithmetic255621
Node: Aliases258438
Node: Arrays260986
Node: The Directory Stack266352
Node: Directory Stack Builtins267136
Node: Controlling the Prompt270104
Node: The Restricted Shell272866
Node: Bash POSIX Mode274691
Node: Job Control285042
Node: Job Control Basics285502
Node: Job Control Builtins290470
Node: Job Control Variables295197
Node: Command Line Editing296353
Node: Introduction and Notation298024
Node: Readline Interaction299647
Node: Readline Bare Essentials300838
Node: Readline Movement Commands302621
Node: Readline Killing Commands303581
Node: Readline Arguments305499
Node: Searching306543
Node: Readline Init File308729
Node: Readline Init File Syntax309876
Node: Conditional Init Constructs330247
Node: Sample Init File334443
Node: Bindable Readline Commands337560
Node: Commands For Moving338764
Node: Commands For History340613
Node: Commands For Text344908
Node: Commands For Killing348297
Node: Numeric Arguments350778
Node: Commands For Completion351917
Node: Keyboard Macros356108
Node: Miscellaneous Commands356795
Node: Readline vi Mode362748
Node: Programmable Completion363655
Node: Programmable Completion Builtins371116
Node: A Programmable Completion Example381002
Node: Using History Interactively386253
Node: Bash History Facilities386937
Node: Bash History Builtins389938
Node: History Interaction394230
Node: Event Designators397292
Node: Word Designators398511
Node: Modifiers400148
Node: Installing Bash401550
Node: Basic Installation402687
Node: Compilers and Options405378
Node: Compiling For Multiple Architectures406119
Node: Installation Names407782
Node: Specifying the System Type408600
Node: Sharing Defaults409316
Node: Operation Controls409989
Node: Optional Features410947
Node: Reporting Bugs421473
Node: Major Differences From The Bourne Shell422667
Node: GNU Free Documentation License439519
Node: Indexes464696
Node: Builtin Index465150
Node: Reserved Word Index471977
Node: Variable Index474425
Node: Function Index490103
Node: Concept Index503406

End Tag Table
BIN
View File
Binary file not shown.
+5307 -5251
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -78,12 +78,12 @@
@xrdef{Shell Parameters-pg}{19}
@xrdef{Positional Parameters-title}{Positional Parameters}
@xrdef{Positional Parameters-snt}{Section@tie 3.4.1}
@xrdef{Positional Parameters-pg}{20}
@xrdef{Special Parameters-title}{Special Parameters}
@xrdef{Special Parameters-snt}{Section@tie 3.4.2}
@xrdef{Special Parameters-pg}{21}
@xrdef{Positional Parameters-pg}{20}
@xrdef{Shell Expansions-title}{Shell Expansions}
@xrdef{Shell Expansions-snt}{Section@tie 3.5}
@xrdef{Special Parameters-pg}{21}
@xrdef{Brace Expansion-title}{Brace Expansion}
@xrdef{Brace Expansion-snt}{Section@tie 3.5.1}
@xrdef{Shell Expansions-pg}{22}
@@ -102,11 +102,11 @@
@xrdef{Process Substitution-snt}{Section@tie 3.5.6}
@xrdef{Command Substitution-pg}{30}
@xrdef{Arithmetic Expansion-pg}{30}
@xrdef{Process Substitution-pg}{30}
@xrdef{Word Splitting-title}{Word Splitting}
@xrdef{Word Splitting-snt}{Section@tie 3.5.7}
@xrdef{Filename Expansion-title}{Filename Expansion}
@xrdef{Filename Expansion-snt}{Section@tie 3.5.8}
@xrdef{Process Substitution-pg}{31}
@xrdef{Word Splitting-pg}{31}
@xrdef{Filename Expansion-pg}{31}
@xrdef{Pattern Matching-title}{Pattern Matching}
+1 -1
View File
@@ -54,7 +54,7 @@
\entry{command substitution}{30}{command substitution}
\entry{expansion, arithmetic}{30}{expansion, arithmetic}
\entry{arithmetic expansion}{30}{arithmetic expansion}
\entry{process substitution}{31}{process substitution}
\entry{process substitution}{30}{process substitution}
\entry{word splitting}{31}{word splitting}
\entry{expansion, filename}{31}{expansion, filename}
\entry{expansion, pathname}{31}{expansion, pathname}
+1 -1
View File
@@ -99,7 +99,7 @@
\entry {POSIX Mode}{98}
\entry {process group}{3}
\entry {process group ID}{3}
\entry {process substitution}{31}
\entry {process substitution}{30}
\entry {programmable completion}{131}
\entry {prompting}{96}
\initial {Q}
BIN
View File
Binary file not shown.
+69 -25
View File
@@ -1,9 +1,9 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This text is a brief description of the features that are present in
the Bash shell (version 4.4, 7 October 2017).
the Bash shell (version 4.4, 19 December 2017).
This is Edition 4.4, last updated 7 October 2017,
This is Edition 4.4, last updated 19 December 2017,
of The GNU Bash Reference Manual,
for Bash, Version 4.4.
@@ -15,8 +15,9 @@ any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled
"GNU Free Documentation License". -->
<!-- Created by GNU Texinfo 6.4, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Bash Reference Manual</title>
<meta name="description" content="Bash Reference Manual">
@@ -24,7 +25,6 @@ A copy of the license is included in the section entitled
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="#Top" rel="start" title="Top">
<link href="#Indexes" rel="index" title="Indexes">
<link href="#SEC_Contents" rel="contents" title="Table of Contents">
@@ -284,10 +284,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
<h1 class="top">Bash Features</h1>
<p>This text is a brief description of the features that are present in
the Bash shell (version 4.4, 7 October 2017).
the Bash shell (version 4.4, 19 December 2017).
The Bash home page is <a href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>.
</p>
<p>This is Edition 4.4, last updated 7 October 2017,
<p>This is Edition 4.4, last updated 19 December 2017,
of <cite>The GNU Bash Reference Manual</cite>,
for <code>Bash</code>, Version 4.4.
</p>
@@ -1946,10 +1946,6 @@ Functions may be exported so that subshells
automatically have them defined with the
<samp>-f</samp> option to the <code>export</code> builtin
(see <a href="#Bourne-Shell-Builtins">Bourne Shell Builtins</a>).
Note that shell functions and variables with the same name may result
in multiple identically-named entries in the environment passed to the
shell&rsquo;s children.
Care should be taken in cases where this may cause a problem.
</p>
<p>Functions may be recursive.
The <code>FUNCNEST</code> variable may be used to limit the depth of the
@@ -2340,9 +2336,6 @@ and any characters special to other expansions are preserved
in the result. It is strictly textual. Bash
does not apply any syntactic interpretation to the context of the
expansion or the text between the braces.
To avoid conflicts with parameter expansion, the string &lsquo;<samp>${</samp>&rsquo;
is not considered eligible for brace expansion,
and inhibits brace expansion until the closing &lsquo;<samp>}</samp>&rsquo;..
</p>
<p>A correctly-formed brace expansion must contain unquoted opening
and closing braces, and at least one unquoted comma or a valid
@@ -2352,7 +2345,8 @@ Any incorrectly formed brace expansion is left unchanged.
<p>A { or &lsquo;<samp>,</samp>&rsquo; may be quoted with a backslash to prevent its
being considered part of a brace expression.
To avoid conflicts with parameter expansion, the string &lsquo;<samp>${</samp>&rsquo;
is not considered eligible for brace expansion.
is not considered eligible for brace expansion,
and inhibits brace expansion until the closing &lsquo;<samp>}</samp>&rsquo;..
</p>
<p>This construct is typically used as shorthand when the common
prefix of the strings to be generated is longer than in the
@@ -2489,6 +2483,8 @@ Bash uses the value of the variable formed from the rest of
expanded and that value is used in the rest of the substitution, rather
than the value of <var>parameter</var> itself.
This is known as <code>indirect expansion</code>.
The value is subject to tilde expansion,
parameter expansion, command substitution, and arithmetic expansion.
If <var>parameter</var> is a nameref, this expands to the name of the
variable referenced by <var>parameter</var> instead of performing the
complete indirect expansion.
@@ -4321,7 +4317,7 @@ If <var>n</var> is not supplied, the return value is the exit status of the
last command executed in the function.
If <code>return</code> is executed by a trap handler, the last command used to
determine the status is the last command executed before the trap handler.
if <code>return</code> is executed during a <code>DEBUG</code> trap, the last command
If <code>return</code> is executed during a <code>DEBUG</code> trap, the last command
used to determine the status is the last command executed by the trap
handler before <code>return</code> was invoked.
<code>return</code> may also be used to terminate execution of a script
@@ -5903,7 +5899,8 @@ The settings can be either those listed below, or, if the
<samp>-o</samp> option is used, those available with the <samp>-o</samp>
option to the <code>set</code> builtin command (see <a href="#The-Set-Builtin">The Set Builtin</a>).
With no options, or with the <samp>-p</samp> option, a list of all settable
options is displayed, with an indication of whether or not each is set.
options is displayed, with an indication of whether or not each is set;
if <var>optnames</var> are supplied, the output is restricted to those options.
The <samp>-p</samp> option causes output to be displayed in a form that
may be reused as input.
Other options have the following meanings:
@@ -8542,13 +8539,16 @@ special parameters &lsquo;<samp>@</samp>&rsquo; and &lsquo;<samp>*</samp>&rsquo;
<code>unset <var>name</var>[<var>subscript</var>]</code>
destroys the array element at index <var>subscript</var>.
Negative subscripts to indexed arrays are interpreted as described above.
Care must be taken to avoid unwanted side effects caused by filename
expansion.
Unsetting the last element of an array variable does not unset the variable.
<code>unset <var>name</var></code>, where <var>name</var> is an array, removes the
entire array. A subscript of &lsquo;<samp>*</samp>&rsquo; or &lsquo;<samp>@</samp>&rsquo; also removes the
entire array.
</p>
<p>When using a variable name with a subscript as an argument to a command,
such as with <code>unset</code>, without using the word expansion syntax
described above, the argument is subject to the shell&rsquo;s filename expansion.
If filename expansion is not desired, the argument should be quoted.
</p>
<p>The <code>declare</code>, <code>local</code>, and <code>readonly</code>
builtins each accept a <samp>-a</samp> option to specify an indexed
array and a <samp>-A</samp> option to specify an associative array.
@@ -10035,7 +10035,8 @@ set to either &lsquo;<samp>emacs</samp>&rsquo; or &lsquo;<samp>vi</samp>&rsquo;.
</dd>
<dt><code>emacs-mode-string</code></dt>
<dd><a name="index-emacs_002dmode_002dstring"></a>
<p>This string is displayed immediately before the last line of the primary
<p>If the <var>show-mode-in-prompt</var> variable is enabled,
this string is displayed immediately before the last line of the primary
prompt when emacs editing mode is active. The value is expanded like a
key binding, so the standard set of meta- and control prefixes and
backslash escape sequences is available.
@@ -10248,9 +10249,9 @@ The default value is &lsquo;<samp>off</samp>&rsquo;.
</dd>
<dt><code>show-mode-in-prompt</code></dt>
<dd><a name="index-show_002dmode_002din_002dprompt"></a>
<p>If set to &lsquo;<samp>on</samp>&rsquo;, add a character to the beginning of the prompt
<p>If set to &lsquo;<samp>on</samp>&rsquo;, add a string to the beginning of the prompt
indicating the editing mode: emacs, vi command, or vi insertion.
The mode strings are user-settable.
The mode strings are user-settable (e.g., <var>emacs-mode-string</var>).
The default value is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
@@ -10271,7 +10272,8 @@ The default value is &lsquo;<samp>off</samp>&rsquo;.
</dd>
<dt><code>vi-cmd-mode-string</code></dt>
<dd><a name="index-vi_002dcmd_002dmode_002dstring"></a>
<p>This string is displayed immediately before the last line of the primary
<p>If the <var>show-mode-in-prompt</var> variable is enabled,
this string is displayed immediately before the last line of the primary
prompt when vi editing mode is active and in command mode.
The value is expanded like a
key binding, so the standard set of meta- and control prefixes and
@@ -10284,7 +10286,8 @@ The default is &lsquo;<samp>(cmd)</samp>&rsquo;.
</dd>
<dt><code>vi-ins-mode-string</code></dt>
<dd><a name="index-vi_002dins_002dmode_002dstring"></a>
<p>This string is displayed immediately before the last line of the primary
<p>If the <var>show-mode-in-prompt</var> variable is enabled,
this string is displayed immediately before the last line of the primary
prompt when vi editing mode is active and in insertion mode.
The value is expanded like a
key binding, so the standard set of meta- and control prefixes and
@@ -10477,8 +10480,9 @@ of tests. There are four parser directives used.
<dt><code>$if</code></dt>
<dd><p>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.
Readline. The text of the test, after any comparison operator,
extends to the end of the line;
unless otherwise noted, no characters are required to isolate it.
</p>
<dl compact="compact">
<dt><code>mode</code></dt>
@@ -10499,6 +10503,28 @@ the portion of the terminal name before the first &lsquo;<samp>-</samp>&rsquo;.
allows <code>sun</code> to match both <code>sun</code> and <code>sun-cmd</code>,
for instance.
</p>
</dd>
<dt><code>version</code></dt>
<dd><p>The <code>version</code> test may be used to perform comparisons against
specific Readline versions.
The <code>version</code> expands to the current Readline version.
The set of comparison operators includes
&lsquo;<samp>=</samp>&rsquo; (and &lsquo;<samp>==</samp>&rsquo;), &lsquo;<samp>!=</samp>&rsquo;, &lsquo;<samp>&lt;=</samp>&rsquo;, &lsquo;<samp>&gt;=</samp>&rsquo;, &lsquo;<samp>&lt;</samp>&rsquo;,
and &lsquo;<samp>&gt;</samp>&rsquo;.
The version number supplied on the right side of the operator consists
of a major version number, an optional decimal point, and an optional
minor version (e.g., &lsquo;<samp>7.1</samp>&rsquo;). If the minor version is omitted, it
is assumed to be &lsquo;<samp>0</samp>&rsquo;.
The operator may be separated from the string <code>version</code> and
from the version number argument by whitespace.
The following example sets a variable if the Readline version being used
is 7.0 or newer:
</p><div class="example">
<pre class="example">$if version &gt;= 7.0
set show-mode-in-prompt on
$endif
</pre></div>
</dd>
<dt><code>application</code></dt>
<dd><p>The <var>application</var> construct is used to include
@@ -10514,6 +10540,24 @@ key sequence that quotes the current or previous word in Bash:
&quot;\C-xq&quot;: &quot;\eb\&quot;\ef\&quot;&quot;
$endif
</pre></div>
</dd>
<dt><code>variable</code></dt>
<dd><p>The <var>variable</var> construct provides simple equality tests for Readline
variables and values.
The permitted comparison operators are &lsquo;<samp>=</samp>&rsquo;, &lsquo;<samp>==</samp>&rsquo;, and &lsquo;<samp>!=</samp>&rsquo;.
The variable name must be separated from the comparison operator by
whitespace; the operator may be separated from the value on the right hand
side by whitespace.
Both string and boolean variables may be tested. Boolean variables must be
tested against the values <var>on</var> and <var>off</var>.
The following example is equivalent to the <code>mode=emacs</code> test described
above:
</p><div class="example">
<pre class="example">$if editing-mode == emacs
set show-mode-in-prompt on
$endif
</pre></div>
</dd>
</dl>
+223 -189
View File
@@ -1,10 +1,10 @@
This is bashref.info, produced by makeinfo version 6.4 from
This is bashref.info, produced by makeinfo version 6.5 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 4.4, 7 October 2017).
Bash shell (version 4.4, 19 December 2017).
This is Edition 4.4, last updated 7 October 2017, of 'The GNU Bash
This is Edition 4.4, last updated 19 December 2017, of 'The GNU Bash
Reference Manual', for 'Bash', Version 4.4.
Copyright (C) 1988-2017 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 4.4, 7 October 2017). The Bash home page is
Bash shell (version 4.4, 19 December 2017). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 4.4, last updated 7 October 2017, of 'The GNU Bash
This is Edition 4.4, last updated 19 December 2017, of 'The GNU Bash
Reference Manual', for 'Bash', Version 4.4.
Bash contains features that appear in other popular shells, and some
@@ -1274,10 +1274,7 @@ the 'declare' ('typeset') builtin command (*note Bash Builtins::). The
(and optionally the source file and line number, if the 'extdebug' shell
option is enabled). Functions may be exported so that subshells
automatically have them defined with the '-f' option to the 'export'
builtin (*note Bourne Shell Builtins::). Note that shell functions and
variables with the same name may result in multiple identically-named
entries in the environment passed to the shell's children. Care should
be taken in cases where this may cause a problem.
builtin (*note Bourne Shell Builtins::).
Functions may be recursive. The 'FUNCNEST' variable may be used to
limit the depth of the function call stack and restrict the number of
@@ -1548,10 +1545,7 @@ each term. The default increment is 1 or -1 as appropriate.
Brace expansion is performed before any other expansions, and any
characters special to other expansions are preserved in the result. It
is strictly textual. Bash does not apply any syntactic interpretation
to the context of the expansion or the text between the braces. To
avoid conflicts with parameter expansion, the string '${' is not
considered eligible for brace expansion, and inhibits brace expansion
until the closing '}'..
to the context of the expansion or the text between the braces.
A correctly-formed brace expansion must contain unquoted opening and
closing braces, and at least one unquoted comma or a valid sequence
@@ -1560,7 +1554,7 @@ expression. Any incorrectly formed brace expansion is left unchanged.
A { or ',' may be quoted with a backslash to prevent its being
considered part of a brace expression. To avoid conflicts with
parameter expansion, the string '${' is not considered eligible for
brace expansion.
brace expansion, and inhibits brace expansion until the closing '}'..
This construct is typically used as shorthand when the common prefix
of the strings to be generated is longer than in the above example:
@@ -1660,12 +1654,14 @@ PARAMETER is not a NAMEREF, it introduces a level of variable
indirection. Bash uses the value of the variable formed from the rest
of PARAMETER as the name of the variable; this variable is then expanded
and that value is used in the rest of the substitution, rather than the
value of PARAMETER itself. This is known as 'indirect expansion'. If
PARAMETER is a nameref, this expands to the name of the variable
referenced by PARAMETER instead of performing the complete indirect
expansion. The exceptions to this are the expansions of ${!PREFIX*} and
${!NAME[@]} described below. The exclamation point must immediately
follow the left brace in order to introduce indirection.
value of PARAMETER itself. This is known as 'indirect expansion'. The
value is subject to tilde expansion, parameter expansion, command
substitution, and arithmetic expansion. If PARAMETER is a nameref, this
expands to the name of the variable referenced by PARAMETER instead of
performing the complete indirect expansion. The exceptions to this are
the expansions of ${!PREFIX*} and ${!NAME[@]} described below. The
exclamation point must immediately follow the left brace in order to
introduce indirection.
In each of the cases below, WORD is subject to tilde expansion,
parameter expansion, command substitution, and arithmetic expansion.
@@ -3098,7 +3094,7 @@ standard.
status of the last command executed in the function. If 'return'
is executed by a trap handler, the last command used to determine
the status is the last command executed before the trap handler.
if 'return' is executed during a 'DEBUG' trap, the last command
If 'return' is executed during a 'DEBUG' trap, the last command
used to determine the status is the last command executed by the
trap handler before 'return' was invoked. 'return' may also be
used to terminate execution of a script being executed with the '.'
@@ -4305,9 +4301,10 @@ This builtin allows you to change additional shell optional behavior.
option is used, those available with the '-o' option to the 'set'
builtin command (*note The Set Builtin::). With no options, or
with the '-p' option, a list of all settable options is displayed,
with an indication of whether or not each is set. The '-p' option
causes output to be displayed in a form that may be reused as
input. Other options have the following meanings:
with an indication of whether or not each is set; if OPTNAMES are
supplied, the output is restricted to those options. The '-p'
option causes output to be displayed in a form that may be reused
as input. Other options have the following meanings:
'-s'
Enable (set) each OPTNAME.
@@ -6233,11 +6230,15 @@ quotes.
The 'unset' builtin is used to destroy arrays. 'unset
NAME[SUBSCRIPT]' destroys the array element at index SUBSCRIPT.
Negative subscripts to indexed arrays are interpreted as described
above. Care must be taken to avoid unwanted side effects caused by
filename expansion. Unsetting the last element of an array variable
does not unset the variable. 'unset NAME', where NAME is an array,
removes the entire array. A subscript of '*' or '@' also removes the
entire array.
above. Unsetting the last element of an array variable does not unset
the variable. 'unset NAME', where NAME is an array, removes the entire
array. A subscript of '*' or '@' also removes the entire array.
When using a variable name with a subscript as an argument to a
command, such as with 'unset', without using the word expansion syntax
described above, the argument is subject to the shell's filename
expansion. If filename expansion is not desired, the argument should be
quoted.
The 'declare', 'local', and 'readonly' builtins each accept a '-a'
option to specify an indexed array and a '-A' option to specify an
@@ -7393,14 +7394,14 @@ Variable Settings
This variable can be set to either 'emacs' or 'vi'.
'emacs-mode-string'
This string is displayed immediately before the last line of
the primary prompt when emacs editing mode is active. The
value is expanded like a key binding, so the standard set of
meta- and control prefixes and backslash escape sequences is
available. Use the '\1' and '\2' escapes to begin and end
sequences of non-printing characters, which can be used to
embed a terminal control sequence into the mode string. The
default is '@'.
If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
displayed immediately before the last line of the primary
prompt when emacs editing mode is active. The value is
expanded like a key binding, so the standard set of meta- and
control prefixes and backslash escape sequences is available.
Use the '\1' and '\2' escapes to begin and end sequences of
non-printing characters, which can be used to embed a terminal
control sequence into the mode string. The default is '@'.
'enable-bracketed-paste'
When set to 'On', Readline will configure the terminal in a
@@ -7552,10 +7553,10 @@ Variable Settings
default value is 'off'.
'show-mode-in-prompt'
If set to 'on', add a character to the beginning of the prompt
If set to 'on', add a string to the beginning of the prompt
indicating the editing mode: emacs, vi command, or vi
insertion. The mode strings are user-settable. The default
value is 'off'.
insertion. The mode strings are user-settable (e.g.,
EMACS-MODE-STRING). The default value is 'off'.
'skip-completed-text'
If set to 'on', this alters the default completion behavior
@@ -7571,24 +7572,26 @@ Variable Settings
'off'.
'vi-cmd-mode-string'
This string is displayed immediately before the last line of
the primary prompt when vi editing mode is active and in
command mode. The value is expanded like a key binding, so
the standard set of meta- and control prefixes and backslash
escape sequences is available. Use the '\1' and '\2' escapes
to begin and end sequences of non-printing characters, which
can be used to embed a terminal control sequence into the mode
string. The default is '(cmd)'.
If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
displayed immediately before the last line of the primary
prompt when vi editing mode is active and in command mode.
The value is expanded like a key binding, so the standard set
of meta- and control prefixes and backslash escape sequences
is available. Use the '\1' and '\2' escapes to begin and end
sequences of non-printing characters, which can be used to
embed a terminal control sequence into the mode string. The
default is '(cmd)'.
'vi-ins-mode-string'
This string is displayed immediately before the last line of
the primary prompt when vi editing mode is active and in
insertion mode. The value is expanded like a key binding, so
the standard set of meta- and control prefixes and backslash
escape sequences is available. Use the '\1' and '\2' escapes
to begin and end sequences of non-printing characters, which
can be used to embed a terminal control sequence into the mode
string. The default is '(ins)'.
If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
displayed immediately before the last line of the primary
prompt when vi editing mode is active and in insertion mode.
The value is expanded like a key binding, so the standard set
of meta- and control prefixes and backslash escape sequences
is available. Use the '\1' and '\2' escapes to begin and end
sequences of non-printing characters, which can be used to
embed a terminal control sequence into the mode string. The
default is '(ins)'.
'visible-stats'
If set to 'on', a character denoting a file's type is appended
@@ -7715,8 +7718,9 @@ four parser directives used.
'$if'
The '$if' 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.
The text of the test, after any comparison operator, extends to the
end of the line; unless otherwise noted, no characters are required
to isolate it.
'mode'
The 'mode=' form of the '$if' directive is used to test
@@ -7733,6 +7737,22 @@ four parser directives used.
the portion of the terminal name before the first '-'. This
allows 'sun' to match both 'sun' and 'sun-cmd', for instance.
'version'
The 'version' test may be used to perform comparisons against
specific Readline versions. The 'version' expands to the
current Readline version. The set of comparison operators
includes '=' (and '=='), '!=', '<=', '>=', '<', and '>'. The
version number supplied on the right side of the operator
consists of a major version number, an optional decimal point,
and an optional minor version (e.g., '7.1'). If the minor
version is omitted, it is assumed to be '0'. The operator may
be separated from the string 'version' and from the version
number argument by whitespace. The following example sets a
variable if the Readline version being used is 7.0 or newer:
$if version >= 7.0
set show-mode-in-prompt on
$endif
'application'
The APPLICATION construct is used to include
application-specific settings. Each program using the
@@ -7746,6 +7766,20 @@ four parser directives used.
"\C-xq": "\eb\"\ef\""
$endif
'variable'
The VARIABLE construct provides simple equality tests for
Readline variables and values. The permitted comparison
operators are '=', '==', and '!='. The variable name must be
separated from the comparison operator by whitespace; the
operator may be separated from the value on the right hand
side by whitespace. Both string and boolean variables may be
tested. Boolean variables must be tested against the values
ON and OFF. The following example is equivalent to the
'mode=emacs' test described above:
$if editing-mode == emacs
set show-mode-in-prompt on
$endif
'$endif'
This command, as seen in the previous example, terminates an '$if'
command.
@@ -11139,9 +11173,9 @@ D.3 Parameter and Variable Index
* vi-cmd-mode-string: Readline Init File Syntax.
(line 310)
* vi-ins-mode-string: Readline Init File Syntax.
(line 320)
(line 321)
* visible-stats: Readline Init File Syntax.
(line 330)
(line 332)

File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes
@@ -11504,134 +11538,134 @@ D.5 Concept Index

Tag Table:
Node: Top893
Node: Introduction2809
Node: What is Bash?3025
Node: What is a shell?4139
Node: Definitions6677
Node: Basic Shell Features9628
Node: Shell Syntax10847
Node: Shell Operation11873
Node: Quoting13166
Node: Escape Character14466
Node: Single Quotes14951
Node: Double Quotes15299
Node: ANSI-C Quoting16577
Node: Locale Translation17836
Node: Comments18732
Node: Shell Commands19350
Node: Simple Commands20222
Node: Pipelines20853
Node: Lists23785
Node: Compound Commands25524
Node: Looping Constructs26536
Node: Conditional Constructs29031
Node: Command Grouping40086
Node: Coprocesses41565
Node: GNU Parallel43397
Node: Shell Functions47371
Node: Shell Parameters54570
Node: Positional Parameters58983
Node: Special Parameters59883
Node: Shell Expansions63220
Node: Brace Expansion65343
Node: Tilde Expansion68177
Node: Shell Parameter Expansion70525
Node: Command Substitution84702
Node: Arithmetic Expansion86057
Node: Process Substitution86989
Node: Word Splitting88109
Node: Filename Expansion90053
Node: Pattern Matching92427
Node: Quote Removal96413
Node: Redirections96708
Node: Executing Commands106266
Node: Simple Command Expansion106936
Node: Command Search and Execution108866
Node: Command Execution Environment111242
Node: Environment114226
Node: Exit Status115885
Node: Signals117555
Node: Shell Scripts119522
Node: Shell Builtin Commands122037
Node: Bourne Shell Builtins124075
Node: Bash Builtins144730
Node: Modifying Shell Behavior173639
Node: The Set Builtin173984
Node: The Shopt Builtin184397
Node: Special Builtins200732
Node: Shell Variables201711
Node: Bourne Shell Variables202148
Node: Bash Variables204252
Node: Bash Features234045
Node: Invoking Bash234944
Node: Bash Startup Files240930
Node: Interactive Shells246033
Node: What is an Interactive Shell?246443
Node: Is this Shell Interactive?247092
Node: Interactive Shell Behavior247907
Node: Bash Conditional Expressions251395
Node: Shell Arithmetic255761
Node: Aliases258578
Node: Arrays261126
Node: The Directory Stack266288
Node: Directory Stack Builtins267072
Node: Controlling the Prompt270040
Node: The Restricted Shell272802
Node: Bash POSIX Mode274627
Node: Job Control284978
Node: Job Control Basics285438
Node: Job Control Builtins290406
Node: Job Control Variables295133
Node: Command Line Editing296289
Node: Introduction and Notation297960
Node: Readline Interaction299583
Node: Readline Bare Essentials300774
Node: Readline Movement Commands302557
Node: Readline Killing Commands303517
Node: Readline Arguments305435
Node: Searching306479
Node: Readline Init File308665
Node: Readline Init File Syntax309812
Node: Conditional Init Constructs329999
Node: Sample Init File332524
Node: Bindable Readline Commands335641
Node: Commands For Moving336845
Node: Commands For History338694
Node: Commands For Text342989
Node: Commands For Killing346378
Node: Numeric Arguments348859
Node: Commands For Completion349998
Node: Keyboard Macros354189
Node: Miscellaneous Commands354876
Node: Readline vi Mode360829
Node: Programmable Completion361736
Node: Programmable Completion Builtins369197
Node: A Programmable Completion Example379083
Node: Using History Interactively384334
Node: Bash History Facilities385018
Node: Bash History Builtins388019
Node: History Interaction392311
Node: Event Designators395373
Node: Word Designators396592
Node: Modifiers398229
Node: Installing Bash399631
Node: Basic Installation400768
Node: Compilers and Options403459
Node: Compiling For Multiple Architectures404200
Node: Installation Names405863
Node: Specifying the System Type406681
Node: Sharing Defaults407397
Node: Operation Controls408070
Node: Optional Features409028
Node: Reporting Bugs419554
Node: Major Differences From The Bourne Shell420748
Node: GNU Free Documentation License437600
Node: Indexes462777
Node: Builtin Index463231
Node: Reserved Word Index470058
Node: Variable Index472506
Node: Function Index488184
Node: Concept Index501487
Node: Top897
Node: Introduction2817
Node: What is Bash?3033
Node: What is a shell?4147
Node: Definitions6685
Node: Basic Shell Features9636
Node: Shell Syntax10855
Node: Shell Operation11881
Node: Quoting13174
Node: Escape Character14474
Node: Single Quotes14959
Node: Double Quotes15307
Node: ANSI-C Quoting16585
Node: Locale Translation17844
Node: Comments18740
Node: Shell Commands19358
Node: Simple Commands20230
Node: Pipelines20861
Node: Lists23793
Node: Compound Commands25532
Node: Looping Constructs26544
Node: Conditional Constructs29039
Node: Command Grouping40094
Node: Coprocesses41573
Node: GNU Parallel43405
Node: Shell Functions47379
Node: Shell Parameters54355
Node: Positional Parameters58768
Node: Special Parameters59668
Node: Shell Expansions63005
Node: Brace Expansion65128
Node: Tilde Expansion67852
Node: Shell Parameter Expansion70200
Node: Command Substitution84488
Node: Arithmetic Expansion85843
Node: Process Substitution86775
Node: Word Splitting87895
Node: Filename Expansion89839
Node: Pattern Matching92213
Node: Quote Removal96199
Node: Redirections96494
Node: Executing Commands106052
Node: Simple Command Expansion106722
Node: Command Search and Execution108652
Node: Command Execution Environment111028
Node: Environment114012
Node: Exit Status115671
Node: Signals117341
Node: Shell Scripts119308
Node: Shell Builtin Commands121823
Node: Bourne Shell Builtins123861
Node: Bash Builtins144516
Node: Modifying Shell Behavior173425
Node: The Set Builtin173770
Node: The Shopt Builtin184183
Node: Special Builtins200592
Node: Shell Variables201571
Node: Bourne Shell Variables202008
Node: Bash Variables204112
Node: Bash Features233905
Node: Invoking Bash234804
Node: Bash Startup Files240790
Node: Interactive Shells245893
Node: What is an Interactive Shell?246303
Node: Is this Shell Interactive?246952
Node: Interactive Shell Behavior247767
Node: Bash Conditional Expressions251255
Node: Shell Arithmetic255621
Node: Aliases258438
Node: Arrays260986
Node: The Directory Stack266352
Node: Directory Stack Builtins267136
Node: Controlling the Prompt270104
Node: The Restricted Shell272866
Node: Bash POSIX Mode274691
Node: Job Control285042
Node: Job Control Basics285502
Node: Job Control Builtins290470
Node: Job Control Variables295197
Node: Command Line Editing296353
Node: Introduction and Notation298024
Node: Readline Interaction299647
Node: Readline Bare Essentials300838
Node: Readline Movement Commands302621
Node: Readline Killing Commands303581
Node: Readline Arguments305499
Node: Searching306543
Node: Readline Init File308729
Node: Readline Init File Syntax309876
Node: Conditional Init Constructs330247
Node: Sample Init File334443
Node: Bindable Readline Commands337560
Node: Commands For Moving338764
Node: Commands For History340613
Node: Commands For Text344908
Node: Commands For Killing348297
Node: Numeric Arguments350778
Node: Commands For Completion351917
Node: Keyboard Macros356108
Node: Miscellaneous Commands356795
Node: Readline vi Mode362748
Node: Programmable Completion363655
Node: Programmable Completion Builtins371116
Node: A Programmable Completion Example381002
Node: Using History Interactively386253
Node: Bash History Facilities386937
Node: Bash History Builtins389938
Node: History Interaction394230
Node: Event Designators397292
Node: Word Designators398511
Node: Modifiers400148
Node: Installing Bash401550
Node: Basic Installation402687
Node: Compilers and Options405378
Node: Compiling For Multiple Architectures406119
Node: Installation Names407782
Node: Specifying the System Type408600
Node: Sharing Defaults409316
Node: Operation Controls409989
Node: Optional Features410947
Node: Reporting Bugs421473
Node: Major Differences From The Bourne Shell422667
Node: GNU Free Documentation License439519
Node: Indexes464696
Node: Builtin Index465150
Node: Reserved Word Index471977
Node: Variable Index474425
Node: Function Index490103
Node: Concept Index503406

End Tag Table
+12 -12
View File
@@ -1,4 +1,4 @@
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/MacPorts 2017_0) (preloaded format=pdfetex 2017.7.5) 9 OCT 2017 15:38
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/MacPorts 2017_2) (preloaded format=pdfetex 2017.7.5) 2 JAN 2018 10:55
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
@@ -243,7 +243,7 @@ arallel -k traceroute[]
[43] [44]
[45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55]
Overfull \hbox (26.76846pt too wide) in paragraph at lines 4351--4351
Overfull \hbox (26.76846pt too wide) in paragraph at lines 4347--4347
[]@texttt mapfile [-d @textttsl de-lim@texttt ] [-n @textttsl count@texttt ] [
-O @textttsl ori-gin@texttt ] [-s @textttsl count@texttt ] [-t] [-u @textttsl f
d@texttt ][]
@@ -257,7 +257,7 @@ d@texttt ][]
.etc.
[56] [57]
Overfull \hbox (38.26584pt too wide) in paragraph at lines 4559--4559
Overfull \hbox (38.26584pt too wide) in paragraph at lines 4555--4555
[]@texttt readarray [-d @textttsl de-lim@texttt ] [-n @textttsl count@texttt ]
[-O @textttsl ori-gin@texttt ] [-s @textttsl count@texttt ] [-t] [-u @textttsl
fd@texttt ][]
@@ -272,7 +272,7 @@ Overfull \hbox (38.26584pt too wide) in paragraph at lines 4559--4559
[58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] Chapter 5
[71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] Chapter 6 [83]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 6313--6313
Overfull \hbox (49.43388pt too wide) in paragraph at lines 6310--6310
[]@texttt bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@t
exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
@@ -285,7 +285,7 @@ exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.etc.
Overfull \hbox (72.42863pt too wide) in paragraph at lines 6314--6314
Overfull \hbox (72.42863pt too wide) in paragraph at lines 6311--6311
[]@texttt bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@texttt
] [-O @textttsl shopt_option@texttt ] -c @textttsl string @texttt [@textttsl ar
-
@@ -299,7 +299,7 @@ Overfull \hbox (72.42863pt too wide) in paragraph at lines 6314--6314
.etc.
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6315--6315
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6312--6312
[]@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text
tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
@@ -318,7 +318,7 @@ texinfo.tex: doing @include of rluser.texi
(/usr/homes/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [105]
[106] [107] [108] [109] [110] [111] [112] [113] [114] [115]
Underfull \hbox (badness 7540) in paragraph at lines 802--808
Underfull \hbox (badness 7540) in paragraph at lines 805--811
[]@textrm In the above ex-am-ple, @textttsl C-u[] @textrm is bound to the func
-tion
@@ -331,7 +331,7 @@ Underfull \hbox (badness 7540) in paragraph at lines 802--808
.etc.
Underfull \hbox (badness 10000) in paragraph at lines 802--808
Underfull \hbox (badness 10000) in paragraph at lines 805--811
@texttt universal-argument[]@textrm , @textttsl M-DEL[] @textrm is bound to th
e func-tion
@@ -344,7 +344,7 @@ e func-tion
.etc.
[116] [117] [118]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 997--997
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1039--1039
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[]
@@ -362,7 +362,7 @@ gnored[]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130]
[131] [132] [133] [134] [135] [136]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2248--2248
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2290--2290
[] @texttt # Tilde expansion, with side effect of expanding tilde to full p
athname[]
@@ -389,7 +389,7 @@ texinfo.tex: doing @include of fdl.texi
Here is how much of TeX's memory you used:
4064 strings out of 497104
47069 string characters out of 6206767
136555 words of memory out of 5000000
136559 words of memory out of 5000000
4846 multiletter control sequences out of 15000+600000
34315 words of font info for 116 fonts, out of 8000000 for 9000
51 hyphenation exceptions out of 8191
@@ -411,7 +411,7 @@ e/fonts/type1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texlive/fon
ts/type1/public/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/typ
e1/public/cm-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/pub
lic/cm-super/sfrm1440.pfb>
Output written on bashref.pdf (182 pages, 743678 bytes).
Output written on bashref.pdf (182 pages, 745404 bytes).
PDF statistics:
2608 PDF objects out of 2984 (max. 8388607)
2381 compressed objects within 24 object streams
BIN
View File
Binary file not shown.
+1698 -1644
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -14,7 +14,7 @@ This is Edition @value{EDITION}, last updated @value{UPDATED},
of @cite{The GNU Bash Reference Manual},
for @code{Bash}, Version @value{VERSION}.
Copyright @copyright{} 1988--2017 Free Software Foundation, Inc.
Copyright @copyright{} 1988--2018 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
+2 -2
View File
@@ -32,7 +32,7 @@
@numsubsecentry{Shell Parameter Expansion}{3.5.3}{Shell Parameter Expansion}{24}
@numsubsecentry{Command Substitution}{3.5.4}{Command Substitution}{30}
@numsubsecentry{Arithmetic Expansion}{3.5.5}{Arithmetic Expansion}{30}
@numsubsecentry{Process Substitution}{3.5.6}{Process Substitution}{31}
@numsubsecentry{Process Substitution}{3.5.6}{Process Substitution}{30}
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{31}
@numsubsecentry{Filename Expansion}{3.5.8}{Filename Expansion}{31}
@numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{32}
@@ -42,7 +42,7 @@
@numsubsecentry{Redirecting Output}{3.6.2}{}{35}
@numsubsecentry{Appending Redirected Output}{3.6.3}{}{35}
@numsubsecentry{Redirecting Standard Output and Standard Error}{3.6.4}{}{35}
@numsubsecentry{Appending Standard Output and Standard Error}{3.6.5}{}{36}
@numsubsecentry{Appending Standard Output and Standard Error}{3.6.5}{}{35}
@numsubsecentry{Here Documents}{3.6.6}{}{36}
@numsubsecentry{Here Strings}{3.6.7}{}{36}
@numsubsecentry{Duplicating File Descriptors}{3.6.8}{}{36}
+250 -249
View File
@@ -1049,7 +1049,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
that of the last command executed in the function body. If
rreettuurrnn is executed by a trap handler, the last command used to
determine the status is the last command executed before the
trap handler. if rreettuurrnn is executed during a DDEEBBUUGG trap, the
trap handler. If rreettuurrnn is executed during a DDEEBBUUGG trap, the
last command used to determine the status is the last command
executed by the trap handler before rreettuurrnn was invoked. If
rreettuurrnn is used outside a function, but during execution of a
@@ -1262,275 +1262,276 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--oo option is used, those available with the --oo option to the sseett
builtin command. With no options, or with the --pp option, a list
of all settable options is displayed, with an indication of
whether or not each is set. The --pp option causes output to be
displayed in a form that may be reused as input. Other options
have the following meanings:
whether or not each is set; if _o_p_t_n_a_m_e_s are supplied, the output
is restricted to those options. The --pp option causes output to
be displayed in a form that may be reused as input. Other
options have the following meanings:
--ss Enable (set) each _o_p_t_n_a_m_e.
--uu Disable (unset) each _o_p_t_n_a_m_e.
--qq Suppresses normal output (quiet mode); the return status
--qq Suppresses normal output (quiet mode); the return status
indicates whether the _o_p_t_n_a_m_e is set or unset. If multi-
ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta-
tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other-
ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta-
tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other-
wise.
--oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
--oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
the --oo option to the sseett builtin.
If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, sshhoopptt
shows only those options which are set or unset, respectively.
Unless otherwise noted, the sshhoopptt options are disabled (unset)
If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, sshhoopptt
shows only those options which are set or unset, respectively.
Unless otherwise noted, the sshhoopptt options are disabled (unset)
by default.
The return status when listing options is zero if all _o_p_t_n_a_m_e_s
are enabled, non-zero otherwise. When setting or unsetting
options, the return status is zero unless an _o_p_t_n_a_m_e is not a
The return status when listing options is zero if all _o_p_t_n_a_m_e_s
are enabled, non-zero otherwise. When setting or unsetting
options, the return status is zero unless an _o_p_t_n_a_m_e is not a
valid shell option.
The list of sshhoopptt options is:
aauuttooccdd If set, a command name that is the name of a directory
is executed as if it were the argument to the ccdd com-
aauuttooccdd If set, a command name that is the name of a directory
is executed as if it were the argument to the ccdd com-
mand. This option is only used by interactive shells.
ccddaabbllee__vvaarrss
If set, an argument to the ccdd builtin command that is
not a directory is assumed to be the name of a variable
If set, an argument to the ccdd builtin command that is
not a directory is assumed to be the name of a variable
whose value is the directory to change to.
ccddssppeellll If set, minor errors in the spelling of a directory com-
ponent in a ccdd command will be corrected. The errors
ponent in a ccdd command will be corrected. The errors
checked for are transposed characters, a missing charac-
ter, and one character too many. If a correction is
found, the corrected filename is printed, and the com-
mand proceeds. This option is only used by interactive
ter, and one character too many. If a correction is
found, the corrected filename is printed, and the com-
mand proceeds. This option is only used by interactive
shells.
cchheecckkhhaasshh
If set, bbaasshh checks that a command found in the hash ta-
ble exists before trying to execute it. If a hashed
command no longer exists, a normal path search is per-
ble exists before trying to execute it. If a hashed
command no longer exists, a normal path search is per-
formed.
cchheecckkjjoobbss
If set, bbaasshh lists the status of any stopped and running
jobs before exiting an interactive shell. If any jobs
jobs before exiting an interactive shell. If any jobs
are running, this causes the exit to be deferred until a
second exit is attempted without an intervening command
(see JJOOBB CCOONNTTRROOLL above). The shell always postpones
second exit is attempted without an intervening command
(see JJOOBB CCOONNTTRROOLL above). The shell always postpones
exiting if any jobs are stopped.
cchheecckkwwiinnssiizzee
If set, bbaasshh checks the window size after each external
(non-builtin) command and, if necessary, updates the
If set, bbaasshh checks the window size after each external
(non-builtin) command and, if necessary, updates the
values of LLIINNEESS and CCOOLLUUMMNNSS.
ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple-
line command in the same history entry. This allows
easy re-editing of multi-line commands. This option is
enabled by default, but only has an effect if command
ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple-
line command in the same history entry. This allows
easy re-editing of multi-line commands. This option is
enabled by default, but only has an effect if command
history is enabled, as described above under HHIISSTTOORRYY.
ccoommppaatt3311
If set, bbaasshh changes its behavior to that of version 3.1
with respect to quoted arguments to the [[[[ conditional
with respect to quoted arguments to the [[[[ conditional
command's ==~~ operator and locale-specific string compar-
ison when using the [[[[ conditional command's << and >>
operators. Bash versions prior to bash-4.1 use ASCII
ison when using the [[[[ conditional command's << and >>
operators. Bash versions prior to bash-4.1 use ASCII
collation and _s_t_r_c_m_p(3); bash-4.1 and later use the cur-
rent locale's collation sequence and _s_t_r_c_o_l_l(3).
ccoommppaatt3322
If set, bbaasshh changes its behavior to that of version 3.2
with respect to locale-specific string comparison when
using the [[[[ conditional command's << and >> operators
(see previous item) and the effect of interrupting a
command list. Bash versions 3.2 and earlier continue
with the next command in the list after one terminates
with respect to locale-specific string comparison when
using the [[[[ conditional command's << and >> operators
(see previous item) and the effect of interrupting a
command list. Bash versions 3.2 and earlier continue
with the next command in the list after one terminates
due to an interrupt.
ccoommppaatt4400
If set, bbaasshh changes its behavior to that of version 4.0
with respect to locale-specific string comparison when
using the [[[[ conditional command's << and >> operators
(see description of ccoommppaatt3311) and the effect of inter-
rupting a command list. Bash versions 4.0 and later
interrupt the list as if the shell received the inter-
rupt; previous versions continue with the next command
with respect to locale-specific string comparison when
using the [[[[ conditional command's << and >> operators
(see description of ccoommppaatt3311) and the effect of inter-
rupting a command list. Bash versions 4.0 and later
interrupt the list as if the shell received the inter-
rupt; previous versions continue with the next command
in the list.
ccoommppaatt4411
If set, bbaasshh, when in _p_o_s_i_x mode, treats a single quote
in a double-quoted parameter expansion as a special
character. The single quotes must match (an even num-
ber) and the characters between the single quotes are
considered quoted. This is the behavior of posix mode
through version 4.1. The default bash behavior remains
If set, bbaasshh, when in _p_o_s_i_x mode, treats a single quote
in a double-quoted parameter expansion as a special
character. The single quotes must match (an even num-
ber) and the characters between the single quotes are
considered quoted. This is the behavior of posix mode
through version 4.1. The default bash behavior remains
as in previous versions.
ccoommppaatt4422
If set, bbaasshh does not process the replacement string in
the pattern substitution word expansion using quote
If set, bbaasshh does not process the replacement string in
the pattern substitution word expansion using quote
removal.
ccoommppaatt4433
If set, bbaasshh does not print a warning message if an
attempt is made to use a quoted compound array assign-
ment as an argument to ddeeccllaarree, makes word expansion
errors non-fatal errors that cause the current command
to fail (the default behavior is to make them fatal
If set, bbaasshh does not print a warning message if an
attempt is made to use a quoted compound array assign-
ment as an argument to ddeeccllaarree, makes word expansion
errors non-fatal errors that cause the current command
to fail (the default behavior is to make them fatal
errors that cause the shell to exit), and does not reset
the loop state when a shell function is executed (this
allows bbrreeaakk or ccoonnttiinnuuee in a shell function to affect
the loop state when a shell function is executed (this
allows bbrreeaakk or ccoonnttiinnuuee in a shell function to affect
loops in the caller's context).
ccoommpplleettee__ffuullllqquuoottee
If set, bbaasshh quotes all shell metacharacters in file-
names and directory names when performing completion.
If set, bbaasshh quotes all shell metacharacters in file-
names and directory names when performing completion.
If not set, bbaasshh removes metacharacters such as the dol-
lar sign from the set of characters that will be quoted
in completed filenames when these metacharacters appear
in shell variable references in words to be completed.
This means that dollar signs in variable names that
expand to directories will not be quoted; however, any
dollar signs appearing in filenames will not be quoted,
either. This is active only when bash is using back-
slashes to quote completed filenames. This variable is
set by default, which is the default bash behavior in
lar sign from the set of characters that will be quoted
in completed filenames when these metacharacters appear
in shell variable references in words to be completed.
This means that dollar signs in variable names that
expand to directories will not be quoted; however, any
dollar signs appearing in filenames will not be quoted,
either. This is active only when bash is using back-
slashes to quote completed filenames. This variable is
set by default, which is the default bash behavior in
versions through 4.2.
ddiirreexxppaanndd
If set, bbaasshh replaces directory names with the results
of word expansion when performing filename completion.
This changes the contents of the readline editing buf-
fer. If not set, bbaasshh attempts to preserve what the
If set, bbaasshh replaces directory names with the results
of word expansion when performing filename completion.
This changes the contents of the readline editing buf-
fer. If not set, bbaasshh attempts to preserve what the
user typed.
ddiirrssppeellll
If set, bbaasshh attempts spelling correction on directory
names during word completion if the directory name ini-
If set, bbaasshh attempts spelling correction on directory
names during word completion if the directory name ini-
tially supplied does not exist.
ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
the results of pathname expansion. The filenames ````..''''
and ````....'''' must always be matched explicitly, even if
ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
the results of pathname expansion. The filenames ````..''''
and ````....'''' must always be matched explicitly, even if
ddoottgglloobb is set.
eexxeeccffaaiill
If set, a non-interactive shell will not exit if it can-
not execute the file specified as an argument to the
eexxeecc builtin command. An interactive shell does not
not execute the file specified as an argument to the
eexxeecc builtin command. An interactive shell does not
exit if eexxeecc fails.
eexxppaanndd__aalliiaasseess
If set, aliases are expanded as described above under
If set, aliases are expanded as described above under
AALLIIAASSEESS. This option is enabled by default for interac-
tive shells.
eexxttddeebbuugg
If set at shell invocation, arrange to execute the
debugger profile before the shell starts, identical to
the ----ddeebbuuggggeerr option. If set after invocation, behav-
If set at shell invocation, arrange to execute the
debugger profile before the shell starts, identical to
the ----ddeebbuuggggeerr option. If set after invocation, behav-
ior intended for use by debuggers is enabled:
11.. The --FF option to the ddeeccllaarree builtin displays the
source file name and line number corresponding to
each function name supplied as an argument.
22.. If the command run by the DDEEBBUUGG trap returns a
non-zero value, the next command is skipped and
22.. If the command run by the DDEEBBUUGG trap returns a
non-zero value, the next command is skipped and
not executed.
33.. If the command run by the DDEEBBUUGG trap returns a
value of 2, and the shell is executing in a sub-
routine (a shell function or a shell script exe-
cuted by the .. or ssoouurrccee builtins), the shell
33.. If the command run by the DDEEBBUUGG trap returns a
value of 2, and the shell is executing in a sub-
routine (a shell function or a shell script exe-
cuted by the .. or ssoouurrccee builtins), the shell
simulates a call to rreettuurrnn.
44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
in their descriptions above.
55.. Function tracing is enabled: command substitu-
55.. Function tracing is enabled: command substitu-
tion, shell functions, and subshells invoked with
(( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps.
66.. Error tracing is enabled: command substitution,
shell functions, and subshells invoked with ((
66.. Error tracing is enabled: command substitution,
shell functions, and subshells invoked with ((
_c_o_m_m_a_n_d )) inherit the EERRRR trap.
eexxttgglloobb If set, the extended pattern matching features described
above under PPaatthhnnaammee EExxppaannssiioonn are enabled.
eexxttqquuoottee
If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
quotes. This option is enabled by default.
ffaaiillgglloobb
If set, patterns which fail to match filenames during
If set, patterns which fail to match filenames during
pathname expansion result in an expansion error.
ffoorrccee__ffiiggnnoorree
If set, the suffixes specified by the FFIIGGNNOORREE shell
variable cause words to be ignored when performing word
If set, the suffixes specified by the FFIIGGNNOORREE shell
variable cause words to be ignored when performing word
completion even if the ignored words are the only possi-
ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a
description of FFIIGGNNOORREE. This option is enabled by
description of FFIIGGNNOORREE. This option is enabled by
default.
gglloobbaasscciiiirraannggeess
If set, range expressions used in pattern matching
bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave
as if in the traditional C locale when performing com-
If set, range expressions used in pattern matching
bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave
as if in the traditional C locale when performing com-
parisons. That is, the current locale's collating
sequence is not taken into account, so bb will not col-
late between AA and BB, and upper-case and lower-case
sequence is not taken into account, so bb will not col-
late between AA and BB, and upper-case and lower-case
ASCII characters will collate together.
gglloobbssttaarr
If set, the pattern **** used in a pathname expansion con-
text will match all files and zero or more directories
and subdirectories. If the pattern is followed by a //,
text will match all files and zero or more directories
and subdirectories. If the pattern is followed by a //,
only directories and subdirectories match.
ggnnuu__eerrrrffmmtt
If set, shell error messages are written in the standard
GNU error message format.
hhiissttaappppeenndd
If set, the history list is appended to the file named
by the value of the HHIISSTTFFIILLEE variable when the shell
If set, the history list is appended to the file named
by the value of the HHIISSTTFFIILLEE variable when the shell
exits, rather than overwriting the file.
hhiissttrreeeeddiitt
If set, and rreeaaddlliinnee is being used, a user is given the
If set, and rreeaaddlliinnee is being used, a user is given the
opportunity to re-edit a failed history substitution.
hhiissttvveerriiffyy
If set, and rreeaaddlliinnee is being used, the results of his-
tory substitution are not immediately passed to the
shell parser. Instead, the resulting line is loaded
If set, and rreeaaddlliinnee is being used, the results of his-
tory substitution are not immediately passed to the
shell parser. Instead, the resulting line is loaded
into the rreeaaddlliinnee editing buffer, allowing further modi-
fication.
hhoossttccoommpplleettee
If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to
perform hostname completion when a word containing a @@
is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
perform hostname completion when a word containing a @@
is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
above). This is enabled by default.
hhuuppoonneexxiitt
If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter-
active login shell exits.
iinnhheerriitt__eerrrreexxiitt
If set, command substitution inherits the value of the
eerrrreexxiitt option, instead of unsetting it in the subshell
environment. This option is enabled when _p_o_s_i_x _m_o_d_e is
If set, command substitution inherits the value of the
eerrrreexxiitt option, instead of unsetting it in the subshell
environment. This option is enabled when _p_o_s_i_x _m_o_d_e is
enabled.
iinntteerraaccttiivvee__ccoommmmeennttss
If set, allow a word beginning with ## to cause that word
and all remaining characters on that line to be ignored
in an interactive shell (see CCOOMMMMEENNTTSS above). This
and all remaining characters on that line to be ignored
in an interactive shell (see CCOOMMMMEENNTTSS above). This
option is enabled by default.
llaassttppiippee
If set, and job control is not active, the shell runs
If set, and job control is not active, the shell runs
the last command of a pipeline not executed in the back-
ground in the current shell environment.
lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
commands are saved to the history with embedded newlines
rather than using semicolon separators where possible.
llooccaallvvaarr__iinnhheerriitt
If set, local variables inherit the value and attributes
of a variable of the same name that exists at a previous
scope before any new value is assigned. The nameref
scope before any new value is assigned. The nameref
attribute is not inherited.
llooggiinn__sshheellll
The shell sets this option if it is started as a login
shell (see IINNVVOOCCAATTIIOONN above). The value may not be
The shell sets this option if it is started as a login
shell (see IINNVVOOCCAATTIIOONN above). The value may not be
changed.
mmaaiillwwaarrnn
If set, and a file that bbaasshh is checking for mail has
been accessed since the last time it was checked, the
message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
If set, and a file that bbaasshh is checking for mail has
been accessed since the last time it was checked, the
message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
played.
nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn
If set, and rreeaaddlliinnee is being used, bbaasshh will not
If set, and rreeaaddlliinnee is being used, bbaasshh will not
attempt to search the PPAATTHH for possible completions when
completion is attempted on an empty line.
nnooccaasseegglloobb
If set, bbaasshh matches filenames in a case-insensitive
If set, bbaasshh matches filenames in a case-insensitive
fashion when performing pathname expansion (see PPaatthhnnaammee
EExxppaannssiioonn above).
nnooccaasseemmaattcchh
If set, bbaasshh matches patterns in a case-insensitive
If set, bbaasshh matches patterns in a case-insensitive
fashion when performing matching while executing ccaassee or
[[[[ conditional commands, when performing pattern substi-
tution word expansions, or when filtering possible com-
tution word expansions, or when filtering possible com-
pletions as part of programmable completion.
nnuullllgglloobb
If set, bbaasshh allows patterns which match no files (see
PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
If set, bbaasshh allows patterns which match no files (see
PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
rather than themselves.
pprrooggccoommpp
If set, the programmable completion facilities (see PPrroo--
@@ -1538,50 +1539,50 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
enabled by default.
pprroommppttvvaarrss
If set, prompt strings undergo parameter expansion, com-
mand substitution, arithmetic expansion, and quote
removal after being expanded as described in PPRROOMMPPTTIINNGG
mand substitution, arithmetic expansion, and quote
removal after being expanded as described in PPRROOMMPPTTIINNGG
above. This option is enabled by default.
rreessttrriicctteedd__sshheellll
The shell sets this option if it is started in
The shell sets this option if it is started in
restricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value
may not be changed. This is not reset when the startup
files are executed, allowing the startup files to dis-
may not be changed. This is not reset when the startup
files are executed, allowing the startup files to dis-
cover whether or not a shell is restricted.
sshhiifftt__vveerrbboossee
If set, the sshhiifftt builtin prints an error message when
If set, the sshhiifftt builtin prints an error message when
the shift count exceeds the number of positional parame-
ters.
ssoouurrcceeppaatthh
If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to
find the directory containing the file supplied as an
find the directory containing the file supplied as an
argument. This option is enabled by default.
xxppgg__eecchhoo
If set, the eecchhoo builtin expands backslash-escape
If set, the eecchhoo builtin expands backslash-escape
sequences by default.
ssuussppeenndd [--ff]
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
signal. A login shell cannot be suspended; the --ff option can be
used to override this and force the suspension. The return sta-
tus is 0 unless the shell is a login shell and --ff is not sup-
tus is 0 unless the shell is a login shell and --ff is not sup-
plied, or if job control is not enabled.
tteesstt _e_x_p_r
[[ _e_x_p_r ]]
Return a status of 0 (true) or 1 (false) depending on the evalu-
ation of the conditional expression _e_x_p_r. Each operator and op-
erand must be a separate argument. Expressions are composed of
the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS.
tteesstt does not accept any options, nor does it accept and ignore
erand must be a separate argument. Expressions are composed of
the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS.
tteesstt does not accept any options, nor does it accept and ignore
an argument of ---- as signifying the end of options.
Expressions may be combined using the following operators,
Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation
depends on the number of arguments; see below. Operator prece-
depends on the number of arguments; see below. Operator prece-
dence is used when there are five or more arguments.
!! _e_x_p_r True if _e_x_p_r is false.
(( _e_x_p_r ))
Returns the value of _e_x_p_r. This may be used to override
Returns the value of _e_x_p_r. This may be used to override
the normal precedence of operators.
_e_x_p_r_1 -aa _e_x_p_r_2
True if both _e_x_p_r_1 and _e_x_p_r_2 are true.
@@ -1598,120 +1599,120 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
null.
2 arguments
If the first argument is !!, the expression is true if and
only if the second argument is null. If the first argu-
ment is one of the unary conditional operators listed
above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
only if the second argument is null. If the first argu-
ment is one of the unary conditional operators listed
above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
true if the unary test is true. If the first argument is
not a valid unary conditional operator, the expression is
false.
3 arguments
The following conditions are applied in the order listed.
If the second argument is one of the binary conditional
If the second argument is one of the binary conditional
operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the
result of the expression is the result of the binary test
using the first and third arguments as operands. The --aa
and --oo operators are considered binary operators when
there are three arguments. If the first argument is !!,
the value is the negation of the two-argument test using
using the first and third arguments as operands. The --aa
and --oo operators are considered binary operators when
there are three arguments. If the first argument is !!,
the value is the negation of the two-argument test using
the second and third arguments. If the first argument is
exactly (( and the third argument is exactly )), the result
is the one-argument test of the second argument. Other-
is the one-argument test of the second argument. Other-
wise, the expression is false.
4 arguments
If the first argument is !!, the result is the negation of
the three-argument expression composed of the remaining
the three-argument expression composed of the remaining
arguments. Otherwise, the expression is parsed and eval-
uated according to precedence using the rules listed
uated according to precedence using the rules listed
above.
5 or more arguments
The expression is parsed and evaluated according to
The expression is parsed and evaluated according to
precedence using the rules listed above.
When used with tteesstt or [[, the << and >> operators sort lexico-
When used with tteesstt or [[, the << and >> operators sort lexico-
graphically using ASCII ordering.
ttiimmeess Print the accumulated user and system times for the shell and
ttiimmeess Print the accumulated user and system times for the shell and
for processes run from the shell. The return status is 0.
ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...]
The command _a_r_g is to be read and executed when the shell
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original disposition (the value it had upon entrance to the
shell). If _a_r_g is the null string the signal specified by each
_s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
If _a_r_g is not present and --pp has been supplied, then the trap
commands associated with each _s_i_g_s_p_e_c are displayed. If no
arguments are supplied or if only --pp is given, ttrraapp prints the
list of commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding numbers. Each _s_i_g_s_p_e_c is either a signal name
defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
The command _a_r_g is to be read and executed when the shell
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original disposition (the value it had upon entrance to the
shell). If _a_r_g is the null string the signal specified by each
_s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
If _a_r_g is not present and --pp has been supplied, then the trap
commands associated with each _s_i_g_s_p_e_c are displayed. If no
arguments are supplied or if only --pp is given, ttrraapp prints the
list of commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding numbers. Each _s_i_g_s_p_e_c is either a signal name
defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
case insensitive and the SSIIGG prefix is optional.
If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit
from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe-
cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command,
_s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the
first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR
above). Refer to the description of the eexxttddeebbuugg option to the
If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit
from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe-
cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command,
_s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the
first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR
above). Refer to the description of the eexxttddeebbuugg option to the
sshhoopptt builtin for details of its effect on the DDEEBBUUGG trap. If a
_s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a shell
function or a script executed with the .. or ssoouurrccee builtins fin-
ishes executing.
If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a
If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a
pipeline (which may consist of a single simple command), a list,
or a compound command returns a non-zero exit status, subject to
the following conditions. The EERRRR trap is not executed if the
the following conditions. The EERRRR trap is not executed if the
failed command is part of the command list immediately following
a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement,
a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement,
part of a command executed in a &&&& or |||| list except the command
following the final &&&& or ||||, any command in a pipeline but the
last, or if the command's return value is being inverted using
!!. These are the same conditions obeyed by the eerrrreexxiitt (--ee)
following the final &&&& or ||||, any command in a pipeline but the
last, or if the command's return value is being inverted using
!!. These are the same conditions obeyed by the eerrrreexxiitt (--ee)
option.
Signals ignored upon entry to the shell cannot be trapped or
reset. Trapped signals that are not being ignored are reset to
Signals ignored upon entry to the shell cannot be trapped or
reset. Trapped signals that are not being ignored are reset to
their original values in a subshell or subshell environment when
one is created. The return status is false if any _s_i_g_s_p_e_c is
one is created. The return status is false if any _s_i_g_s_p_e_c is
invalid; otherwise ttrraapp returns true.
ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...]
With no options, indicate how each _n_a_m_e would be interpreted if
With no options, indicate how each _n_a_m_e would be interpreted if
used as a command name. If the --tt option is used, ttyyppee prints a
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
builtin, or disk file, respectively. If the _n_a_m_e is not found,
then nothing is printed, and an exit status of false is
returned. If the --pp option is used, ttyyppee either returns the
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
builtin, or disk file, respectively. If the _n_a_m_e is not found,
then nothing is printed, and an exit status of false is
returned. If the --pp option is used, ttyyppee either returns the
name of the disk file that would be executed if _n_a_m_e were speci-
fied as a command name, or nothing if ``type -t name'' would not
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
even if ``type -t name'' would not return _f_i_l_e. If a command is
hashed, --pp and --PP print the hashed value, which is not necessar-
ily the file that appears first in PPAATTHH. If the --aa option is
used, ttyyppee prints all of the places that contain an executable
ily the file that appears first in PPAATTHH. If the --aa option is
used, ttyyppee prints all of the places that contain an executable
named _n_a_m_e. This includes aliases and functions, if and only if
the --pp option is not also used. The table of hashed commands is
not consulted when using --aa. The --ff option suppresses shell
not consulted when using --aa. The --ff option suppresses shell
function lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true
if all of the arguments are found, false if any are not found.
uulliimmiitt [--HHSSaabbccddeeffiikkllmmnnppqqrrssttuuvvxxPPTT [_l_i_m_i_t]]
Provides control over the resources available to the shell and
to processes started by it, on systems that allow such control.
Provides control over the resources available to the shell and
to processes started by it, on systems that allow such control.
The --HH and --SS options specify that the hard or soft limit is set
for the given resource. A hard limit cannot be increased by a
non-root user once it is set; a soft limit may be increased up
to the value of the hard limit. If neither --HH nor --SS is speci-
for the given resource. A hard limit cannot be increased by a
non-root user once it is set; a soft limit may be increased up
to the value of the hard limit. If neither --HH nor --SS is speci-
fied, both the soft and hard limits are set. The value of _l_i_m_i_t
can be a number in the unit specified for the resource or one of
the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the
current hard limit, the current soft limit, and no limit,
respectively. If _l_i_m_i_t is omitted, the current value of the
soft limit of the resource is printed, unless the --HH option is
current hard limit, the current soft limit, and no limit,
respectively. If _l_i_m_i_t is omitted, the current value of the
soft limit of the resource is printed, unless the --HH option is
given. When more than one resource is specified, the limit name
and unit are printed before the value. Other options are inter-
preted as follows:
@@ -1720,12 +1721,12 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--cc The maximum size of core files created
--dd The maximum size of a process's data segment
--ee The maximum scheduling priority ("nice")
--ff The maximum size of files written by the shell and its
--ff The maximum size of files written by the shell and its
children
--ii The maximum number of pending signals
--kk The maximum number of kqueues that may be allocated
--ll The maximum size that may be locked into memory
--mm The maximum resident set size (many systems do not honor
--mm The maximum resident set size (many systems do not honor
this limit)
--nn The maximum number of open file descriptors (most systems
do not allow this value to be set)
@@ -1734,53 +1735,53 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--rr The maximum real-time scheduling priority
--ss The maximum stack size
--tt The maximum amount of cpu time in seconds
--uu The maximum number of processes available to a single
--uu The maximum number of processes available to a single
user
--vv The maximum amount of virtual memory available to the
--vv The maximum amount of virtual memory available to the
shell and, on some systems, to its children
--xx The maximum number of file locks
--PP The maximum number of pseudoterminals
--TT The maximum number of threads
If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the
new value of the specified resource. If no option is given,
then --ff is assumed. Values are in 1024-byte increments, except
for --tt, which is in seconds; --pp, which is in units of 512-byte
blocks; --PP, --TT, --bb, --kk, --nn, and --uu, which are unscaled values;
If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the
new value of the specified resource. If no option is given,
then --ff is assumed. Values are in 1024-byte increments, except
for --tt, which is in seconds; --pp, which is in units of 512-byte
blocks; --PP, --TT, --bb, --kk, --nn, and --uu, which are unscaled values;
and, when in Posix mode, --cc and --ff, which are in 512-byte incre-
ments. The return status is 0 unless an invalid option or argu-
ment is supplied, or an error occurs while setting a new limit.
uummaasskk [--pp] [--SS] [_m_o_d_e]
The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with
a digit, it is interpreted as an octal number; otherwise it is
interpreted as a symbolic mode mask similar to that accepted by
_c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
printed. The --SS option causes the mask to be printed in sym-
bolic form; the default output is an octal number. If the --pp
a digit, it is interpreted as an octal number; otherwise it is
interpreted as a symbolic mode mask similar to that accepted by
_c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
printed. The --SS option causes the mask to be printed in sym-
bolic form; the default output is an octal number. If the --pp
option is supplied, and _m_o_d_e is omitted, the output is in a form
that may be reused as input. The return status is 0 if the mode
was successfully changed or if no _m_o_d_e argument was supplied,
was successfully changed or if no _m_o_d_e argument was supplied,
and false otherwise.
uunnaalliiaass [-aa] [_n_a_m_e ...]
Remove each _n_a_m_e from the list of defined aliases. If --aa is
supplied, all alias definitions are removed. The return value
Remove each _n_a_m_e from the list of defined aliases. If --aa is
supplied, all alias definitions are removed. The return value
is true unless a supplied _n_a_m_e is not a defined alias.
uunnsseett [-ffvv] [-nn] [_n_a_m_e ...]
For each _n_a_m_e, remove the corresponding variable or function.
For each _n_a_m_e, remove the corresponding variable or function.
If the --vv option is given, each _n_a_m_e refers to a shell variable,
and that variable is removed. Read-only variables may not be
unset. If --ff is specified, each _n_a_m_e refers to a shell func-
tion, and the function definition is removed. If the --nn option
is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute,
_n_a_m_e will be unset rather than the variable it references. --nn
has no effect if the --ff option is supplied. If no options are
supplied, each _n_a_m_e refers to a variable; if there is no vari-
able by that name, any function with that name is unset. Each
unset variable or function is removed from the environment
passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN--
and that variable is removed. Read-only variables may not be
unset. If --ff is specified, each _n_a_m_e refers to a shell func-
tion, and the function definition is removed. If the --nn option
is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute,
_n_a_m_e will be unset rather than the variable it references. --nn
has no effect if the --ff option is supplied. If no options are
supplied, each _n_a_m_e refers to a variable; if there is no vari-
able by that name, any function with that name is unset. Each
unset variable or function is removed from the environment
passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN--
DDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are
unset, they lose their special properties, even if they are sub-
sequently reset. The exit status is true unless a _n_a_m_e is read-
@@ -1788,16 +1789,16 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
wwaaiitt [--ffnn] [_i_d _._._.]
Wait for each specified child process and return its termination
status. Each _i_d may be a process ID or a job specification; if
a job spec is given, all processes in that job's pipeline are
status. Each _i_d may be a process ID or a job specification; if
a job spec is given, all processes in that job's pipeline are
waited for. If _i_d is not given, all currently active child pro-
cesses are waited for, and the return status is zero. If the --nn
option is supplied, wwaaiitt waits for any job to terminate and
returns its exit status. If the --ff option is supplied, and job
option is supplied, wwaaiitt waits for any job to terminate and
returns its exit status. If the --ff option is supplied, and job
control is enabled, wwaaiitt forces _i_d to terminate before returning
its status, instead of returning when it changes status. If _i_d
specifies a non-existent process or job, the return status is
127. Otherwise, the return status is the exit status of the
its status, instead of returning when it changes status. If _i_d
specifies a non-existent process or job, the return status is
127. Otherwise, the return status is the exit status of the
last process or job waited for.
SSEEEE AALLSSOO
+417 -414
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.3
%%CreationDate: Mon Oct 9 15:38:31 2017
%%CreationDate: Tue Jan 2 10:55:05 2018
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.22 3
+4 -4
View File
@@ -1,11 +1,11 @@
@ignore
Copyright (C) 1988-2017 Free Software Foundation, Inc.
Copyright (C) 1988-2018 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Tue Dec 19 09:57:23 EST 2017
@set LASTCHANGE Thu Jan 4 15:30:21 EST 2018
@set EDITION 4.4
@set VERSION 4.4
@set UPDATED 19 December 2017
@set UPDATED-MONTH December 2017
@set UPDATED 4 January 2018
@set UPDATED-MONTH January 2018
+2 -2
View File
@@ -1,6 +1,6 @@
/* execute_cmd.c -- Execute a COMMAND structure. */
/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
/* Copyright (C) 1987-2018 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -5778,7 +5778,7 @@ execute_intern_function (name, funcdef)
}
#if defined (DEBUGGER)
bind_function_def (name->word, funcdef);
bind_function_def (name->word, funcdef, 1);
#endif
bind_function (name->word, funcdef->command);
+2 -5
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -863,14 +863,11 @@ fprintf(stderr, "extmatch: flags = %d\n", flags);
break;
}
#if 0 /* NOTYET */
/* Report from Eric Cook <llua@gmx.com> 12/29/2017 */
/* If nothing matched, but the string starts with a period and we
need to match periods explicitly, don't return this as a match,
even for negation. */
even for negation. Might need to do this only if srest == s. */
if (m1 == 0 && *s == '.' && (flags & FNM_PERIOD))
return (FNM_NOMATCH);
#endif
/* if srest > s, we are not at start of string */
xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
Binary file not shown.
+3 -3
View File
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on December, 14 2017 by texi2html 1.64 -->
<!-- Created on January, 2 2018 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -2136,7 +2136,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
This document was generated by <I>Chet Ramey</I> on <I>December, 14 2017</I>
This document was generated by <I>Chet Ramey</I> on <I>January, 2 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2298,7 +2298,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Chet Ramey</I> on <I>December, 14 2017</I>
by <I>Chet Ramey</I> on <I>January, 2 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
+26 -26
View File
@@ -1,9 +1,9 @@
This is history.info, produced by makeinfo version 6.4 from
This is history.info, produced by makeinfo version 6.5 from
history.texi.
This document describes the GNU History library (version 7.0, 7 December
2017), a programming tool that provides a consistent user interface for
recalling lines of previously typed input.
This document describes the GNU History library (version 7.0, 28
December 2017), a programming tool that provides a consistent user
interface for recalling lines of previously typed input.
Copyright (C) 1988-2016 Free Software Foundation, Inc.
@@ -1362,27 +1362,27 @@ Appendix C Function and Variable Index

Tag Table:
Node: Top848
Node: Using History Interactively1493
Node: History Interaction2001
Node: Event Designators3425
Node: Word Designators4564
Node: Modifiers6201
Node: Programming with GNU History7424
Node: Introduction to History8168
Node: History Storage9858
Node: History Functions10993
Node: Initializing History and State Management11982
Node: History List Management12794
Node: Information About the History List15088
Node: Moving Around the History List16702
Node: Searching the History List17795
Node: Managing the History File19720
Node: History Expansion21540
Node: History Variables23450
Node: History Programming Example26520
Node: GNU Free Documentation License29197
Node: Concept Index54369
Node: Function and Variable Index55074
Node: Top849
Node: Using History Interactively1494
Node: History Interaction2002
Node: Event Designators3426
Node: Word Designators4565
Node: Modifiers6202
Node: Programming with GNU History7425
Node: Introduction to History8169
Node: History Storage9859
Node: History Functions10994
Node: Initializing History and State Management11983
Node: History List Management12795
Node: Information About the History List15089
Node: Moving Around the History List16703
Node: Searching the History List17796
Node: Managing the History File19721
Node: History Expansion21541
Node: History Variables23451
Node: History Programming Example26521
Node: GNU Free Documentation License29198
Node: Concept Index54370
Node: Function and Variable Index55075

End Tag Table
+6 -5
View File
@@ -1,9 +1,10 @@
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/MacPorts 2017_0) (preloaded format=etex 2017.7.5) 14 DEC 2017 10:40
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/MacPorts 2017_2) (preloaded format=etex 2017.7.5) 2 JAN 2018 10:55
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\input ././history.texi
**\catcode126=12 \def\normaltilde{~}\catcode126=13 \let~\normaltilde \input ./
./history.texi
(././history.texi (./texinfo.tex Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -231,10 +232,10 @@ texinfo.tex: doing @include of fdl.texi
Here is how much of TeX's memory you used:
3182 strings out of 497114
31680 string characters out of 6207173
79566 words of memory out of 5000000
79568 words of memory out of 5000000
4354 multiletter control sequences out of 15000+600000
32778 words of font info for 114 fonts, out of 8000000 for 9000
51 hyphenation exceptions out of 8191
19i,6n,17p,294b,772s stack positions out of 5000i,500n,10000p,200000b,80000s
19i,6n,17p,362b,772s stack positions out of 5000i,500n,10000p,200000b,80000s
Output written on history.dvi (24 pages, 69552 bytes).
Output written on history.dvi (24 pages, 69556 bytes).
+5 -5
View File
@@ -1,7 +1,7 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.997 Copyright 2017 Radical Eye Software
%%Title: history.dvi
%%CreationDate: Thu Dec 14 15:40:47 2017
%%CreationDate: Tue Jan 2 15:55:40 2018
%%Pages: 24
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
@@ -12,7 +12,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o history.ps history.dvi
%DVIPSParameters: dpi=300
%DVIPSSource: TeX output 2017.12.14:1040
%DVIPSSource: TeX output 2018.01.02:1055
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -5225,9 +5225,9 @@ b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6
b(oundation)p 75 2570 1800 9 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 75 2207 a Fq(This)16 b(do)q(cumen)o(t)i(describ)q
(es)f(the)g(GNU)g(History)f(library)f(\(v)o(ersion)h(7.0,)g(7)h(Decem)o
(b)q(er)g(2017\),)e(a)i(pro-)75 2262 y(gramming)10 b(to)q(ol)g(that)g
TeXDict begin 2 1 bop 75 2207 a Fq(This)15 b(do)q(cumen)o(t)g(describ)q
(es)h(the)g(GNU)f(History)f(library)g(\(v)o(ersion)g(7.0,)g(28)g(Decem)
o(b)q(er)i(2017\),)d(a)i(pro-)75 2262 y(gramming)10 b(to)q(ol)g(that)g
(pro)o(vides)h(a)g(consisten)o(t)f(user)i(in)o(terface)e(for)h
(recalling)f(lines)g(of)h(previously)g(t)o(yp)q(ed)75
2316 y(input.)75 2384 y(Cop)o(yrigh)o(t)301 2383 y(c)289
+7 -1
View File
@@ -1,7 +1,7 @@
@ignore
This file documents the user interface to the GNU History library.
Copyright (C) 1988--2016 Free Software Foundation, Inc.
Copyright (C) 1988--2018 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
@@ -176,6 +176,7 @@ and typing @samp{r} re-executes the last command (@pxref{Aliases}).
history [@var{n}]
history -c
history -d @var{offset}
history -d @var{start}-@var{end}
history [-anrw] [@var{filename}]
history -ps @var{arg}
@end example
@@ -205,6 +206,11 @@ than the last history position, so negative indices count back from the
end of the history, and an index of @samp{-1} refers to the current
@code{history -d} command.
@item -d @var{start}-@var{end}
Delete the history entries between positions @var{start} and @var{end},
inclusive. Positive and negative values for @var{start} and @var{end}
are interpreted as described above.
@item -a
Append the new history lines to the history file.
These are history lines entered since the beginning of the current
Binary file not shown.
+30 -6
View File
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on December, 14 2017 by texi2html 1.64 -->
<!-- Created on January, 2 2018 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -1149,8 +1149,9 @@ of tests. There are four parser directives used.
<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.
Readline. The text of the test, after any comparison operator,
extends to the end of the line;
unless otherwise noted, no characters are required to isolate it.
<P>
<DL COMPACT>
@@ -1184,7 +1185,14 @@ The version number supplied on the right side of the operator consists
of a major version number, an optional decimal point, and an optional
minor version (e.g., <SAMP>`7.1'</SAMP>). If the minor version is omitted, it
is assumed to be <SAMP>`0'</SAMP>.
<P>
The operator may be separated from the string <CODE>version</CODE> and
from the version number argument by whitespace.
The following example sets a variable if the Readline version being used
is 7.0 or newer:
<TABLE><tr><td>&nbsp;</td><td class=example><pre>$if version &#62;= 7.0
set show-mode-in-prompt on
$endif
</pre></td></tr></table><P>
<DT><CODE>application</CODE>
<DD>The <VAR>application</VAR> construct is used to include
@@ -1198,6 +1206,22 @@ key sequence that quotes the current or previous word in Bash:
# Quote the current or previous word
"\C-xq": "\eb\"\ef\""
$endif
</pre></td></tr></table><P>
<DT><CODE>variable</CODE>
<DD>The <VAR>variable</VAR> construct provides simple equality tests for Readline
variables and values.
The permitted comparison operators are <SAMP>`='</SAMP>, <SAMP>`=='</SAMP>, and <SAMP>`!='</SAMP>.
The variable name must be separated from the comparison operator by
whitespace; the operator may be separated from the value on the right hand
side by whitespace.
Both string and boolean variables may be tested. Boolean variables must be
tested against the values <VAR>on</VAR> and <VAR>off</VAR>.
The following example is equivalent to the <CODE>mode=emacs</CODE> test described
above:
<TABLE><tr><td>&nbsp;</td><td class=example><pre>$if editing-mode == emacs
set show-mode-in-prompt on
$endif
</pre></td></tr></table></DL>
<P>
@@ -7443,7 +7467,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
This document was generated by <I>Chet Ramey</I> on <I>December, 14 2017</I>
This document was generated by <I>Chet Ramey</I> on <I>January, 2 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -7605,7 +7629,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Chet Ramey</I> on <I>December, 14 2017</I>
by <I>Chet Ramey</I> on <I>January, 2 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
+79 -58
View File
@@ -1,6 +1,6 @@
This is readline.info, produced by makeinfo version 6.4 from rlman.texi.
This is readline.info, produced by makeinfo version 6.5 from rlman.texi.
This manual describes the GNU Readline Library (version 7.0, 7 December
This manual describes the GNU Readline Library (version 7.0, 28 December
2017), a library which aids in the consistency of user interface across
discrete programs which provide a command line interface.
@@ -778,8 +778,9 @@ four parser directives used.
'$if'
The '$if' 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.
The text of the test, after any comparison operator, extends to the
end of the line; unless otherwise noted, no characters are required
to isolate it.
'mode'
The 'mode=' form of the '$if' directive is used to test
@@ -804,7 +805,13 @@ four parser directives used.
version number supplied on the right side of the operator
consists of a major version number, an optional decimal point,
and an optional minor version (e.g., '7.1'). If the minor
version is omitted, it is assumed to be '0'.
version is omitted, it is assumed to be '0'. The operator may
be separated from the string 'version' and from the version
number argument by whitespace. The following example sets a
variable if the Readline version being used is 7.0 or newer:
$if version >= 7.0
set show-mode-in-prompt on
$endif
'application'
The APPLICATION construct is used to include
@@ -819,6 +826,20 @@ four parser directives used.
"\C-xq": "\eb\"\ef\""
$endif
'variable'
The VARIABLE construct provides simple equality tests for
Readline variables and values. The permitted comparison
operators are '=', '==', and '!='. The variable name must be
separated from the comparison operator by whitespace; the
operator may be separated from the value on the right hand
side by whitespace. Both string and boolean variables may be
tested. Boolean variables must be tested against the values
ON and OFF. The following example is equivalent to the
'mode=emacs' test described above:
$if editing-mode == emacs
set show-mode-in-prompt on
$endif
'$endif'
This command, as seen in the previous example, terminates an '$if'
command.
@@ -5015,58 +5036,58 @@ Function and Variable Index

Tag Table:
Node: Top864
Node: Command Line Editing1589
Node: Introduction and Notation2241
Node: Readline Interaction3865
Node: Readline Bare Essentials5057
Node: Readline Movement Commands6841
Node: Readline Killing Commands7802
Node: Readline Arguments9721
Node: Searching10766
Node: Readline Init File12919
Node: Readline Init File Syntax14073
Node: Conditional Init Constructs34164
Node: Sample Init File37252
Node: Bindable Readline Commands40370
Node: Commands For Moving41425
Node: Commands For History42992
Node: Commands For Text47257
Node: Commands For Killing50700
Node: Numeric Arguments52867
Node: Commands For Completion54007
Node: Keyboard Macros55976
Node: Miscellaneous Commands56664
Node: Readline vi Mode60586
Node: Programming with GNU Readline62403
Node: Basic Behavior63389
Node: Custom Functions67072
Node: Readline Typedefs68555
Node: Function Writing70189
Node: Readline Variables71503
Node: Readline Convenience Functions84175
Node: Function Naming85247
Node: Keymaps86509
Node: Binding Keys88664
Node: Associating Function Names and Bindings93212
Node: Allowing Undoing95497
Node: Redisplay98047
Node: Modifying Text102071
Node: Character Input103318
Node: Terminal Management105216
Node: Utility Functions107039
Node: Miscellaneous Functions110367
Node: Alternate Interface112956
Node: A Readline Example115698
Node: Alternate Interface Example117637
Node: Readline Signal Handling121169
Node: Custom Completers130218
Node: How Completing Works130938
Node: Completion Functions134245
Node: Completion Variables137819
Node: A Short Completion Example153463
Node: GNU Free Documentation License166242
Node: Concept Index191416
Node: Function and Variable Index192937
Node: Top865
Node: Command Line Editing1590
Node: Introduction and Notation2242
Node: Readline Interaction3866
Node: Readline Bare Essentials5058
Node: Readline Movement Commands6842
Node: Readline Killing Commands7803
Node: Readline Arguments9722
Node: Searching10767
Node: Readline Init File12920
Node: Readline Init File Syntax14074
Node: Conditional Init Constructs34165
Node: Sample Init File38362
Node: Bindable Readline Commands41480
Node: Commands For Moving42535
Node: Commands For History44102
Node: Commands For Text48367
Node: Commands For Killing51810
Node: Numeric Arguments53977
Node: Commands For Completion55117
Node: Keyboard Macros57086
Node: Miscellaneous Commands57774
Node: Readline vi Mode61696
Node: Programming with GNU Readline63513
Node: Basic Behavior64499
Node: Custom Functions68182
Node: Readline Typedefs69665
Node: Function Writing71299
Node: Readline Variables72613
Node: Readline Convenience Functions85285
Node: Function Naming86357
Node: Keymaps87619
Node: Binding Keys89774
Node: Associating Function Names and Bindings94322
Node: Allowing Undoing96607
Node: Redisplay99157
Node: Modifying Text103181
Node: Character Input104428
Node: Terminal Management106326
Node: Utility Functions108149
Node: Miscellaneous Functions111477
Node: Alternate Interface114066
Node: A Readline Example116808
Node: Alternate Interface Example118747
Node: Readline Signal Handling122279
Node: Custom Completers131328
Node: How Completing Works132048
Node: Completion Functions135355
Node: Completion Variables138929
Node: A Short Completion Example154573
Node: GNU Free Documentation License167352
Node: Concept Index192526
Node: Function and Variable Index194047

End Tag Table
+452 -415
View File
@@ -1,7 +1,7 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.997 Copyright 2017 Radical Eye Software
%%Title: readline.dvi
%%CreationDate: Thu Dec 14 15:40:47 2017
%%CreationDate: Tue Jan 2 15:55:39 2018
%%Pages: 80
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
@@ -12,7 +12,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o readline.ps readline.dvi
%DVIPSParameters: dpi=300
%DVIPSSource: TeX output 2017.12.14:1040
%DVIPSSource: TeX output 2018.01.02:1055
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -2902,6 +2902,7 @@ FontDirectory/CMSL10 known{/CMSL10 findfont dup/UniqueID known{dup
end readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 12 /fi put
dup 13 /fl put
dup 42 /asterisk put
@@ -3144,356 +3145,367 @@ E636DDD749286B80A5C22474B49FC5C093A8215D49B30ADA383485030AEE93AF
BABB827D996E563D1681528F54353D1245ED78D1915CFBB5595E3B9272ACF503
8FEE0B65C4CD9D5783F948ECAB51BA25F77DFA440C1D8B636FF6A15E6BB0800B
AD6C7A22C4F0BF6C9A19F0E696B103D8150AAA337C303ABE10C87D87549D150C
2D9665F99AADD64B2A8D89FCF9E50C08878645F932A79211C3D5E20F52D4D829
0635C9A1AD845676304507AE33C76AFB216A17417C0DAF7735D8ADC647BA2AD6
1970A15C7CB7720F527DAEC4E528E2D4DE4F6E2525A655331FE2C56415A28389
E7FD57B9C79522C1D822F82CFE0BC3F399DCDB9414D5478F9966438C3C6B4D54
621D44ABB27135B7EF06B892E86D1403C8874230F10B839B587645725DC3264A
0A093A5326A2152DDFA19E2F2D4FD9F85BE5E8B5AE8B1A5885CB61B5EFEAEB48
1B83E387773E29896C843F8B7FF6C85FC1513ECDA95D5A73767C032C26AA7958
78DB1B6A9AF5F3FBD623AD518C8264DD237FF9444A3FEE0CD66100EC6C3E0885
5F54DD846625251635E6050885500B6BFAD25B26E1656C13224728657C5A9D8C
028A05FA2C2667C93490FECE298C6B5FC086BDECD05A09FE01CC0C3A2962B81A
B06DD897304FECF8707F5EE7C591F5082371B34305B0B6C5C6560DB03E56B066
895CC11D2EC8A8483943FEFD6714A5B4E2113DD3DA3292B1A4537F90AF4F7EF7
9600048D2178DCD1CCC9B5B35A4B4D3BE6DDA1B26846E695CF293C39AA20C283
5D25314A601B53948B679FDD50C77FBBDB381F7FDD9EB1D56142D848902897A0
37879477BF786B2E5B7EC5C4B362B1C22E1061B76774E42DFD6B5DC8945D7EC6
BB58102CE5A47903E87D629839AC651F1319485AF8535EEB1792F5BC0A24DF5A
747BA7A8D638A14CD46408DCC140AF3EB7A16352476E2377503A0ED24E30BBB2
3709D90FC7FDDC3303450FEA53923C7D8D6B8830C25017C03091C9A41E13B8C2
504D710E1CBACF18BA8C822C839852F9CC032ADAA6B30D189F0B0C44F44E1F1D
618C2F7EC4992C1B50443DBB0B797408296965B9887EDB1B4DE1D3E13130D728
CAB5DB991669B762F59D5FCA766486B5C1B2824F8513ED8A13DF27B58114722C
8288DE27F5F532DEED0CE260E1AF0DDF996C15B201C57152D48454D9454AAD60
21A9C6F5030DA7735ADEFA843470D6B80512E38207C7D67AB521B582EE2A0462
B25A4CE6B0844FD99BE4F6FBF7A1046412C358EE796204CD4DD02384B50A9DB1
A5EA96C4300311D01E444A43A97B1EA4DCF3CDF1A1FD7012569DC6C94C56DCF9
AB3A7A354160A14F23BDCD300E4DA56184BE96770AFB9920BE1641E4F4189EB5
421319F90FDEAE7877148E8760458AED89CD92B5F85D81A961D856BF1ABC9A44
714C7CAC016BFE8BE8AFC5A7F6574851BE740A89DBB24A5640EDDDEAA73D25B3
5CC35177701510F2C8622792554F2CEDFF22747DD82489AC2BF0529BECAC2FC2
383EFF6986DCF54BF651144AD9555D469F5CD25D03BC8F791E58E217CF046889
A817AC7A65317C64169B288FCD4C32589D9CB0D2DD2C9A6B78E6AC615258373E
4A370F122D5AB9C61096615B0034C575C77B3F691BE431FD668D5A6997C566DB
102675B020C2E6D6E8CB5D0F98065ECA2C7C8406157AE8554865358C320105A3
5FE5A04FA7C00BB61322A161225592572F036972562BFA92C9261CF5F5FBC338
66E0C7CFAAB786E0F2109806055AA2BC02E07D035A3B9F40598349EB8955AE1C
2AD9EF253E24FF4AA72AD9119BEFC7D030AC460C72D8A6485D71FD6E64F26605
7F216F1262CCEF6C7788EEA2D5045B50EFBCE201002F2DA952663E700CB1E7DE
2E5595B63C15A74DD4AFC43F49A17B98F280A0DB93468483E303CEFD6BAC0A25
01133CC56A739542E161824C00AB14838C919465400B7A63AF39D275F74EF7A7
CEE565D6B27CF60C0CF051DECE02760CB9557BF8733E5D2650AAC9AEFBCFFF4E
16F166538B4F5CB6DA9FA35F0CFBDDFDC52AC0F6D497CF2371243E544AD82DF7
A674DE4F5C3210B4A0F2247C5E4D1D9DD52B77FE4820BB31FC7E1A66EDA0D642
8C4FEA60420D1BBEAE8BD82754959775E085EF4F48908BB872BF9CB489F1045B
90196A086F4E8206336898862766AF2A788D8515FC2E109715562119541467EA
7CFABF282AE108C6AB6EBC6E9E2D39148C515BCE60C82C844601BF6C6F60404B
D4D71550695A36934AFB58E2941038544267DEA004CD70EAA317B35F24B73DC9
C18E3A7C7F2D15C9684C7B6136E1CA1FB0790BF57ECA4C6E9CF8CA194F7501A3
40313506C9786CACCFDFC023ADD205B5D2F8969446339E234B1EDEB209A1D8D0
D83687CBA22D416B03DF86727A90F38A90587B01ACBD191531060EE185DBEDC2
88D3EFD6D90C4E08F5AC850E7DC2AC401EF71DDAF704AB7342D2E20418451A71
A053BEE600BB67C08BDAB8F4804314362F7723670B1CAA770FB8BDC0EC7A2940
F59A3151B37A8D6FD2C33ABC0C4736C499560A8467032160527EE380E2B953E0
ABE1044F25C916B659AE48F451D5170A6483714FCC1814D63808B3BDA0A6523A
086F1B5A1BF2AE5AF2386F34FC48755FE08342FB4FA5F8CFDB05C26A2E99017C
613C1B2559057F85D3F7C6E8FBDB1496FA2EE4277B53B78A7EDADF1DFA092894
FE49251ABB42A17FAE6D64F89352F81904E2DA683271811C8F57B95024263A1B
224E5BC6A7960004A06424EA54CA9DF0125FD41D3D9BD7D691991D2318B98213
082D42D3B3EFF8934378D24C5F324B04789AE0A4D0B85EC7C6FB1F96F70AF4BD
8E7A2523D4A58F5A886EF68DBC7ACB31DFBC850D521A548AEB32B450B83D94B3
191E9AD9A76D7896A757EBD70B306CAB141331BE35D1D53029E9170A6150868A
558BCA6A981DB3F7029A880F99AEDB0729797F1EF3D7E33090BF8AAB8A3A6666
7594DF11908259DFD243D61E5F58EFD99ACA51FD4F4E301E1035E4D4A68AC20E
53F38DF2805C5A1391257DBCBA60506F20FB62AAB36F494898AD59E9E3FB35E3
558A514B0575FCC353E40F669C20062A2B78E34DA785F16707C237841000B2BB
05B823C7A6F36714393388E545EAABCCED35B2C9EBF246F1C96EAD0CE77776AF
527064F94ABEF0BFC205D7258DCC8BC27CB9A1D60E29711CBFE6D84BEF1F30EE
542F38F3E4AB8E2B9642E36A1D0A9BBA1142C4610AC1C526038A5F6C7CF27E66
913559FD83C607251522E47C0CE7B04E019AAE62096A4A71927EED385F341557
14571A45D3CE80152DA0E11098A34A4C22A39643542107C38CDEF226DE48E06B
D5FEF7F519B502430A85CC5962A9D5B21845D95EF65154F1E76043A03F4DDF75
EEC0BAA7EBC8A050E400EF24C92626151A7CC19937CD582F5C72AB3714363933
735DA8F18A6EBEDD0D0D3123E1E3B2C3EE63ADD771F3E8E167400A0D9963F4E1
32989DC5C6A0F8E733C5A8903D51890727FA784AA80EC96ED00068144079F666
CD56313B9D53F2EC7166130F3535015B54BC74228D18C10BD35BEB3023AAFB05
9195CFFDF7D720CB475C3113F3FCD8809908BAF80A2DE2DAFF8046B9B6FFC43F
C05B6352B9ACFC7EABA392E5C093CE878C09A8B4B1683EC28868CF9E1F9F75E3
E1AEDC271CE1B1F09E23C6F7244B7136EF4E084C43A6B402163FE26193B37BDD
DD9A0185A72E56698DD9D11A687271AB26EAC04FB31E866CBD1139447D0A3A92
8FD24A0044295C66581D4F6690290E50CE0722EF268FB1BBE356BDC34763B739
27E175BD3CE25A737011E2C9E757922B15990BEC4B04E679953668096A092830
0743B59C1E2847F86F83FCBE1CE581334D0587E09941A7BD130127B4B1F108FC
1B694ABD46F845E23CB93BBA2578E85D6FE8AC4DB864C2EE10C87FCBE9B48E8C
0CE58BD562C35B5ACD5A021B393F3ABB5E590F87968990A55BB58112F3E2CBEF
0F1291BF0CD479680DBF583F7ED63F4729FA31F72C1B2D32B1ED756DC4CA06CC
D899A042EDE28F1B51B6A79564801C167974D9C29C0A11393D14B683B2B9E0B4
0ACD7C42AF39FA933792677EC37433C3A300DBF42138AB7D2CB9272E8B9452D9
33BABDF4EA0018ED50B9380083A0458157F5FFE7B26848990FD109C5C52E3639
CCC77BDD245835C495C7EF4D0D4F6B918706E59C66A30C25A667016880CFDC40
629C408A693B1F3FE143F50397DC9A74CA226BAD0E6E692B701E6FD252FCD920
66E1AE29F2F622F5B187F70CDD2FEAF0BA2E83E2E1FA6B506A008764E9DD9801
4F71CD55456BF709F29651F3A54E58F0B996AA50DE7F67A3A0A680FB825DFCC6
08F5AF3229B9552669C989259F604E442A1B203A9ED199AE676E26639A0111AB
56EE045ADDFDCE371CDE015587DA2D9667E41305A551E6C23502735E4A611BD3
CE813B0C48B6804795C61CD26DFA9A6FEA35FD220DA021BFCF45F3FBF73FD950
73BB5FA315FD3CAA11250EC4B885E85DDC2F3D0C57A7D88EA36A61BB73ADE9EA
EBC099AB8EA6E9D90DF7297D832DF9C7F3342001F47AE7E08BAE6385F9834640
02E8D3A43A740ACC4839AEE72A6C8C71A271772EFAF4A03837E46A87AE22A75F
B4D9AE8C3D26FF05F633DE8B7AD207E34283E215BCAB4E49C2F8D1243C4B52F7
613E33445D78C03DDA5F065517C1D412D851BCD3F1D4FC92EF9B7F4FF0F37402
68765359BFE1EA54FC7A06A8A5DE12213749AE1EA6398A951FDD77AD67A927AC
98488F40E8AD555CE99FEE690F90185DE08FB7C79F1BF981BAC33F42A697782A
3CD23599C95BB79DF38FEED0FF8C65E970BEDB0CDDE79D7400C40E862D1C7950
FAC3AB2A4D600EB782FA19032D0EA8AA5E407A5ACFEAAE1AF34C635834D1F3FB
215BE64717C8DFE02C6FC578AEED8E60A38C394FF1086E6B26BD72082B2E5032
3291F66490B2357EE660B4F1058F59A2C794DF6F5DDD34CAB7B9E3A1BCD45AA9
CC531DD1B5D82EFC354B126EAFB6B634E8CEF5A6336B093CA092064E5DA4EE2C
B7DC39A83E4B17468F3C7CAAD1EC9B788A80351F631679C811FF9EBCE1511DFF
74647868AE47A4ED0CEE23C92C82234A3390BB291B0943EAB7D7C60B01F4CAD7
849F69EB2F397747F1B4F3627C2017C452ED8681D2036878A2305E991CA7A956
A70C65C0E00956B1EC2E0B8EC3E3F2245CCB928F38A8BEE3F5562BBFD91B0F53
1DAAAB37ED748E6206EA88D0D34C8EF8210EB08DD64BB5CF08C2BAD47CA4844D
37CB18CBC391385D70853FAB7CFA5B3DEA7D680192BFC7AF5D03A4216FF0EAFE
7D7129FF72747684D23A49DD6BB5757DE2A541FA2DDB1608E2042425D5EA82DC
6DD4D9E5761AA17E87F228999B2A85D80A2D16151621607B46AA9B937D9F5A6A
99645BA00E3F283CF4704709B7D9225FA27538A570A81BC5A753A53A3F84AEB6
7A5768B3544A3544EA3710C8FA9C4A97EFB175806E98F99162DA852A483BE261
9F9AE8B6D9F992BCBA318A3E1801443F6744913EBF6EA12F57B2AED0EADB0295
BEAE8F30B98C75D784ABB89A655DD3E52A4A03E53F76291427DC01150F84CD13
817E383A32F4E7A269161AD523AEABFFAF672893985ABB0FB5BDACCA9FAD6E0A
4BD3C6548F1D70E09CDF9193DF3FABA096237B5AC0F37DC8E22BB8DBF3A47600
04D1BBBF3A530DC1D91E43E13E81EC5BBE1679C2FE91BAC7143597952514561E
49FE6A52A21F74F2C33BBF74137D837270DACAB552A5E383F17C56306FEFC95E
B01E5784F794AC3537512758A39140197ED8AC44ACA4BD08163BC62AB1088EF0
57BF3C3F1CD1DDBA1D35F35E38D10218A254CA1F3C1D9A2B09C7CDFFD644D53A
A774C13D4F3F6649C3592080FEE648BFCB64199FAD9C50BD4629C7558F8B9C85
2A018ACCE2E97297234A4E8DFD30272B8677CAD5522995C843E42EFC40D9525E
72F0FF1284D7D9697FD059A9E971752CDD53D107A959ACC95FCD7253E335437E
EB3681B4F7B294AA20FF64C55B58960857BB5CB135F25B4FE8DC01D8F6221166
398FDB12803EFCBFEBC10661A6710853C26462359B358E001281714413C6F519
2A1BF8F8365BD944DFA3D37BFC2615873E5EBBCC9674620DE1289F02B871B9C7
190D20CFF1C94C63E16D8F650DF31E9184B7B9DCAC498506C4D010E6AA206E44
F7409FC2397A1A0F4C71996ACD0FFD92438D09AA65980A5C07203DB217DDD304
577CAB05ED16C95A718D159D0D89F35BC759803A9616C966B2F6B83130875AA9
E4BA946283AEE9951BDD54BFA2FE97247E55CAAA8C6617A38F1D238A0AE20479
AD4C38C7128C22DCE47B24243626D80AAEB5589EBBE694601AC2FC8335E0B18C
2117716DA407DBCBD549F98513144B55B232A8E15A3E91A4B1AE0BF4D05CF529
3662EF7C1F19840CF7CA1EA8A9C34BB8C131BF28330752940BA745AC7115C12D
D5F849263DA81315EA568CD449D71DF2DFB48F21593E77967D001135F190E741
68432760880A8AFC473B8C00FBFF6FB1DC62DF226D4B9A2A2016521310E6C53C
109997CFD9EE0507398C370D57FD34BD4BAFC43F5F4EFB0B529DE5DEDF2AD861
CC3A1649767B0337A292587DCBF4790A536799D80DC7D59116CD96CA5AC4D097
4E0B4636A0E98725577142192C60B4FC0B9EC63B27B79C588349BC6A948F950F
D420AEAE5960BDD9386A2E9C650DE9F809843B70379A82861715B59CBB6E07B3
A6936B58CDB867E42155962A4A9716020A76BAD3AB161C177FA5A3B0EA6877B6
34805971D6BCF456488F8948A26337D333AA4C326AFD40CE92AA4693D7C9C652
15EA9E1136C627EFE5710ACCC0DE48601AF3C290469BFB99EF9F5C3F9C1E9D28
7D33B3FA428065F82CA627E6EB3B33DEC6433A9992DB39470C43FED86D9DC51B
0B8B18B6055859410680CF0729C3C68143672111134D43145B49E7B6078C2DFA
8D729BDA4C992053A331CC286D48E71D2836FB34955BEE283114B032A254C4A5
6AA3B04EE180A52340CD2D866C016D8A90CA17FBBFFB590314F6ECC1A0CFD2E1
EB1E7EDB1CBAFEC81DFD611663374D8F61A79665817FCABC91FD9E8B2DCA54FD
496471AAE352CDF77DBF77FF8B958CC775FC8987ED56D47436108B532D06C539
C93BE08C1F15BD0DED5FB4431CA51A0E1D928AB5179980D5C1C72183DEA1B0DB
4E681C77050E17A237265AF8481F3DFC2577AD81A99755D1060DB6404C0B9192
71EA08B637D7DFC92F6EA52B2932D6D94EC5466CB4426EA86761667A6472D2E1
2754B9BC073B6314AE79A0E8E0521AD175E357C64CA94F53FCDBD071D85224D4
60B860765E061B3535836F0947C662CB46FCEAC11FE4E4BA65DFC244D35C12B4
EB294D91AF25AA74DD2EFA11B23291EF4D669188032AB782A464DB4A96918A7B
2CE55A8F366538BD6F662E0B1F16AD17ED31CA54E34CEE6F6CEB7F879227C0AA
73CE5FAD5716265D89BADC893E8E2A9CD8A5ACC9F526FDECE819C5B59B56DC9B
2C19DB3AF066857472CCAE64AC15D2A2E83B67D154E4176EF46528FD310ED4E5
C5597E3633893070E0320C3274C79D93219669C58F960D6AEDB12CDD10271F45
5687E8051CE7376B3A7BBCE9283841554E59977BCB0FC2712634ACE047725F79
CE8078234EDE4BCAAC52A7ACE4336A28F01213A933692A93B4CA3FE8F9707F52
B8036ACA14DD2291AF0B9D6E30097F96F18991C4D22DA7EFB7213CBC7D7EDF1C
BFE0F8EDC002776574BE8E670F05AD0F187980AC5D4A69FEDE2A2CD2042C9051
2A6C3EFEC84726F515CFE2D1D85A00AB04AC1CDE10E71FC50BC77164C2F7410D
D33202303ECAFAE4DD04C1BDABBA55DFDCCFEC85BBD33D1ACA6A014765979996
6BED212018E18C94A199075B905F844AC71697BAAC57D4C8ADCAB4CC1E009FAC
94136877462494F7B87B3D4BD407BDC37580D76AFEDB3757034169A5470FDD63
B259D5C871703076C6EC057CA1D3EA563699ED9745712CFE045A2CAA4013F9BE
906AD05F241F6594A41AE4F8CA6DCFE4648D07A2812E1E30F842A086821D4E8C
1F2696BE79AD738F3391B25D76EFA2B538B1F6B8BBC0E2C02DB96E1DE069DC97
5DA1B3EEF715CF0194F5EB83BFB99A95E2A3C496CC3325975770EAA1FEF1965D
63118B6D1691CB9BC1DE64F54454EF2F308F4AF8A2912B26C003A6109E74DF2D
C362F64A2224D9AE5556CE304F36F6E9058FCDA1BCFED037D1566739DB5FC1FC
515E68EC300DC3030C87964F0B570E04B546BF63C8CFC8E9F7FCC5BE73040878
4C7970B143BEF493C0E5D3CF30A2A84FF59DE05DE744656C1D1C3D183F20849D
E7891FB9B089559D92D214ED0B4B5D99F8F62511261AD093C40555378FA2CFA1
EA3FFFE209EA917E239B0142BD07EDC431A09313968193C9722D346FE6A1DEA7
472CBC65618518F66BAEF1726AD9732AA80C55C47A77EC300B99E4A93328B082
5AF089DACF5CF990574746C900737281E317F3049C9D3ABAF1A69CB45ADCB607
E416EDC17ABECCFBD9522E4FA1ADC791E2702C0733E32DE2399C9DABAB98F1B7
9A0561A1302E8F796C3D6307611156248C4107AE7D52C096095FE557D451916F
0D1FFF64FF025CE907539288AD4A78CE4340776D7A3821B44BFB449B3EC06DBF
B9F206412140FDB39E7B0D4AF9C7954F41ECB2E195D7D534DF808C088D44D05A
3EDDC8D2AFF98E5A01F0E5EBFD5E111F1E94A6F1192F7773D6DAEB99F5448878
BBD382441D88FB151BA9049857D1BE43F7EB4F3064040BC09E780B416C602D3C
7AE80A893E7CE1D1CCB12C9B5C4F117DE2AEBFE58D282E82DF7599D626FDAA56
B22CB870FBB84CF467F527BAF76BCA9B62E919F985447A4241580C2DDBD4BD84
895ABD448A3DC9C5E76644601D896F7C661A04973430F256F1101AACC5863852
3BC66EF61AF2050768BAFFBD4ED3F022AC29AE10966726C96759804EC851B9DB
189B4182AE046B89C6D8916A2DD1F7BCB905A78F1AE02A2CB792DF650058EB68
8A883D07831D1C9F17E8D335AFCFBA8EB1B2B1F154D479BE34CEC4A2142D10D0
4AA292F662B1413DD7F61FD2B078539EADB90B376E79263C16884426737C8966
AA95ABB6A47334C4FA517BB7ED2631F2E45538EE74509E6B90B0518A84A85EBE
05DA1345ED923DC890751028B2A87AFA015E780E28BA13BA5EF2D56FD8C28989
35BD31E51BE528E01DAA7BDEFD6D69DF4FC3D3F3834C733EF9F1D82B293E67C7
127206FED8469006B75DC4DE58DBD2DFDCFCC0B692A18179CC49588D55B55F5F
AC6822951DD3523BD80D9A0C621CB55D838F21FBE4AC7DFB5CF649B3812EBA04
443B87AA2769461CEDCCB7DD165311E8E8301F75E22A3FE070A8AAFDF516A747
83DBCAC1845EF4908FD4F989DB6C8508E022FC6E418B15325D6FD68207EF6AAA
F36D4827FCEA6D255853BD4828D5D96120082BF3EAE9D25E853869E7B15772BF
5D304E9B9402AE5E4785B941D80C6BEE7257F32B06E503714F0F58D2F5A0E4B6
553D6981BADDDC0FCEDBBFD8A9786F547E2FBE351806E24DBED5E7250434F1C1
874E27806813B465341F1067408D410CEA11DFD4DD43BD0F7C37137534A7287E
88645F756C94AE4BF112059DF28206C9C284504534D6918C48844C7F113B2F3F
60134EB669D44AA8678D567949417246137A07D408D8B2B39307C69C111624BC
06E9C21AA647BA024693BE1701F0BAF31779AE6604AD8C0BD6704579E3F455D0
E50AB8CF742BA6B0DB00F3AB9EF2A320D387EC2DC3FBA56882561ECDE05E3DF0
284468E17427E0380A8EE1F7397A9A68EA44A983F5601B7439798648C44B5002
2C46DF31C565D6921E4F36F187C80EFEF431D0942A1B826A32E6A086D32A8FB5
32B9FB8B69830F4E85870FE725FE3A165883C02DA76C52F7B8D5B43E08F28A13
C334E4C56CA0EB1685B3D31F48EEFBA6CF746AA1354AF678EF9DFB2029F9EF8B
DA16C4433F7AEB2AC4697E083CDF99967A439F6FD27FA20B6DC0EAB15263E0CE
D829EFCD81E9B8AE8A10BE6EEE4887D82A90187B3491E640B793C6B737887DE5
4BD34925B94024F572BAB7337F8FBE9F7555324D0868859714AF3C39C244F090
9DC75E6B412807FAA6D1CC59372F880C3D92A42252C0BB59C70756110BFAFF17
7925424D22E44DDDA06282660F297E9408B5BC48F7EFE9F2A6C013DC066D0897
8F42B0FBEC4661CEF4E32A9B645EF3042168D130EC732251D204C865CF66E8A3
FC7593C4AB47B7A0458407D897331B59EEDB55E8A756A2A46DF57FF9501B6097
C5A3F83F886A8D274E551A380110EBFD6114D1128E0C5E150F24C9E4CCCB1F26
E45C35A5F9DB01DCD9378E75B4E91F5516649E1FE95346EA77025D6A6E097B2A
A96607E5B00B7DD63056695C91867D81C87F142CBD32A2F406E4364A79809AE8
678408145904D7953368B76DFB3CE9B515A8100B9BE48F3E06CB5AE0754286AF
3B74EE8EA53248EA78EE1B3056D99BA82026120445FC5D741256EC188746575D
98AC261B1F0F3D2F3E9F419528B283E03EA088402F59155B78991524CDFB6972
36D960944B87BC93A957DA334D1F1A81D1170812DCC54252A2950A1FD0A0C1CC
1112BE9F025CE692338D0A74044998141172FDC4FA6EBC4308980584B2C9EE93
BB7F9790855A43B8E56CC7BED417EBD0BAD492ADD5C01A1F828C40A9C204A8D7
D4702A8DD66970C35F9817ADB93ACF1251DE81515B024BB311C6A0C2AB7B02DC
67EEADC48F34B4CE9DE97E1C5F9DC4AB9D3F3DFFEC1F33FE6B063A416ACB9550
79ADBBD5211A5D7AE55598697D97061C33814B16BBC57BE95D85864AA34F09C9
3CD9F4C680FDD1A0D0287927362AD7208B0CEAC764B170420751EFE0D8FF4EAF
FA33300D7988AE87B6981DF28042A939EED106192A57514C346F8E3B70C5669E
0F68F83C831266438CB655C4A528989A6D6DEC65CAB5DC96D96F5ACEC627A0E7
F65FA1A4DF6632700F75F10570C38C45B251F869625749BC2E36A73DBE3364FB
41E65DFA56B3D21773759992D2336BEB9FF1B826FE3013DA081B3F9077927B56
B13D927477C3E6DA953BC596E08C88317C44B8F8A99F214ADED3B37017FBE2C1
51EBBD6E8154B80200FE79E87AD2DF9F209A6E92650B4959691B81D18FED6922
8B487845E86F8ED9C278320377324823DA3586BC14EA9F0898BB8758401B4941
122966004F816E8041EAD238D34D4E1B7522AC8813BCFB3C493156301A8EB727
DFB2C9AF03D36BE76012262211B6125F3AC3D2696062030EE8C4057D5A440EA3
2DEFF54AF40847E9DB6FF52CE05A144BF029279D7E7F475EF359F6EEE57CA73C
766F531239C7C20632F0406E59CBE7B82E748DC4821DC3BB5A9E8839AF394379
E4414531E9A33357D53E8EEA40C89F305C89D206C76899F6551DC03DE784D1F3
5406358D090984C821868CFCC802951323FCBDD7889FE605CB59D47DAE70D51F
2DDB76A4BC12803950CC2D87173A0BC86ACB8F3B8DB8FF6CD368278875C612EB
321F81BFA21409B2D104C5EDC9513E201B55EE4CB7D277F8E3C31379282EF20D
E95FD44CE14DEDE46F57CB89B878257C11B44F9C5BD2725FAFDB06F8AE82115C
82CE9785D532BA6A0D549C7E4A89874D4FCEFCFC953E047CF6C42F192AF98198
600C0E2FC7ACC70BAEF17E4E6B6BDA55404209B323CEC1175A29EB07D89C90F7
2781E2E8161BDB1328ACB0B554D55D40DBC70ED35FAD8950B12898AA0C78181D
969F176B4C5E7A3BAE81E7333CCC72647924C8D81B80CF45FD1961F22C71F997
48FE909F9FB2FDB4BD34AF3D2970584E5613854E60350B044DBD909F47E08947
863492B2FD64A09278BE1E871299873B8FE4A369CCFF8FBCA350270C9C21F1DD
4D45EB8E64CB1AA4992805C054D18B10B850CF4239463BE7E69B66A46B0AE2F4
8F8D56DB81AE1D7AB5EC1F1E6364839343E7B493750001B900FC4605A79B5280
CAE81F403638E95F1B808ACD5B869C121D6D0A483EBFE9150CFDEA209F39609E
BAAB6FD1BAC01238ACC3AA27AD0F14294929F5F7BE6F70BC600E6B0FA8751B78
AB8BEF76E12F6BDF143939D12D3662FC4E670107737356884C58193DB16913AF
B71DB7820B8529E3B9CD7B0EFDF4861509B53B84B39E32755481E713142E1CCC
B4287E676DB8378EEF3886D5C1A822EEF91C2FA58F4596B10B84098A36AC3139
D5DADED54EB027C01FD1E61C05923E97E796B6A166BC618FBB411F9C566256F5
42D09809D70124117B1986CF64668A374B899B6685149747D08F20517B8849F2
E9DC7E236211DF7CB0C30C34B0DD8C7EAEA9F0A437DF2F570F14962987CAA07D
955CE87C33D9CA3E92325C0FB3AC82201F6960582C328112D212ACF722FFE9D0
EDDEEEEFC284B9F6E0CAD92CF2CEFF2A8FB9D78F4CC27A868AF2B8B4F796CAD5
5A890FCD43E629531F5445287FFAEB991AA96330DCB9ED0FEE20D2FFDEAE62DF
BE40E03F8BFB5E1E5C30D4942C88C2FB01A389DB883FCBAE582013B5A32DF6DE
719910B94C6A62CD0BBC7F7FDD062BC957D2401F0D0DCFD1425FF9905B9A3ACA
07A34CCA87A8FEFC7646A0700FFE05FF58C3398EBB4CB3E092DE2D7D447F4A18
C95E3EB5E50D999C2106C19D101289203D6C14958A61EB6F115C959107B79706
46760598AD6AF0B0F5179B59C4702F7F59B3122F16D8855BB3BCE8D81811CE0A
5B617F2FF26A46CF236BF08FD260922E45FE256F0D614AA52573D95B7B52A6A0
B20B33E944F20A5A63BC06FBFBBE1992B892D6E3DD95E4F4652A687BBC5F459C
9DAEC07AEDD6F5A888AD4B8B4B8D413AD6FDB60D003B12BDB5453FEE0FAD8361
4D2E5662AE9DB3C7A1C3BDDF511E7873ACC4DDBB6961B347605B517DD6D224B3
ED1EC2C9191EF39EBDB04B68F57957C1C1E3F211B2A96D2A92F06881D83DCA6B
BCBAE478457938C0E3D8D479066886FA42FDE879B2065E0283F96E5F6DDE1F91
E714C5A6FAF4A993F8AEAE646D74BDC4F925AA3A3AE592F76B5C2158316D9106
051125B6E0B84B96634DBB43F4A1EF91C6BC3B5CDCCBE5B2C535EA855A76CE56
E49C7318EF4AC0DF560CFF816CE7603408BEB7B5E9A39290BE3BE3F6B92147C8
83BB1CFAA6A71287F529CEB22F47CE90EE0802E3DAB53E6DC698FF43DDA214D1
1E1F03F2FB3DD19385F46BC7C7CF0E019C8906C4EF56FAA9CDC74F90B376C66D
185FD4BADF2E2C1CB1E4D11321F3D4E9D8D9A2C80A6DDE363EA6787D053E4F2A
15896B4B3B5E4CF2E031D4465CDCA4E020F93F4EAA0DEB90747F9EE613432089
CE941380DA8467ED635BF129451851461BC2FA05299C6DF6EE30C9EFDD3553A9
478FA7AD4F2BC03BD5ADB8C1D0D15878E53C6B4BBF24B481C25872B23E22DE43
B7FA58FAA3E4EC7C43727BAA5575B566C2EC1872D38427DF0F9A03BA1E1ADEDD
C9836CDF2D393162243B829986BC12FCEC7ED67482893E4C4914DB0234DEC65E
CCDA6238417C5F6DE88455EC76690AC15620CC0309B3F08D69EAB599A4CBF73E
6FE894B59EF90D89EA07EEA16F6EBC0616397E09BC37E6B6100913936FE94F5F
4605BC819080BDBA1C94B93008AEC817F2E58A0BC111F3458AA8E21F2879CA2A
0152A04AA78096EF13D556BA218B2BE6C1E109A35A77B0E0E8E4D8004ECA48BE
8F0521C073A7D2A9CEA815190BB08E7936AC2477A288DA75B049594E5A4B0338
7CF5BB1543AC24EC1A0192173D1A760BF113428679B20E79EC8C5085DB4B8EB7
62BDA226163328F00980585550167917C57B736ED6E526107F8337F899866972
63D7AF32A35FF242426C02AEF00FF556D1E27C47ED1B296852F7A10FE7DB5A83
17590C0F27D13C7A1B4520DCC32E1D6F986B30DAEF1C7EBA224549F7F8A09B4F
C9FD2CE806D1E1B09362BE3FA40864A6FC000360C8A66E7B551B02D5C45F4865
626A8F6A5D715D5DB8D7FBBF15F68F9C6729725445710C599E046A2672C1CD10
7301199212D7BECEF0F1C3C0397FB5AC9056016A2E2A9DB940418F6A48B59EDA
2A1B933C94C0C803827A147E73CB788F2C9E1F0F83D91FC05DC2A4A64D8C4A53
D6E44B74601F9D166EF2659A00F2B7DC48325AC579037A09F5BA742C9907E82C
5601760A58226B5E2A45A4EEE141AF05160792DA28B6526951F61CF145E09866
6AB7AE5062F7C067F465F80B8B5D0BAA16578466914D1CD46728CF729E5A5B58
53AA7B9B6D8584783B3AAFAD6DB6E6D83D3B9E3B49838FABCF15DFD27B942085
8D558384C6E8FCEC737AE906BE7FD93E064D05F11E2C3FA298EBD79F9ED507F0
67E63A9872D5098010CF25B37C411D07DC9F031FB010C7580400E0CBC3082B1B
639DB5CD83E4E2FBE053F6276B4C2E1A377E5272E5F61AD1393628D1271F1674
036618662105313C2FC28F46A7A1708374E30A286E60AAFF2F59C327932DBB18
C005CAF3F09C03F4429CF730DD43B999C674182345A6AB3134971967DCA53617
A774B8C0DCA86B3CC35E55976C7C97350B893EF62A9E27D703C162899318F9C9
98A6D5B784FFF003447C3E3D37605685B0CE56164B2654439574E7B7B6C64880
86A1535CA6CBF5A510CCC01F697E70044E628EBA260DAE665B675643D2F0CE79
0214C9EDCC2358A65AB948CC2DBD91249A89F23533305A186C7CD08406FA5B57
650F1C8DA43CEA9B43ED008779C479877F3F25E9845D32BB36E060775B504968
2516885FA691147563DEBE34EE66974F0E1403ED2FCE832F6E4E6487344451AD
0D11291D5717A0A416A1F18F11C6BD8D7653062D766A3992FF752F4E845ECCE0
B534CDB4A70A19D18699112324892EAE60B8057A1C5D428E92900D32B0271DC6
4EB7C7EADB45D72D28982AC53AE8F39ADE725033768D4D0324AF2BEE24723277
2D8320BB3C763CC0C3E65DAC85DEFAFDCB38E1BA43BE97057713A2404E5BA967
66FA39408CF01C57790A278289708B026128BD20F4D3C62A374B958332C2B802
F99A69899D1815751C88EE9D30E5764D7F85AF93914110517E04EF6BB6350006
4D741B1068C14ADA3D55ED1BBF362A3F3BFBDC3197C5339A8F6274027C9FB9B7
C5A85C1976B8B80A5148C5C3C016CFD3B3B047459A527588059E67901BB2E636
3A928D08A457C3D07D94828E7A7C5E42F1AF828223B76F80788F6490CE8A4F2B
A9FADEC4C4326A3A8E4263C1B50AA3CF512ECCEF138B83D046C63F7E9AF3CB01
22A817B69E952CC2AC8F8D6DD351CFD35BF1D099224F6F6DCAC634FD1A91C44C
A43FFAAC51EDE8C70461BE4804D42D6E2C30020C6023C3300499265AB962D2BD
A525C13DBF57C0667B8326F93AE2407C2F06D2D5000AFADAFEE75306F53DDC29
FAF38F78E24952875BD5DA26E415E79CD9D235E7B58BEEB622DE88BEFE3A6EA7
AE071E717C74BE4D2879523E19D1695C5DC9B0CE7747D7BE310A500A328789CF
F7E13FF4DB930A5C47DAE5A7B60478A073AFF513AB072AFAC7B1D0951289A394
EB3E1C7C24ABD116231C5AF69B6E9F731B075C029E9181186E362373BE65D8E4
340911295E477040582DC1900AFF1442D093CD2EC69BF862D30D98623112FE78
D0FB148C142A676CED55662196C4F3AEA7F00597F76FF5CAD60D69CB509323B5
B50817BA67D652BAEFAD30E09C8D8BA94CD182C45B9F8E75597E9BD5E5B0FA75
8328A828460D9F083EA95353A7056C35CED7C51B261400F95F06DCCBEE056234
9BBAB2170B0B8ACB5317A9BF7B10656522E2E80C6BB4B13926760663EBE24DC9
9E7A085A48EE1AED815DD696A4E714BE30301253B8D59CB79BDFCAB2D0F3CB3F
FF287160949649E3DEF014A3067BBC951225F5CB5996CA4AC4B7CE2B48FBC86E
249FE59F0760D8D29CB89F48CA3794E2EAF4C993A9C9A61169A82EB971A1B8C7
D3FF801959F0B944C9071716090419A47E14BCE4B5A92F07A7F9F1F85C68607F
3EE0E5D5BFE6A2A4B1222AFC173C38E527DE7380A560B8C80B1DCC10A2907457
142853C57D18D002E1CDDA5036A97FD8B1550D069863D8982933C524F8BD759F
C31EA8FF8363FBCE2464D64CD503C06A81F97D9318D95AD42A297118ED8F941E
C7229700CDD96B855404A66576242801C480AFD57D7B79AE00C159613807E628
0F7F370B3929DEB7
2D9665F99AADD64CF8FB790966D2E63B22CBF1B1F1DBA95E3E233469085EC593
0061E1CCC33F1B16293CC11C0B056473F6C8F7949142314CC2B8CA8582DAF280
9A41AB9C8FEA6088FD3044FA72A6A754D4E46610BE64E308209D819B23894C90
085143D0997EF4DAFC31A250BE0C3A45109E895B0612BC18513B71507D0CE5F5
052E003166D1B15238ABF9942D4FEE2451DDC06CB4101F11D261B9318D0BF6E5
C467A31637743F2DAA90E874E79C2E402EC53CFA9A5F4546BE39A838B5572D1D
1B5732C3B25713C60BA9DE651D74163A0F9B5710261E0D8980D1C8249CAD7F6E
FE7ECAC7BD98B3D195DACD921E686C510E89FE720C180F04C9BC350E6569D98F
A47AF940C5AAEFC1126AF1B85C57E2210E5354A5219CA51A3BBAE42C02B584AF
FF81BAC8673F4A37A22C8BF682898DCA81288AE3E8B243375A5BF77526B5AA60
1549E16B2D8D9B5151D27055E5702D895FB238EF2A533E1A8C85E565F2D5D0EB
BD23CE36C8DAE8ACC54D6F30F68A4C513404B11D78A2F5F19836DEFCA67D2A21
B75599819E576001830F03E7056E5E485F336EC4A4BE51FD2D46064A8D37F346
A24BF0E1A977FF91DA4A22C604D1F6080524BB3B040FE0A359E15F6ACCF22CCF
FE1A903559F0DE0DC0E96EB5D0D11BFA464635982378D6A160599702C98D8F2A
E6E104974C94798F458F5E74A628723172377477D4E5E2694083BE189224B59D
A1DCE9671EB9E5DF532ADF8AC863018D7E8C602F9A6E698D3A353DF3F70CE34B
5193795E0B96A2F3B4D964924BF553FE384A914D58E5395E288FA82B71D64DF5
CE4873425BBD32BC37404F494778872BE88203C113A12496B7C0A8331F58A592
3376B02CE5CFCDE0E48ED0FBBA4C257CD7EE90C3EC862EF8175698926DE0B68E
462B317EC6A1148DBF9BBCCDA4BD4CB905C7BCCE2915E89FB30FD70DC83CE40B
A698FECF8278CEDD28309C5B1A639F987830B5ACAD2D66305FC2D866D0A74288
A49CA23BA8857DF6F63DCF7C1A425C48A8D36D4D65CA427754C951776EEBD9D6
6A18FAE4237B87CC59D2A1CD47BB12A877F00FE69838FB242978FA21ED6CA2AB
76492465AA22220F58A181D7A6FFEEDEBC8FBE966A2353247EC3D8330E9CB18C
EF1D61D9909CECDB6B943673C127AF7CDB6B249F9E202A4C9B110423B9F7C782
66357A31DCAE814615A5A319182B42A3582872E8DE39FC9C6579C64AC8F443E4
97840C614357A81758DA9F7FE5593160A2C5EA3BD9F7250F65E00A127A35D0F2
91F02F2B7CB13D558D362004ED8B7126005C308E9CEE7796682A323B2AE86A30
9E23684DF6FBE6BA8616419D6419B1830FED91B1933EC68B290840B300B10370
B58EB5E097B674B5C3E7509174EAB21C7452FF9B52C2980CFFB1230B55348BE7
4D9BD6B7AE5E1B1CF2F1C95BBEB0A6CED99260EBC0B344D036D1BCEA9FEDC85D
9EC1F2C9B6F2FE607E2D24F771C23E03C9BA75D8C8799094DF3C4E0304BBCF3F
25E0C964294228B1C7AAB6BC474449FD8E699B65D311A3CFBA80F6ABB9CE5926
497FFF0CCA03755C4C20CDE7FF1B317E71412DD8E82B08AFEDA6E1CF6FE6DC8C
4E38B7416EB6373345C36E9CD7089B0E054A6594D8B0AB88AE4DAFD9BF6AB83E
32EE0923D01E66D56E0684FA96D3D3325492FE933F0E1D3A7C74BAB6AB15BB0A
3512EA91A63ADF032B278E3A13F71BA8DA4E0CA6112BBFC2D15237FFE47BBB49
3EFCAA4139E445306633370700E381E1C001337F82009014A092E52B491061AB
7F8019D9C7CE4B358E5E8E9BD41BF9B50ED6C2D79FD73B716334E51297085657
40B6428AD16333CC0108DEC3E57CF0E7EE528663707187A44DD55954AC5CEDF1
B451688321E2E825A259FBB7D26DC8BFBADBAD045C0077E5BE68B818ECD13765
8C636EDDC2B6433BCA62599EC4B2593D7BEF1355D549C5383ED246AB2C3E6FAE
5AC81CACB0C3A84895847407DAB75B5786B364B13FE0F246BBF6869BDB3117BD
B0B85BBF14F699A315DB6BE54552D0C9CD10BACAFD6A91280F4AE599F2BC79E7
6FC2289A136E1A07D38376C2D3173EF851A097CC87101F638F27F7EDAB572B81
6C02CE27E16F5A58A120D3F57CAA19090C95AEB29CAD81F7451C9D23BCE1F3F4
90813DFEC50B2A82CB907AE154A161A711C039FC174E1E35BAFAAC8F23EE8542
1B29DFD1272E1DF5FD019AF2A477264829B8A1CAD37BC8EFBE06105E74DEB850
32D99CB23B7C73C4588DBD5082A81757A29661FD48C26E5F912C8FE91A8B4F34
D824965E08E9F09F07566E0B150C472FFAE787983834A7DD0A107CDB74E88971
C070FB0E9CAA2C89F38438F7A03FE86FDD1952A3297832BF47482ED86A1F7C3D
417A40F376FDAA0C5C2B4ABBBF81B7A7F98FC188DB9D3F24105A5C46F8E95190
1A7D3FB0AE4239F449D511BD67956B1EC1F525FB18D59DB64E85130B5A0AACB8
49F428C3E0C6D49F427F9D8F46C8215AFEB1DC8E7826FDC15743BBED087943A5
03268D2111B030FB2AF950FB31DC9A586A9AE5885611A41D472847A793024FA6
1231C822056A467806328FA7E5377ED793B35F63573F732F37E2CB77542F5202
971DB462A9BC62FB026804113A5D5302D425F0F0010FF5FEC527D6B186DF1472
C26CFB745BB58EDB9E4BB82ED93F79C14B02F024EB4A5B201150FE555974275A
A7EC7B3A43D51CC07E2B500C58CB1A3D3053E8EEEEDB175B34E07F8AA5870B92
C2B83FD176DDD5759AEB0B2E830E322B79C1594DAB6F1A480947039960E7C336
3806AD208BD519261EC06BCEBF9644C4E393C341AD01975BBA98EE091729FB6B
65525C29EF52AE7E192A157B14E9A966AE44F754BCB8921A41A254FE73004558
C24C0104B05BB03F2D728036478234EDA8BFC50EB7AF9E3DE533FBCF4218ADE0
CCBAEC68D1E58D193C5C8E44E09048ABB8A424BF47095C3026213A737D21811C
ED6D5FB33558AC6DE47E36F895AA3F28BB8D2D95F47760464FA43F651C8D1AF7
8FDA203C85FF5E528DE450A45381F6E4EC602D60163FB6A37C5DCB71BBEFA92D
F92FCF38A84961D4ABC19697A787FA9821B2413A442358E1E7055B60958A8441
141F65BEB4FCF018BB5A03AE7CA3DBCC895EFF8603A58D1F1E4A5738087D1F6F
658E8473D006D46182C7765010DED78D28FF964BC738EE4511836BA8E37F476E
CCD904515D8AF4F4D55EDE81CD9A7D0E4882A1B1230D3C3B2054ED59CDB47824
6237B62DDAB266F6182FA0DE3C6A6CC8140FFC9CA0D1AFDE2D392F9ED900AE6D
D306E0269C8392A77262AB2BAB9622A78B581D6B5B25135A45C86E4FC44E1859
8E7299ABFF56499E0D80036F1898C33D11E086D5109165D0A65763B58784E4DF
A19184B3CE380708B9F8064BE7A284BECC8A7E05A7E80EAFE929077887FC5485
979A21EA5C3464B0245EA502125F58D12109F004B9E10EB64FC70AACDE12D286
3866345A485C6014B1AFC036EF065ECABF161963CBE455FBF38FE747AF3D87D3
9B879F6601C8EA1E53A47FE615E3D2449674B731FD77F7FF7558E353D85927B1
24C2791F1D7BE9077673ED97E09E9CEF3F1CFEFFE483A4C85FC66942107B83C0
08B334BA91782F11887BB695F8085949039303FC16E7BBE6702D86DC4AD3F016
721E0727FB713005968432C736C922F28479C4B79D47BD822F9EF2C32B53258B
CC9F638CC7463F17C87D714EA9FE17CB12C9D52991498A99BBC00FEAA9459D3B
0C46C260B3C26A235674A22FABB22342B1B826D55F26D6FFC7C8B25BB1AC8D4F
C5DA87FA9725BC2CAE75C46BAAC2497A7B82AC0A5493BBBEFBC8F4C20454CE54
047BCC7D34652F3A313241A2DFB5C0D5D2044FCB9BCD362B782ED0C0C1C5DD8D
644A84F13EFC98BD46B9D6D49BC1893C05E74A51F920B4CD231216524A833C18
C0C67EA86C86F556F84D15E829275BF4727A1090822CB62FF416BAD2DF0C18C7
045120FA62D43C8F1577E599E5C76CC674742E7C4BEFE404C8648DF0A9817FF8
DB061845085EF12F5DEB46ECBD3FC434A4F28104D1C96147BF965C89C87598B9
E08B55487D12A8BA75494EA42D647BC8B1BFEEA70115EA418B1D76BE05EDC032
BE66EAF3E08361D0CB03AE9F87AE76FD60D22FD28B6355742159334EA6C06555
377F938C762AF675FC18593FF5917EBF6F9BECCDC4F1E4B844E5632F8722B459
F3F62EF90B2EBC752093FFAF98578152000F2EBFD23B8D811C811AEB1B7BB623
692DAC3C3797214E2E50302CAE5A55A1A81ACAF8C2B93722857441653DFE9B5A
B22A0BCC5CCBA2193DE5EE973F47B09D9DDF8BFEA812308A500966411E4C9813
C4128790573AE6E8BEEC11F442AC98EE1DF17600D80281A3DC33ACA9A92ED59C
AEDC5005BC9D0D4BDB75FC84F23977D5265BA8D5C40267A5FB948D5E914B2090
A8CE7735EC55A70FFB7FC6BB6C40667D9DB75152746C5B1E04F44EC49EFC78E8
7511FFE34892778437B27045839303B9BCEF1C6266C4FF22FC7C0719D5FECD7A
EA23D1ED55B7D774B8A235D811FAD3BEC77D0D0BF0889D3830D3000AC07E2BB0
49568B90D869CC9F6E9C2A4803B410E33A464EC7048D27526E3EC5BA95949A3D
3FE96D48DB7243324A5181DF197181F193FEE8691C04E919E8884F77CD1AE088
8D4777228CA4C9758D346DABF4BB658B44B66AB7D02B2FCF07A9A70683E8D03F
F421D37C558BABDF1389102B2E4427448CF9D3EC745F87C6B970C7AA2A0D0373
AFD00324D47487B33E335ED4A850D4195FD05FEC6E864BA4E9C72CEDE18207E3
597838606BEBB1150637FC79798BD2CD18F7FE5FA60F8FEFF89AE6B0FA468BB9
C38089C05B49BA1CDBDDB40715BB20F659A8553D4FE63F2CD5A4C3C627CE252A
9058EEB29BA9F90E69727ACC6CB705F3A51D1D1B4A3A4D7CBC53FB9916CC1FFA
2DCCA0E1BB275480F173E9E565D5B3581F2CD148A2D7AC0F072B0DEDD92E2320
0D48A2D1A21F00D8EC27B2840BFF210DCBFB89B0E7A6ACAD1FB9F73ACDE3037E
CDBB9B62A0B1CB500417F36A8A70B309281CC592B689114E06896536E79CA043
213962462A6E79BA5AE61D82EEE6CDE9A7878F8AAF84588727538A70E346B80A
24A4C5EFE6342C38C335FE9B46A7F7DDFE091477F0C020B40D2352D7F50AB515
795E60906ADA155CFEA213D90C11DCDE1C9A8DBAFF45E562C9929DFCD863FA47
0937D34E73B01868A0F6772F7E0353026097B916A2D952A0289B7007E32C074F
CAA9B38B81EFC7B1313C5D00F88C5F068A02224AA46903836B20C5241C3266C7
F18C157ECFC0EDF5C1A835DFB194C2C1112E02AF28F500FE4C680F39042E880E
FBB55CB05298E82E7EBA0A69CAED282D56098212F8B73801D42FE9505AAD177D
3422E7AD6EAE8E97512926073E2940F9C9AC2F48CE3B13497843AF201D6B6B64
32238DC319F66C3E7E2118CAB1110F5DDF17B5A0ECCD97FFB1CEDA94FDDC8040
52FD1C57F7E66BE37F1A33D440BF2F4AFBBCB38797E32D9ED00CB78D9FCDA9C3
4B3E98B085C9BE53FDD4241324181A62493942C21F78C88A7D8D2345382517E4
42F191649B1A74C5D7C2B43164666282BE2956CB777A838B879F044CA1D1CD78
C2BDAB54A72511C29CB289655E41843869013840A68027DAF0C549CA3760B60C
B8E0819AC2B88F09F3C6D31EC3CBB473363EA397BDB78E912D724C9E3E419E73
94EA9BF281C2BF8F00CA535B079C7DEBEB727E5E7D0E0204870F92D71DE705E1
1846972B3D45EB1487A77C218AB7852D683730B5CA16F599E00DE83226D80516
5176621A65E12D48284DD265D56FC330D9290066454370198D9770FE4E10DC7A
EFAD00E7717CAF5931D1BB8307D587B89B535EAEECD6DE63AFDD6D61B013202E
CBCF3337F7E982EA2F32BEF54F522F9F1867DD30B628861D15539359AEBDC060
A756F4E6B5867259933D91215DC32B2CBCD08335A3A2F5C501AF422A961EB188
76622B3ECCABCBF3276CCF83B07D20444DDCBCD728784649170B7CF1E13CAE2E
DB4423DB8A6AD7ACC12CC0EAA93B48F0A82C45E14D6DB4D88ECE6724E1D3512D
7570ECE04BB2DA767401E742205B4962677B0F04DA96EC4143917AA9C3C7F832
0CE3E99FB8980962968C8D8C77E40EFB211029C725A872AB549C0E44CAB2D033
08BCE7D54F951917881E289D411B7F9CF62E850D979CA9A9B4F1B993AEB8E40A
45A6F7E178DBC7DDEF689DCB3716668FE53809996A636B187B0E5136BFA883CE
F2FECF459920E58D453937FEE8DC4A562E1747531860F1DEDCFA8022B40ECC6E
0651E6E710337D5C340C1B5E7315B6C788A2D7B2A1A2E17AE2EC1F9A19137D85
6B97EF446C16B33F2EB9B5E5BA62C9ACCE5A56880D3C052B40A5B4F6DF4BA7AF
63675AFE59D925C328E85956F5E873B3199D1587EB3786ED7C223AE9CC580377
F9312B24BBC20C89AB5894D807D2ACA57AB522F65BF8C2ED5FA0394761BCE8A8
EFD4DD67954EA00127D6DCDC1F34BCF10A05D699658DCC4BA2002623E9488AAE
037E2BCF2872BD4757BCC1EABB3AC5BD53997109155647E74606E36BC01B777E
B5DF4290548694898999E0D010E21B15A9F9952644DEE4BFE4BC9144302F8CA6
0ECA6DB2CB809729B51AF8AA5EE0718CF5B888D26D968D0C6859C513009D06A6
A752724C7DBDBC0E44A1519A4FBF3751D45674E1A48BBF77511F10916C0B64F7
56A6397A6F87470433B5D6B4BCA543AC09BC6EBC2AAEE66366CF2D712AC54A9C
22C8EB38DD43A3A9259E65AFBB66BBE006C91BF3A33F5C96140EA1909664A52D
1DD8AC38E0874DD82C3C1DA26F174862691D6FF3A184ED4CBE325FF0009F3DF3
58063B1B87DC2082BF928B86631C8AE7B6E5E6F740A22CDFDE990B85C8C95661
46E1C9AF820165F23F79CE75BE8BEACE1A93BB99F090D77A5001DF044E8250AC
50D1132E13C5DA0E3AB87B8032DEBD4172AE3C1450773CDB95778C038029D7CC
B9617DF174352590FA1A5D59A6409FFEC99BF0262E2C9CA86E3FAB1D7B3E2B5C
ED9A12D619817A979A37E8A795E65A2C597A5FFB20639E02162CF3C89002C9ED
79357F3C287213C2331681A5A83B19562A7AE8C7F145ABCC8064F754348836E4
A9149FF7D6C902698914027F26270BA0B900DCA5B54A7149946F450C3F099A0D
D7BA65F2A63F85B2F0AA00C1317B18A981C62FDA579BF9D4AFF8935EE4FDB17D
86566BE4FBB131807B983D7E435331853B0E37C1F081864BDF90E616CB6C6225
7743C718EEA4427EA841C2B18CD64FE10A97C4F0F312270CD53B107047194E94
5F68F13D1B7A709240DDE46B5CD930179CFA9FB55FCBFB6735E7424DD1DA7389
87B3CC0556367AE585BEA4794B973B299BD3EE4D9FA80833042297973210041A
97D389C51C7715FE143F36F0600682A0B2D9FF2A32752F385AA6431DEEA4F4F7
727834A01CB8FB8521238AAB2840E0C0B8D8E9EA78671AD5FDE58A29C3984917
92674B76312846AA81ABCD41AE8FA2E606D014E0B809F1392E77286995D05DB0
0B6707915FBA9CBD725428E6BAAA754DC45499A430CE931EA84A432C88003580
42ADD71F3290FD1E099F3542C1C0058A88CBBF059DEA3DCC463CD567231CAFC5
6C6918ABB202A048B710C2762E6BE6EABDE006A2557CF525831C42F6119FC97C
BC5362C9D26C535CC109345F27C1EFEFD7BB6C851B94FA8F041A7DF0647C4189
2F36858579E3A8117C8D166DA1203E956BEF76B53A96229D17B9A0AC825D0D8C
985F5CD86C6BC4410FA3FD976128C2FB3C11D28C42BF48C412CBEF8DC43A3E82
8ADE7AB8FEFBC97A7C56A87AD689899B3E5D425178BA486D128A441701812B2E
155D773C36EFC26E895B1E42C266C0A42FFB9843B1543D612AE11A9BB79F667C
BC1EB4B71F90EAA3F76E7A74E14C67A702DDFA7D47527DA34075E55513DF8CBE
9805495F6D9465C9E6C125578FF2FAD484A20D1236ACA83CB397F36758EF29E3
008B29781C8AE84EF10271631A505802A815EA85DCF750C94CBC7078FECF2633
461CB3786651E2D9A1D5843E346360BA511DA13FA80C38AAF32FC71F83760C17
2BAD518FE7D7F3BC4D519D00242DBED65B9DBE9CE156DFF29A8BE5509A999044
E7C773C7FCBC7DE8E39CCD8A2AD23847A5375C668426024577B92BAF13737982
D0F4FEBFC0B737ABAABC60413DA58E484ACF4CFC5D000AA7F716D73CEAE4EF7D
D0583E039FC5581D45B20BC7E997BA580900C317209B3438693B81FE56A089E9
2B45DA8FE45ED4B4495EB7B7DFAF908498EB1E083FFD92F6BBAA81152F2182FD
38633737BE1A8F1306C28BE15EB1A9C62E34695EBC19FBA95616C5EE9011C793
44451F7EB64694A13BBACF00BD13CD1A53723145B924A7816B8BB903AF48269A
5A2C190F02C5796FC21DCCE0E5E8ABFEAED20AD3AF2986E166079D6E4E724B6D
295FD7A137DC0827C7E7BC12EB5E852EDB1D8196141F5DCF225D797EC491BD58
B40F99AD789075C138C7111C0CD94916861E1635B28A56E7AB874EC147A9B520
D2747FF57C462C505031BF269CC8B8944179F52BD89309B0EF555BEACE3EE882
DA6D5B23900D951B52DBBF6D599A456E1C26A764881E4CF9B6441E614DBC6FF0
22E41E54FDDC9261BD091C14DD2CEB08E465664D9641B90D514D890952625E89
C8FE9D3683FC9555D345994554DDB1AA757554EB7213ACB5E23F2EC9E0B366CC
3918AB38BE0CF3142B017B1D6A82930035B8DBA75E4C82B3F05C471C16A39F58
5BE508CD96725D68622D374B2D9DF5E20AB55211C688D82241AEC10C5F34524C
713F440298F0C972EE583D7DAD6DF8A4ECA94D74E386580FD6F17EF1C500407F
93B2289EA48CBECEFDEF0FE42468B8F995DCE0E0EBC3331030F9E643DEC6FA43
B217D08818769349B66F543DD4D615BC7422811B515DBFE38C7BCDF873CCAA9B
229E05B247B5E1CDA8ECC2B2DD9EAFE1ECB46A9984720984ADE2F7CAC17F29F2
AEC25F3569706327C9B1874AE5CA3D9EED82789A97E5E472D29B44AD4F067205
57713A251B3E0189DC75DDA15AB7AB5C8BD70408AAEFB7C2D64567AFD28D2441
C87B3A24F95BD0EFFDCD4AC40AA1654869FC996DFB4BF398A3BE1615B42A5BF3
51CA13D3EB4DD8DF09E042254EA1014128C8F3A16DDCFB327D1EEAE7FBD60210
52896DEAE39BA93CDF5EA4CF44B5606C894327FB1384F1631A13A40DB6C9A171
FE440F2703849E0BA34FE0CA0D4C1FC9325096107F7E0DAE33972DD7EA56B64C
1143A671EFA91DA6164FAA378BB47717AFD582FBBFCC5079179A014B09BA5E4F
1921B31139230E21CD4F51B8ACF4B124FC627EFB24C59D537584D2E0176EDE3D
F28018366A9DC6D32A524ADC1AC95FECAE94F6BCFC34BD966830F89DDD183027
81DEB19FB81642C2248BDAFE1E76AF63E2E5D7B877A35E0EFA8B31560281EF50
C7E30E6D51DEC5815FF32C8D77E4998A9371B77A8E0011BC5E11491CFFC0B194
82454CAE336A9D3B86CFA3A511BDBDF5A9FA1BB86BBCCAAC317B20ED0CF5B808
8120204E23A07F6C0E13446D6FAE7C5F1A72C2A205FF0D805A63A7040CEED398
22969E4915A3B9FDE22FF9B51DCD706F80D1D6B564EE47F6564EC8684BEE04DE
7A737A2AA16D61CFC9F1FC46679D110666B558C597C25808CCD4E792B357FAE2
48E81C572A431F77168F45B478C45AE1F8D941972BCF70322EA91042A3F2C2CF
25F90D648F6DFF6BF44DDDCFE538195FF0509A630C430315D82C6B6AC0FE40C8
D6326397CC9710B327289ABF1E7A9ADA9F96A0EF63BC555BD3EA6BBE56C8E8E0
A5B3D5C2A3242F825F865C87A9958509460EBAB50FCBE4018297038650A0A988
4503FEA808399FDBDDFBD0448A26AC3CC0738301BAC87757F68455764C04FB46
DA8ED6DA80738F50D45D1D2BB96B2ED4427C8D115534C849AB959E0ACA334ADB
C1213FE6A99BD6647FD6EC8EC55B41D0FFFC677D913D48FAA4F2203F43458736
71B4C678BE42D124DAA986A6E0BC1A634308AA35AA5B1BEA20AE164CD35F6343
E2E21E4F339D471D227E25AAB6DE30F8715C8C1F62A66160833E07A78036AC10
6B3F0B6E559E6049F6C65E25547E8270CB82864B0EC463621CCA7D76EEBC9361
5F56E1E22C476241F9D804997C5353AD62715113DA0AC722B990527E4BF6D172
4BBFA0A0AA0C5CA8008FC177A05F7908111D61865E8737DBDAF30E92164B39E6
58583B4A0583EBA4203AB1532DF32BFA8A72A48FB4B585F9DD9ECF88622EEBFF
EDE453A1C00148A6B718D7CADE28C2DF77B7EA48C81491E94852D326738E92AE
29ED6ADD34C78190593E83404AD4BCCBB6CDFEAE9D4F177F71103206CA4B2D30
E4DA7DCBF952616648EB555A445739868AA4A14A75B05DB425937450222F9BBF
64F7C19BE2D5DA4EF552F40503BD7F3EA50E8C2A162AA8A844F0922DE1E577D8
770FAAB2541F2212D61622683CBF025160174F914B098283646B37DADE179CDD
50609510739EB25E11388DEE403D1B9CF2D5ED8F472AC9413069CDCBBBADFF24
6BAA20942B7F8374DEE26ACD9411DBF4706C4B892A9DD5817FCE01C0494CC23C
047EDECA0BB875FD5244550DD25E62EF09299F74205A66978C912C5A53C6B4E8
D08E5A1939955FD15E8E5100DC6EDED963DB99B422CE461EDECB09BAB62CF8C8
0F1A5EA6C6CDF8CB80FD3C042CAF38404C1C316B9FFCF8B52E4683B33EA525B6
7103B83C2B7B2538FF157C564876BE135246768C9FC7ED67EC6AFB708870AC09
911E384A83B35E00B44A3A4BD1DD43153F2CFD11E72695CAC8AFD5F3803A9435
51BFFC367448EB7FE9D193C58661E3954E42EB60F72CE9D30182144F78B9B127
B7305C61B97638530B15715670AA4946FBDF19865FFB380C1CF5E814E27D8C27
9112A309A85846044215AD34ABD5DBB9A6CD61A02507B4D6BFA05995BB8871EA
8E9695A147EE66A210F1E217A2E52B345BE95891AC31C6B3E95876DAC5891FAC
5CCF1A6C451D59491398614DF4166041B9C0CA71F52FCF46D85F080185E5020B
995458A641715B12387001934B33354349522715A6B6AF9510AB8E9DCE3890F1
7310B5F8024E0B402B34B4F152BF4696D8A77614D3279ED6AAFFF6FB8DBF2052
5AC7675F7EE907A6A9E24F69643A17D96284FB2ACAEF0327833B91E74562841B
9647D4E45365EB5F143C068B560BC54627D2B4AC3E0CD6574BEF0A6D8707FD89
182B8613E9E0C43CD6CA97538CFD387DB8BCEA74F30A1234363407A511DC27B7
5F32A3C8ACA1F86D2E9043880EE84275E68419E79D161A0013E0A109EA37BD68
6B1E1AD4D5B50FFCEDE468DBB54D8CD564A02699FA10C65D87E5D8D28E391A5C
C3BC6AE2E18F71DAC5EA7F271B6C6832FDBF0D8D25104CF52BD93912398F6751
04F081F02D01ADC4F8845493EB11C5EC45C3673C2A785F70E3E3C696200C54D0
B35553C773F42057F10A7977FAF61697CE1D1E66AFC9ED7FC59C31ED12814343
2DC663B506C6AAA7F416065EF6830C21739FAB9FBEF85236D165F8FDB3ECBFE7
A15CFF27A4D6011C2C300A813C00524CE6C54EDC08920659EEBC434CF13294CE
6D31A137A49FAAFE7ACE6A13029A3F1258C1F00C296BF9838984F0AEC83848E1
90616090EB1CB156E5416B06F57135FBA8513565364070A315EB58874FB05E18
6EA1B28F4218F4BCEB6FD1308175FF6C279BA6E003E984B6701BB4E1FDB3524D
DE45A62C8B6CD6D076263BDC8E2DAF770ABC416980141AF61E93F104FF825EEE
38C47092D068E8A387CFC722271EEB54977366BAE5B59A28E2907B2FABF4BE0E
3B213D8BFB40EB63F6985405D1322FDB941168A14D5908847351C613DC9AB450
F30F2FA3E7E587CF0BF5C212958396DB53559E255813B1A3230847383DE89757
F8D5DB7B2A40ED6B17851CB4F16C6B92E36D56AA8879D35FA42741E56F8BB482
5CDE18EC31720C3A4ED4E1D9B0DA78F33BC3766310EADBC2E62EEFA37E5B6F5D
548954B8BCF32391084B7624F90CDC81BA7C859B328FFD4CCB10037B74B6AA2E
3490B6792BF8AE8BD32484BE3BBC6CF4AA9520A5453DC57B84C0191593463399
3E0DBA9A650C7C4E1EA4B89C92EE2969FC3DECFA3476857AB671A7C448E9E34A
ECA841CFFA739F5AFC35E6D79874BD3E2EA8D296AAE4CA5B6638B42B4532D73F
9A827505C2FF61C679FEDEDF42A89238EFF0ED6262CCCF1C83D7C853582CECD6
ACAA428D727EB24C7D73BD180BB4656BB86C4FD851E0B4630BEC3A26E8E8AA35
EF46DA4ED0DC5265BECEF32EC4276B232028C0F838AD7ED8302840D0028C8D09
E6339EDC71B1296946153D0CF942074774A641BEC0EBA5F8E1339057F5894EDC
71C129E2A6FA176658ED2ACD7624CD0A1C097B1D2D473C2BC3B6AA57FE523C7F
8C8E440D35DC20742596B4CB3BDAFE616CB5E62AE65D31591D86404824AE822C
11A005FF2126019C235F46E97017EB522D9607EBE470A7829E7C26644E8FF329
14D99E34D496CD5BF856DC28DFB0D444F1645B91A66BFFC2E8BE1E16FFF6C014
531CF12A160AB4A04C60AA8128FD963C41BACCB964DA973BEF5E9A24135D97F3
F5366C576598570701B017D6B926CC26EF1B5D542CE5E1F70F6D1E87503BA8B4
03B6FF8B89FBC69CE1CE1D4350D9FBCB4F82911F1703EBA205FA9334D610AD4D
7A1CC4D1E6C1F4CEA2B44EACCFDAF8E03380D28601CC1D9348C97D8F9CE57EEA
E47FBBDD1380BE9DE4EDB9DAB33DE3902C0A21658FDECC414EC3B3A0EED730FC
C48AD1E41183A824E52F97BD1A2A2064A57465AD4C43BDE090AECFD9D6367BDB
12BBB6A243D46477EE41DFDFDB2B117932EC0D031D72A308FC31A15F849FCE51
8DBC93E3E0CA7616450E70FD78608545568E5D6A48671984C2DDC3E1E1D9F1A9
85D99FC7B17BDC29A205DDF584A84547DCA587C2A954DF22D576850847B52D68
BA8030B7931FBAF0AB8D08A765E24DE5F0D8B221BD705E2003502134DEC27581
18E341F63C4E112C22870E7BF587D2886C42E16F206900F3667B3D3383E1304F
DBD345CFB73716CA68ACA9791DF448074464F4B50CCEEC86E21E3C3A914AB2E2
42336C063BB1236E0D4D48C957B4B6C9ECBFE9A96494FFD42DAEE4536A1FF654
A9C7C34B296FD670C6C1C6BF3B6FA4C24EE3758C588A47D94E96FBDC5FF9BECD
A8BBCB4BA781008B6A5CC88493CBE3F6D74E67E5CD30BC3872077D886AAC9F9C
C070D36E84E752A2A636CF68F451FBC903450B9FD36792C1CF9E49CC98B4890A
B65231EAF73628ECC8B3C318901FF387326E2CC40A3218A79071ACF1A225CB0C
FC850EF019A47820388A26586AB2979166B97F1E167A64426E08C03B4EA97213
61F08047F258694E32087F982EE546B9B5A5BA3E8CD96377A0B5690C5F0020A7
96FB7829996F9D25D67EE802E05AA9A40290FAB56CE8F8D1447216BB83AE7B63
B96722E3E9466215BF614F1D8AFC25E59C2EB9C2C7D13F5B9D00D18A998D618F
BE7ADB4129B33A71C35B11E2E9DE1961E623A39AA6276FF6E4ECC389360D6075
554162F67D69D66D5FB21359E375E528E1E14D7CB385C3E8476F900207C7E8AA
9474F526899E8EC5027BE24D551E74C8C99B39160551F7B7BE2003F8D9343939
49305B8D3522FEAB0D0C413FBDE5F6397618C5E7DA59ED5BC3FA4CD95CFC98CC
ACB69A0A7803ECEABDA3FB3589EAB7551D7E1E3D0DFA60D4F1FDCECCC2BD79FA
C806C2CCE4DF768D8454893403B10BB44A2D23629372B018D10F184614DC9C59
F10DEC6D77AB55A710C807E7D555995673508F2228F427A37855549508A6F41F
880D9E983C9FFA5E0B1E8829525804536BCF213CB21E7D0A94F2C13E1599B2EB
135464B3B6CA16D1A3E5424CA492C77963C098F398B61CA9D713E0D86C7F223E
CA4C83F02025A632339487C7CB700CE2B648A84B8A96D405E93F686066EFE7F9
3601B8A93E1E17B4EA42FE70D24C7E18CDA5CC7CE64B6B5C96888935DF566C84
99AA5688329E1DAA4073F7EC4FFB0DDD5D3E430D2ED49E31D611F97984AB0D7E
7E151E6B18DCD4DCFF6F0952EDC070C71798CFE7F458A3533D7608C131265743
B34354738E20F027AC853F5FE6BFBE06A9431C7BC6E86B9F74EA06843E71E749
8471F0F91BF4C9EB8AEAFE5C7DA3B6317266AE50991E4F658CB22077273441AC
D8788536F218BEB4F32A95F802755A902AAF18FED775CB55BE2301E115BF3834
DBD7D9A09E6031E8D366B7B1F5B2F6143406372388354E221E736BAF04DB167E
423AB83D3FB3416F3FAB96FCFFA567CE33E5C684EB6A5FAE0106EDE8E26D86C3
916B4BFEFCBB239A592E0610F5B879CBC0CFFFC5C6F1C1D60DAB644ED9671882
89787E9AAE0779271A5E608103DD84A19D22651FAD3F47E1C71A0A429B751F25
405C770D8F1F014892446E7ABB968D5F30AB29EF6C00F45723E03C9C33FCEFE3
778CCC1769123D59372C1260DA94D75D1FEA47B8860A6674522C415EAF1372E5
A2F0299CC85619A331EB47B492AB04C22D02977D239697703ECB8FF91FCE19DB
33EECA83DA27D6C99679801EEB419803F8C78EA9AC14B7FA77B4334D09C56980
BAAC8CEB54DB7363EC708ECDF3A858996BF50D9BC98E8825E3D0731387EA967F
B16E477EAEE8486B8B428C497004A16777B440C1BE6B194DAFE214C8512085F8
45AFD6AD0202D937F11EF41C09B62A76C4729C4720916EAFA5CF0F2B536337B7
38167F80AB0393FCF141E31CF356199858645544DF50965FBB2AD9738E22FB25
7CF67EE01BD054345DF144731D396FC10418ADF0AB6D860358AC0ECD35576567
F427153D2EAA47A94FA141D9A90D5B06AC547F873647CA5DB91FB5EFE02D764E
3F5A7D7B1B79A48B876B9B1131FF3B7E3DC14D3CA47C9914277CD8AFB4D8DFD8
3FAA28D06D9C98CA4F72B6FA1A3DCF8B62559584932A9E7000EBA74B76304119
1CEC18643B0C195D48E6AB0596FE33C56265F76F580BB4AEEF851BFE33A0386A
A986B0963ACFCE2954D72840F6C47A20A842F4030C7E7CB22453957F4510F279
BD8378CEFF2CFCFC864A53299D02EE336E820566272A7FBD161969DFCBBCF3A1
FADE251D3A1CE607A21CF3A07E1B40F4D303E8000C3AF67612D7D1040EBB4008
4DCB1AC2E82E0F96795ED044FCEB28DAA619F2499A80430D74A3DF6FE928726B
0902342AE27753E36AF2CD68DA7A39641D76EAF425E6079D0B01DA2B0033B22D
9E28588F45E886A3BB1CD5DA3194F07670BABC5FFD5F430D3B5BB616A809ED06
EA2F183D9D6A672A93E92A36CA61A235901597DE9812713A118A51107EBC1A25
7A6CB70D73ED31318A7314A3C3D0C35C9BDB25155878F4AAB36ED33D8DC1294D
84EA63B78170786493CB3CA7EA7A3DF8844758229829AEADDD93203B38B2085B
81FE224939B203E64E400BC0D7EED4DC438E0942928E89DCF80F7C510A2B1F87
97D83BCE1F0AE770D59E03498868A302E40147792168A9C07A60BF308F2F689B
5FB4E9BC9F7DBA4068C52A25CB31F180DECF0C5D80292D89B5F61FFC3846AE9C
F0D774B011044C43F547BC1E6B8A0D32E5B25D12803EE8F260D2F8A956A5B46F
6B795EC9E40D1458E7C2D416DE04456EF0624DFA0E8F4279C50B3DFEFA57E3B4
7EED73A53F4635ACA9CA58899427418741803A65BEF5C12B58221E6C685C4B04
04AA4391E8B16C9E7D044902F38929BAE586471ADD2C42F58BC7F126A3BE43F3
736935703A2593B6909A9075582D57731EB5E73A8CD2568620A99017A021FD0D
0F346DBB9DFBEC179B3070968000112ACD77FBF93F9882CC6D171CF9F3CF19FC
F87F9312E9A30ED4245588A00DE6FC587EC478361CECB9FFCDF1A47A662DCADC
218BCDE6C92E1633F01A1C5665FE00F722A48AF55A373A4349C35D866BC4AF64
429E0BF610943FFF401A8EB08A0E6674E171D994BB79E2FEAE8ADFFBC4A2FA4F
FB80E16038BB2D7EA409374AA194754B711868431B3ED8EAD9D7B14616AC5C98
0F2FC106F7C6A78B838D788497F0BC2A7D4598B5F11380385E17D9786D5AEB00
ED987B1047EE244A645F458C8785D372D90E71F89F73B97A4CA9B34535A29136
9F97926F249DE89A572AB57A4E5D82C484CCDAA5DB645DAEE36231C7472F2BA5
29F46FFE55CEC8F4770031564696B5DB9102C854E9EC60C5BCD6E1EBC8623DBF
891C89C4BFB53A6A2C7B9A7004A58D0A1B7E65C39361B88D41E392938F09B48D
7B82E3C8BF0129EC393F1F4A78B0FF832CA1A7A702C7FCB85A7FBFE1A9CA2403
F0AEBBBDB6D490F6A65504B5A1F8CEEF14BF73D7BE2FFAA3665A7ADE79B73085
D4AF6BE52B26E45F1368F929AE47A25AD81E36FFF85B048878BA7E500D22BDAF
3D3C08BC57D7B546F54060C1F42C5A13064DB85A3EE7ECFAE562B1D8F759555D
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -6616,7 +6628,7 @@ rf /Ff 134[26 26 36 26 28 19 20 20 26 28 25 28 42 14
54.5455 /CMBX12 rf /Fj 133[20 24 24 33 24 25 18 18 18
24 25 23 25 38 13 24 1[13 25 23 14 20 25 20 25 23 9[47
1[34 33 25 33 1[31 35 34 42 28 35 1[16 34 1[30 31 35
33 32 34 15[23 23 2[15 31[25 25 12[{}49 45.4545 /CMSL10
33 32 34 15[23 23 2[15 31[25 25 27 11[{}50 45.4545 /CMSL10
rf /Fk 134[22 1[30 21 24 15 19 19 1[23 23 26 37 12 2[14
1[21 1[21 23 21 1[23 84[26 12[{}19 45.4545 /CMTI10 rf
/Fl 134[24 24 24 24 24 24 24 24 24 24 24 24 24 24 24
@@ -6667,9 +6679,9 @@ b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6
b(oundation)p 75 2570 1800 9 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 75 2207 a Ft(This)13 b(man)o(ual)g(describ)q(es)h
(the)g(GNU)f(Readline)h(Library)f(\(v)o(ersion)f(7.0,)h(7)g(Decem)o(b)q
(er)h(2017\),)e(a)h(library)75 2262 y(whic)o(h)19 b(aids)h(in)f(the)h
TeXDict begin 2 1 bop 75 2207 a Ft(This)11 b(man)o(ual)g(describ)q(es)i
(the)e(GNU)h(Readline)g(Library)f(\(v)o(ersion)g(7.0,)g(28)g(Decem)o(b)
q(er)h(2017\),)f(a)g(library)75 2262 y(whic)o(h)19 b(aids)h(in)f(the)h
(consistency)f(of)g(user)h(in)o(terface)f(across)g(discrete)g(programs)
g(whic)o(h)g(pro)o(vide)g(a)75 2316 y(command)c(line)g(in)o(terface.)75
2384 y(Cop)o(yrigh)o(t)301 2383 y(c)289 2384 y Fq(\015)g
@@ -7620,83 +7632,108 @@ b(Unquoted)11 b(text)f(is)h(assumed)f(to)h(b)q(e)g(a)f(function)h
Fs(")p Ft(')f(and)h(`)p Fs(')p Ft('.)34 b(F)l(or)315
369 y(example,)13 b(the)g(follo)o(wing)d(binding)j(will)f(mak)o(e)g(`)p
Fl(C-x)i Fs(\\)p Ft(')f(insert)f(a)h(single)f(`)p Fs(\\)p
Ft(')g(in)o(to)g(the)h(line:)435 435 y Fs("\\C-x\\\\":)23
b("\\\\")75 532 y Fi(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)75
605 y Ft(Readline)f(implemen)o(ts)e(a)h(facilit)o(y)f(similar)f(in)i
Ft(')g(in)o(to)g(the)h(line:)435 436 y Fs("\\C-x\\\\":)23
b("\\\\")75 537 y Fi(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)75
610 y Ft(Readline)f(implemen)o(ts)e(a)h(facilit)o(y)f(similar)f(in)i
(spirit)g(to)f(the)i(conditional)e(compilation)f(features)i(of)75
660 y(the)d(C)h(prepro)q(cessor)f(whic)o(h)g(allo)o(ws)f(k)o(ey)h
665 y(the)d(C)h(prepro)q(cessor)f(whic)o(h)g(allo)o(ws)f(k)o(ey)h
(bindings)g(and)h(v)m(ariable)e(settings)h(to)f(b)q(e)i(p)q(erformed)g
(as)f(the)75 715 y(result)g(of)f(tests.)20 b(There)15
b(are)g(four)g(parser)g(directiv)o(es)f(used.)75 792
(as)f(the)75 720 y(result)g(of)f(tests.)20 b(There)15
b(are)g(four)g(parser)g(directiv)o(es)f(used.)75 801
y Fs($if)168 b Ft(The)16 b Fs($if)f Ft(construct)g(allo)o(ws)f
(bindings)i(to)f(b)q(e)h(made)g(based)g(on)f(the)h(editing)f(mo)q(de,)h
(the)315 847 y(terminal)i(b)q(eing)h(used,)h(or)f(the)g(application)f
(using)g(Readline.)32 b(The)19 b(text)g(of)f(the)i(test)315
902 y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)g(no)g(c)o(haracters)
f(are)h(required)h(to)e(isolate)g(it.)315 979 y Fs(mode)144
b Ft(The)15 b Fs(mode=)g Ft(form)f(of)h(the)g Fs($if)f
Ft(directiv)o(e)h(is)f(used)i(to)e(test)h(whether)g(Read-)555
1034 y(line)21 b(is)g(in)h Fs(emacs)f Ft(or)g Fs(vi)g
(the)315 856 y(terminal)h(b)q(eing)h(used,)h(or)f(the)g(application)f
(using)h(Readline.)29 b(The)18 b(text)g(of)g(the)g(test,)315
910 y(after)c(an)o(y)g(comparison)g(op)q(erator,)g(extends)h(to)f(the)h
(end)g(of)g(the)g(line;)f(unless)h(otherwise)315 965
y(noted,)g(no)g(c)o(haracters)f(are)h(required)h(to)e(isolate)g(it.)315
1046 y Fs(mode)144 b Ft(The)15 b Fs(mode=)g Ft(form)f(of)h(the)g
Fs($if)f Ft(directiv)o(e)h(is)f(used)i(to)e(test)h(whether)g(Read-)555
1100 y(line)21 b(is)g(in)h Fs(emacs)f Ft(or)g Fs(vi)g
Ft(mo)q(de.)40 b(This)21 b(ma)o(y)g(b)q(e)h(used)g(in)g(conjunction)555
1089 y(with)d(the)h(`)p Fs(set)14 b(keymap)p Ft(')19
1155 y(with)d(the)h(`)p Fs(set)14 b(keymap)p Ft(')19
b(command,)h(for)f(instance,)h(to)f(set)h(bindings)f(in)555
1144 y(the)d Fs(emacs-standard)e Ft(and)i Fs(emacs-ctlx)e
Ft(k)o(eymaps)i(only)f(if)g(Readline)h(is)555 1199 y(starting)e(out)g
(in)h Fs(emacs)g Ft(mo)q(de.)315 1276 y Fs(term)144 b
1210 y(the)d Fs(emacs-standard)e Ft(and)i Fs(emacs-ctlx)e
Ft(k)o(eymaps)i(only)f(if)g(Readline)h(is)555 1265 y(starting)e(out)g
(in)h Fs(emacs)g Ft(mo)q(de.)315 1345 y Fs(term)144 b
Ft(The)14 b Fs(term=)e Ft(form)h(ma)o(y)g(b)q(e)h(used)g(to)f(include)h
(terminal-sp)q(eci\014c)f(k)o(ey)g(bind-)555 1331 y(ings,)18
(terminal-sp)q(eci\014c)f(k)o(ey)g(bind-)555 1400 y(ings,)18
b(p)q(erhaps)h(to)e(bind)h(the)h(k)o(ey)e(sequences)j(output)e(b)o(y)g
(the)g(terminal's)555 1386 y(function)12 b(k)o(eys.)18
(the)g(terminal's)555 1455 y(function)12 b(k)o(eys.)18
b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)f(side)g(of)h(the)g(`)p
Fs(=)p Ft(')f(is)g(tested)h(against)555 1440 y(b)q(oth)j(the)g(full)g
Fs(=)p Ft(')f(is)g(tested)h(against)555 1510 y(b)q(oth)j(the)g(full)g
(name)g(of)f(the)h(terminal)f(and)h(the)g(p)q(ortion)g(of)f(the)h
(terminal)555 1495 y(name)i(b)q(efore)g(the)g(\014rst)f(`)p
(terminal)555 1565 y(name)i(b)q(efore)g(the)g(\014rst)f(`)p
Fs(-)p Ft('.)24 b(This)16 b(allo)o(ws)f Fs(sun)h Ft(to)g(matc)o(h)h(b)q
(oth)f Fs(sun)h Ft(and)555 1550 y Fs(sun-cmd)p Ft(,)d(for)g(instance.)
315 1627 y Fs(version)72 b Ft(The)23 b Fs(version)e Ft(test)h(ma)o(y)f
(oth)f Fs(sun)h Ft(and)555 1619 y Fs(sun-cmd)p Ft(,)d(for)g(instance.)
315 1700 y Fs(version)72 b Ft(The)23 b Fs(version)e Ft(test)h(ma)o(y)f
(b)q(e)i(used)g(to)f(p)q(erform)g(comparisons)f(against)555
1682 y(sp)q(eci\014c)h(Readline)f(v)o(ersions.)36 b(The)21
1755 y(sp)q(eci\014c)h(Readline)f(v)o(ersions.)36 b(The)21
b Fs(version)f Ft(expands)h(to)f(the)h(curren)o(t)555
1737 y(Readline)12 b(v)o(ersion.)18 b(The)12 b(set)g(of)g(comparison)f
1809 y(Readline)12 b(v)o(ersion.)18 b(The)12 b(set)g(of)g(comparison)f
(op)q(erators)g(includes)h(`)p Fs(=)p Ft(')f(\(and)555
1792 y(`)p Fs(==)p Ft('\),)j(`)p Fs(!=)p Ft(',)h(`)p
1864 y(`)p Fs(==)p Ft('\),)j(`)p Fs(!=)p Ft(',)h(`)p
Fs(<=)p Ft(',)g(`)p Fs(>=)p Ft(',)g(`)p Fs(<)p Ft(',)f(and)j(`)p
Fs(>)p Ft('.)k(The)16 b(v)o(ersion)f(n)o(um)o(b)q(er)i(supplied)f(on)
555 1846 y(the)c(righ)o(t)e(side)h(of)h(the)f(op)q(erator)g(consists)g
(of)g(a)g(ma)s(jor)f(v)o(ersion)h(n)o(um)o(b)q(er,)h(an)555
1901 y(optional)h(decimal)g(p)q(oin)o(t,)h(and)g(an)g(optional)f(minor)
g(v)o(ersion)g(\(e.g.,)g(`)p Fs(7.1)p Ft('\).)555 1956
y(If)i(the)h(minor)e(v)o(ersion)h(is)f(omitted,)g(it)h(is)f(assumed)i
(to)e(b)q(e)i(`)p Fs(0)p Ft('.)315 2033 y Fs(application)555
2088 y Ft(The)11 b Fj(application)f Ft(construct)h(is)f(used)i(to)e
(include)h(application-sp)q(eci\014c)g(set-)555 2143
y(tings.)18 b(Eac)o(h)12 b(program)f(using)i(the)f(Readline)h(library)e
(sets)h(the)g Fj(application)555 2198 y(name)p Ft(,)g(and)g(y)o(ou)f
(can)h(test)f(for)g(a)g(particular)f(v)m(alue.)19 b(This)11
b(could)h(b)q(e)g(used)h(to)555 2253 y(bind)k(k)o(ey)f(sequences)i(to)d
(functions)i(useful)f(for)g(a)g(sp)q(eci\014c)h(program.)23
b(F)l(or)555 2307 y(instance,)16 b(the)h(follo)o(wing)d(command)j(adds)
f(a)g(k)o(ey)h(sequence)g(that)f(quotes)555 2362 y(the)f(curren)o(t)g
(or)g(previous)g(w)o(ord)f(in)i(Bash:)675 2428 y Fs($if)23
b(Bash)675 2483 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)675
2538 y("\\C-xq":)g("\\eb\\"\\ef\\"")675 2593 y($endif)75
2670 y($endif)96 b Ft(This)15 b(command,)f(as)h(seen)h(in)f(the)g
(previous)g(example,)g(terminates)f(an)h Fs($if)f Ft(command.)p
eop end
555 1919 y(the)h(righ)o(t)f(side)h(of)f(the)i(op)q(erator)e(consists)g
(of)h(a)f(ma)s(jor)g(v)o(ersion)g(n)o(um)o(b)q(er,)555
1974 y(an)23 b(optional)e(decimal)h(p)q(oin)o(t,)i(and)f(an)f(optional)
g(minor)g(v)o(ersion)g(\(e.g.,)555 2029 y(`)p Fs(7.1)p
Ft('\).)c(If)c(the)g(minor)f(v)o(ersion)g(is)g(omitted,)g(it)g(is)h
(assumed)g(to)f(b)q(e)h(`)p Fs(0)p Ft('.)19 b(The)555
2083 y(op)q(erator)d(ma)o(y)g(b)q(e)h(separated)g(from)f(the)h(string)e
Fs(version)h Ft(and)h(from)f(the)555 2138 y(v)o(ersion)j(n)o(um)o(b)q
(er)g(argumen)o(t)g(b)o(y)g(whitespace.)32 b(The)20 b(follo)o(wing)d
(example)555 2193 y(sets)e(a)g(v)m(ariable)f(if)h(the)g(Readline)h(v)o
(ersion)e(b)q(eing)i(used)f(is)g(7.0)f(or)h(new)o(er:)675
2261 y Fs($if)23 b(version)g(>=)h(7.0)675 2315 y(set)f
(show-mode-in-prompt)f(on)675 2370 y($endif)315 2451
y(application)555 2506 y Ft(The)11 b Fj(application)f
Ft(construct)h(is)f(used)i(to)e(include)h(application-sp)q(eci\014c)g
(set-)555 2560 y(tings.)18 b(Eac)o(h)12 b(program)f(using)i(the)f
(Readline)h(library)e(sets)h(the)g Fj(application)555
2615 y(name)p Ft(,)g(and)g(y)o(ou)f(can)h(test)f(for)g(a)g(particular)f
(v)m(alue.)19 b(This)11 b(could)h(b)q(e)g(used)h(to)555
2670 y(bind)k(k)o(ey)f(sequences)i(to)d(functions)i(useful)f(for)g(a)g
(sp)q(eci\014c)h(program.)23 b(F)l(or)p eop end
%%Page: 13 17
TeXDict begin 13 16 bop 75 -58 a Ft(Chapter)15 b(1:)k(Command)c(Line)h
(Editing)1053 b(13)75 149 y Fs($else)120 b Ft(Commands)15
b(in)g(this)f(branc)o(h)i(of)e(the)i Fs($if)e Ft(directiv)o(e)h(are)g
(executed)h(if)f(the)g(test)g(fails.)75 229 y Fs($include)48
b Ft(This)21 b(directiv)o(e)g(tak)o(es)g(a)h(single)f(\014lename)h(as)f
(an)h(argumen)o(t)f(and)h(reads)f(commands)315 284 y(and)e(bindings)h
(from)e(that)h(\014le.)32 b(F)l(or)19 b(example,)h(the)f(follo)o(wing)e
(directiv)o(e)i(reads)g(from)315 339 y Fs(/etc/inputrc)p
Ft(:)435 406 y Fs($include)k(/etc/inputrc)75 506 y Fi(1.3.3)30
b(Sample)20 b(Init)h(File)75 579 y Ft(Here)13 b(is)g(an)g(example)g(of)
g(an)g Fj(inputrc)j Ft(\014le.)k(This)12 b(illustrates)g(k)o(ey)h
(binding,)g(v)m(ariable)g(assignmen)o(t,)f(and)75 634
y(conditional)i(syn)o(tax.)p eop end
(Editing)1053 b(13)555 149 y(instance,)16 b(the)h(follo)o(wing)d
(command)j(adds)f(a)g(k)o(ey)h(sequence)g(that)f(quotes)555
204 y(the)f(curren)o(t)g(or)g(previous)g(w)o(ord)f(in)i(Bash:)675
271 y Fs($if)23 b(Bash)675 326 y(#)h(Quote)f(the)g(current)g(or)h
(previous)f(word)675 381 y("\\C-xq":)g("\\eb\\"\\ef\\"")675
436 y($endif)315 516 y(variable)48 b Ft(The)17 b Fj(v)m(ariable)h
Ft(construct)e(pro)o(vides)g(simple)h(equalit)o(y)e(tests)h(for)g
(Readline)555 570 y(v)m(ariables)f(and)h(v)m(alues.)22
b(The)16 b(p)q(ermitted)g(comparison)f(op)q(erators)g(are)g(`)p
Fs(=)p Ft(',)555 625 y(`)p Fs(==)p Ft(',)23 b(and)g(`)p
Fs(!=)p Ft('.)40 b(The)23 b(v)m(ariable)f(name)h(m)o(ust)f(b)q(e)h
(separated)f(from)g(the)555 680 y(comparison)12 b(op)q(erator)f(b)o(y)h
(whitespace;)h(the)g(op)q(erator)e(ma)o(y)h(b)q(e)h(separated)555
735 y(from)j(the)h(v)m(alue)g(on)g(the)g(righ)o(t)f(hand)h(side)g(b)o
(y)g(whitespace.)25 b(Both)17 b(string)555 790 y(and)i(b)q(o)q(olean)g
(v)m(ariables)f(ma)o(y)g(b)q(e)h(tested.)31 b(Bo)q(olean)18
b(v)m(ariables)g(m)o(ust)g(b)q(e)555 844 y(tested)k(against)g(the)g(v)m
(alues)h Fj(on)f Ft(and)h Fj(o\013)p Ft(.)41 b(The)23
b(follo)o(wing)d(example)i(is)555 899 y(equiv)m(alen)o(t)15
b(to)f(the)i Fs(mode=emacs)e Ft(test)g(describ)q(ed)i(ab)q(o)o(v)o(e:)
675 966 y Fs($if)23 b(editing-mode)g(==)g(emacs)675 1021
y(set)g(show-mode-in-prompt)f(on)675 1076 y($endif)75
1156 y($endif)96 b Ft(This)15 b(command,)f(as)h(seen)h(in)f(the)g
(previous)g(example,)g(terminates)f(an)h Fs($if)f Ft(command.)75
1235 y Fs($else)120 b Ft(Commands)15 b(in)g(this)f(branc)o(h)i(of)e
(the)i Fs($if)e Ft(directiv)o(e)h(are)g(executed)h(if)f(the)g(test)g
(fails.)75 1315 y Fs($include)48 b Ft(This)21 b(directiv)o(e)g(tak)o
(es)g(a)h(single)f(\014lename)h(as)f(an)h(argumen)o(t)f(and)h(reads)f
(commands)315 1370 y(and)e(bindings)h(from)e(that)h(\014le.)32
b(F)l(or)19 b(example,)h(the)f(follo)o(wing)e(directiv)o(e)i(reads)g
(from)315 1425 y Fs(/etc/inputrc)p Ft(:)435 1492 y Fs($include)k
(/etc/inputrc)75 1592 y Fi(1.3.3)30 b(Sample)20 b(Init)h(File)75
1665 y Ft(Here)13 b(is)g(an)g(example)g(of)g(an)g Fj(inputrc)j
Ft(\014le.)k(This)12 b(illustrates)g(k)o(ey)h(binding,)g(v)m(ariable)g
(assignmen)o(t,)f(and)75 1720 y(conditional)i(syn)o(tax.)p
eop end
%%Page: 14 18
TeXDict begin 14 17 bop 75 -58 a Ft(Chapter)15 b(1:)k(Command)c(Line)h
(Editing)1053 b(14)195 204 y Fs(#)24 b(This)f(file)g(controls)g(the)h
+7 -6
View File
@@ -1,9 +1,10 @@
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/MacPorts 2017_0) (preloaded format=etex 2017.7.5) 14 DEC 2017 10:40
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/MacPorts 2017_2) (preloaded format=etex 2017.7.5) 2 JAN 2018 10:55
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\input ././rlman.texi
**\catcode126=12 \def\normaltilde{~}\catcode126=13 \let~\normaltilde \input ./
./rlman.texi
(././rlman.texi (./texinfo.tex Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -203,7 +204,7 @@ e func-tion
.etc.
[10] [11] [12] [13]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1012--1012
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1039--1039
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[] |
@@ -298,10 +299,10 @@ texinfo.tex: doing @include of fdl.texi
Here is how much of TeX's memory you used:
3278 strings out of 497114
33958 string characters out of 6207173
139276 words of memory out of 5000000
139278 words of memory out of 5000000
4450 multiletter control sequences out of 15000+600000
32778 words of font info for 114 fonts, out of 8000000 for 9000
51 hyphenation exceptions out of 8191
19i,6n,17p,292b,808s stack positions out of 5000i,500n,10000p,200000b,80000s
19i,6n,17p,360b,808s stack positions out of 5000i,500n,10000p,200000b,80000s
Output written on rlman.dvi (80 pages, 314568 bytes).
Output written on rlman.dvi (80 pages, 315852 bytes).
Binary file not shown.
+30 -6
View File
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on December, 14 2017 by texi2html 1.64 -->
<!-- Created on January, 2 2018 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -1145,8 +1145,9 @@ of tests. There are four parser directives used.
<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.
Readline. The text of the test, after any comparison operator,
extends to the end of the line;
unless otherwise noted, no characters are required to isolate it.
<P>
<DL COMPACT>
@@ -1180,7 +1181,14 @@ The version number supplied on the right side of the operator consists
of a major version number, an optional decimal point, and an optional
minor version (e.g., <SAMP>`7.1'</SAMP>). If the minor version is omitted, it
is assumed to be <SAMP>`0'</SAMP>.
<P>
The operator may be separated from the string <CODE>version</CODE> and
from the version number argument by whitespace.
The following example sets a variable if the Readline version being used
is 7.0 or newer:
<TABLE><tr><td>&nbsp;</td><td class=example><pre>$if version &#62;= 7.0
set show-mode-in-prompt on
$endif
</pre></td></tr></table><P>
<DT><CODE>application</CODE>
<DD>The <VAR>application</VAR> construct is used to include
@@ -1194,6 +1202,22 @@ key sequence that quotes the current or previous word in Bash:
# Quote the current or previous word
"\C-xq": "\eb\"\ef\""
$endif
</pre></td></tr></table><P>
<DT><CODE>variable</CODE>
<DD>The <VAR>variable</VAR> construct provides simple equality tests for Readline
variables and values.
The permitted comparison operators are <SAMP>`='</SAMP>, <SAMP>`=='</SAMP>, and <SAMP>`!='</SAMP>.
The variable name must be separated from the comparison operator by
whitespace; the operator may be separated from the value on the right hand
side by whitespace.
Both string and boolean variables may be tested. Boolean variables must be
tested against the values <VAR>on</VAR> and <VAR>off</VAR>.
The following example is equivalent to the <CODE>mode=emacs</CODE> test described
above:
<TABLE><tr><td>&nbsp;</td><td class=example><pre>$if editing-mode == emacs
set show-mode-in-prompt on
$endif
</pre></td></tr></table></DL>
<P>
@@ -2955,7 +2979,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
This document was generated by <I>Chet Ramey</I> on <I>December, 14 2017</I>
This document was generated by <I>Chet Ramey</I> on <I>January, 2 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -3117,7 +3141,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Chet Ramey</I> on <I>December, 14 2017</I>
by <I>Chet Ramey</I> on <I>January, 2 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
+50 -29
View File
@@ -1,8 +1,8 @@
This is rluserman.info, produced by makeinfo version 6.4 from
This is rluserman.info, produced by makeinfo version 6.5 from
rluserman.texi.
This manual describes the end user interface of the GNU Readline Library
(version 7.0, 7 December 2017), a library which aids in the consistency
(version 7.0, 28 December 2017), a library which aids in the consistency
of user interface across discrete programs which provide a command line
interface.
@@ -776,8 +776,9 @@ four parser directives used.
'$if'
The '$if' 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.
The text of the test, after any comparison operator, extends to the
end of the line; unless otherwise noted, no characters are required
to isolate it.
'mode'
The 'mode=' form of the '$if' directive is used to test
@@ -802,7 +803,13 @@ four parser directives used.
version number supplied on the right side of the operator
consists of a major version number, an optional decimal point,
and an optional minor version (e.g., '7.1'). If the minor
version is omitted, it is assumed to be '0'.
version is omitted, it is assumed to be '0'. The operator may
be separated from the string 'version' and from the version
number argument by whitespace. The following example sets a
variable if the Readline version being used is 7.0 or newer:
$if version >= 7.0
set show-mode-in-prompt on
$endif
'application'
The APPLICATION construct is used to include
@@ -817,6 +824,20 @@ four parser directives used.
"\C-xq": "\eb\"\ef\""
$endif
'variable'
The VARIABLE construct provides simple equality tests for
Readline variables and values. The permitted comparison
operators are '=', '==', and '!='. The variable name must be
separated from the comparison operator by whitespace; the
operator may be separated from the value on the right hand
side by whitespace. Both string and boolean variables may be
tested. Boolean variables must be tested against the values
ON and OFF. The following example is equivalent to the
'mode=emacs' test described above:
$if editing-mode == emacs
set show-mode-in-prompt on
$endif
'$endif'
This command, as seen in the previous example, terminates an '$if'
command.
@@ -1943,29 +1964,29 @@ their use in free software.

Tag Table:
Node: Top907
Node: Command Line Editing1429
Node: Introduction and Notation2083
Node: Readline Interaction3708
Node: Readline Bare Essentials4901
Node: Readline Movement Commands6686
Node: Readline Killing Commands7648
Node: Readline Arguments9568
Node: Searching10614
Node: Readline Init File12768
Node: Readline Init File Syntax13923
Node: Conditional Init Constructs34015
Node: Sample Init File37104
Node: Bindable Readline Commands40223
Node: Commands For Moving41279
Node: Commands For History42847
Node: Commands For Text47113
Node: Commands For Killing50557
Node: Numeric Arguments52725
Node: Commands For Completion53866
Node: Keyboard Macros55836
Node: Miscellaneous Commands56525
Node: Readline vi Mode60448
Node: GNU Free Documentation License61362
Node: Top908
Node: Command Line Editing1430
Node: Introduction and Notation2084
Node: Readline Interaction3709
Node: Readline Bare Essentials4902
Node: Readline Movement Commands6687
Node: Readline Killing Commands7649
Node: Readline Arguments9569
Node: Searching10615
Node: Readline Init File12769
Node: Readline Init File Syntax13924
Node: Conditional Init Constructs34016
Node: Sample Init File38214
Node: Bindable Readline Commands41333
Node: Commands For Moving42389
Node: Commands For History43957
Node: Commands For Text48223
Node: Commands For Killing51667
Node: Numeric Arguments53835
Node: Commands For Completion54976
Node: Keyboard Macros56946
Node: Miscellaneous Commands57635
Node: Readline vi Mode61558
Node: GNU Free Documentation License62472

End Tag Table
+7 -6
View File
@@ -1,9 +1,10 @@
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/MacPorts 2017_0) (preloaded format=etex 2017.7.5) 14 DEC 2017 10:40
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/MacPorts 2017_2) (preloaded format=etex 2017.7.5) 2 JAN 2018 10:55
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\input ././rluserman.texi
**\catcode126=12 \def\normaltilde{~}\catcode126=13 \let~\normaltilde \input ./
./rluserman.texi
(././rluserman.texi (./texinfo.tex Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -203,7 +204,7 @@ e func-tion
.etc.
[10] [11] [12] [13]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1012--1012
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1039--1039
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[] |
@@ -227,10 +228,10 @@ texinfo.tex: doing @include of fdl.texi
Here is how much of TeX's memory you used:
3182 strings out of 497114
31669 string characters out of 6207173
111157 words of memory out of 5000000
111159 words of memory out of 5000000
4359 multiletter control sequences out of 15000+600000
32778 words of font info for 114 fonts, out of 8000000 for 9000
51 hyphenation exceptions out of 8191
19i,6n,17p,296b,808s stack positions out of 5000i,500n,10000p,200000b,80000s
19i,6n,17p,364b,808s stack positions out of 5000i,500n,10000p,200000b,80000s
Output written on rluserman.dvi (34 pages, 111372 bytes).
Output written on rluserman.dvi (34 pages, 112652 bytes).
+437 -392
View File
@@ -1,7 +1,7 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.997 Copyright 2017 Radical Eye Software
%%Title: rluserman.dvi
%%CreationDate: Thu Dec 14 15:40:47 2017
%%CreationDate: Tue Jan 2 15:55:40 2018
%%Pages: 34
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
@@ -12,7 +12,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o rluserman.ps rluserman.dvi
%DVIPSParameters: dpi=300
%DVIPSSource: TeX output 2017.12.14:1040
%DVIPSSource: TeX output 2018.01.02:1055
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -2475,6 +2475,7 @@ FontDirectory/CMSL10 known{/CMSL10 findfont dup/UniqueID known{dup
end readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 45 /hyphen put
dup 65 /A put
dup 66 /B put
@@ -2514,6 +2515,7 @@ dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
@@ -2705,304 +2707,321 @@ B240D1888CB89FBB748FD10B214773D466A44AA2AF44371CA8B9A4450DA76EDC
0167B4015A270B9983B89EFFA023A3DFFDE181B90C51D70557B0844362B0652A
6345C6EC83DFEFE099455232455943718297254186940D6305C96EE2B9E3E7C9
A622D25E0471AC31A8ED3AF8897BD19E322CFC3BD3860D8A0634081D9AF53A9D
84F4ED39D8127CBCAF9AD48E9CBD10A67A2CD0CF93D61A5B99F13719BFA7889D
0541DE740F68558B952C83CAC10571D82A688560D837FB67D3FB4AECBAD5CF2B
EF4A9603E02B9AAB4B8C2FBD2C8F2271585D7BD9024A14940B982827EECE1D66
5C9FC4278DCCBAA04FFFF21CF6BE678FFE9D9A7E4A94A814D5D7B706CE4DDA5A
B45AE68380DB406DC6CC5F3A72FE4568B909393833015449887F03FDEC821CCF
745E759B8FDBFBC477A48DD06A905C9E80575B4C27BF64E74F1A2B9608E58EE4
0DBD9CCF7D2795421F843236F0513BD7B8E83AE9DC435FC543C8E77DE4167486
B9FAEB69F2257106DC3F0A779840CA79AFDB1FDA3B4AA2E3FE816073EF32153D
3EFFCEAE0A535BD8FA2F8AA6DE158B9031E71F2725CBA24086E6B67A9F13A278
6C7D6C504D95850BC35F96AA80D8FAD6BE92251E11E8DC332AAF35D55B0E11B8
E6EE6CF639FE866AE61733BBE7DE51DC16BC6BAE704A2B6F7B0C54DBF7A096E7
D484B1D7861D78900B7D3470465B1BC32F76BF9ED29C8ADC075A03857DA0815E
F330A7F8D247DA81CE1ED6D1B69609275869BF4B4BADA169F8B84C8C11A82120
239E07FC6243C728625A788281BF183F9368DB3379CDB7F6783BC4D34701F718
25E462F8FCED7EF95FA0ECBF8E62F3FB9BAB06A9AEC0F4075EA6ADF951FFF259
94CE48E346CED76065D4F8553A2A6EC0AE339B9BE6D28315306E8AE28940F7A0
216B8A52FC47894824CFB0BC5CC52B1C4424C518405779C58BFAF7905B391EDB
734BFED217033F5A42B1B61C9C47365ED6644C7609103A33D20F6BEB3D2B0D47
9066065C8793048C2B991AC648A4B0A17771416821373C6CD1A72FFD30182C0E
A30193980BBE2A8A53F43C38AAF8781AD6FDDC02FE8EF24E620B3E5D51276308
C0774F6B4C4D758EC15F9B76FDB2E09AF0612167900EABC567A33BB694343949
85AE91AEFD55735A9EAB138C61778F548E172AAAB7637070D28017221C76FBBD
08C36CABF425292AB8CDC7432F676FCECA05145E4C51BC8A5270F7C6594E6A73
FB633E604B1EAD47C97206803ED2FCA54516D69C8210418CDC071E2239CFBE64
354DE669E47A1F492EB42E9730765E2FE96E799A9F6DBAA27C820282E8C9873F
5CC4DEF8EF51DF246F2109598601475ABC1C68C76DF030BBF8FC03828521A808
5E5093FD8C731B047182C6492D721887571D33420EA3D6F06AF687F0E5838EBD
7901C1AD1A15DEB7789FA043F970D581F5E160D01C679C2FAE9449125E001B17
A8D8E2F787C74CB1089D096C135E625BB76A41268976D70ADCB6379D95BE4B53
7C2419FC68D468223D999AA36809A9F60CEF9F86FACF9E17DAC9D4DAD42C8642
8D244F0BAD15FD200DCC15894AD9B6D594ADE25054FCFA00C57A762596F0C445
BF21C67C7C6B09752744956DF9167B05F310BCB509A0FCC108B2AAC84BBC3FA6
D6EDEB3EB00FCB08812F1A369F40CC19B00E5917553331E26DEACED6A609D105
5CF1C8EBB2B6763BFC12346A9DD779637D674AEEC41A3E49C85108623A5B6C32
374607B14724D14EC2E409C4F0B326ECE0E159EAF0CA71DFF6F3A3C334930664
4AF846FB7F7959CDA759130FEC82161017C479C2F62203B60ECC0B07F31F796B
5007C9B449F6CE4B1A35CAE922BCDDC9B7EF0BB7D7BAE066D013C7BAB00188EE
D86E58CCA598F514BE4AE795262F8F09E6FCDC01F69E08DFA248E18A4DCF3646
140D5EFFD72D520E5548F675E0760960CEF30BBCEA578FC41769A137805F45B5
7C7245D848ECDA77709ECDA9C848420ABDCD0D676E93DFA002F853AC09CE10A1
158ED588536F53F844166C187ED6179563AC89DE9B82C0019158875301AFC625
D9C16BD556AE365557A3A4C8FC98CA6AA1D62C7233157128C1BF09371B3AA14F
B886B32EFC13D73B4F1B07EA1441CA8FE37BC4FF5914D979E6D665B490EF87C7
5B7DB9BE4BA6F47589B1A17EB7262C22AF822265374A4AE812C513F54C0C740B
CA3DCAA537511AF04935AA0A521A131FC7086F28EA9D5063C55C1C46B2DEAD55
C39E7BEF7B8A25E8CCA4E791F4987D549706B17013BA8244C0C009F351E513C0
184EC9FF8496F0ABB615F4B97F842A4B7650C4565641107D535BC19A71FE66FD
EC9A527FD5010A0B6C7D678C31DCF3DFEB420A11497473599F0CEF4B8503E918
97ADBDD9568DCDA0D49F0BDE2422A7695CA7EFEF554FF256F0EFF8D3A62D0278
428413F87F3BE960E754F5D6331B2ADB0BB8FD3D642838A97233CA4FC0C3FDB8
0F7285D1BAE6767F3B2195A68FA104A469A61BFB87B2E4FD57091B40D97DA915
FB4F29CD4A91FCD8FD6A337969968AA7F2526F6BF071C2988CE0FC2FA4E6EB97
B480285E38C68247833A7E4E6A91CFB577C52EB958EA66A2F2DEE3157FE6C42F
475D5F4FDF05B31D44D3E8E7FD537F7121E698CC6D9DC29601988D5F5B24CE4F
7B92AB7B05A6F5AB139FD6D88C3A9D0E57621C9066F225E96850EE5F722AFB98
0571A06ED7E4DF199DBA49BCFA90B643D682E3FB6AB45EC50FD76B44A04FE79C
816E6C68F7A5D101FBA894EFC99D8E38522241291C01646642A97A0CE230B783
9A435F0F7A11989A89F64D7DA974B9F3AA46FFEEB906EA4592B6A6763BC5A215
B85C9497E868D5BA64E896EDB2ACF3C1143E441E0DFE65D6DD85B586E2C85786
67159FF9F136CB4D16BC1C677EA2C1B99E0673D2B7B4B0052F2FA79BD7F4C807
149D778F92141138B622ED470C3643A6CCF59898B04D41E2E313F3BDEE76A39D
9B2B08A4EE6CAD998E133C5331A9518E1453E78E25E53ECFA27F6451CE089CDA
CEB4C22D6819F0D5A8E6D205CA291F371FD2DCCBFDD8400ADE132E11C1AF0D01
4CF9D46C96561F012426A3070AD592F11D457C471FA99C666A869E63A28E5C75
70D30E5BF87D2E07DC5766E2FFAA4D16C8D683F9B5E274A4D567398D46478DE6
FA9635980A1DCC4008F799328DF4CB28CFB8FD45297D07E0813CE183C0D4147C
8EDAEED12F2782B6BEB7B87726939D039BD63244A00FB3692F06134EEF501E2D
7BFFCFF541DCEF251E6CA48B20AD098A7D0355D3BD33CBF7D2BC926EBFA7473F
B075270A9BE27FF3689DD8C5EA65624C0214271991C398C2140ECDE56BDE2236
15AC13B1551D52A7B8D3D583C13752FA8A242EC23B0872EACFCB0B9FC8BD512D
2A6E98A915B2D968D4A51609142DFFECDA880D86328D027146BEA2E6723BBF57
479C630BE5700DAC9D3B256212C120C8787B4E78720FC545B7BCD6732B844433
186077A250A3F2D9C36F63042E5E0DCEB56E8A67CE36026E9176F9E63158A4AE
2D9C4896CF80C647171DE78312D320F06761EAEB62FCBB0042EF55AE97D97B4A
C4D971CBB5DF385E89F1F6C668696A88654752B099FAD84FAD6126B2271816DD
1CAA3BC839819E58EB489A5391980CB245C6735E0026C60BD4B8F9949182DBAC
D2A6FE4D4395D7219B1CE50C90FF5AAA1239E1DFC96B25249C7D399E07ECFFDA
82E10A01F3250D8D196BE53FF2FB6CB0259F783DC56162B575C661386ABE9740
C102062A93855DA14F0E39DF230C90662E7A0F787673D15993FDD095534D3787
058C3EB4A99D862050605F6B481DD4B3A6051F59ABEF7FA75B282133332BAF6A
27061078644EDBD49CE038E88777BD8BD4B51B24E7D61FD0B751376752DA33EA
9BCD313C26C9449BB7C7EFBC4BC1B13933F0E5D3E572B51D43BACEA3DE8AFADA
5E93A63A397B46FBB2CBF19D9B1F63A6A2BC71AACCDD7911187795EA67CD19A6
06EB4CAF1ACC5FE829D21BB450F9EA8C13C2C93BF33E1FCD756578F492EA2741
2826D74CB2D985925C0190F28FC3ED9007711CBB574F2ADFBA5A82F534928ED5
BAFCF31C1137D21C07F7027FF4EEE770D961EE83C3D9B6B2520E0D72F8600A86
E70007953E4D8F61E505AE6A1F120729B96A715C0FD7B6DE3D30A39B10446599
06D9920DCED22B364329C7EE4674019608945D9A96AED0C54CECC428311348D3
29841A57CDBFC91D5CE983FB12067803D1DFD88FA2CD117CD592DC90DD4CF575
6F8374618BED1802490376192F5425EADF8AA2E4B3664C15BE3400D482698584
14FC1F5392013EEA1018EDF76750FD2898104BC43C66EE06303A82C2073835AB
F7231B029DA88A0112C60A9895B6CF391C0EB5A7BE95CA4B81FD85C722AD1D6E
C28BFE64DFB8B06A67B4F4958988B2F2408CDB2316A51F6710E84D8D1FE78666
F7F5B4740B3B640073427461683DB8A91414290F2292E5EEC8DBD9DB5B94ADAD
878AF91A9A9180D87A3BCD2BC9DED4787B02A0FE87C5329201CD638789396DDB
09D6C6ACC70BFC19FD94C8CDB07B6E15EB2E435E946E2584C7212D47A4A6914D
CF6A493B3FE5F21786EB798974FBC8465B78D49087A2EEEB88D7FD2DCE782525
ACFE1F86BE4D02213F99EBD8A8389D2E2917CD3A14F4517F4F3A9C1B208DE596
0C69036808763F5E428BAC88E02B46C68FB151E3C953382BE8DBEB6F62F9202A
6A59FA21CC3A31B2B9C6D07CFD3CED3D729FC9E503CBE41382FF5C19DDA9CA7E
599AA74E5D3D4F344C2CEFFD594E3670E8E42EE675D5090A90B4150F8DDEF0A8
6C289E4615910EDC7A1098ABD213EE00C36907F21798AC504F5BD9008004AFFC
A442A6A61DA47C616C70F446CBF892B3228088F0FF55E024342FB27F1C7C5F4A
9FB430873E0DE329F8F4BC9D557193B0D0FEB52927083B3F00A22FA9B3BE4DB7
EEF6C839442029AF670D27C1A09195EFC312ADD5B87B879CE869C902EDDFD5C4
FC9099D7E29D56ABA17808FA9368BB865E951DABA9342EC1E7B3E89DB94683A6
DBBEF9C724DEE7E7B54EB676A43252F52A9E9034C86C8F946DC840B97F81A6DA
89F77B1CDA96D81834E5511C342E23F12C3F1728D6BA38006447C183B73245E1
8570B0B24475FA69E7C11F2DDBBB8D4B7B6E320D9B71B2237C25BFCE572D9F79
BF1655B1A50C2B1D60C5AA76DAC389EA1BE1385F5221B745046EB70C45DB21E6
2811C636A3613CB72B2E1CE1165C7B1A2772011914C8882F851FC4117A903061
6EFEB247AB5812CBD46BE62A5061CF7040FB7FD8B639C1C1D3C7530AD804A69A
4DCA3B60962FDB012176C2F7E4E231A76E880FCFAC057A0B9A4DE18D06926944
18DD2A0CB12E72D33B037C1E003CF3C39A0EB30740F528DC8459D5D6BDA6CDF8
196968FCDAFB9EC4E0DD42E52C6A625E35EE86DE628B2C57DA3161DEE12A95A7
CAB3B4F1E60B9BAC4C3B49E4C9256F47FEAA2398010FD672E6DC3C9F95F9792D
A4F0D0D6E7373BC8FDB132CE04E3B71D01907B68AB4FEBF0F47EEF7ABA547B06
718EB48B6E44C52AF4A89939D64BC1BADB4F7082788784AC210AA034D7F948AA
7BEFC045C0336874C2DF04D8A428259A0E5968DDACE7203F08E1E2379944477D
4320815C3CFD8EA2D3CB7EA674409ACA3351119D3469BEE59654792168EBA4C3
CCF826A1AB03592F9372536302FEE8E86F4BFF3C7C7ECF3C6AA998E6F765925D
14F94670D96D5EDF4AAA40BF03D1D56DAE4453FE6F8F55D629E1240B99BBED42
9CB828F35782809CE617DFA3A5A0A7475BFF449BDEC8F211711F03B4C64C5D7E
FF919544EEBDBD2628163AD7A1250F1EE04C6A4C5F74FFCB14DA35F2BC5EF7ED
C9450B2133881FD231D1BA8A5D3EEA23F6523423B2D9EEC085FE014C26E3C22A
654F1820C8645FAB89F937F1C5C9A142CCC4ABE823FE3F2923F76D16E9D090A9
CAE35AE54A1DB242519B6E7DE8753CCAFDF343FE47E9C4B65B3530EE6B550251
F131ED7C9FF2A360637740ADC332445FAA9659E0B2FF8E2978B09749ACED8FE0
626E5802F7D19CE1DF328EDB45119D6A7DF9947158303E5E8B47A8B5119B0E0B
7B8A42522045639DACD03D92B9E1D5480083BFDCDF2285699611D5BED3EF15F6
F69ACED768C6CEAC414E6F68BDD0EDF20FB62C9F12576FDB75BC448D405513A6
45769B483BB6A805C36D1FEC5A0522864690ACB32A5A09484483B5EE698050FF
43D7F48111B2153525C0353F3B450070354D673E9CC50950A426A9B0D08C85B2
6EB30B776553EDAF0E29A92F7028C4EDD92219983A4E180893C9104CA3DF1F55
B67E2D62C1A2C1A89B3EF65D39EE65974202A62D310531988A7D880B31F5A286
1C572F17CE59CE7C30FD5A4AB243EA590A59E37357D1D446D226B50E068963D9
1C3684F11C089F468DED7D09E778A62DF6C380D10A443D9859C15FDEC3AFBDEA
6D60BD04A96AFF11916FFA91DD3782849CD9E62BA29930BC97BA65F08C030F0E
33ECC2B65AD9B745FA7E8E8C0B70957714F724C78C3ECF8119C40DE27B49A28D
6A8958BD6CEB0A86EC36B07A2119F06AFA7AB730BD622D3F893AE4778EA83FD2
9C7253E06E874D4EAF4D658FFD82CDA2ED0A4879FC5776B4204D87EAE43E223E
2835AAB407CC6CB47E1345D152F6C13FB426862CBAA9D6B8C4DA3DF860209CE5
140D261349EE435C60CF9B28A592FE0762D82A2668F5AAE5D2A7A3BB7960E6C5
D8891557E3603CAFB61A8640C715F43D84C5258CB02F17E264983A0C7F0006F7
98277682822EDFC45A54B5A2C2045DFFDA06E1A53594BB7293BA9F869CB8BEF3
E235EFAD368E496DA8E8BFC1A76E8F4FC3B405059FB961B6CB794AF9FC80E840
72CE41283FF5E962562F81259157E52EC29FEA83589B9992A04A4332AE7D03C0
F58B1B84B1482ED269EFA6A0D61983D1F10BB9D7EFF0EE2DD46EA73AB9C6A7E2
44140D753322FF4B84A1294F8D10AE1084EA2CAF05105EB1381C0BF6CA26B9BC
B6A20E2A25B79DD95304823C1A2E909E03D13B96C8F7D518C566328005522B8A
08B6C4EDBFF2C0156C8BB6BB350751F08D88421162F38917BB5941E9C913AC4B
FF188D82D29430DC664FF0A12F4B55704562B7A1B62707A1BE21F0718EEBF125
01E87308C31C9E0EE6657B200F68D944E1785DE330C3F081F0E15D5D2664927F
A32EB454A6B06EC71D8E5195E96305F67C13507466E7D616E90E6CCBF493C79E
743FFF43536F25528F2421A1730A734F58C6578134EE3EC07D63E0BCB07C4208
E79A3A0392C787813471BA68188044DC1BB9B7D17BAB7362D381BB23CF11637E
151563BAC6199F36DF1516175316A710116D2D6E69F292C1F50E9EB1B8258CDC
160CC2388DAC50148B79B16726D51B546DA11EA4774D75D2F662C318C42ACB64
CB05810CBF6A034CB53319BF8D455B431014D8F19B3D3ED2483421AA2CEF40E8
C32659B0C3590D4C5D6414D9941BE212031D2FDAD693740F0865C302D86C9DE3
9AE1D8125419548C7FF072713719CF9057BC32CCDAD9C8067455D7CAB76F3528
B7EE610601D26C374AE44CB42EC662DD1C5EAA1ED4517999B19308DBA0596764
1AD608B3EC6D2D3647A82538F3D0D95717DB2F7033DB28C079C273ED3FF65D50
CC5AE67D7E2CBC08723B8272D201500BE1BA31FB51411ED48F90B630B11E4DF6
E3A696423B97358C51EDA37F4011F6AEE86DA8E5059D61AE781CD770AF1E140F
5C53B626C6D474F8D898A7D2D47210332235F01F93BE3B4C168199A82913A5DA
0E72DD75905B7F3F461020874119D31644074404948EF8656F8B79085E6C9A1A
6C20562B49BA2E1D71FF48A8666AF666759E32F1AA299D8E4C5B2D78936CADAD
B14F733272D1B0274479DAA6C5089E9EA6253FAB56BC2AB97FF2C69E4B9B928C
9E75F5F3726D0412D87CDDD3B974EC3DB1847966B326C0915763BC868598B69B
DFC28BEA26914F2EFB78569802576EE1C0B900A164F51BCA1CECFFC783E44D18
79C89D1B25954B1424D913FDFFA54583C7A45AA36869D88D290781A06584BE2E
6A1DFA69A6CC986A7EB0E01496F87586D15056FF3155BF7449FB5A25EEC5F235
D933FBA966E3FCCAC2A592EC0E5E2FA983A7008B64E300E66BFDC9C629CADE27
073CFEE0780ADF14BAFFE68EC397BC60B1008F0791ED1AD7B7387E78CEBD7F11
0F3058A3717A59A8AD232A18D623EE4CA16CD9F3C52D30861801633B5DF39C5D
8DE1679E10B3FF54B059E20B57D2CC8BF319E36AF7658B4BA9CE52BBFF490FC4
B20E90BD59197B2A71FAC776F815AC871CDDB0F163C4E367C7325E54F9E57C43
23787918C835E8DE78A44894B4C3D9F7E4E17D30E2E2A4EFA3EACEBC413F4E4B
92E45C2BAF68403A7BB2F059C0E0626FD24377D30D2C330433BA104B9914590A
FC69816BFF1AD91AEA6AE222EACA233EC3C168732297B96B8E4D4D6DE0392494
DD19C18058F5BFEE0D9FADC73AC55D4FD00A5E1CFDAD61521AF32EAF83874A6C
AE0F1681453C2611CFBE44A4EE1D3493191CDB263CB59E939E02B97001BE1726
E14755BFB433C225207FD966239D9F52AC4F9149C9DF658BA9F9567BA1395C5D
1A124880FD5CA1B98834F255B38CE8B76D48F554C3804DE588260F52457E0782
3159E4CC4AB957744C011338DA494A059CF106CAAE242FC179FEF068AEC584C3
FADB29666B5F3D9E08B7A1526BF82D60C2992826923ED3509122281C936D5F0A
244E382E33D3998F5D834D3963010A211BC6A58AAC2870CD079371075AED2E62
843D8DCEB52D18C469028EC48CD293ED6C4ACE9F2E7C8CC63427F20054C88559
03A0429317EBC9801BB626BF9B1F80552D71AB639E0A04F847FF9CF8DD388FC7
AA428116C1F33AEAB755883569A1B75D1553621E25F2EAFFF537952ED1B46223
234FCD51B8D3A26C569BBD0D8B6B83182DC369C568D29CEC824DAB6C53A67B77
047ADFC0633619C15F8809180F55323F28276C3CECE33DF10F09561A1FAC1399
3160B4022FF8EACB5141FACC0FB26A45223275E77966F6C23C82984FEC39E7C1
D167CEEC05526384208789B20978D1E8B8B41EB71D88787FFCB41D9F9339036C
4D346B096A3AAE866738B9B736F8D180FED51F5A487AAA78C66769C40097B416
B0D31C47B090305EE318A5362AD0618362570A2AAEDFE4A0EE9B575E90D1995A
AE1498CE14923FFA6A074301924CA2910B16E86811615222416FEBD2F0932B1C
F76819B255C34F6FFB7F2567CACCEDB87F63CF1828D620A67CA7F496A98E6844
3F67A4BF29FDCAE2A5A62F9BB847576BCDC415B7156318A56FE5C5C65E44A2D4
B757D32ED9583321B37A42A3D19549C3FAA55E95AA891BBCF4ED4F5DE9C18251
E0288F2BE970704A3AEE1797D4AFEA30FDF94587205572016C87E9DB3324B77B
6B1C2A8B504E5FE8C4DE1AB0F37247E7E6C84D101A5B275B0C3DC486B9EECB23
7153F0133012E853491CC8E7D0599DD02478439FF65B0424860E4321B0EF0D88
707C7E63E32851E5E26E29F1FCD4B3DF26895833A70599F4BA6F85742A36B15B
53B7C4BB986F65036EF2196B846DF5150C47BC3160E9235646C6346642304AC8
E3D477E8436CC60FF83008868B862E6737C940FE9F797510B9368C67B33DE75D
C3FD5DD7965934945549193DF0B3C8900F6A2881A488988E3EF4C82ECE7E175D
37CA55BD5FB0093B83852354EAC67B91594F132AA122262E319DA4304754E412
8AC8D590DB8E23311D496773D168210828D01598AB0F21BAD94677AF8F288FED
7614A8E9D2970B71D9C15A37953AE402895F6E849FFBDB26FE1B0D9D15A1542A
05462D56B0D9309BC4FB59A09BA856D312B54C5CFBF7D978F819F12EA439BEDF
8F9AB95029F25988DF7B72AAE6823B779F1AC35AD1D27A62224FD4A8225C157E
7328943AC6F0872C28108F7E1B4BA65C04092C35EA59D9B8F122675693BD65B1
F15EF4A2CCC777F27391037408F7EDE891FE16094E64738A6CD95FA256D0FB19
B9920AAE43F1CD39E56218D9CD813FE0C7115748BE7F19E7DFE27526FDFA3754
9B23E48F55F849C8845DCE1B825872DEA7949F5494868861EACABAC4CD914CBA
26366F7070168D4A4208191E3F941E3466FA514C9CFEDCF5A6EFF2BACDEB6BE0
939FFF42B629BDA276F8822FFB4B7C65CA52943ECD058DB519D2500D2E3E9DA2
F763B75AF29981B6598B393760C2595E97F78E5907A606B14FD51352B66B05FB
B8B2F659CD1F8E5F78345B36DECCE8ED21119E029E937326C24608EE028410C6
14CC2E4CFC6534CC42A530E4DD1EC4FD1FA0EE61B939EDC4D31FB0F4418BFF3E
50385C1072B228A1BFD389A6B5E025EAE723EF10D150E12B0AF77AA273665017
D9BCD133D9399FFF5750BC45FA33F506887E0B66E9D439E2BF124A51DA2CC499
5ED9DBE5D69A94BBFDD3C1218E8F4C2482676F6D05E05839698DD70250A0775F
68605EAB07E5206186EF2E5BD3598EC5281C3C251AAE630FA9264EB0183107F9
8E65CA369CE98A2BA2B771118FBB768E5AAE96E8EE9F774E0307079315AC12AC
A188526FCFC0B52CA402FCBD57C70A703948AAD171FB0F7A28AF3853C28068A3
501F50DC9C5104CD4F0A336BC1845D5863AC0D098401A1B9FB3C4B7552C84EB2
7D228D496F55C2860BAF0F6E940C0FDEBDF310751332A2367DE11F2C2FC0ABB1
3E9120162294F340F27C8D1ECA175CFD11E83C596D9E2C23BE4A976BB2044C3B
F96570B28D9758B0BA9AEB8686B05DA1D5AED112BD7193660CEF74A9400F5CCD
B872E1201A58F76086A7628C34BACD00CC6099FE2513F0C0510CF60335756D74
9FA43745A02449C239F5854D063907E5587235F70E37CCBC498A69EAC39A89DA
38953B958D20C0E7A4ACFBEF5599AD7D4DB01779293BA69E35F46AE1576ABC10
3C13C6A53E5D83F79CA2AE7DAF7A4495D3D9214B2D7B425314D2424199AD7D61
760CBC30CEDA1B25EE34AD2866F16F4A64D8971DFF63968D9B6C06EE2EFF0C44
09CB7E45884C3E6FF9D4519B99D556092F4B7F99FF85979827B8278D61A72BD7
71B9E0739DC246AE56EDEBE0AA9C0680964786D66960F7E504C62F369B3F419F
2414CF5A17197783D32BA3509998879A4F9DF3B1992C4111970B91CB3DC7988D
0DE0B3E63C420D1EE1EC5C3B9C82D266D56509775C2060B09F1EFF863A60D513
C7ED3D811CB6DD866E4F5C36381D4047C0FCF4E062B0947CF8891B2A6B751FAE
26D86D423D4A3114E66CD75AB8BBBA9E15410269D0440DB3D097DEE568191813
3A28B873175A698E462576901928EFC3222BBF39AC4249B1626FFA409A233F12
81FF8B1D6D7B81959D74397B05AAB41C8930BE040BF1BA4FCE9FE48C09938295
70B96EFF247A60F7BEA3F740E084C9CF10D8D5E8664DACED6575EF2A04E58621
BBD02651870F2CD08374375ABFF4F500FFA610F7A29E0C30C5591FFE05DE79FB
11100248CF9949FF9F32A7AE2B97E29A1453CB0B2736D6FBFE0E7AE6A69CEA58
915BA082464053A8FAF7E876B8B604A2A7DD00F8F27765FA36C62CA39AA9DC39
1F15A4DC8942CB9DD693E1191DCC27D733F82D1F5E1CDEF67937A1B801E398AC
ED3DCA2E7BB85A629B3BE4A4797BA8C555CAE189AAF328D2C0B9A6F7F1C1D243
6070FB47B84FA339D44356156236271586FAF861CE082C9975C7EB26693E48DB
321BAB66D7B3381DF459D1FACD22217361CBB06A93FD8BD957AEC32776E47F30
B8EF0F8505FE5E3AF12B5902043F2637D66FDD5B996FA5DF3941DC7F4B3501D8
547D78F496B6EFBD14FC5F6DE51E0F8186BB8DDD59C6A8721CD46D8F59DE7EED
4C636870CE64148D68C9D6B45614ABFCF417131855D9CF5B884FA7F2D1600010
B6387DDD5FB7BB8CB9BC41388CB8A5DA0862670CA547B278CF5143D73CF896DE
49DE74929AA2DD5DE23C1CF49FDA81584FADFC60F06AD0B3346C81D2264451CE
35E9ADE426EBAB5473673DBB5E95C2AA6B74E72491A42D7A52437639FAB20923
6BF2B7552F3106F50194A397761967B1EBA22FBECD941A2C92A321AD9E0877FA
3F093AACEC56DC24EF34E1DB7D179F4E7FD2C0F1AE213D398D5FCC84A2E7D90C
5078CAB011E4B12E539CD690B41B6375290B2263ED21710E64CABF24CEF24D5B
B49EBE11E3B9CF4F26BB5C99CDC53C0FD0F0BE4718CA9E2568F8D4F6064FC466
9D130A93A5CAEDD8165EB8A2CA0D7912D9DEF094E4431F8A97E0714064E1B93E
F4CC2ECB2183295E903C7B9ECC164E2FBBDBB8E5529FB30F98ABA9A66B83401C
A749D2F97F49E47B365290F08BF3FF20E0D807CE656666E007F47FF0AB2828A6
82998C155A182BE04FD72A10029118AB016F01962E6FE7EF7EB02889FC5C97F3
1627DAD67EC4BCD02F91F6D790876D874031FE02A1452F3D177CBFCF403373AF
6C33B06B7FB4500328718E371ED2DEC536CF13E73BC53AA014669FB8EDF82104
E991083980AD727F662B4C1E1F02D1C029BD076BA00B27B7769CD88CDAB44161
23BBD10F41F7920C3C8CEFB22FF4BBDD8F8A6293E640DEE82B0DEB732FC2E2CE
FB074B2930AACD177D1BCCE89E1A72F6556E2F59084C6076526E95E1F54637A5
6E91A8088866ED32D399F3EE23D25AE0548B3D57F10B194013FD4E2D38880FB9
E89DCA6DD2043F50F337547C1F1F4A776148C4A3F58032AF4C0A6F7B318E6D4F
04525893681A1C605CE7BDA7C949A0320EDECD73E3DE3C444760940D4D1B7D29
F69BECBEFB4077CF996E7E6828A650AADD4B66FA0868CBD20C8CD2C5FC1CCEA7
B4BA742E49CCEF1F5902B27B11B1FEBEC3A4A2AF0AD241F869DE2870882ABE98
275DB4FC71700D22E5EDE5D7741A4688800DB59DDD493C748F200D89608656A8
80FC15AC3DBB7850D381379A7792366ED24B6683E443227E88322B914327A5A3
3F16EA6BCF83406EA85567709526E5ABE41F3619BA377967809F3A659F2EE0ED
697EBBACBFB3BD8FFC54E9C3A66AC846FB587CE01841822DEA72479E5AED313D
0C4A0B5688F3F16133D289308CCFB8F499F106336ACA396B58D1EE415B6F358F
9774F01309C7F9E5581DA86FAA4575E5107930B612C6D867DA95BA76BAE1229C
87142834CA23520070772C3C91514B8F3BBA4087A53E78F12EE67D0DB01F304B
1995A62B98502D5AE87C86B5A7FECBB0166D87438D78C42AF59BEEE805777A91
4199757BF98A87213FEC40E4F06EF3AB2AB8CC1B343CD88C84EB5D5FCAE1A3D6
BD64AC4B10042A979D7216A4F8A766DC53DC66B96B058749789AE6F1D6932C1C
9DAB136A84FC9211E5BA4D61DB212BC96D3932BA0A9039D607A3A3950E770DD0
58197BE6DF1CFDD9975C90FBF7DCE9F16003761A4182D5FF7D188E04BE2D979C
4DADBB3CFB809EB8233430CDA78B3BE74B931D6B443E5AC5789371960A543A06
32C0C68B8E7AFA5ED25E4486700E1B4AED0C83C165D3C3FA1993D4EA3B20B449
9718AB684A92B4187D18B462458746A6C614E58325E2797884F1429A2C86EBA1
02C3D16FA5979F021DD81A099193AB070B12E3F5E7D440DFCF5820F48AC1EBDF
29810557E4A5291FE69500EAE4EE9CF0207A1491D9A8C45AB813D6834096B3AF
0851325E0A4E7E6116C06BF38D777C88B0918D80CFA6BA8A4B39233064029FBA
0FD80245F24634570936455A5B9C35BE628A6E8C5617DB403F9D9A9BBC9B24D8
0839903C882C7162BF87453C95F48907326BBA5FF39D9A58EF68B91C13AB3858
2ED3
84F4ED39D8127CBCAF9AD48E9CBD10A67A2CD0CF93D61A593C0627AAE80E297F
610CF0B2FDB6EB3BED1D866BC1E1DA14C1A2583976BB788E9B26B26D6071AF28
04DE56A166D01ABB14FE7A5C409A3F6AE1F17F322522621F97113DA3C0CD1EA5
11AD5168DE7B3BBF39F61A45B553D16A31A1FF6000C7BF7A3DDF5B852BF6FEB1
2AAA616AD71EE44D7A3EADF8CDF02666A78E346CE8507646ACAFBCB42D804F89
07085FB776C81D773B33AD206D49FA01351D19E9B93423686FD7C8D1F4085009
A3D67A249C7B38C40D4A83D74E819A62B938D89AE9070009275EE70CCC716937
0BFC0EE647EC231309588DFF33EE995006FEF93469A8C4CEC33E5C77D53F8BA7
5C444825DC75D418831EE39A0FE3DA51CD3C5CDD8D28EA853EB7F4925E040BF5
F38262DD8FABAA1B6A5EAB2E50AA4FDBDAA7318795B5E3B8520B9CE2C02D3053
74F30A8680D3D25B1A8D9287B67430BE892BCB142A6391FD774289B426F82590
B01E16018820D33ECEAA498ECFE0023DD959ECDD891113323CA14761136D43F2
A32A3F8255D0A00E0FAE6FD2BC390D9484AD38193CD5EF2A0B6526B925D91FBB
966E69F1F7310EBD4306E2D9D16F308363FC231C626445F3029990699E6B0CF5
229ECE0EDF004E8602D582EF7810BA119B058DD90C01C22744B5EF5CB156A1DA
7A9FA7086CD89B2E8C5E90B258A3D64AF7A9E698ADF3D0EF1C2CE3D30ED5A4F8
93572BCD11B506228DDB2C85B79631258B5376E30EC113D2D97C12854A892352
4016AA0558446EB491FEA150C7707E53A959AEEC3F606E8FE8BD6803881E7091
625E3DB91BD919071CB21186DBCBE103403C49F634AD063EFEF99A59DF1F589D
5CDDE87414F6D12429B32C1EEF09665D6606F33E015BD62409295538A487A93E
796AD8C64182629AD78DF437E04C0E09CA8397FFC74FA927664EACF7576939CF
CF56962843FBEAAB2C5AFCAC3DD6C05FC7402C2148280AFD5025C33A1D117359
68BD0E06472B0D335BCCD589365BA20568DFD46180A38CA13770A8570C3C90E3
B1D86706D81754B00B4F1CBA76D8341C4A552851A79877C8F14E8996592E8434
AAAD811BCBD37DD9BA69E6D76A19192AD53A8F60E50166DBC41DA9B77783DA9E
5358A61F08D5FB1731EC73386AFF81B09631D57368A2984019FD887CB16A37D2
FF085B743E2A3EEF2CF70CC006799F1AB3DE1569E2377D0F00DAB31F73CF6EA8
339CC5F37B42E0DA5A9FADBDE4348EBD8E8E41F4588BE9CC71BA9B8CEA1FEB1A
296BBFB3E93052480FC0460EBE407B68C5DDCF3471D5D70D58562132E228742D
E1298F26E89FE76925B21024384A3BCF0805BA535818525AA30E5267076EED17
9479E85C7BE3A67B23390E0D413B04E548BB08E7AEB468FA87707225248AB35C
043355788C90839CEC662D883BE9A5BCA92F1C802734084553B54BA72CB7A8AD
CC7A1B7439A68E84F1B1F1271B32CD1B719BA52E0BA5DB53C6372CBAF47C6622
65D10D789FF729CE2F422D464CA83424CCE7E06591659809F91F7087EE721F64
6FF9AA5E47FCA748EEC49D202F538023F7295E03637BD089641A14BF85F926B3
7DDBE5B216F4A85262EAA63E204AABA92552EB93169A07C9BF3BFF389941D751
EF82F9118E9D53EAEA71B5DA45AEAC7FC1F855AF5CAC11EDB1041FAB35423A37
B1974AC24E5E83F32931CE05399EE7829BB1785A0F117252DD7DB5EE45159BE8
F96026FC3A9D6E67FBE906C9FBE5D0B1CE09CD30889F575471AACBFC343A60E1
253A70A4F7F9EE8A771474F8C3C8DD5C410165F00FD2E08FFB820C030088F452
1AB1770F80FA609C8978C5CD1FF94A6C77CCC7315AD714B990BE419955B99747
82D883C4DE1593875FE60460E2D370337DE830A3060EC38B2CBAB76FE40FD9B6
00E693B9090259ABCD7D3ED4B9BA444C94D16573FB33708BCF12A0016A839568
E223CA958242021032FC6B4AE83A900DC87CC6ECF2BC00F9F8EFAC6606208EAE
FC933B0689A554AA1BCD5F7FBC20299DFB1632B284C24D64AA90DEDDF272F7C3
470CE467B5F959C24D45B8BF53E96E5E56B2703E863FF8A846D14C210696F2CF
FCBA34C2478F25493F39B067A4D16F8BC484F5BDA1B11038DCF25D149F49C59D
3DA99DC0A08EF232D98E9FBFE46FB5E457975E7771459E330DF4BB863E092AC6
B368FADFC326DEF82C2E1F5014A54B5D8AB78EAD86CA2496D0D753A4914C4F3A
9251677B6B7A76B3F46D564CD855D423B7FD3756958DDAC02CBA90115E2586AB
2328ED830172111B3048FB5021CEF1A52424E31DFC904C67F3EE4D176E0AECE4
2815188935C37E307BE490FDB7D86C9ECA73D165C659C2102D60935CEAB955C6
D5F932B3D3F355E5AA2CE54EC1BCD0863949C0D976FAE7D862A3E8319173B55C
FD17CA38B17015634F22CB58DEEDEFF2DE3735ADA5C5BAE39B4B0805A6F77813
51C64EA337386FBC74F2C86446A50E134E20F34E580CCF0C88F38F7D5BDFBE8D
884777BB0EAE668E1C385AF59359668BBA3584EF4B0DE732C2DC88E2D0C3E081
358298442A33541E8494C3D8E9F0261A2B79382507FDC4503055E14ECB54972A
66FE4FF0B584E91464DE5AA6667E8D8B123CB182A652224050A235C1B0D8E5F1
07097D98476731A1D9224E156665BA64DFD471B6C0B11519703F349C3846C2EA
F123F5EC585E2E357A9B016D82004436D460E4E3A0D81C6A4EBD3A600822A6B7
FC2C8581DE02B61096F1E44DBDA5BD22529B31D715ADC9FEE721DEFE8D5A7305
6FE51844A7A31FC453F8E957212D0262D8B5654C47123385D6309C9E91613C37
693340BBE694449042CA913A6F7AF2B98270C7FE9B4ABE728AAB48D8D37D8F1E
BFC3AB2C613FB6DC9B12A69276FBB8D4218D800515BED9CC3F8ABB90F4907993
D252C28A994B71A7A725F4EF5E189E4B8E3EB46A756469DFE6D20CEB897B331D
AF8EB7E9DB01A539EC89A3E2AAF71B4F62F9B46CF90329DAE6D0905DE7D66667
8DC3D965DB4A54B4FC63A46CCFC487784A0B4F9045CDA8827BE808DDBF6FB4BE
CA0FCCF1A8A6B512892EF43ADF8F00CDB94D774447B0CA23AEB62641CD4D7CE8
4DF24C4BE165D5D901EC9F8A0C91A21F1E15FB1C6994297CD468EFDF37FDED3D
CB18B1DF5F8B13F6731457E2E1E84C694FD59321C214A6FA00FD63736F43A0BB
46610DE20C7B63C2585538EACFD958D38CB48B848398722596F99FD902DE3669
AFB419590B21C195FA98B123154544DA1E9C3E6D54679DD3434FA27E0209F7E1
EA99684FCA8BCBB105DF37297E9EDC960DD623659F26B3C1B29DD90E89D22F60
2FF619C26F0C7EE13B0924017DB0B7B09D6C83837C02E381A8CA197E5D590669
BC616C29AF0E5534230A6AF724FAF6732C6BCBF26596459BB0B03E3B4D3D9F88
3444C38978A9412CFE52ACB5DE75BE92349AB04BC08F99FFDABC98F7D20ABC47
7FAE1E6E9909628F16DF65854E991B44BE8471ED5F84DD77CDC32A03D49BB82F
BC1E559026029D81F2E80B46062C743EA521C40E4F598655EAA50C749C92227C
26C7E481559F733518A44E467D06A92A8BE1AC43C57F3339E517F8D43F75D434
BF40775F91ED694717B7B6A5D6A9DA2FF46DC29BCC9CF53232454BB3846DA528
72A46D4B199ED2B80A20993BC303729EF1C06E341B321BC37383E7E201DE0BB3
929CFF074B2AD7EAADF5DAB328D01F32DF7D3A886B90E665F5526E279DA4CDC3
3985B1D582A1AC36C0F9708C27ADC43F678EE09101A04312072C5C4F9DDACB30
ADA37AFF97CDC00220B71ED8D762EF3D06250D5FEA90EB29CAF1A9DAEBC23DF1
F9680F8266D9BC42613706C8D328C2DC41CE73A6BAFB96FE7AA60A0D5D904C81
8B2F64AA3D78C3AF18A7B99BFFC96211223B4EF5B70B1C19BE189DDC613378DA
082DE0BBB822FEB46EE05F8D83F201A8AE2B59861CA9F52C54780B3360160814
BC369D35C07A4D4EF9FB534477376B336CF1A372E6C6E7D076D2C1F95B6507A1
62CF058FD9D28A0D9A86E859DEC3BD2E2DA69010B1D6C3D6D0F35E25CE3458B5
4A8DD7485A18858B6EC1ACDA8E5D3DC74CC8B37A7EA18ED9E1B3A333F7F41545
8A9C8598E870F85DA7E4A772175DAA887A4BD065101ED1D704652299FA193387
7A1E684357205136A83B6D76EB0C167363C9248221CB09199477D24D3788115D
B8446CC827C7385333000BBB82DAEDE63ACF9D328041961710D3FA09466CF2D7
B1685E6B6FE892F9B75F49F1DC7F6AF4E8D5F2B0AF7986216225FCA4F7AD1D01
880672F6AFAFE640713B5B83567264AF6620DFDB3B0BD45E8EB6C375D230FD28
C5CF99DB705DDDB9A2B6884E2D62A9547DF6CA0D8E86E7FD1FD28CDDB4DFE321
4921327FE2D0AEF48EE7E15E17B91D71B3485CAEF2871BF343761983B4DCB7F4
156E6D8D5310ECACD6661DB1D962A7EA8FF44A2A12C37561E21E5C1C5AC88D32
38159E3CCDE194F8BEF038B04F94CACFB29F8A93EC9A375667C8BDB4ACA5D195
CECD055E06C67ED9C2C0374DB6C390EF4D65AAA194EE54BB26CD7869A5FBE3EA
09A6E1285F66BC0C0B5F1434E1F2BCFB6EEFA0A215C37CF8DEFC02727A637CB3
46A83C6ED1B8AFB5FFA7DC2C4F1C3CD57D63BA2A986108E3EC91B54B48E99AB7
3A58D8990D8EE81BAEA6CABB3F372A2AEA6E918F49266ACBE23A68D9A6863849
4DBD6364F2A0AEC6FA454E5AD9D56BD097F7FF16D98C5C8FFDC5222A301B3C57
6BDD7F281E6D575F46DCF293DDA0DFAF727226254E8CB2E39DB8EB1B443FAF3A
4F7AC38741969E050F59A9A193E0BE89544825A0C0692CFBD7044CD12CC14189
79EE566E5FC74A76EC65E5285684F4575AF05F9FB2356CABC4BDF8A6067D169A
EA546A99288D64DDD928598FBD7ABC96B9B7C42D6912273D786385E7C60B30D3
29756256728279E500FC73BADD4C21F0700C916E3EA0428BD052FD8A2487054E
049FD14E372F0ECD6E3ECF4805D02FD4E146DAEDE6849AC9299390414A0FDB10
153A2AFE5E8FA44A1186A395EBBCEC9ACFE9719C6E7436785BCEA6380941CE0C
6A46296F0DCA6C3C13C3A9252BB87A45E9E4DAFCD3868CAC9D83BB0DD174DFC6
27D5D1BBDD986CB0B5A9BF9CA5AD2C94BABB3AA21CAC876F10FBA5B464622B3D
B8AC3773E3C8B3C36BAF980DB29432A01FB5733C2887729D5FE0C412199AA6DD
A4D7623599680BA2196E9F439D6C293D6E16A2FF1205168F31277895A853FE6A
1FD47593AB67CA4F4D407A90E7F7D8A80C6D9BE25BA5ADA64F744A50FF665A43
D9F7A8430EBF084928BC3B492E8F1EDD523C8CD0EBD4A065096A78DD3D8F5A21
8E6A5E4DB1FB611B4CC47C87394409400C6D0615F571EE4A96564F3366E5D938
236560F6A9957E8D087AD152B8F6E01C9DFC27ECE0BFCFFA409B94C9D523EC69
3C328139DE7F828CEF88150A864F8F64CD7363A84601216DD34DDB4085FDE7A9
8D90D3571DAD0C3BA52419FC79036754396903B86AD37AF2F5A877DBE1BAF1F5
8EFE1507E8787F5C5AC5368DEA4DF9D8A8D0BDD5F0E9687D1D614BB70567BDC8
8B1CEA009D324518C46B17D521F28E17AB8C2252E01A88DAC5187B153C1C25CD
C342ABB1E059247E276EDC61D51A2CAB2114BE28EB27407DF0E3048143062E54
215841330CEB3212216055913E93FDB5889D0862798B2C9EC4C7AA867EBAFAC9
8D9C5E5221C1D63654A4838F15D0640C6360EEE3F78BCAE95892191BC102EA2A
84BC256B2E51E3D5C6A2C9C4DCD5189189A292BC47FA28CDF05EC12740D45F2A
480FA39C3A164A201F0D353CCE51F8B765FC47BA5EA8FAE41832320D18A90A24
4AD12E6C4E82DF6E172406961F414305F390148F61472D732364E581862532EC
748309596199EBDE301256766B26CCD77898C8A97A226BE0D1634DD4CD12295A
D6990DED2FB64B5CFC8B4073EFF20540D50E21A56B9E63F075FEFF20D50D96B4
17275B729D73F68D4CE816B36FAB46C5551E4D3C001B55107EADC29DF51874D6
E936DAFFC19B2DEB8788C7E7FCB9D2ABE5660FCB3708E81F19BF9C600F203BED
4DB8649D9B91450982A801D15B3841C7339D1D20EF138030CEEE013EFD570348
0A6346682F82963745931F85C431792C64B1E6E0637B63AA85554717C96DE31D
B4D2515B18A00891063AAF9FD2B4BE8708009A334F7CFD689D81ABB348CA4BDD
F21882F2EF86048F018565C26728BBE7417E685776114470B32B18A71223DBAA
EC66F6A864F7944A4C459F0899EC7B5FD8C0FE9AD393C867D5B7C9E98C5FC32F
707027466005E23475A87BD88BB8B5520BD87516120A2FEB5F0C00DC0B424C88
5D8204646F2ADF4C7081D2CD0D0B3453FE69C955BE1C40AC66624083CFEB434D
FA7D2214BC69F0310594029EB6B1D355C9FD13A8895F0BFE85B725E47809A824
E74B7A7E31FC95E6655147D20B4A14E420A6DEFE9BD80CDD4B8924E2E7EB3EFB
3774B612975D6DC561D4DEF163AF1DD76EBCE76D339B583950C2981EBDD8D02C
48A5D5B2E8AE036020BE8B760049DD6418440ACBB03E798C0BAD524E82B6B422
0DC30556016452AAB929801A343B719367419ABF1AD387925953A2CF4A1AEFFB
8EA00A873B2ECFD127C80E23BE2F36E10E77F86D3BFE8B076E355BE1B85292A7
906BAC9371610C4AAC2D3A0239BC2BA384314ADC834AAD796C8A7557139D9BFF
A7B56DAB7D63FF9AC78AA9AB416A0AA3F96B0EE6C525BFDF5925F4859A3A737C
6E573FA019456ACEC1AFCAC3787F83DB80FC3DB6CF66F351D47E9042C33DA41C
A9876A5ED89F7E1C5C32045F44E6D9F99CC3AF6F3F6C537A9E6B5B33E18BEEA2
7EFC03C85F3F9FB5BC05D57510ACF67E864A20F5C9D46BBCC179C00456EE9D56
691F2F5A0D4F2499772A6D91517AA6EF54DF7BF4E3546C63CE47076149D5A70E
4A649D801BA0032F47668005F8460F6BB9488566D4AA5A7BAF13FB1810B219F9
7E21BBB6619D78A42224D89A8C02721C3E802E0AF94C55461B5761200794508B
E379198FFB5A4EDF5AF7C0FCD6DC71FA1F88623664D0447694503676D6E59738
9F79981C2AB97EEB8E493F471780B0A73031375C3827B6F50EA1F7EE885B9B90
E9AB441283F4EF1C6C41DC8FE9DCE582BAB0CD65CB8AF0CA61DE4A7AFC3B7F75
CA6097DFE38E07B318BE55372C64698D01486E55880DF0E177BA270AD2A5F813
5701A4E5B87647E53EF14EDD19E4B7007683B569712FE119C27BCFC075979BC7
8A5B0748E1960C5ABC8C5BE4B92607B33572F525562C8E039ABF49E965D2CFB8
369DAD99981263229E068F5C3570760842486D82A78DFACC9BBDD36E4C92017F
52AF6FF3085D19FD3D69BEF26BF4FE486C4DA28B67D8F8A9EEFE6880CA09D2B0
D6659F69E9CF9B8C048851DD2EBCCEF01D71002B2DF0B991D2E93763D7FBE496
0CA746868E3EC8576735B7AD2980CFB4CF3D13A7D2F1A7D170816E7B5F36CE7A
26CCC8F7FDD1FAB9DF86966AB4559A2698EDDA603842D97622053AC85531F0A2
16A97ED8B2E9E9FCE247C33A414BE13DF50A257AAEFD9A00764142AE6CF9D890
BF73B590807FE1B7ABA71BA62CD68867A96739EEDC1EB0824C8AA59A13535931
7B3BAD294588402474B9DD42BCA14C18F64C0FF78B85971BD4179B299D23D9D9
954D71AF0B94986149B5EB8F18232D957FF1EAE068B90B560C72A13EA7B442C6
828EFED6D96384E045B610B0A8BF005B0B99C11E2F99DBE20627C056E14B7C2B
0DF7DD753917691CAF013D7964DF6E4ED5E49241B65914397BFA07D68A5BC15E
E52187CC260540A2F41F4A6D4BD7CAB2C825D72B312B8794BDCB73DDA4C66E96
CA52C51928647A5A59FF268BD487BBCC5A8A6F36AC8BEDC211B6B108606C8D36
3A2D4EA6461CA1251E10A86A40D3C46C10DE603C3596FDD87D2510A8A29A9D0E
E27A52372345A829A84F1254847CB52378A710A8B3EAFA2FD94892D3A32C9F6D
BDC495F27573D7E5DA65146423736952A0A13E6E8030A184D2FF95CE2B68A33C
7F0D94FDE8DA4ACD5FB84C5E6B7D6AE891F4E76289F28F7D766B79B09200FC3F
A082AF28A6DDBF1DFBC29EE3D49BFA8116E5A8EA86D9B1A5E34558A83545B7F3
0C512D2004357DE29C5221FE6163933C0A7C59995769A07BB5B817DB58B6DEED
415A3D643DEAA04A5F7C0B73801410134501C6EC7E55C737B81CFF59F91D1084
BAC2276662BCB529973FFE12717D95C884E714678B60481B69F6059E16B83120
7A6DB96912C2B6463E03732063AF2C6C703E95DA52B5D72265135A18D7186618
F23610A06500E0468758B19D198870ADC4D26227C2FB99B97F231216FBAF7769
83C421D4EDB4B880D2E53EACAC19FF259B7B61C0824FD51E281571FDE1F82A54
93794D923DE8F5512070E6E8AFB5BFF99B8B73E22993305BB60538262B5467E0
678BFB37BAB72658DDDB5037126E86D0F9935A9908164A06FD5055651E83A11E
E7058915122D9F2EAB20D69C6937EA70A58CBBF5F86F846785C92974B6C52D96
BBE2CF060BA5BC78CB760B5BF518DC630031471CD2C0C136628DD815636E878C
EEF640E2DAAE6663EBF873CC521A6272349A7BE9F845E9A2CFF2007D5CD9C12E
B156BC49815D2261CCA72B9ADA22FB720223AE8C0253DDF43A4395566146B9B1
687D5612E8485AD038BB26AFEE7433A77E69BA110183D4D7922C85DBE0DE76C2
DB0438CC99A281AC6CDDDEC6080868AFD6C9916FF45F2FFE9EEC22EC13B7214F
A4A34342F0715E22540A26503251C4F079D53B507A7A8A4C26C765CB5D3E6487
D3AF0A0867AA512CE112F77B379F54D91759225907A1454733EA33674337F06C
BBCF54429C15DED15DEB59AEFFFA82B4FAF1CD1E3C071A4DC9C8D634939A52EB
89ED3BA0697FF8EE3697A64F48115266635DB5F4286E828E308E1D7C6B5D5A01
907EAE2ACCD3199FCB8AAD01471F7098D54D457215C2756D9617C9316A8E0CE4
F32521B6F32B9EE2A8980614744A02638B157355B709444055DDD2AE8ABB0FE4
885F5F55150D98BBFCE02164237C1D82E55F9061D44893E73C337B7C17327945
B164F85481401656CCD0FBC280F0213E77FF6B433A49A9FA6B3DAD3C2E191131
0C76576EAE08A677CB46CC44DC87368EFC29D4E9A8577535B619F594117D3BD4
12DE2166B4CF59F122F16B4FB5092BB15D9501CBD734828C478638A01C7CA12F
2F3E9519766F1E31AEDB3F6D6D6820A85B72CEA12778014D207C2E5FDDDA6AF9
B3604DF3634B123C7C7F2EEA0146FA7412FDA6AB9E62F4B0F2FE3FC94F89BD4A
290224FCC8C85CCB7AF6A86CC765ED026E7DC1FA8971DD25C67451B0CC62B07B
30549C6A7987C5A9D576E8A5DDF2CA26B9756E89B526E718B79406DEA65FB596
0C71DC919771AA57E6913E56FF5EADD3C966F1D5FC26E56087F98AF7F37CBC22
4FCC928AA4221F925CBB7E0A3A623DF3FB2ABB658361B88BBB1E94B78A948A9E
21198332A3FF310217C0DA145DC97314A6878126F88CA53101F0B3D4ACFE85C8
E7BC1F33C6DAFB4D57A89FA33E8599A76CD796D653B13C2512BE4F561F81F502
67C69AC40EC879790C00148CACAFDEAA424A809B9246486C45ECC4E09F6AE655
2FDB077C4C5A2029949AFC6958FD029922164DC9AA8207790D0F138E0E736FD5
5970BE8C4E4EFC951E912D614570A998DD034948DC5449C56A2B33E89B8B077F
97A1EA7542176C03553021FD98B8F0C96D2C135A43D8A0A6D33114DAC906D9F0
4334AB431812105B969FE584623C1BC44B8D6D32C433EEBB7B9BE6BDD1873C25
F06CCC01B9B43E4A6445E9E0936805A38BF1E01F23861FDA9B0087BF3E2C85E9
0776A5306C6B97DB8CE6377108739EA84DF52CADF14C806DA7EB284028805B94
8DB61CB5C591B5E3FEF87E74A0F3F1B963A1B84F717DE48F085F5AE9CB8D60F5
ED2D3D09E720072A2A4C2A256DD98A9F69FC6095C964DCC618FAE945A714BB8A
24B0995F5FFED10FA0D8A6CBB2DF565EEDA1950907CD9AF9FD1B360BBC6E0963
82B35E3073FD7FE70B874CB51F06D9698959F459FC748589C1856387CD60BE2E
A8F7E621858E50F0FC7965BB2CD3481C53A3E3AAC137B75F2EF13AD72E51C0B5
F6101240EE677EE6D89E0A8A45111DB661AE6C2B3A07A1BDCE24C4F20EDCB4E2
19DE64A2C1099AAEF4CC90568A13B83957C016D518859643557E54C43D03C968
3B22C4834FF5204A1C94611B8B968A9D0BF33915C7A74A64BA80663F318C6349
2A176111C6A2DBE4C5B25A6774AABD94C148F64BAA0D94A7520B23BA02337189
F8BC91D75417AEE0935D699E4E113B7CA25E7BDD189B787D278B83041DB25479
84098A94BB2159FD82EBC32596FDDD435D2B568F3030E31A98F005E8FEC084B4
42FBC39627119CE8D8F7A84BF68353AED19A7576D74B7CDBBF9E6BDBD2026303
3C1EB51FEE04DAAC22DA8B26B0C3DCFD7AD50E44CE9C734BDCC605C2C5AFB99B
815B9E0DFFE77CFB35CEB211C6E5092370628184B08ED27B8CACA1C7BE8C6521
E41D3C4142A84D267702289E6AF90C48B7DFD05156CD6FB4EB424B0CC12BE5D8
9A4DD29029CAFACF480ADF9E9D8BBE6F7D90F77123F3E15C6F667A718AD69721
F2D996CA371AB4DD46D28476A84DC6C0B22507FAA8031B7D0CB8693DAAF8BD6D
24E4578B3CEC87D60018236E612025BD514B7AE56FB0C859C451F0B34885E629
434A3937990C3C20227A043BFA53C3628F747BD588460BB25C02D0C607C409C6
F56A23750F8B09959C7B3935E70F90650EF8A71A9293A7EE6D5D01914B9B9201
1B53DF0BA9D573F2D6A6C0D9B884E9B46BCC92D4D82AFE8EE1661B66F77B13CD
7C5267786A4B9ED1A036B591962A4C9F49D58FCBC86EF12B447363A724A9EB9A
43B0A46580564CD8B6CDBBD0011D2C2AE51C1FF386472A8DD61C66363D88F0EA
5BBCE688605B3C7082248856EC479F04F99DE1E827D87494285CBD2AEDADF415
D154BC6C30A35058800A1360DECF3609CF5513D86F41C4D058FB9304FE0CA42B
90F23C676499E2A983AF06FCF09E372C69C5AC195C6AA0007014878AC4EF2CB2
A8FA9151B2C77F776DA1C329736E0F908F48512991562FD3C0EE5E7C75EBA52D
C4686544960F7A37FB2DE00B945C521E9FA54210F42C1E453D0439DEA072916F
D1C9B9C01526E79D44AFA41B7AA08BD4CDA27379C1A0BCABD929AE917BCEE67F
E3AC05E5764E79ECF059E52EE85D64D28766076B412D2CA9271B74A6095CF04A
31655432E2BF0F9C2C5F37C257B31E7A5B06EAD92329ABE9D70FAB1C16957EE5
8C80A873E3AB6B29B0126C75CF659E483099A5A32D9B0B46E803B5F35386F136
B2515ACF4DFF8779C311E74A57A13C127185C2CFEBAE6B9997043721DE4450D6
61648C6A697F09ED42BAB11759845D46E8605079C36B670CAB73A0A1E01D9E38
433FC147E25E8A702282286860917D4A0DEAC8222A740E58FBDA91816DFCED58
F933AC7F7EACBE198DB60E6F11ACF470B57FCDC16DE31BF4B15BB951E50ABC04
7A9EED8550B60364CF3782CDB7165385DE0B650599AB3DA34F5D5B963514B4AF
09826FBBF93278DE6EED781FECA7CF00D2191D14C9D8A5B018C73E3152EC3C7D
079350C0BAD84CFB574C35D7C9B1390D81957EEBC3EE70802E0B572AAF20C79D
B08D8C2EC77F08071356C2645A4F7C257899E0B72826B89B713A4501BACB6B92
06DA791E0DFBE3C0E68CC28DA52D2B1FE5E924585BAA78C463D865D7366EAC60
EAFB579FFD8E0C57385D05AE1E8B6072F56DE0D227339AA24B0E4B6838EB84B3
A891C4F078A69245717FD73DB2704A1147970CCFD9E4B4B1B109B3B717320555
D6E7A3CD8DFF269AA35BB959BE5A70946ABA128DA86D92B92046BDBB73C7822E
CAD1F50FD9C064364071A9A8CFBFE3F365912C2B53758807859107685023B015
E59A1DB2C85CAEE13175BC9D60942B31EDC438AB4743AF2CCC57A0379F922DF6
11FD6B1AB6FD9E136EC11148C08372C65278116A1457BD8DED61E3B987C0A3F9
FDCC5C1BD67A2AFAA505A50E925D18863E2FFE33E293195DA5B3B9B993BEA762
5C2AB3C89DA2BB72EDCADF3C7993445A26191124196494FD3819F38E1ADC02F4
53BC8487EAEB01B6502343C360EE62FA6A5133354DE836BA12A6E98B3770051D
97478423C4C26A75B667B30844EB7C7450E39439F5E2FB30763E519F67A1BEBA
1164E4CBB723531B04BEE7572C808408965E4BD1A9C991DBC59469C57504EE3D
0EA77F0B688DAB51C1A11B5447DF43B76A97CFD09A6239A8293C9BEBEB2786C1
04045ED4F8791918648352DBFA58626CEC471E47A0C2DD369434AA93C4D13C01
FE22FC16270445D61BEDE0CA168DD7AF4A4DF923FA871ECE63ADF237D37CEE47
9C6E657A4D8874F7872D0B62F775570AF435EF8FEE6D3C85571ABA7877348E32
4712DFF94F1DB89064281B94E44B3606A9D3E63646F40774526E99390EB4F196
4CF48B9F39EC5079091E4FD385F6B7A98DC6076582AD027DC94E7A4501B0BB26
8C00F79509D91279A17BEBE5FB19022C1C98B784E113C126B9B5568E20700322
E45F1CA1662471B3F3E667EEB8E0DAC038199F9982DECC9EF81B8560C697187A
F83DF3CF7F399328C13ABE41F7D091F60046D72E8F94B94D4D539B228754B4FB
769A930980B4CA7F2D88D31A842E45476E34EF002FA928E866584C7F93908AFD
E8EC64790D76157EF201BED6903511F4648645B0229E648BF2D2A61A759F0B9B
E80C814D449D65F0B7588D27BCE36D70EABBDCA2A09973BE36DDE06F651C0E6D
9A83AD303008986B2A94C0722620022E6706BF709950CE9B3EB09D8B5D4C50EB
922C5779A5A5350F0CAD649D175EAA8F3FE4C7E6ADFE77B5D9184F750E51A1CA
1C1021C89AB45777CBDFA4B7DE550005B10E21BC4D1F034A03DE398CCFD7A21A
A68BE1161911997EB8F43B150CB2A683FE2DADC53914338EC9DBB7A26718E86B
51B8D8C9E098B021C510C1FA908C4D5FA8FA60DC6B4DF825352610D5C65751DF
B3F01EFDC2D71F49C650384595806CB70B21C2503E27A06E817540EC46EA7772
E876DEE2F17252F39A9D57A542876D9CD51F41C489813D62EF5F7BE7BA6C3644
42D3AFF0BE9C63E2A80A4ACBA1C2E042983DF080B162FC392987DBC66F4FBC0F
DEEF00B9503C7699DA93160EAC233C7DFC7F09F91752213BC63D05775706A18B
45B5A9BE0DB983220AD2F24DBF5814314E194528AAA540BA19C95DA8622A2A61
4FA39EB7BE6BDD394DC9B14A77DAA7FE758F6BF5F0C7B5C3C1C480CF3B41743B
6466B8C95F4C112879386508264549A56250D02462ACC3A5CA62304138A90CE5
E0FD95D975014F3FE0EEEF30B20C5F21CD179246EE87C057FA304689471D515F
B168343171AD40C6D321510804AD735871C08F0C14A5549D21A0F4DC1BB8115A
4AE7E8739DFFAE2D51E28689ED56B3C9653CEC7B160B5A90600A9EB139E3C3B4
99B692C28028970D70BFC1CB3B5FA95900E3E68BA80853756B768E7120F08BAA
67734E0F5588B1C71961B1CBDA92036DD24FF72EB73796C52BC00EDF27DDC1E1
7281D147BE84C4FB91A68FEA90C3E245FFDDD78CAB1CBB53F1DD75449C03771E
5348317A3C4DC79FF83340E91D29692DE71101A7BCB4CB400E8D81DA9536F601
C84BF0277EC915E4A0F350038850E0CDBFE9250FC166EFF1B12A92A6C160ADE2
02A9B84DB6F998B82FCBCAA88B22E24D2528982F3F4FD44F722EEA4978BC5D1F
9D8FCAC59E66A969430B760F7433A4195A10AB6691FE2BE4057BA6B45E5A42CA
A09CC3F70DCA414232372EE4BBB9972B730F1B5E20E61982E39BB4520E805442
ACD3D64BBB96105ADF1EB4BC3EE8790DDE514E25A7757964E0737F383816BC87
5448723D6AC995CFC16C6813234952E63FCB69789B5A25AADE08DED559289187
D50251CFC03CC3217BEE1F024523EDD5C7AE5A33BE538DFC366478070EE20BA1
DE588DAF0609FB946A0931922453E5CDD65A85C2B0A59E4CD661E447C42CE2F8
34852015D26689DF23E52CB2275A21A0FD2F4F52A98D2BCDB53C09782226C259
B9EDE48551F5154D78EC14315D7ACEF6954259D8AA6A8C76D476AD5D7D141B8D
0C7B34988A2DF797B6F4319DF83EDB8393C6DBCA6CD1073A6D7AB000F5C911F2
0BC35104C2B580D5019E8C16C1CAC5A84EB63C79DDD421E92BBF3C553EFE5BA1
D0EAEFB56A51D13EF586B3D44929C32EF5CE2D087841CA2FE75EE9E79F36A018
10154805412B91A4873A793DD9C1D7A1CBD25C57ECCCFDF950C0DD2FEF7EBE2B
A1E02B6E2F884751A5EF3A
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -5075,36 +5094,37 @@ rf /Fd 134[32 32 1[32 34 24 24 25 1[34 31 34 51 17 32
1[17 34 31 19 28 34 27 34 30 7[46 4[43 34 46 3[48 58
37 48 1[23 48 1[39 40 1[44 44 46 8[31 31 31 31 31 31
31 31 2[17 46[{}46 54.5455 /CMBX12 rf /Fe 133[20 24 24
33 1[25 18 18 18 24 25 23 25 38 13 24 1[13 25 23 14 20
25 20 25 23 9[47 1[34 33 25 33 1[31 35 34 1[28 35 1[16
34 1[30 31 35 33 32 34 19[15 45[{}43 45.4545 /CMSL10
rf /Ff 139[15 19 19 3[26 4[14 1[21 90[26 12[{}7 45.4545
/CMTI10 rf /Fg 134[24 24 24 24 24 1[24 24 24 1[24 24
1[24 24 24 24 1[24 24 24 24 1[24 24 1[24 2[24 14[24 24
1[24 1[24 2[24 24 24 17[24 24 2[24 5[24 39[{}33 45.4545
/CMSLTT10 rf /Fh 135[28 2[28 1[21 2[25 29 28 4[14 1[29
24 25 1[27 1[28 97[{}12 45.4545 /CMCSC10 rf /Fi 197[13
58[{}1 45.4545 /CMMI10 rf /Fj 197[16 58[{}1 59.7758 /CMMI12
rf /Fk 135[43 2[45 31 32 33 1[45 40 45 67 22 2[22 1[40
25 37 45 36 45 39 11[62 56 5[63 1[48 4[63 51 53 62 58
1[61 15[40 49[{}29 71.731 /CMBX12 rf /Fl 242[45 13[{}1
45.4545 /CMSY10 rf /Fm 134[35 35 49 35 37 26 27 27 1[37
34 37 56 19 2[19 37 34 21 31 37 30 37 33 9[69 1[52 1[37
50 3[53 64 40 2[25 53 53 42 44 52 49 48 51 6[19 4[34
34 34 34 34 2[19 1[19 44[{}46 59.7758 /CMBX12 rf /Fn
129[24 24 1[24 24 24 24 24 24 24 24 24 24 24 24 24 24
24 24 24 24 24 24 24 24 24 24 24 24 24 1[24 1[24 24 24
1[24 3[24 24 24 24 24 24 24 24 24 24 24 1[24 24 24 24
24 24 24 24 24 24 24 24 24 24 1[24 1[24 24 1[24 2[24
24 24 24 24 24 24 1[24 24 24 24 2[24 24 24 24 33[{}78
45.4545 /CMTT10 rf /Fo 131[45 23 20 24 24 33 24 25 18
18 18 24 25 23 25 38 13 24 14 13 25 23 14 20 25 20 25
23 13 2[13 23 13 28 34 34 47 34 34 33 25 33 35 31 35
34 42 28 35 23 16 34 36 30 31 35 33 32 34 5[13 13 23
23 23 23 23 23 23 23 23 23 23 13 15 13 2[18 18 13 4[23
20[25 25 27 11[{}81 45.4545 /CMR10 rf /Fp 134[51 4[38
38 40 3[54 1[27 2[27 2[30 44 54 43 54 47 11[74 2[72 3[76
1[58 2[36 1[76 71[{}19 86.0772 /CMBX12 rf end
33 24 25 18 18 18 24 25 23 25 38 13 24 1[13 25 23 14
20 25 20 25 23 9[47 1[34 33 25 33 1[31 35 34 1[28 35
1[16 34 1[30 31 35 33 32 34 19[15 33[27 11[{}45 45.4545
/CMSL10 rf /Ff 139[15 19 19 3[26 4[14 1[21 90[26 12[{}7
45.4545 /CMTI10 rf /Fg 134[24 24 24 24 24 1[24 24 24
1[24 24 1[24 24 24 24 1[24 24 24 24 1[24 24 1[24 2[24
14[24 24 1[24 1[24 2[24 24 24 17[24 24 2[24 5[24 39[{}33
45.4545 /CMSLTT10 rf /Fh 135[28 2[28 1[21 2[25 29 28
4[14 1[29 24 25 1[27 1[28 97[{}12 45.4545 /CMCSC10 rf
/Fi 197[13 58[{}1 45.4545 /CMMI10 rf /Fj 197[16 58[{}1
59.7758 /CMMI12 rf /Fk 135[43 2[45 31 32 33 1[45 40 45
67 22 2[22 1[40 25 37 45 36 45 39 11[62 56 5[63 1[48
4[63 51 53 62 58 1[61 15[40 49[{}29 71.731 /CMBX12 rf
/Fl 242[45 13[{}1 45.4545 /CMSY10 rf /Fm 134[35 35 49
35 37 26 27 27 1[37 34 37 56 19 2[19 37 34 21 31 37 30
37 33 9[69 1[52 1[37 50 3[53 64 40 2[25 53 53 42 44 52
49 48 51 6[19 4[34 34 34 34 34 2[19 1[19 44[{}46 59.7758
/CMBX12 rf /Fn 129[24 24 1[24 24 24 24 24 24 24 24 24
24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24
1[24 1[24 24 24 1[24 3[24 24 24 24 24 24 24 24 24 24
24 1[24 24 24 24 24 24 24 24 24 24 24 24 24 24 1[24 1[24
24 1[24 2[24 24 24 24 24 24 24 1[24 24 24 24 2[24 24
24 24 33[{}78 45.4545 /CMTT10 rf /Fo 131[45 23 20 24
24 33 24 25 18 18 18 24 25 23 25 38 13 24 14 13 25 23
14 20 25 20 25 23 13 2[13 23 13 28 34 34 47 34 34 33
25 33 35 31 35 34 42 28 35 23 16 34 36 30 31 35 33 32
34 5[13 13 23 23 23 23 23 23 23 23 23 23 23 13 15 13
2[18 18 13 4[23 20[25 25 27 11[{}81 45.4545 /CMR10 rf
/Fp 134[51 4[38 38 40 3[54 1[27 2[27 2[30 44 54 43 54
47 11[74 2[72 3[76 1[58 2[36 1[76 71[{}19 86.0772 /CMBX12
rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
@@ -5126,9 +5146,9 @@ b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6
b(oundation)p 75 2570 1800 9 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 75 2207 a Fo(This)16 b(man)o(ual)f(describ)q(es)i
(the)g(end)g(user)f(in)o(terface)g(of)g(the)g(GNU)g(Readline)h(Library)
f(\(v)o(ersion)f(7.0,)g(7)75 2262 y(Decem)o(b)q(er)20
TeXDict begin 2 1 bop 75 2207 a Fo(This)14 b(man)o(ual)g(describ)q(es)i
(the)e(end)i(user)f(in)o(terface)f(of)g(the)h(GNU)f(Readline)h(Library)
f(\(v)o(ersion)g(7.0,)g(28)75 2262 y(Decem)o(b)q(er)20
b(2017\),)e(a)h(library)f(whic)o(h)h(aids)g(in)g(the)g(consistency)g
(of)g(user)g(in)o(terface)g(across)f(discrete)75 2316
y(programs)c(whic)o(h)h(pro)o(vide)g(a)g(command)g(line)g(in)o
@@ -5985,83 +6005,108 @@ b(Unquoted)11 b(text)f(is)h(assumed)f(to)h(b)q(e)g(a)f(function)h
Fn(")p Fo(')f(and)h(`)p Fn(')p Fo('.)34 b(F)l(or)315
369 y(example,)13 b(the)g(follo)o(wing)d(binding)j(will)f(mak)o(e)g(`)p
Fg(C-x)i Fn(\\)p Fo(')f(insert)f(a)h(single)f(`)p Fn(\\)p
Fo(')g(in)o(to)g(the)h(line:)435 435 y Fn("\\C-x\\\\":)23
b("\\\\")75 532 y Fd(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)75
605 y Fo(Readline)f(implemen)o(ts)e(a)h(facilit)o(y)f(similar)f(in)i
Fo(')g(in)o(to)g(the)h(line:)435 436 y Fn("\\C-x\\\\":)23
b("\\\\")75 537 y Fd(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)75
610 y Fo(Readline)f(implemen)o(ts)e(a)h(facilit)o(y)f(similar)f(in)i
(spirit)g(to)f(the)i(conditional)e(compilation)f(features)i(of)75
660 y(the)d(C)h(prepro)q(cessor)f(whic)o(h)g(allo)o(ws)f(k)o(ey)h
665 y(the)d(C)h(prepro)q(cessor)f(whic)o(h)g(allo)o(ws)f(k)o(ey)h
(bindings)g(and)h(v)m(ariable)e(settings)h(to)f(b)q(e)i(p)q(erformed)g
(as)f(the)75 715 y(result)g(of)f(tests.)20 b(There)15
b(are)g(four)g(parser)g(directiv)o(es)f(used.)75 792
(as)f(the)75 720 y(result)g(of)f(tests.)20 b(There)15
b(are)g(four)g(parser)g(directiv)o(es)f(used.)75 801
y Fn($if)168 b Fo(The)16 b Fn($if)f Fo(construct)g(allo)o(ws)f
(bindings)i(to)f(b)q(e)h(made)g(based)g(on)f(the)h(editing)f(mo)q(de,)h
(the)315 847 y(terminal)i(b)q(eing)h(used,)h(or)f(the)g(application)f
(using)g(Readline.)32 b(The)19 b(text)g(of)f(the)i(test)315
902 y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)g(no)g(c)o(haracters)
f(are)h(required)h(to)e(isolate)g(it.)315 979 y Fn(mode)144
b Fo(The)15 b Fn(mode=)g Fo(form)f(of)h(the)g Fn($if)f
Fo(directiv)o(e)h(is)f(used)i(to)e(test)h(whether)g(Read-)555
1034 y(line)21 b(is)g(in)h Fn(emacs)f Fo(or)g Fn(vi)g
(the)315 856 y(terminal)h(b)q(eing)h(used,)h(or)f(the)g(application)f
(using)h(Readline.)29 b(The)18 b(text)g(of)g(the)g(test,)315
910 y(after)c(an)o(y)g(comparison)g(op)q(erator,)g(extends)h(to)f(the)h
(end)g(of)g(the)g(line;)f(unless)h(otherwise)315 965
y(noted,)g(no)g(c)o(haracters)f(are)h(required)h(to)e(isolate)g(it.)315
1046 y Fn(mode)144 b Fo(The)15 b Fn(mode=)g Fo(form)f(of)h(the)g
Fn($if)f Fo(directiv)o(e)h(is)f(used)i(to)e(test)h(whether)g(Read-)555
1100 y(line)21 b(is)g(in)h Fn(emacs)f Fo(or)g Fn(vi)g
Fo(mo)q(de.)40 b(This)21 b(ma)o(y)g(b)q(e)h(used)g(in)g(conjunction)555
1089 y(with)d(the)h(`)p Fn(set)14 b(keymap)p Fo(')19
1155 y(with)d(the)h(`)p Fn(set)14 b(keymap)p Fo(')19
b(command,)h(for)f(instance,)h(to)f(set)h(bindings)f(in)555
1144 y(the)d Fn(emacs-standard)e Fo(and)i Fn(emacs-ctlx)e
Fo(k)o(eymaps)i(only)f(if)g(Readline)h(is)555 1199 y(starting)e(out)g
(in)h Fn(emacs)g Fo(mo)q(de.)315 1276 y Fn(term)144 b
1210 y(the)d Fn(emacs-standard)e Fo(and)i Fn(emacs-ctlx)e
Fo(k)o(eymaps)i(only)f(if)g(Readline)h(is)555 1265 y(starting)e(out)g
(in)h Fn(emacs)g Fo(mo)q(de.)315 1345 y Fn(term)144 b
Fo(The)14 b Fn(term=)e Fo(form)h(ma)o(y)g(b)q(e)h(used)g(to)f(include)h
(terminal-sp)q(eci\014c)f(k)o(ey)g(bind-)555 1331 y(ings,)18
(terminal-sp)q(eci\014c)f(k)o(ey)g(bind-)555 1400 y(ings,)18
b(p)q(erhaps)h(to)e(bind)h(the)h(k)o(ey)e(sequences)j(output)e(b)o(y)g
(the)g(terminal's)555 1386 y(function)12 b(k)o(eys.)18
(the)g(terminal's)555 1455 y(function)12 b(k)o(eys.)18
b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)f(side)g(of)h(the)g(`)p
Fn(=)p Fo(')f(is)g(tested)h(against)555 1440 y(b)q(oth)j(the)g(full)g
Fn(=)p Fo(')f(is)g(tested)h(against)555 1510 y(b)q(oth)j(the)g(full)g
(name)g(of)f(the)h(terminal)f(and)h(the)g(p)q(ortion)g(of)f(the)h
(terminal)555 1495 y(name)i(b)q(efore)g(the)g(\014rst)f(`)p
(terminal)555 1565 y(name)i(b)q(efore)g(the)g(\014rst)f(`)p
Fn(-)p Fo('.)24 b(This)16 b(allo)o(ws)f Fn(sun)h Fo(to)g(matc)o(h)h(b)q
(oth)f Fn(sun)h Fo(and)555 1550 y Fn(sun-cmd)p Fo(,)d(for)g(instance.)
315 1627 y Fn(version)72 b Fo(The)23 b Fn(version)e Fo(test)h(ma)o(y)f
(oth)f Fn(sun)h Fo(and)555 1619 y Fn(sun-cmd)p Fo(,)d(for)g(instance.)
315 1700 y Fn(version)72 b Fo(The)23 b Fn(version)e Fo(test)h(ma)o(y)f
(b)q(e)i(used)g(to)f(p)q(erform)g(comparisons)f(against)555
1682 y(sp)q(eci\014c)h(Readline)f(v)o(ersions.)36 b(The)21
1755 y(sp)q(eci\014c)h(Readline)f(v)o(ersions.)36 b(The)21
b Fn(version)f Fo(expands)h(to)f(the)h(curren)o(t)555
1737 y(Readline)12 b(v)o(ersion.)18 b(The)12 b(set)g(of)g(comparison)f
1809 y(Readline)12 b(v)o(ersion.)18 b(The)12 b(set)g(of)g(comparison)f
(op)q(erators)g(includes)h(`)p Fn(=)p Fo(')f(\(and)555
1792 y(`)p Fn(==)p Fo('\),)j(`)p Fn(!=)p Fo(',)h(`)p
1864 y(`)p Fn(==)p Fo('\),)j(`)p Fn(!=)p Fo(',)h(`)p
Fn(<=)p Fo(',)g(`)p Fn(>=)p Fo(',)g(`)p Fn(<)p Fo(',)f(and)j(`)p
Fn(>)p Fo('.)k(The)16 b(v)o(ersion)f(n)o(um)o(b)q(er)i(supplied)f(on)
555 1846 y(the)c(righ)o(t)e(side)h(of)h(the)f(op)q(erator)g(consists)g
(of)g(a)g(ma)s(jor)f(v)o(ersion)h(n)o(um)o(b)q(er,)h(an)555
1901 y(optional)h(decimal)g(p)q(oin)o(t,)h(and)g(an)g(optional)f(minor)
g(v)o(ersion)g(\(e.g.,)g(`)p Fn(7.1)p Fo('\).)555 1956
y(If)i(the)h(minor)e(v)o(ersion)h(is)f(omitted,)g(it)h(is)f(assumed)i
(to)e(b)q(e)i(`)p Fn(0)p Fo('.)315 2033 y Fn(application)555
2088 y Fo(The)11 b Fe(application)f Fo(construct)h(is)f(used)i(to)e
(include)h(application-sp)q(eci\014c)g(set-)555 2143
y(tings.)18 b(Eac)o(h)12 b(program)f(using)i(the)f(Readline)h(library)e
(sets)h(the)g Fe(application)555 2198 y(name)p Fo(,)g(and)g(y)o(ou)f
(can)h(test)f(for)g(a)g(particular)f(v)m(alue.)19 b(This)11
b(could)h(b)q(e)g(used)h(to)555 2253 y(bind)k(k)o(ey)f(sequences)i(to)d
(functions)i(useful)f(for)g(a)g(sp)q(eci\014c)h(program.)23
b(F)l(or)555 2307 y(instance,)16 b(the)h(follo)o(wing)d(command)j(adds)
f(a)g(k)o(ey)h(sequence)g(that)f(quotes)555 2362 y(the)f(curren)o(t)g
(or)g(previous)g(w)o(ord)f(in)i(Bash:)675 2428 y Fn($if)23
b(Bash)675 2483 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)675
2538 y("\\C-xq":)g("\\eb\\"\\ef\\"")675 2593 y($endif)75
2670 y($endif)96 b Fo(This)15 b(command,)f(as)h(seen)h(in)f(the)g
(previous)g(example,)g(terminates)f(an)h Fn($if)f Fo(command.)p
eop end
555 1919 y(the)h(righ)o(t)f(side)h(of)f(the)i(op)q(erator)e(consists)g
(of)h(a)f(ma)s(jor)g(v)o(ersion)g(n)o(um)o(b)q(er,)555
1974 y(an)23 b(optional)e(decimal)h(p)q(oin)o(t,)i(and)f(an)f(optional)
g(minor)g(v)o(ersion)g(\(e.g.,)555 2029 y(`)p Fn(7.1)p
Fo('\).)c(If)c(the)g(minor)f(v)o(ersion)g(is)g(omitted,)g(it)g(is)h
(assumed)g(to)f(b)q(e)h(`)p Fn(0)p Fo('.)19 b(The)555
2083 y(op)q(erator)d(ma)o(y)g(b)q(e)h(separated)g(from)f(the)h(string)e
Fn(version)h Fo(and)h(from)f(the)555 2138 y(v)o(ersion)j(n)o(um)o(b)q
(er)g(argumen)o(t)g(b)o(y)g(whitespace.)32 b(The)20 b(follo)o(wing)d
(example)555 2193 y(sets)e(a)g(v)m(ariable)f(if)h(the)g(Readline)h(v)o
(ersion)e(b)q(eing)i(used)f(is)g(7.0)f(or)h(new)o(er:)675
2261 y Fn($if)23 b(version)g(>=)h(7.0)675 2315 y(set)f
(show-mode-in-prompt)f(on)675 2370 y($endif)315 2451
y(application)555 2506 y Fo(The)11 b Fe(application)f
Fo(construct)h(is)f(used)i(to)e(include)h(application-sp)q(eci\014c)g
(set-)555 2560 y(tings.)18 b(Eac)o(h)12 b(program)f(using)i(the)f
(Readline)h(library)e(sets)h(the)g Fe(application)555
2615 y(name)p Fo(,)g(and)g(y)o(ou)f(can)h(test)f(for)g(a)g(particular)f
(v)m(alue.)19 b(This)11 b(could)h(b)q(e)g(used)h(to)555
2670 y(bind)k(k)o(ey)f(sequences)i(to)d(functions)i(useful)f(for)g(a)g
(sp)q(eci\014c)h(program.)23 b(F)l(or)p eop end
%%Page: 13 16
TeXDict begin 13 15 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
(Editing)1053 b(13)75 149 y Fn($else)120 b Fo(Commands)15
b(in)g(this)f(branc)o(h)i(of)e(the)i Fn($if)e Fo(directiv)o(e)h(are)g
(executed)h(if)f(the)g(test)g(fails.)75 229 y Fn($include)48
b Fo(This)21 b(directiv)o(e)g(tak)o(es)g(a)h(single)f(\014lename)h(as)f
(an)h(argumen)o(t)f(and)h(reads)f(commands)315 284 y(and)e(bindings)h
(from)e(that)h(\014le.)32 b(F)l(or)19 b(example,)h(the)f(follo)o(wing)e
(directiv)o(e)i(reads)g(from)315 339 y Fn(/etc/inputrc)p
Fo(:)435 406 y Fn($include)k(/etc/inputrc)75 506 y Fd(1.3.3)30
b(Sample)20 b(Init)h(File)75 579 y Fo(Here)13 b(is)g(an)g(example)g(of)
g(an)g Fe(inputrc)j Fo(\014le.)k(This)12 b(illustrates)g(k)o(ey)h
(binding,)g(v)m(ariable)g(assignmen)o(t,)f(and)75 634
y(conditional)i(syn)o(tax.)p eop end
(Editing)1053 b(13)555 149 y(instance,)16 b(the)h(follo)o(wing)d
(command)j(adds)f(a)g(k)o(ey)h(sequence)g(that)f(quotes)555
204 y(the)f(curren)o(t)g(or)g(previous)g(w)o(ord)f(in)i(Bash:)675
271 y Fn($if)23 b(Bash)675 326 y(#)h(Quote)f(the)g(current)g(or)h
(previous)f(word)675 381 y("\\C-xq":)g("\\eb\\"\\ef\\"")675
436 y($endif)315 516 y(variable)48 b Fo(The)17 b Fe(v)m(ariable)h
Fo(construct)e(pro)o(vides)g(simple)h(equalit)o(y)e(tests)h(for)g
(Readline)555 570 y(v)m(ariables)f(and)h(v)m(alues.)22
b(The)16 b(p)q(ermitted)g(comparison)f(op)q(erators)g(are)g(`)p
Fn(=)p Fo(',)555 625 y(`)p Fn(==)p Fo(',)23 b(and)g(`)p
Fn(!=)p Fo('.)40 b(The)23 b(v)m(ariable)f(name)h(m)o(ust)f(b)q(e)h
(separated)f(from)g(the)555 680 y(comparison)12 b(op)q(erator)f(b)o(y)h
(whitespace;)h(the)g(op)q(erator)e(ma)o(y)h(b)q(e)h(separated)555
735 y(from)j(the)h(v)m(alue)g(on)g(the)g(righ)o(t)f(hand)h(side)g(b)o
(y)g(whitespace.)25 b(Both)17 b(string)555 790 y(and)i(b)q(o)q(olean)g
(v)m(ariables)f(ma)o(y)g(b)q(e)h(tested.)31 b(Bo)q(olean)18
b(v)m(ariables)g(m)o(ust)g(b)q(e)555 844 y(tested)k(against)g(the)g(v)m
(alues)h Fe(on)f Fo(and)h Fe(o\013)p Fo(.)41 b(The)23
b(follo)o(wing)d(example)i(is)555 899 y(equiv)m(alen)o(t)15
b(to)f(the)i Fn(mode=emacs)e Fo(test)g(describ)q(ed)i(ab)q(o)o(v)o(e:)
675 966 y Fn($if)23 b(editing-mode)g(==)g(emacs)675 1021
y(set)g(show-mode-in-prompt)f(on)675 1076 y($endif)75
1156 y($endif)96 b Fo(This)15 b(command,)f(as)h(seen)h(in)f(the)g
(previous)g(example,)g(terminates)f(an)h Fn($if)f Fo(command.)75
1235 y Fn($else)120 b Fo(Commands)15 b(in)g(this)f(branc)o(h)i(of)e
(the)i Fn($if)e Fo(directiv)o(e)h(are)g(executed)h(if)f(the)g(test)g
(fails.)75 1315 y Fn($include)48 b Fo(This)21 b(directiv)o(e)g(tak)o
(es)g(a)h(single)f(\014lename)h(as)f(an)h(argumen)o(t)f(and)h(reads)f
(commands)315 1370 y(and)e(bindings)h(from)e(that)h(\014le.)32
b(F)l(or)19 b(example,)h(the)f(follo)o(wing)e(directiv)o(e)i(reads)g
(from)315 1425 y Fn(/etc/inputrc)p Fo(:)435 1492 y Fn($include)k
(/etc/inputrc)75 1592 y Fd(1.3.3)30 b(Sample)20 b(Init)h(File)75
1665 y Fo(Here)13 b(is)g(an)g(example)g(of)g(an)g Fe(inputrc)j
Fo(\014le.)k(This)12 b(illustrates)g(k)o(ey)h(binding,)g(v)m(ariable)g
(assignmen)o(t,)f(and)75 1720 y(conditional)i(syn)o(tax.)p
eop end
%%Page: 14 17
TeXDict begin 14 16 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
(Editing)1053 b(14)195 204 y Fn(#)24 b(This)f(file)g(controls)g(the)h
+2 -2
View File
@@ -1,7 +1,7 @@
/* make_cmd.c -- Functions for making instances of the various
parser constructs. */
/* Copyright (C) 1989-2009 Free Software Foundation, Inc.
/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -793,7 +793,7 @@ make_function_def (name, command, lineno, lstart)
temp->source_file = shell_initialized ? "main" : "environment";
#if defined (DEBUGGER)
bind_function_def (name->word, temp);
bind_function_def (name->word, temp, 0);
#endif
temp->source_file = temp->source_file ? savestring (temp->source_file) : 0;
+20 -9
View File
@@ -4,7 +4,7 @@
/* ``Have a little faith, there's magic in the night. You ain't a
beauty, but, hey, you're alright.'' */
/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
/* Copyright (C) 1987-2018 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -3056,12 +3056,13 @@ do_compound_assignment (name, value, flags)
int flags;
{
SHELL_VAR *v;
int mklocal, mkassoc, mkglobal;
int mklocal, mkassoc, mkglobal, chklocal;
WORD_LIST *list;
mklocal = flags & ASS_MKLOCAL;
mkassoc = flags & ASS_MKASSOC;
mkglobal = flags & ASS_MKGLOBAL;
chklocal = flags & ASS_CHKLOCAL;
if (mklocal && variable_context)
{
@@ -3082,10 +3083,15 @@ do_compound_assignment (name, value, flags)
if (list)
dispose_words (list);
}
/* In a function but forcing assignment in global context */
/* In a function but forcing assignment in global context. CHKLOCAL means to
check for an existing local variable first. */
else if (mkglobal && variable_context)
{
v = find_global_variable (name);
v = chklocal ? find_variable (name) : 0;
if (v && (local_p (v) == 0 || v->context != variable_context))
v = 0;
if (v == 0)
v = find_global_variable (name);
if (v && ((readonly_p (v) && (flags & ASS_FORCE) == 0) || noassign_p (v)))
{
if (readonly_p (v))
@@ -3208,6 +3214,8 @@ do_assignment_internal (word, expand)
}
else if (assign_list)
{
if ((word->flags & W_ASSIGNARG) && (word->flags & W_CHKLOCAL))
aflags |= ASS_CHKLOCAL;
if ((word->flags & W_ASSIGNARG) && (word->flags & W_ASSNGLOBAL) == 0)
aflags |= ASS_MKLOCAL;
if ((word->flags & W_ASSIGNARG) && (word->flags & W_ASSNGLOBAL))
@@ -9123,15 +9131,15 @@ param_expand (string, sindex, quoted, expanded_something,
{
/* Posix interp 888: RHS of assignment, IFS set to '' */
temp1 = string_list_dollar_star (list, quoted, pflags);
temp = quote_escapes (temp1);
free (temp1);
temp = temp1 ? quote_escapes (temp1) : temp1;
FREE (temp1);
}
else if (expand_no_split_dollar_star && quoted == 0 && ifs_is_set && ifs_is_null == 0 && (pflags & PF_ASSIGNRHS))
{
/* Posix interp 888: RHS of assignment, IFS set to non-null value */
temp1 = string_list_dollar_star (list, quoted, pflags);
temp = quote_string (temp1);
free (temp1);
temp = temp1 ? quote_string (temp1) : temp1;
FREE (temp1);
}
/* XXX - should we check ifs_is_set here as well? */
# if defined (HANDLE_MULTIBYTE)
@@ -11045,7 +11053,7 @@ shell_expand_word_list (tlist, eflags)
int opti;
opti = 0;
if (tlist->word->flags & (W_ASSIGNASSOC|W_ASSNGLOBAL|W_ASSIGNARRAY))
if (tlist->word->flags & (W_ASSIGNASSOC|W_ASSNGLOBAL|W_CHKLOCAL|W_ASSIGNARRAY))
opts[opti++] = '-';
if ((tlist->word->flags & (W_ASSIGNASSOC|W_ASSNGLOBAL)) == (W_ASSIGNASSOC|W_ASSNGLOBAL))
@@ -11065,6 +11073,9 @@ shell_expand_word_list (tlist, eflags)
else if (tlist->word->flags & W_ASSNGLOBAL)
opts[opti++] = 'g';
if (tlist->word->flags & W_CHKLOCAL)
opts[opti++] = 'G';
/* If we have special handling note the integer attribute and others
that transform the value upon assignment. What we do is take all
of the option arguments and scan through them looking for options
+1 -1
View File
@@ -1,4 +1,4 @@
BUILD_DIR=/usr/local/build/bash/bash-current
BUILD_DIR=/usr/local/build/chet/bash/bash-current
THIS_SH=$BUILD_DIR/bash
PATH=$PATH:$BUILD_DIR
+1
View File
@@ -219,3 +219,4 @@ declare -A a=(["80's"]="Depeche Mode" )
1
1+5
declare -A a=(["\$(date >&2)"]="5" )
declare -A myarray=([foo]="bleh" ["foo[bar"]="bleh" )
+8
View File
@@ -100,3 +100,11 @@ echo $((1+a[\$x]))
echo "1+${a[$x]}"
declare -p a
shopt -s assoc_expand_once
declare -A myarray
declare myarray["foo[bar"]=bleh
myarray["foo"]=bleh
declare -p myarray
+17
View File
@@ -6,6 +6,23 @@ recho "$*"
recho $@
recho $*
foo=$*
foo=$@
foo="$*"
foo="$@"
unset -v bar
foo=${bar:-$*}
foo=${bar:-$@}
foo=${bar:-"$*"}
foo=${bar:-"$@"}
foo=${!*}
foo=${!@}
set a b
recho "$*"
+34
View File
@@ -144,3 +144,37 @@ three
echo ${BASH_VERSION%\.*}
4.4
echo ${BASH_VERSION%\.*}
a
b
c
d
e
1 echo a
2 echo b
3 echo c
4 echo d
5 echo e
1 echo a
2 echo e
f
g
h
i
1 echo a
2 echo e
3 echo f
4 echo g
5 echo h
./history3.sub: line 27: history: 16: history position out of range
./history3.sub: line 28: history: 200: history position out of range
./history3.sub: line 29: history: -20: history position out of range
./history3.sub: line 30: history: -50: history position out of range
./history3.sub: line 31: history: 5-0xaf: history position out of range
1 echo a
2 echo e
3 echo f
4 echo g
5 echo h
+1
View File
@@ -112,3 +112,4 @@ ${THIS_SH} ./history1.sub
rm -f $TMPDIR/foohist-*
${THIS_SH} ./history2.sub
${THIS_SH} ./history3.sub
+36
View File
@@ -0,0 +1,36 @@
: ${TMPDIR:=/tmp}
set -o history
HISTFILE=$TMPDIR/history-$$
history -c
echo a
echo b
echo c
echo d
echo e
history ; echo
history -d 2-4
history
echo f
echo g
echo h
echo i
history -d 6--1
history ; echo
history -d 16-40
history -d 1-200
history -d -20-50
history -d 1--50
history -d 5-0xaf
history ; echo
unset HISTFILE
exit 0
+16 -15
View File
@@ -27,20 +27,21 @@ i killed it
12
[1]- Running sleep 20 &
[3]+ Running sleep 20 &
child1 exit status 0
0
./jobs.tests: line 22: wait: %1: no such job
./jobs.tests: line 27: fg: no job control
./jobs.tests: line 25: wait: %1: no such job
./jobs.tests: line 30: fg: no job control
wait-for-pid
wait-errors
./jobs.tests: line 40: wait: `1-1': not a pid or valid job spec
./jobs.tests: line 41: wait: `-4': not a pid or valid job spec
./jobs.tests: line 43: wait: `1-1': not a pid or valid job spec
./jobs.tests: line 44: wait: `-4': not a pid or valid job spec
wait-for-background-pids
async list wait-for-background-pids
async list wait for child
forked
wait-when-no-children
wait-for-job
./jobs.tests: line 63: wait: %2: no such job
./jobs.tests: line 66: wait: %2: no such job
127
async list wait-for-job
forked
@@ -53,19 +54,19 @@ sleep 5
fg-bg 4
sleep 5
fg-bg 5
./jobs.tests: line 90: fg: %2: no such job
./jobs.tests: line 91: bg: job 1 already in background
./jobs.tests: line 93: fg: %2: no such job
./jobs.tests: line 94: bg: job 1 already in background
fg-bg 6
./jobs.tests: line 98: fg: -s: invalid option
./jobs.tests: line 101: fg: -s: invalid option
fg: usage: fg [job_spec]
./jobs.tests: line 99: bg: -s: invalid option
./jobs.tests: line 102: bg: -s: invalid option
bg: usage: bg [job_spec ...]
./jobs.tests: line 104: disown: -s: invalid option
./jobs.tests: line 107: disown: -s: invalid option
disown: usage: disown [-h] [-ar] [jobspec ... | pid ...]
./jobs.tests: line 108: disown: %1: no such job
./jobs.tests: line 111: disown: %2: no such job
./jobs.tests: line 111: disown: %1: no such job
./jobs.tests: line 114: disown: %2: no such job
wait-for-non-child
./jobs.tests: line 114: wait: pid 1 is not a child of this shell
./jobs.tests: line 117: wait: pid 1 is not a child of this shell
127
3 -- 1 2 3 -- 1 - 2 - 3
[1] Running sleep 300 &
@@ -75,8 +76,8 @@ running jobs:
[1] Running sleep 300 &
[2]- Running sleep 350 &
[3]+ Running sleep 400 &
./jobs.tests: line 131: kill: %4: no such job
./jobs.tests: line 133: jobs: %4: no such job
./jobs.tests: line 134: kill: %4: no such job
./jobs.tests: line 136: jobs: %4: no such job
current job:
[3]+ Running sleep 400 &
previous job:
+3
View File
@@ -15,6 +15,9 @@ ${THIS_SH} ./jobs4.sub
# test out wait -n framework
${THIS_SH} ./jobs5.sub
# test out wait -f framework
${THIS_SH} ./jobs6.sub
jobs
echo $?
+14
View File
@@ -0,0 +1,14 @@
# framework to test `wait -f' which forces wait until a job exits
set -o monitor
sleep 5 &
child1=$!
( sleep 1; kill -STOP $child1 ; sleep 1 ; kill -CONT $child1 )&
child2=$!
wait -f %1
echo child1 exit status $?
wait $child2
exit 0
+28
View File
@@ -91,6 +91,34 @@ global:2
after: --global--
after: ----
x = :1:2
in o1 (readonly modifying local scalars):
declare -r i1="a b c"
declare -r j1="1 2 3"
after o1:
./varenv9.sub: line 15: declare: i1: not found
./varenv9.sub: line 15: declare: j1: not found
in o2 (readonly setting global scalars):
declare -r i2="a b c"
declare -r j2="1 2 3"
after o2:
declare -r i2="a b c"
declare -r j2="1 2 3"
./varenv9.sub: line 33: unset: i2: cannot unset: readonly variable
./varenv9.sub: line 33: unset: j2: cannot unset: readonly variable
in o3 (readonly modifying locals, converting to arrays):
declare -ar i3=([0]="a" [1]="b" [2]="c")
declare -ar j3=([0]="1" [1]="2" [2]="3")
after o3:
./varenv9.sub: line 48: declare: i3: not found
./varenv9.sub: line 48: declare: j3: not found
in o4 (readonly setting global array variables):
declare -ar i4=([0]="a" [1]="b" [2]="c")
declare -ar j4=([0]="1" [1]="2" [2]="3")
after o4:
declare -ar i4=([0]="a" [1]="b" [2]="c")
declare -ar j4=([0]="1" [1]="2" [2]="3")
./varenv9.sub: line 66: unset: i4: cannot unset: readonly variable
./varenv9.sub: line 66: unset: j4: cannot unset: readonly variable
a=z
a=b
a=z
+4
View File
@@ -221,5 +221,9 @@ ${THIS_SH} ./varenv7.sub
# redirections
${THIS_SH} ./varenv8.sub
# make sure that builtins like readonly and export modify local array variables
# if executed in shell functions, like they modify local scalar variables
${THIS_SH} ./varenv9.sub
# make sure variable scoping is done right
tt() { typeset a=b;echo a=$a; };a=z;echo a=$a;tt;echo a=$a
+66
View File
@@ -0,0 +1,66 @@
# case 1: readonly modifying local scalar variables
o1() {
local i1 j1
readonly i1=$1
readonly j1="1 2 3"
echo "in o1 (readonly modifying local scalars):"
declare -p i1
declare -p j1
}
o1 "a b c"
echo after o1:
declare -p i1 j1
unset i1 j1
# case 2: readonly setting global scalar variables
o2() {
readonly i2=$1
readonly j2="1 2 3"
echo "in o2 (readonly setting global scalars):"
declare -p i2
declare -p j2
}
o2 "a b c"
echo after o2:
declare -p i2 j2
unset i2 j2
# case 3: readonly modifying local variables, converting to arrays
o3() {
local i3 j3
readonly i3=($1)
readonly j3=(1 2 3)
echo "in o3 (readonly modifying locals, converting to arrays):"
declare -p i3
declare -p j3
}
o3 "a b c"
echo after o3:
declare -p i3 j3
unset i3 j3
# case 4: readonly setting global array variables
o4() {
readonly i4=($1)
readonly j4=(1 2 3)
echo "in o4 (readonly setting global array variables):"
declare -p i4
declare -p j4
}
o4 "a b c"
echo after o4:
declare -p i4 j4
unset i4 j4
+9 -4
View File
@@ -1,6 +1,6 @@
/* variables.c -- Functions for hacking shell variables. */
/* Copyright (C) 1987-2016 Free Software Foundation, Inc.
/* Copyright (C) 1987-2018 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -3302,22 +3302,27 @@ bind_function (name, value)
#if defined (DEBUGGER)
/* Bind a function definition, which includes source file and line number
information in addition to the command, into the FUNCTION_DEF hash table.*/
information in addition to the command, into the FUNCTION_DEF hash table.
If (FLAGS & 1), overwrite any existing definition. If FLAGS == 0, leave
any existing definition alone. */
void
bind_function_def (name, value)
bind_function_def (name, value, flags)
const char *name;
FUNCTION_DEF *value;
int flags;
{
FUNCTION_DEF *entry;
BUCKET_CONTENTS *elt;
COMMAND *cmd;
entry = find_function_def (name);
if (entry)
if (entry && (flags & 1))
{
dispose_function_def_contents (entry);
entry = copy_function_def_contents (value, entry);
}
else if (entry)
return;
else
{
cmd = value->command;
+2 -2
View File
@@ -1,6 +1,6 @@
/* variables.h -- data structures for shell variables. */
/* Copyright (C) 1987-2015 Free Software Foundation, Inc.
/* Copyright (C) 1987-2018 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -283,7 +283,7 @@ extern SHELL_VAR *bind_variable __P((const char *, char *, int));
extern SHELL_VAR *bind_global_variable __P((const char *, char *, int));
extern SHELL_VAR *bind_function __P((const char *, COMMAND *));
extern void bind_function_def __P((const char *, FUNCTION_DEF *));
extern void bind_function_def __P((const char *, FUNCTION_DEF *, int));
extern SHELL_VAR **map_over __P((sh_var_map_func_t *, VAR_CONTEXT *));
SHELL_VAR **map_over_funcs __P((sh_var_map_func_t *));