summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes160
-rw-r--r--MANIFEST77
-rw-r--r--cop.h9
-rw-r--r--deb.c4
-rw-r--r--embed.h6
-rw-r--r--ext/IO/lib/IO/Handle.pm4
-rw-r--r--ext/POSIX/POSIX.pod4
-rw-r--r--ext/POSIX/POSIX.xs70
-rw-r--r--global.sym6
-rw-r--r--gv.c35
-rw-r--r--hv.c2
-rw-r--r--hv.h2
-rwxr-xr-xinstallperl3
-rw-r--r--lib/File/Copy.pm193
-rw-r--r--lib/I18N/Collate.pm2
-rw-r--r--mg.c69
-rwxr-xr-xmyconfig2
-rw-r--r--patchlevel.h2
-rw-r--r--perl.c2
-rw-r--r--perl.h76
-rwxr-xr-xperl_exp.SH74
-rw-r--r--perly.c2389
-rw-r--r--perly.c.diff54
-rw-r--r--perly.y22
-rw-r--r--pod/Makefile16
-rw-r--r--pod/perl.pod2
-rw-r--r--pod/perlfunc.pod7
-rw-r--r--pod/perlmod.pod66
-rw-r--r--pod/perlnews.pod37
-rw-r--r--pod/perlobj.pod28
-rw-r--r--pod/perltoot.pod4
-rw-r--r--pod/roffitall2
-rw-r--r--pp.c61
-rw-r--r--pp_ctl.c5
-rw-r--r--pp_hot.c230
-rw-r--r--proto.h32
-rw-r--r--sv.c11
-rwxr-xr-xt/lib/filecopy.t51
-rwxr-xr-xt/lib/open2.t2
-rwxr-xr-xt/lib/open3.t2
-rwxr-xr-xt/op/pat.t16
-rw-r--r--taint.c2
-rw-r--r--toke.c10
-rw-r--r--util.c20
-rw-r--r--vms/Makefile18
-rw-r--r--vms/config.vms43
-rw-r--r--vms/descrip.mms18
-rw-r--r--vms/gen_shrfls.pl63
-rw-r--r--vms/genconfig.pl4
-rw-r--r--vms/genopt.com15
-rw-r--r--vms/perly_c.vms2391
-rw-r--r--vms/perly_h.vms2
-rw-r--r--vms/test.com17
-rw-r--r--vms/vms.c27
-rw-r--r--vms/vms_yfix.pl6
55 files changed, 3358 insertions, 3117 deletions
diff --git a/Changes b/Changes
index 26c4ad8a63..01b4730d6a 100644
--- a/Changes
+++ b/Changes
@@ -7,6 +7,166 @@ site, in the .../src/5.0 directory for full version releases,
or in the .../src/5/0/unsupported directory for sub-version
releases.)
+
+----------------
+Version 5.003_14
+----------------
+
+We seem to have achieved "release candidate" status.
+
+ CORE LANGUAGE CHANGES
+
+ Title: "Eliminate support for {if,unless,while,until} BLOCK BLOCK"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Files: perly.c perly.c.diff perly.y toke.c
+
+ Title: "Taint $x after $x =~ s/pat/xyz/ if pat or xyz is tainted by locale"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Files: cop.h mg.c pp_ctl.c pp_hot.c
+
+ Title: "Complete support for modifying undefined array members in foreach"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Files: global.sym mg.c perl.h pp.c pp_hot.c proto.h sv.c
+
+ OTHER CORE CHANGES
+
+ Title: "patch for regex bug: (x|x){n}"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199612210259.VAA10170@aatma.engin.umich.edu>
+ Date: Fri, 20 Dec 1996 21:59:22 -0500
+ Files: regexec.c
+
+ Title: "Bug in debugger with import manipulations"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199612231037.FAA08617@monk.mps.ohio-state.edu>
+ Date: Mon, 23 Dec 1996 05:37:48 -0500 (EST)
+ Files: pp_hot.c
+
+ Title: "Import and dynamic methods"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199612230645.BAA08378@monk.mps.ohio-state.edu>
+ Date: Mon, 23 Dec 1996 01:45:37 -0500 (EST)
+ Files: gv.c hv.c sv.c
+
+ Title: "malloc.c patch"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199612220748.CAA07164@monk.mps.ohio-state.edu>
+ Date: Sun, 22 Dec 1996 02:48:58 -0500 (EST)
+ Files: malloc.c
+
+ Title: "sv_gets patch"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199612220824.DAA07235@monk.mps.ohio-state.edu>
+ Date: Sun, 22 Dec 1996 03:24:04 -0500 (EST)
+ Files: pp_hot.c
+
+ Title: "pos $str patch"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199612220831.DAA07247@monk.mps.ohio-state.edu>
+ Date: Sun, 22 Dec 1996 03:31:21 -0500 (EST)
+ Files: mg.c pp_hot.c t/op/pat.t
+
+ Title: "Prevent warnings when STDCHAR is unsigned"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Files: perlio.c perlio.h
+
+ PORTABILITY
+
+ Title: "Fix bugs in bincompat3 usage"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Files: perl.h perl_exp.SH
+
+ Title: "Support shared libperl on SunOS"
+ From: Ulrich Pfeifer
+ Files: Makefile.SH
+
+ Title: "Configure on OS/2"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199612202325.SAA05505@monk.mps.ohio-state.edu>
+ Date: Fri, 20 Dec 1996 18:25:30 -0500 (EST)
+ Files: Configure
+
+ Title: "Fixes for Interactive Unix"
+ From: win@in.rhein-main.de (Winfried Koenig)
+ Msg-ID: <m0vbeNO-00003WC@incom.rhein-main.de>
+ Date: Sun, 22 Dec 96 05:14 EET
+ Files: hints/isc.sh op.c pp_sys.c universal.c
+
+ Title: "Use "proto" instead of "_" in sdbm.h"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Files: ext/SDBM_File/sdbm/sdbm.h
+
+ Title: "VMS patches to 5.003_13"
+ From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
+ Msg-ID: <01IDBYYFYPIS002ASE@hmivax.humgen.upenn.edu>
+ Date: Mon, 23 Dec 1996 01:26:47 -0500 (EST)
+ Files: deb.c ext/POSIX/POSIX.xs gv.c lib/File/Copy.pm mg.c perl.c
+ perl.h proto.h sv.c t/lib/filecopy.t taint.c toke.c util.c
+ vms/Makefile vms/config.vms vms/descrip.mms
+ vms/gen_shrfls.pl vms/genconfig.pl vms/genopt.com
+ vms/perly_c.vms vms/perly_h.vms vms/test.com vms/vms.c
+ vms/vms_yfix.pl
+
+ UTILITIES, LIBRARY, AND EXTENSIONS
+
+ Title: "Remove libnet"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Files: MANIFEST pod/perlmod.pod
+
+ Title: "Refresh CPAN module to 1.08"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Files: lib/CPAN.pm lib/CPAN/FirstTime.pm
+
+ Title: "Refresh ExtUtils::Manifest to version 1.28"
+ From: Andreas Koenig
+ Files: lib/ExtUtils/Manifest.pm
+
+ Title: "Update IO->VERSION() to 1.1201 for CPAN's sake"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Files: ext/IO/lib/IO/Handle.pm lib/IO/Handle.pm
+
+ Title: "Remodel File::Copy."
+ From: Chip Salzenberg <chip@atlantic.net>
+ Files: lib/File/Copy.pm
+
+ Title: "dumb bug in User::pwent.pm"
+ From: Tom Christiansen <tchrist@mox.perl.com>
+ Msg-ID: <199612201145.EAA27860@mox.perl.com>
+ Date: Fri, 20 Dec 1996 04:45:37 -0700
+ Files: lib/User/pwent.pm
+
+ DOCUMENTATION
+
+ Title: "Better support for =for"
+ From: Kenneth Albanowski <kjahds@kjahds.com>
+ Msg-ID: <Pine.LNX.3.93.961220163747.298T-100000@kjahds.com>
+ Date: Fri, 20 Dec 1996 16:43:35 -0500 (EST)
+ Files: lib/Pod/Text.pm pod/pod2latex.PL pod/pod2man.PL
+
+ Title: "perllocale.pod -- second draft"
+ From: Dominic Dunlop <domo@slipper.ip.lu>
+ Msg-ID: <v03007800aee1923e30a2@[194.51.248.68]>
+ Date: Sat, 21 Dec 1996 15:00:50 +0100
+ Files: pod/perllocale.pod
+
+ Title: "Perlguts, version 26"
+ From: Jeff Okamoto <okamoto@hpcc123.corp.hp.com>
+ Msg-ID: <199612201943.AA048111018@hpcc123.corp.hp.com>
+ Date: Fri, 20 Dec 1996 11:43:38 -0800
+ Files: pod/perlguts.pod
+
+ Title: "Update pod/Makefile; s/perli18n/perllocale/"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Files: ext/POSIX/POSIX.pod lib/I18N/Collate.pm pod/Makefile
+ pod/perl.pod pod/perlmod.pod pod/perlnews.pod pod/roffitall
+
+ Title: "obstruct pod2man doc tweaks"
+ From: Roderick Schertler <roderick@gate.net>
+ Msg-ID: <3923.851106237@eeyore.ibcinc.com>
+ Date: Fri, 20 Dec 1996 13:23:57 -0500
+ Files: lib/Class/Template.pm lib/Time/tm.pm
+
+
----------------
Version 5.003_13
----------------
diff --git a/MANIFEST b/MANIFEST
index 79e9203bda..d25601043c 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,18 +1,18 @@
Artistic The "Artistic License"
-Changes Differences from previous versions.
-Changes5.000 Differences from perl4.
-Changes5.001 Differences from 5.000.
-Changes5.002 Differences from 5.001.
-Changes5.003 Differences from 5.002.
+Changes Differences from previous version
+Changes5.000 Differences between 4.x and 5.000
+Changes5.001 Differences between 5.000 and 5.001
+Changes5.002 Differences between 5.001 and 5.002
+Changes5.003 Differences between 5.002 and 5.003
Configure Portability tool
configure Crude emulation of GNU configure
Copying The GNU General Public License
EXTERN.h Included before foreign .h files
-INSTALL Detailed installation instructions.
+INSTALL Detailed installation instructions
INTERN.h Included before domestic .h files
MANIFEST This list of files
Makefile.SH A script that generates Makefile
-Porting/Glossary Glossary of config.sh variables.
+Porting/Glossary Glossary of config.sh variables
README The Instructions
README.os2 Notes about OS/2 port
README.plan9 Notes about Plan9 port
@@ -197,8 +197,8 @@ h2pl/tcbreak2 cbreak test routine using .pl
handy.h Handy definitions
hints/3b1.sh Hints for named architecture
hints/3b1cc Hints for named architecture
-hints/README.NeXT Notes about NeXT hints.
-hints/README.hints Notes about hints.
+hints/README.NeXT Notes about NeXT hints
+hints/README.hints Notes about hints
hints/aix.sh Hints for named architecture
hints/altos486.sh Hints for named architecture
hints/amigaos.sh Hints for named architecture
@@ -262,15 +262,15 @@ hints/utekv.sh Hints for named architecture
hints/uts.sh Hints for named architecture
hv.c Hash value code
hv.h Hash value header
-installman Perl script to install man pages for pods.
+installman Perl script to install man pages for pods
installperl Perl script to do "make install" dirty work
interp.sym Interpreter specific symbols to hide in a struct
keywords.h The keyword numbers
keywords.pl Program to write keywords.h
lib/AnyDBM_File.pm Perl module to emulate dbmopen
lib/AutoLoader.pm Autoloader base class
-lib/AutoSplit.pm A module to split up autoload functions
-lib/Benchmark.pm A module to time pieces of code and such
+lib/AutoSplit.pm Split up autoload functions
+lib/Benchmark.pm Measure execution time
lib/CPAN.pm Interface to Comprehensive Perl Archive Network
lib/CPAN/FirstTime.pm Utility for creating CPAN config files
lib/CPAN/Nox.pm Runs CPAN while avoiding compiled extensions
@@ -287,7 +287,7 @@ lib/ExtUtils/Install.pm Handles 'make install' on extensions
lib/ExtUtils/Liblist.pm Locates libraries
lib/ExtUtils/MM_OS2.pm MakeMaker methods for OS/2
lib/ExtUtils/MM_Unix.pm MakeMaker base class for Unix
-lib/ExtUtils/MM_VMS.pm MakeMaker methods for VMS.
+lib/ExtUtils/MM_VMS.pm MakeMaker methods for VMS
lib/ExtUtils/MakeMaker.pm Write Makefiles for extensions
lib/ExtUtils/Manifest.pm Utilities to write MANIFEST files
lib/ExtUtils/Mkbootstrap.pm Writes a bootstrap file (see MakeMaker)
@@ -296,46 +296,35 @@ lib/ExtUtils/testlib.pm Fixes up @INC to use just-built extension
lib/ExtUtils/typemap Extension interface types
lib/ExtUtils/xsubpp External subroutine preprocessor
lib/Fatal.pm Make do-or-die equivalents of functions
-lib/File/Basename.pm A module to emulate the basename program
+lib/File/Basename.pm Emulate the basename program
lib/File/CheckTree.pm Perl module supporting wholesale file mode validation
lib/File/Compare.pm Emulation of cmp command
lib/File/Copy.pm Emulation of cp command
lib/File/Find.pm Routines to do a find
-lib/File/Path.pm A module to do things like `mkdir -p' and `rm -r'
+lib/File/Path.pm Do things like `mkdir -p' and `rm -r'
lib/File/stat.pm By-name interface to Perl's built-in stat
lib/FileCache.pm Keep more files open than the system permits
lib/FileHandle.pm Backward-compatible front end to IO extension
lib/FindBin.pm Find name of currently executing program
-lib/Getopt/Long.pm A module to fetch command options (GetOptions)
-lib/Getopt/Std.pm A module to fetch command options (getopt, getopts)
+lib/Getopt/Long.pm Fetch command options (GetOptions)
+lib/Getopt/Std.pm Fetch command options (getopt, getopts)
lib/I18N/Collate.pm Routines to do strxfrm-based collation
lib/IPC/Open2.pm Open a two-ended pipe
lib/IPC/Open3.pm Open a three-ended pipe!
lib/Math/BigFloat.pm An arbitrary precision floating-point arithmetic package
lib/Math/BigInt.pm An arbitrary precision integer arithmetic package
lib/Math/Complex.pm A Complex package
-lib/Net/Cmd.pm Base class for command-based protocols (libnet-1.01)
-lib/Net/Domain.pm DNS Domain name lookup (libnet-1.01)
-lib/Net/DummyInetd.pm Place holder for future Net::Inetd (libnet-1.01)
-lib/Net/FTP.pm File Transfer Protocol client (libnet-1.01)
-lib/Net/NNTP.pm Network News Transfer Protocol (libnet-1.01)
-lib/Net/Netrc.pm .netrc lookup routines (libnet-1.01)
-lib/Net/POP3.pm Post Office Protocol (libnet-1.01)
lib/Net/Ping.pm Hello, anybody home?
-lib/Net/SMTP.pm Simple Mail Transfer Protocol client (libnet-1.01)
-lib/Net/SNPP.pm Simple Network Pager Protocol client (libnet-1.01)
-lib/Net/Telnet.pm Telnet client (libnet-1.01)
-lib/Net/Time.pm Time & NetTime protocols (libnet-1.01)
lib/Net/hostent.pm By-name interface to Perl's built-in gethost*
lib/Net/netent.pm By-name interface to Perl's built-in getnet*
lib/Net/protoent.pm By-name interface to Perl's built-in getproto*
lib/Net/servent.pm By-name interface to Perl's built-in getserv*
lib/Pod/Functions.pm used by pod/splitpod
lib/Pod/Text.pm Convert POD data to formatted ASCII text
-lib/Search/Dict.pm A module to do binary search on dictionaries
-lib/SelectSaver.pm A module to enforce proper select scoping
-lib/SelfLoader.pm A module to load functions only on demand.
-lib/Shell.pm A module to make AUTOLOADed system() calls
+lib/Search/Dict.pm Perform binary search on dictionaries
+lib/SelectSaver.pm Enforce proper select scoping
+lib/SelfLoader.pm Load functions only on demand
+lib/Shell.pm Make AUTOLOADed system() calls
lib/Symbol.pm Symbol table manipulation routines
lib/Sys/Hostname.pm Hostname methods
lib/Sys/Syslog.pm Perl module supporting syslogging
@@ -356,7 +345,7 @@ lib/Time/Local.pm Reverse translation of localtime, gmtime
lib/Time/gmtime.pm By-name interface to Perl's built-in gmtime
lib/Time/localtime.pm By-name interface to Perl's built-in localtime
lib/Time/tm.pm Internal oject for Time::{gm,local}time
-lib/UNIVERSAL.pm Base class for ALL classes.
+lib/UNIVERSAL.pm Base class for ALL classes
lib/User/grent.pm By-name interface to Perl's built-in getgr*
lib/User/pwent.pm By-name interface to Perl's built-in getpw*
lib/abbrev.pl An abbreviation table builder
@@ -390,9 +379,9 @@ lib/lib.pm For "use lib"
lib/locale.pm For "use locale"
lib/look.pl A "look" equivalent
lib/newgetopt.pl A perl library supporting long option parsing
-lib/open2.pl Open a two-ended pipe
-lib/open3.pl Open a three-ended pipe
-lib/overload.pm Module for overloading perl operators.
+lib/open2.pl Open a two-ended pipe (uses IPC::Open2)
+lib/open3.pl Open a three-ended pipe (uses IPC::Open3)
+lib/overload.pm Module for overloading perl operators
lib/perl5db.pl Perl debugging routines
lib/pwd.pl Routines to keep track of PWD environment variable
lib/shellwords.pl Perl library to split into words with shell quoting
@@ -456,7 +445,7 @@ os2/OS2/REXX/t/rx_tievar.t DLL access module
os2/OS2/REXX/t/rx_tieydb.t DLL access module
os2/OS2/REXX/t/rx_varset.t DLL access module
os2/OS2/REXX/t/rx_vrexx.t DLL access module
-os2/POSIX.mkfifo POSIX.xs patch.
+os2/POSIX.mkfifo POSIX.xs patch
os2/diff.configure Patches to Configure
os2/dl_os2.c Addon for dl_open
os2/dlfcn.h Addon for dl_open
@@ -466,9 +455,9 @@ os2/perl2cmd.pl Corrects installed binaries under OS/2
patchlevel.h The current patch level of perl
perl.c main()
perl.h Global declarations
-perl_exp.SH Creates list of exported symbols for AIX.
-perlio.c C code for PerlIO abstraction.
-perlio.h Interface to PerlIO abstraction.
+perl_exp.SH Creates list of exported symbols for AIX
+perlio.c C code for PerlIO abstraction
+perlio.h Interface to PerlIO abstraction
perlsdio.h Fake stdio using perlio
perlsfio.h Prototype sfio mapping for PerlIO
perlsh A poor man's perl shell
@@ -494,7 +483,7 @@ plan9/setup.rc Plan9 port: script for easy build+install
plan9/versnum Plan9 port: script to print version number
pod/Makefile Make pods into something else
pod/buildtoc generate perltoc.pod
-pod/checkpods.PL Tool to check for common errors in pods.
+pod/checkpods.PL Tool to check for common errors in pods
pod/perl.pod Top level perl man page
pod/perlapio.pod IO API info
pod/perlbook.pod Book info
@@ -620,8 +609,8 @@ t/lib/io_xs.t See if XSUB methods from IO work
t/lib/ndbm.t See if NDBM_File works
t/lib/odbm.t See if ODBM_File works
t/lib/opcode.t See if Opcode works
-t/lib/open2.t See if IPC::Open3 works
-t/lib/open3.t See if IPC::Open2 works
+t/lib/open2.t See if IPC::Open2 works
+t/lib/open3.t See if IPC::Open3 works
t/lib/ops.t See if Opcode works
t/lib/parsewords.t See if Text::ParseWords works
t/lib/posix.t See if POSIX works
@@ -701,7 +690,7 @@ universal.c The default UNIVERSAL package methods
unixish.h Defines that are assumed on Unix
util.c Utility routines
util.h Dummy header
-utils/Makefile Extract the utility scripts.
+utils/Makefile Extract the utility scripts
utils/c2ph.PL program to translate dbx stabs to perl
utils/h2ph.PL A thing to turn C .h files into perl .ph files
utils/h2xs.PL Program to make .xs files from C header files
diff --git a/cop.h b/cop.h
index 299873bf13..c062dc63e4 100644
--- a/cop.h
+++ b/cop.h
@@ -177,8 +177,9 @@ struct subst {
I32 sbu_iters;
I32 sbu_maxiters;
I32 sbu_safebase;
- I32 sbu_once;
I32 sbu_oldsave;
+ bool sbu_once;
+ bool sbu_rxtainted;
char * sbu_orig;
SV * sbu_dstr;
SV * sbu_targ;
@@ -191,8 +192,9 @@ struct subst {
#define sb_iters cx_u.cx_subst.sbu_iters
#define sb_maxiters cx_u.cx_subst.sbu_maxiters
#define sb_safebase cx_u.cx_subst.sbu_safebase
-#define sb_once cx_u.cx_subst.sbu_once
#define sb_oldsave cx_u.cx_subst.sbu_oldsave
+#define sb_once cx_u.cx_subst.sbu_once
+#define sb_rxtainted cx_u.cx_subst.sbu_rxtainted
#define sb_orig cx_u.cx_subst.sbu_orig
#define sb_dstr cx_u.cx_subst.sbu_dstr
#define sb_targ cx_u.cx_subst.sbu_targ
@@ -206,8 +208,9 @@ struct subst {
cx->sb_iters = iters, \
cx->sb_maxiters = maxiters, \
cx->sb_safebase = safebase, \
- cx->sb_once = once, \
cx->sb_oldsave = oldsave, \
+ cx->sb_once = once, \
+ cx->sb_rxtainted = rxtainted, \
cx->sb_orig = orig, \
cx->sb_dstr = dstr, \
cx->sb_targ = targ, \
diff --git a/deb.c b/deb.c
index fea6ffa2e7..f270835461 100644
--- a/deb.c
+++ b/deb.c
@@ -42,12 +42,12 @@ deb(pat,a1,a2,a3,a4,a5,a6,a7,a8)
# ifdef I_STDARG
void
-deb(char *pat, ...)
+deb(const char *pat, ...)
# else
/*VARARGS1*/
void
deb(pat, va_alist)
- char *pat;
+ const char *pat;
va_dcl
# endif
{
diff --git a/embed.h b/embed.h
index 82cb97f6bd..84c3371552 100644
--- a/embed.h
+++ b/embed.h
@@ -304,10 +304,11 @@
#define magic_clearpack Perl_magic_clearpack
#define magic_clearsig Perl_magic_clearsig
#define magic_existspack Perl_magic_existspack
-#define magic_freevivary Perl_magic_freevivary
+#define magic_freeitervar Perl_magic_freeitervar
#define magic_get Perl_magic_get
#define magic_getarylen Perl_magic_getarylen
#define magic_getglob Perl_magic_getglob
+#define magic_getitervar Perl_magic_getitervar
#define magic_getpack Perl_magic_getpack
#define magic_getpos Perl_magic_getpos
#define magic_getsig Perl_magic_getsig
@@ -325,6 +326,7 @@
#define magic_setfm Perl_magic_setfm
#define magic_setglob Perl_magic_setglob
#define magic_setisa Perl_magic_setisa
+#define magic_setitervar Perl_magic_setitervar
#define magic_setmglob Perl_magic_setmglob
#define magic_setnkeys Perl_magic_setnkeys
#define magic_setpack Perl_magic_setpack
@@ -334,7 +336,6 @@
#define magic_settaint Perl_magic_settaint
#define magic_setuvar Perl_magic_setuvar
#define magic_setvec Perl_magic_setvec
-#define magic_setvivary Perl_magic_setvivary
#define magic_wipepack Perl_magic_wipepack
#define magicname Perl_magicname
#define markstack Perl_markstack
@@ -1059,6 +1060,7 @@
#define utilize Perl_utilize
#define varies Perl_varies
#define vert Perl_vert
+#define vivify_itervar Perl_vivify_itervar
#define vtbl_amagic Perl_vtbl_amagic
#define vtbl_amagicelem Perl_vtbl_amagicelem
#define vtbl_arylen Perl_vtbl_arylen
diff --git a/ext/IO/lib/IO/Handle.pm b/ext/IO/lib/IO/Handle.pm
index 925b20806d..7b8c709c78 100644
--- a/ext/IO/lib/IO/Handle.pm
+++ b/ext/IO/lib/IO/Handle.pm
@@ -180,6 +180,8 @@ class from C<IO::Handle> and inherit those methods.
Derived from FileHandle.pm by Graham Barr E<lt>F<bodg@tiuk.ti.com>E<gt>
+Version 1.1201 specialized from 1.12 for inclusion in Perl distribution
+
=cut
require 5.000;
@@ -191,7 +193,7 @@ use SelectSaver;
require Exporter;
@ISA = qw(Exporter);
-$VERSION = "1.12";
+$VERSION = "1.1201";
$RCS = sprintf("%s", q$Revision: 1.15 $ =~ /([\d\.]+)/);
@EXPORT_OK = qw(
diff --git a/ext/POSIX/POSIX.pod b/ext/POSIX/POSIX.pod
index 7dee4a3652..2bb8743262 100644
--- a/ext/POSIX/POSIX.pod
+++ b/ext/POSIX/POSIX.pod
@@ -862,13 +862,13 @@ LC_CTYPE category.
The following will set the LC_CTYPE behaviour according to the locale
environment variables (the second argument C<"">).
Please see your systems L<setlocale(3)> documentation for the locale
-environment variables' meaning or consult L<perli18n>.
+environment variables' meaning or consult L<perllocale>.
$loc = POSIX::setlocale( &POSIX::LC_CTYPE, "");
The following will set the LC_COLLATE behaviour to Argentinian
Spanish. B<NOTE>: The naming and availability of locales depends on
-your operating system. Please consult L<perli18n> for how to find
+your operating system. Please consult L<perllocale> for how to find
out which locales are available in your system.
$loc = POSIX::setlocale( &POSIX::LC_ALL, "es_AR.ISO8859-1" );
diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs
index 70527cd51d..6354dc3db5 100644
--- a/ext/POSIX/POSIX.xs
+++ b/ext/POSIX/POSIX.xs
@@ -41,8 +41,9 @@
#include <sys/types.h>
#include <time.h>
#include <unistd.h>
+#include <fcntl.h>
+
#if defined(__VMS) && !defined(__POSIX_SOURCE)
-# include <file.h> /* == fcntl.h for DECC; no fcntl.h for VAXC */
# include <libdef.h> /* LIB$_INVARG constant */
# include <lib$routines.h> /* prototype for lib$ediv() */
# include <starlet.h> /* prototype for sys$gettim() */
@@ -51,49 +52,50 @@
# define mkfifo(a,b) (not_here("mkfifo"),-1)
# define tzset() not_here("tzset")
- /* The default VMS emulation of Unix signals isn't very POSIXish */
- typedef int sigset_t;
-# define sigpending(a) (not_here("sigpending"),0)
+# if __VMS_VER < 70000000
+ /* The default VMS emulation of Unix signals isn't very POSIXish */
+ typedef int sigset_t;
+# define sigpending(a) (not_here("sigpending"),0)
- /* sigset_t is atomic under VMS, so these routines are easy */
- int sigemptyset(sigset_t *set) {
+ /* sigset_t is atomic under VMS, so these routines are easy */
+ int sigemptyset(sigset_t *set) {
if (!set) { SETERRNO(EFAULT,SS$_ACCVIO); return -1; }
*set = 0; return 0;
- }
- int sigfillset(sigset_t *set) {
+ }
+ int sigfillset(sigset_t *set) {
int i;
if (!set) { SETERRNO(EFAULT,SS$_ACCVIO); return -1; }
for (i = 0; i < NSIG; i++) *set |= (1 << i);
return 0;
- }
- int sigaddset(sigset_t *set, int sig) {
+ }
+ int sigaddset(sigset_t *set, int sig) {
if (!set) { SETERRNO(EFAULT,SS$_ACCVIO); return -1; }
if (sig > NSIG) { SETERRNO(EINVAL,LIB$_INVARG); return -1; }
*set |= (1 << (sig - 1));
return 0;
- }
- int sigdelset(sigset_t *set, int sig) {
+ }
+ int sigdelset(sigset_t *set, int sig) {
if (!set) { SETERRNO(EFAULT,SS$_ACCVIO); return -1; }
if (sig > NSIG) { SETERRNO(EINVAL,LIB$_INVARG); return -1; }
*set &= ~(1 << (sig - 1));
return 0;
- }
- int sigismember(sigset_t *set, int sig) {
+ }
+ int sigismember(sigset_t *set, int sig) {
if (!set) { SETERRNO(EFAULT,SS$_ACCVIO); return -1; }
if (sig > NSIG) { SETERRNO(EINVAL,LIB$_INVARG); return -1; }
*set & (1 << (sig - 1));
- }
- /* The tools for sigprocmask() are there, just not the routine itself */
-# ifndef SIG_UNBLOCK
-# define SIG_UNBLOCK 1
-# endif
-# ifndef SIG_BLOCK
-# define SIG_BLOCK 2
-# endif
-# ifndef SIG_SETMASK
-# define SIG_SETMASK 3
-# endif
- int sigprocmask(int how, sigset_t *set, sigset_t *oset) {
+ }
+ /* The tools for sigprocmask() are there, just not the routine itself */
+# ifndef SIG_UNBLOCK
+# define SIG_UNBLOCK 1
+# endif
+# ifndef SIG_BLOCK
+# define SIG_BLOCK 2
+# endif
+# ifndef SIG_SETMASK
+# define SIG_SETMASK 3
+# endif
+ int sigprocmask(int how, sigset_t *set, sigset_t *oset) {
if (!set || !oset) {
set_errno(EFAULT); set_vaxc_errno(SS$_ACCVIO);
return -1;
@@ -114,12 +116,15 @@
return -1;
}
return 0;
- }
-# define sigaction sigvec
-# define sa_flags sv_onstack
-# define sa_handler sv_handler
-# define sa_mask sv_mask
-# define sigsuspend(set) sigpause(*set)
+ }
+# define sigaction sigvec
+# define sa_flags sv_onstack
+# define sa_handler sv_handler
+# define sa_mask sv_mask
+# define sigsuspend(set) sigpause(*set)
+# else
+# define HAS_TZNAME /* shows up in VMS 7.0 */
+# endif /* __VMS_VER < 70000000 */
/* The POSIX notion of ttyname() is better served by getname() under VMS */
static char ttnambuf[64];
@@ -152,7 +157,6 @@
}
# define times(t) vms_times(t)
#else
-# include <fcntl.h>
# include <grp.h>
# include <sys/times.h>
# ifdef HAS_UNAME
diff --git a/global.sym b/global.sym
index 3e9f9de234..1226991e5a 100644
--- a/global.sym
+++ b/global.sym
@@ -240,6 +240,7 @@ tokenbuf
uid
varies
vert
+vivify_itervar
vtbl_amagic
vtbl_amagicelem
vtbl_arylen
@@ -487,10 +488,11 @@ magic_clearenv
magic_clearpack
magic_clearsig
magic_existspack
-magic_freevivary
+magic_freeitervar
magic_get
magic_getarylen
magic_getglob
+magic_getitervar
magic_getpack
magic_getpos
magic_getsig
@@ -508,6 +510,7 @@ magic_setenv
magic_setfm
magic_setglob
magic_setisa
+magic_setitervar
magic_setmglob
magic_setnkeys
magic_setpack
@@ -517,7 +520,6 @@ magic_setsubstr
magic_settaint
magic_setuvar
magic_setvec
-magic_setvivary
magic_wipepack
magicname
markstack_grow
diff --git a/gv.c b/gv.c
index 95efca8468..8db44b42f0 100644
--- a/gv.c
+++ b/gv.c
@@ -19,7 +19,7 @@
#include "EXTERN.h"
#include "perl.h"
-extern char rcsid[];
+EXT char rcsid[];
GV *
gv_AVadd(gv)
@@ -143,19 +143,18 @@ I32 level;
if (SvTYPE(topgv) != SVt_PVGV)
gv_init(topgv, stash, name, len, TRUE);
- if (cv=GvCV(topgv)) {
- if (GvCVGEN(topgv) >= sub_generation)
- return topgv; /* valid cached inheritance */
- if (!GvCVGEN(topgv)) { /* not an inheritance cache */
- return topgv;
- }
- else {
- /* stale cached entry, just junk it */
- GvCV(topgv) = cv = 0;
- GvCVGEN(topgv) = 0;
+ if (cv = GvCV(topgv)) {
+ if (CvXSUB(cv) || CvROOT(cv)) { /* Not undefed. */
+ if (!GvCVGEN(topgv) || /* not an inheritance cache */
+ GvCVGEN(topgv) >= sub_generation) /* valid inh. cache */
+ return topgv;
}
+ /* stale cached entry, just junk it */
+ SvREFCNT_dec(cv);
+ GvCV(topgv) = cv = 0;
+ GvCVGEN(topgv) = 0;
}
- /* if cv is still set, we have to free it if we find something to cache */
+ /* Now cv = 0, and there is no cv in topgv. */
gvp = (GV**)hv_fetch(stash,"ISA",3,FALSE);
if (gvp && (gv = *gvp) != (GV*)&sv_undef && (av = GvAV(gv))) {
@@ -172,13 +171,9 @@ I32 level;
}
gv = gv_fetchmeth(basestash, name, len, level + 1);
if (gv) {
- if (cv) { /* junk old undef */
- assert(SvREFCNT(topgv) > 1);
- SvREFCNT_dec(topgv);
- SvREFCNT_dec(cv);
- }
GvCV(topgv) = GvCV(gv); /* cache the CV */
GvCVGEN(topgv) = sub_generation; /* valid for now */
+ SvREFCNT_inc(GvCV(gv));
return gv;
}
}
@@ -187,13 +182,9 @@ I32 level;
if (!level) {
if (lastchance = gv_stashpvn("UNIVERSAL", 9, FALSE)) {
if (gv = gv_fetchmeth(lastchance, name, len, level + 1)) {
- if (cv) { /* junk old undef */
- assert(SvREFCNT(topgv) > 1);
- SvREFCNT_dec(topgv);
- SvREFCNT_dec(cv);
- }
GvCV(topgv) = GvCV(gv); /* cache the CV */
GvCVGEN(topgv) = sub_generation; /* valid for now */
+ SvREFCNT_inc(GvCV(gv));
return gv;
}
}
diff --git a/hv.c b/hv.c
index ecbd548bcb..806e573d5c 100644
--- a/hv.c
+++ b/hv.c
@@ -752,6 +752,8 @@ I32 shared;
{
if (!hent)
return;
+ if (SvTYPE(HeVAL(hent)) == SVt_PVGV)
+ sub_generation++; /* May be deletion of method? */
SvREFCNT_dec(HeVAL(hent));
if (HeKLEN(hent) == HEf_SVKEY) {
SvREFCNT_dec(HeKEY_sv(hent));
diff --git a/hv.h b/hv.h
index 5256eac8ed..7c04cc2428 100644
--- a/hv.h
+++ b/hv.h
@@ -111,7 +111,7 @@ struct xpvhv {
#define HeSVKEY_set(he,sv) (HeKEY_sv(he) = sv)
#define Nullhek Null(HEK*)
-#define HEK_BASESIZE OFFSETOF(HEK, hek_key[0])
+#define HEK_BASESIZE STRUCT_OFFSET(HEK, hek_key[0])
#define HEK_HASH(hek) (hek)->hek_hash
#define HEK_LEN(hek) (hek)->hek_len
#define HEK_KEY(hek) (hek)->hek_key
diff --git a/installperl b/installperl
index ddbe5956e8..c9913caee8 100755
--- a/installperl
+++ b/installperl
@@ -344,9 +344,6 @@ sub installlib {
$name = "$dir/$name" if $dir ne '';
- # ignore Chip-style patch backups.
- return if grep(/^P\d+$/, split(m{/+}, $name));
-
my $installlib = $installprivlib;
if ($dir =~ /^auto/ || $name =~ /^(Config|FileHandle|Safe)\.pm$/) {
$installlib = $installarchlib;
diff --git a/lib/File/Copy.pm b/lib/File/Copy.pm
index 6afbd393b3..70c5eb81e6 100644
--- a/lib/File/Copy.pm
+++ b/lib/File/Copy.pm
@@ -2,64 +2,93 @@
# source code has been placed in the public domain by the author.
# Please be kind and preserve the documentation.
#
+# Additions copyright 1996 by Charles Bailey. Permission is granted
+# to distribute the revised code under the same terms as Perl itself.
package File::Copy;
-use Exporter;
+use strict;
use Carp;
use UNIVERSAL qw(isa);
-use vars qw( @ISA @EXPORT @EXPORT_OK $VERSION $Too_Big);
-use strict;
+use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION $Too_Big
+ &copy &syscopy &cp &mv);
+
+# Note that this module implements only *part* of the API defined by
+# the File/Copy.pm module of the File-Tools-2.0 package. However, that
+# package has not yet been updated to work with Perl 5.004, and so it
+# would be a Bad Thing for the CPAN module to grab it and replace this
+# module. Therefore, we set this module's version higher than 2.0.
+$VERSION = '2.01';
-@ISA=qw(Exporter);
-@EXPORT=qw(copy move);
-@EXPORT_OK=qw(cp mv);
+require Exporter;
+@ISA = qw(Exporter);
+@EXPORT = qw(copy move);
+@EXPORT_OK = qw(cp mv);
-$VERSION = '1.6';
$Too_Big = 1024 * 1024 * 2;
-sub VERSION {
- # Version of File::Copy
- return $VERSION;
+sub _catname { # Will be replaced by File::Spec when it arrives
+ my($from, $to) = @_;
+ if (not defined &basename) {
+ require File::Basename;
+ import File::Basename 'basename';
+ }
+ if ($^O eq 'VMS') { $to = VMS::Filespec::vmspath($to) . basename($from); }
+ elsif ($^O eq 'MacOS') { $to .= ':' . basename($from); }
+ elsif ($to =~ m|\\|) { $to .= '\\' . basename($from); }
+ else { $to .= '/' . basename($from); }
}
sub copy {
- croak("Usage: copy( file1, file2 [, buffersize]) ")
+ croak("Usage: copy(FROM, TO [, BUFFERSIZE]) ")
unless(@_ == 2 || @_ == 3);
- if (defined &File::Copy::syscopy &&
- \&File::Copy::syscopy != \&File::Copy::copy &&
- ref(\$_[1]) ne 'GLOB' &&
- !(defined ref $_[1] and isa($_[1], 'GLOB')))
- { return File::Copy::syscopy($_[0],$_[1]) }
-
my $from = shift;
my $to = shift;
- my $closefrom=0;
- my $closeto=0;
+
+ my $from_a_handle = (ref($from)
+ ? (ref($from) eq 'GLOB'
+ || isa($from, 'GLOB') || isa($from, 'IO::Handle'))
+ : (ref(\$from) eq 'GLOB'));
+ my $to_a_handle = (ref($to)
+ ? (ref($to) eq 'GLOB'
+ || isa($to, 'GLOB') || isa($to, 'IO::Handle'))
+ : (ref(\$to) eq 'GLOB'));
+
+ if (!$from_a_handle && !$to_a_handle && -d $to && ! -d $from) {
+ $to = _catname($from, $to);
+ }
+
+ if (defined &syscopy && \&syscopy != \&copy
+ && $from_a_handle
+ && ($to_a_handle || $^O eq 'os2'))
+ {
+ return syscopy($from, $to);
+ }
+
+ my $closefrom = 0;
+ my $closeto = 0;
my ($size, $status, $r, $buf);
local(*FROM, *TO);
local($\) = '';
- if (ref($from) && (isa($from,'GLOB') || isa($from,'IO::Handle'))) {
- *FROM = *$from;
- } elsif (ref(\$from) eq 'GLOB') {
- *FROM = $from;
+ if ($from_a_handle) {
+ *FROM = *$from{FILEHANDLE};
} else {
- open(FROM,"<$from") or goto fail_open1;
- binmode FROM;
+ $from = "./$from" if $from =~ /^\s/;
+ open(FROM, "< $from\0") or goto fail_open1;
+ binmode FROM or die "($!,$^E)";
$closefrom = 1;
- }
-
- if (ref($to) && (isa($to,'GLOB') || isa($to,'IO::Handle'))) {
- *TO = *$to;
- } elsif (ref(\$to) eq 'GLOB') {
- *TO = $to;
- } else {
- open(TO,">$to") or goto fail_open2;
- binmode TO;
- $closeto=1;
- }
+ }
+
+ if ($to_a_handle) {
+ *TO = *$to{FILEHANDLE};
+ } else {
+ $to = "./$to" if $to =~ /^\s/;
+ open(TO,"> $to\0") or goto fail_open2;
+ binmode TO or die "($!,$^E)";
+ $closeto = 1;
+ }
if (@_) {
$size = shift(@_) + 0;
@@ -70,15 +99,21 @@ sub copy {
$size = $Too_Big if ($size > $Too_Big);
}
- $buf = '';
- while(defined($r = read(FROM,$buf,$size)) && $r > 0) {
- if (syswrite (TO,$buf,$r) != $r) {
- goto fail_inner;
+ $! = 0;
+ for (;;) {
+ my ($r, $w, $t);
+ defined($r = sysread(FROM, $buf, $size))
+ or goto fail_inner;
+ last unless $r;
+ for ($w = 0; $w < $r; $w += $t) {
+ $t = syswrite(TO, $buf, $r - $w, $w)
+ or goto fail_inner;
}
}
- goto fail_inner unless defined($r);
+
close(TO) || goto fail_open2 if $closeto;
close(FROM) || goto fail_open1 if $closefrom;
+
# Use this idiom to avoid uninitialized value warning.
return 1;
@@ -102,26 +137,37 @@ sub copy {
}
sub move {
- my($from,$to) = @_;
- my($copied,$tosz1,$tomt1,$tosz2,$tomt2,$sts,$ossts);
+ my($from,$to) = @_;
+ my($copied,$fromsz,$tosz1,$tomt1,$tosz2,$tomt2,$sts,$ossts);
- return 1 if rename $from, $to;
+ if (-d $to && ! -d $from) {
+ $to = _catname($from, $to);
+ }
+
+ ($tosz1,$tomt1) = (stat($to))[7,9];
+ $fromsz = -s $from;
+ return 1 if rename $from, $to;
+
+ ($sts,$ossts) = ($! + 0, $^E + 0);
+ # Did rename return an error even though it succeeded, because $to
+ # is on a remote NFS file system, and NFS lost the server's ack?
+ return 1 if defined($fromsz) && !-e $from && # $from disappeared
+ (($tosz2,$tomt2) = (stat($to))[7,9]) && # $to's there
+ ($tosz1 != $tosz2 or $tomt1 != $tomt2) && # and changed
+ $tosz2 == $fromsz; # it's all there
- ($tosz1,$tomt1) = (stat($to))[7,9];
- return 1 if ($copied = copy($from,$to)) && unlink($from);
+ ($tosz1,$tomt1) = (stat($to))[7,9]; # just in case rename did something
+ return 1 if ($copied = copy($from,$to)) && unlink($from);
- ($sts,$ossts) = ($! + 0, $^E + 0);
- ($tosz2,$tomt2) = ((stat($to))[7,9],0,0) if defined $tomt1;
- unlink($to) if !defined($tomt1) || $tomt1 != $tomt2 || $tosz1 != $tosz2;
- ($!,$^E) = ($sts,$ossts);
- return 0;
+ ($tosz2,$tomt2) = ((stat($to))[7,9],0,0) if defined $tomt1;
+ unlink($to) if !defined($tomt1) or $tomt1 != $tomt2 or $tosz1 != $tosz2;
+ ($!,$^E) = ($sts,$ossts);
+ return 0;
}
-{
- local($^W) = 0; # Hush up used-once warning
- *cp = \&copy;
- *mv = \&move;
-}
+*cp = \&copy;
+*mv = \&move;
+
# &syscopy is an XSUB under OS/2
*syscopy = ($^O eq 'VMS' ? \&rmscopy : \&copy) unless defined &syscopy;
@@ -163,10 +209,14 @@ argument may be a string, a FileHandle reference or a FileHandle
glob. Obviously, if the first argument is a filehandle of some
sort, it will be read from, and if it is a file I<name> it will
be opened for reading. Likewise, the second argument will be
-written to (and created if need be). Note that passing in
+written to (and created if need be). If the second argument is
+a file name and specifies an existing directory, and the first
+argument does not specify
+
+B<Note that passing in
files as handles instead of names may lead to loss of information
on some operating systems; it is recommended that you use file
-names whenever possible.
+names whenever possible.>
An optional third parameter can be used to specify the buffer
size used for copying. This is the number of bytes from the
@@ -181,10 +231,14 @@ You may use the syntax C<use File::Copy "cp"> to get at the
=item *
The C<move> function also takes two parameters: the current name
-and the intended name of the file to be moved. If possible, it
-will simply rename the file. Otherwise, it copies the file to
-the new location and deletes the original. If an error occurs during
-this copy-and-delete process, you may be left with a (possibly partial)
+and the intended name of the file to be moved. If the destination
+already exists and is a directory, and the source is not a
+directory, then the source file will be renamed into the directory
+specified by the destination.
+
+If possible, move() will simply rename the file. Otherwise, it copies
+the file to the new location and deletes the original. If an error occurs
+during this copy-and-delete process, you may be left with a (possibly partial)
copy of the file under the destination name.
You may use the "mv" alias for this function in the same way that
@@ -202,25 +256,26 @@ XSUB directly.
=head2 Special behavior if C<syscopy> is defined (VMS and OS/2)
-If the second argument to C<copy> is not a file handle for an
-already opened file, then C<copy> will perform a "system copy" of
+If both arguments to C<copy> are not file handles,
+then C<copy> will perform a "system copy" of
the input file to a new output file, in order to preserve file
attributes, indexed file structure, I<etc.> The buffer size
-parameter is ignored. If the second argument to C<copy> is a
-Perl handle to an opened file, then data is copied using Perl
+parameter is ignored. If either argument to C<copy> is a
+handle to an opened file, then data is copied using Perl
operators, and no effort is made to preserve file attributes
or record structure.
The system copy routine may also be called directly under VMS and OS/2
as C<File::Copy::syscopy> (or under VMS as C<File::Copy::rmscopy>, which
-is just an alias for this routine).
+is the routine that does the actual work for syscopy).
=over 4
=item rmscopy($from,$to[,$date_flag])
-The first and second arguments may be strings, typeglobs, or
-typeglob references; they are used in all cases to obtain the
+The first and second arguments may be strings, typeglobs, typeglob
+references, or objects inheriting from IO::Handle;
+they are used in all cases to obtain the
I<filespec> of the input and output files, respectively. The
name and type of the input file are used as defaults for the
output file, if necessary.
diff --git a/lib/I18N/Collate.pm b/lib/I18N/Collate.pm
index 18c46da835..343cb02205 100644
--- a/lib/I18N/Collate.pm
+++ b/lib/I18N/Collate.pm
@@ -125,7 +125,7 @@ sub new {
migrate the old applications away from it) because its functionality was
integrated into the Perl core language in the release 5.003_06.
- See pod/perli18n.pod for further information.
+ See pod/perllocale.pod for further information.
***
___EOD___
diff --git a/mg.c b/mg.c
index d4c781ea71..0225ca45c1 100644
--- a/mg.c
+++ b/mg.c
@@ -27,9 +27,11 @@
#endif
#define TAINT_FROM_REGEX(sv,rx) \
- if ((rx)->exec_tainted) \
- SvTAINTED_on(sv); \
- else \
+ if ((rx)->exec_tainted) { \
+ TAINT; \
+ SvTAINTED_on(sv); \
+ } \
+ else \
SvTAINTED_off(sv);
/*
@@ -287,10 +289,8 @@ MAGIC *mg;
(t = rx->endp[paren]))
{
i = t - s;
- if (i >= 0) {
- TAINT_IF(rx->exec_tainted);
+ if (i >= 0)
return i;
- }
}
}
return 0;
@@ -308,10 +308,8 @@ MAGIC *mg;
if (curpm && (rx = curpm->op_pmregexp)) {
if ((s = rx->subbeg)) {
i = rx->startp[0] - s;
- if (i >= 0) {
- TAINT_IF(rx->exec_tainted);
+ if (i >= 0)
return i;
- }
}
}
return 0;
@@ -1005,6 +1003,7 @@ MAGIC* mg;
else if (pos > len)
pos = len;
mg->mg_len = pos;
+ mg->mg_flags &= ~MGf_MINMATCH;
return 0;
}
@@ -1101,34 +1100,62 @@ MAGIC* mg;
}
int
-magic_setvivary(sv,mg)
+magic_getitervar(sv,mg)
SV* sv;
MAGIC* mg;
{
+ SV *targ = Nullsv;
if (LvTARGLEN(sv)) {
AV* av = (AV*)LvTARG(sv);
- if (LvTARGOFF(sv) <= AvFILL(av)) {
- SV** svp = AvARRAY(av) + LvTARGOFF(sv);
- LvTARG(sv) = newSVsv(*svp);
- SvREFCNT_dec(*svp);
- *svp = SvREFCNT_inc(LvTARG(sv));
- }
- else
- LvTARG(sv) = Nullsv;
- LvTARGLEN(sv) = 0;
- SvREFCNT_dec(av);
+ if (LvTARGOFF(sv) <= AvFILL(av))
+ targ = AvARRAY(av)[LvTARGOFF(sv)];
}
+ else
+ targ = LvTARG(sv);
+ sv_setsv(sv, targ ? targ : &sv_undef);
+ return 0;
+}
+
+int
+magic_setitervar(sv,mg)
+SV* sv;
+MAGIC* mg;
+{
+ if (LvTARGLEN(sv))
+ vivify_itervar(sv);
if (LvTARG(sv))
sv_setsv(LvTARG(sv), sv);
return 0;
}
int
-magic_freevivary(sv,mg)
+magic_freeitervar(sv,mg)
SV* sv;
MAGIC* mg;
{
SvREFCNT_dec(LvTARG(sv));
+ return 0;
+}
+
+void
+vivify_itervar(sv)
+SV* sv;
+{
+ AV* av;
+
+ if (!LvTARGLEN(sv))
+ return;
+ av = (AV*)LvTARG(sv);
+ if (LvTARGOFF(sv) <= AvFILL(av)) {
+ SV** svp = AvARRAY(av) + LvTARGOFF(sv);
+ LvTARG(sv) = newSVsv(*svp);
+ SvREFCNT_dec(*svp);
+ *svp = SvREFCNT_inc(LvTARG(sv));
+ }
+ else
+ LvTARG(sv) = Nullsv;
+ SvREFCNT_dec(av);
+ LvTARGLEN(sv) = 0;
}
int
diff --git a/myconfig b/myconfig
index 444eca00fd..5beb42a175 100755
--- a/myconfig
+++ b/myconfig
@@ -24,7 +24,7 @@ Summary of my $package ($baserev patchlevel $PATCHLEVEL subversion $SUBVERSION)
osname=$osname, osvers=$osvers, archname=$archname
uname='$myuname'
hint=$hint, useposix=$useposix, d_sigaction=$d_sigaction
- useperlio=$useperlio d_sfio=$d_sfio
+ bincompat3=$bincompat3 useperlio=$useperlio d_sfio=$d_sfio
Compiler:
cc='$cc', optimize='$optimize', gccversion=$gccversion
cppflags='$cppflags'
diff --git a/patchlevel.h b/patchlevel.h
index 066db702dc..a3ad66d227 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -1,5 +1,5 @@
#define PATCHLEVEL 3
-#define SUBVERSION 13
+#define SUBVERSION 14
/*
local_patches -- list of locally applied less-than-subversion patches.
diff --git a/perl.c b/perl.c
index 3e03044cc8..d4c626c7f5 100644
--- a/perl.c
+++ b/perl.c
@@ -20,7 +20,7 @@
#include <unistd.h>
#endif
-dEXT char rcsid[] = "perl.c\nPatch level: ###\n";
+dEXTCONST char rcsid[] = "perl.c\nPatch level: ###\n";
#ifdef IAMSUID
#ifndef DOSUID
diff --git a/perl.h b/perl.h
index 85c7c86844..470a44d03c 100644
--- a/perl.h
+++ b/perl.h
@@ -24,6 +24,11 @@
#define USE_STDIO
#endif /* PERL_FOR_X2P */
+#define VOIDUSED 1
+#include "config.h"
+
+#include "embed.h"
+
/*
* STMT_START { statements; } STMT_END;
* can be used as a single statement, as in
@@ -47,11 +52,6 @@
# endif
#endif
-#include "embed.h"
-
-#define VOIDUSED 1
-#include "config.h"
-
/*
* SOFT_CAST can be used for args to prototyped functions to retain some
* type checking; it only casts if the compiler does not know prototypes.
@@ -258,9 +258,9 @@
#if defined(STANDARD_C) && defined(I_STDDEF)
# include <stddef.h>
-# define OFFSETOF(s,m) offsetof(s,m)
+# define STRUCT_OFFSET(s,m) offsetof(s,m)
#else
-# define OFFSETOF(s,m) (Size_t)(&(((s *)0)->m))
+# define STRUCT_OFFSET(s,m) (Size_t)(&(((s *)0)->m))
#endif
#if defined(I_STRING) || defined(__cplusplus)
@@ -1300,43 +1300,43 @@ EXT short * ds;
EXT char * dc;
/* handy constants */
-EXT char * Yes INIT("1");
-EXT char * No INIT("");
-EXT char * hexdigit INIT("0123456789abcdef0123456789ABCDEFx");
-EXT char * patleave INIT("\\.^$@dDwWsSbB+*?|()-nrtfeaxc0123456789[{]}");
-EXT char * vert INIT("|");
+EXTCONST char * Yes INIT("1");
+EXTCONST char * No INIT("");
+EXTCONST char * hexdigit INIT("0123456789abcdef0123456789ABCDEFx");
+EXTCONST char * patleave INIT("\\.^$@dDwWsSbB+*?|()-nrtfeaxc0123456789[{]}");
+EXTCONST char * vert INIT("|");
-EXT char warn_uninit[]
+EXTCONST char warn_uninit[]
INIT("Use of uninitialized value");
-EXT char warn_nosemi[]
+EXTCONST char warn_nosemi[]
INIT("Semicolon seems to be missing");
-EXT char warn_reserved[]
+EXTCONST char warn_reserved[]
INIT("Unquoted string \"%s\" may clash with future reserved word");
-EXT char warn_nl[]
+EXTCONST char warn_nl[]
INIT("Unsuccessful %s on filename containing newline");
-EXT char no_wrongref[]
+EXTCONST char no_wrongref[]
INIT("Can't use %s ref as %s ref");
-EXT char no_symref[]
+EXTCONST char no_symref[]
INIT("Can't use string (\"%.32s\") as %s ref while \"strict refs\" in use");
-EXT char no_usym[]
+EXTCONST char no_usym[]
INIT("Can't use an undefined value as %s reference");
-EXT char no_aelem[]
+EXTCONST char no_aelem[]
INIT("Modification of non-creatable array value attempted, subscript %d");
-EXT char no_helem[]
+EXTCONST char no_helem[]
INIT("Modification of non-creatable hash value attempted, subscript \"%s\"");
-EXT char no_modify[]
+EXTCONST char no_modify[]
INIT("Modification of a read-only value attempted");
-EXT char no_mem[]
+EXTCONST char no_mem[]
INIT("Out of memory!\n");
-EXT char no_security[]
+EXTCONST char no_security[]
INIT("Insecure dependency in %s%s");
-EXT char no_sock_func[]
+EXTCONST char no_sock_func[]
INIT("Unsupported socket function \"%s\" called");
-EXT char no_dir_func[]
+EXTCONST char no_dir_func[]
INIT("Unsupported directory function \"%s\" called");
-EXT char no_func[]
+EXTCONST char no_func[]
INIT("The %s function is unimplemented");
-EXT char no_myglob[]
+EXTCONST char no_myglob[]
INIT("\"my\" variable %s can't be in a package");
EXT SV sv_undef;
@@ -1397,7 +1397,7 @@ EXTCONST unsigned char fold[] = {
248, 249, 250, 251, 252, 253, 254, 255
};
#else
-EXT unsigned char fold[];
+EXTCONST unsigned char fold[];
#endif
#ifdef DOINIT
@@ -1440,7 +1440,7 @@ EXT unsigned char fold_locale[];
#endif
#ifdef DOINIT
-EXT unsigned char freq[] = { /* letter frequencies for mixed English/C */
+EXTCONST unsigned char freq[] = { /* letter frequencies for mixed English/C */
1, 2, 84, 151, 154, 155, 156, 157,
165, 246, 250, 3, 158, 7, 18, 29,
40, 51, 62, 73, 85, 96, 107, 118,
@@ -1475,12 +1475,12 @@ EXT unsigned char freq[] = { /* letter frequencies for mixed English/C */
138, 139, 141, 142, 143, 144, 145, 146
};
#else
-EXT unsigned char freq[];
+EXTCONST unsigned char freq[];
#endif
#ifdef DEBUGGING
#ifdef DOINIT
-EXT char* block_type[] = {
+EXTCONST char* block_type[] = {
"NULL",
"SUB",
"EVAL",
@@ -1489,7 +1489,7 @@ EXT char* block_type[] = {
"BLOCK",
};
#else
-EXT char* block_type[];
+EXTCONST char* block_type[];
#endif
#endif
@@ -1885,8 +1885,6 @@ EXT MGVTBL vtbl_substr = {0, magic_setsubstr,
0, 0, 0};
EXT MGVTBL vtbl_vec = {0, magic_setvec,
0, 0, 0};
-EXT MGVTBL vtbl_vivary = {0, magic_setvivary,
- 0, 0, magic_freevivary};
EXT MGVTBL vtbl_pos = {magic_getpos,
magic_setpos,
0, 0, 0};
@@ -1897,6 +1895,8 @@ EXT MGVTBL vtbl_fm = {0, magic_setfm,
EXT MGVTBL vtbl_uvar = {magic_getuvar,
magic_setuvar,
0, 0, 0};
+EXT MGVTBL vtbl_itervar = {magic_getitervar,magic_setitervar,
+ 0, 0, magic_freeitervar};
#ifdef USE_LOCALE_COLLATE
EXT MGVTBL vtbl_collxfrm = {0,
@@ -1930,11 +1930,11 @@ EXT MGVTBL vtbl_nkeys;
EXT MGVTBL vtbl_taint;
EXT MGVTBL vtbl_substr;
EXT MGVTBL vtbl_vec;
-EXT MGVTBL vtbl_vivary;
EXT MGVTBL vtbl_pos;
EXT MGVTBL vtbl_bm;
EXT MGVTBL vtbl_fm;
EXT MGVTBL vtbl_uvar;
+EXT MGVTBL vtbl_itervar;
#ifdef USE_LOCALE_COLLATE
EXT MGVTBL vtbl_collxfrm;
@@ -1952,7 +1952,7 @@ EXT long amagic_generation;
#define NofAMmeth 29
#ifdef DOINIT
-EXT char * AMG_names[NofAMmeth][2] = {
+EXTCONST char * AMG_names[NofAMmeth][2] = {
{"fallback","abs"},
{"bool", "nomethod"},
{"\"\"", "0+"},
@@ -1984,7 +1984,7 @@ EXT char * AMG_names[NofAMmeth][2] = {
{"=","neg"}
};
#else
-EXT char * AMG_names[NofAMmeth][2];
+EXTCONST char * AMG_names[NofAMmeth][2];
#endif /* def INITAMAGIC */
struct am_table {
diff --git a/perl_exp.SH b/perl_exp.SH
index 49e8119591..d964bdf60d 100755
--- a/perl_exp.SH
+++ b/perl_exp.SH
@@ -1,19 +1,37 @@
#!/bin/sh
-
+#
# Written: Nov 1994 Wayne Scott (wscott@ichips.intel.com)
-
+#
# Create the export list for perl.
# Needed by AIX to do dynamic linking.
-
-# NOTE: If you're using 'old_embed.pl', don't use this script!
-# Use 'old_perl_exp.SH' instead.
-
+#
# This simple program relys on 'global.sym' being up to date
# with all of the global symbols that a dynamicly link library
# might want to access.
+#
+# Most symbols have a Perl_ prefix because that's what embed.h sticks
+# in front of them. Variations depend on binary compatibility with
+# Perl 5.003.
+#
-# All symbols have a Perl_ prefix because that's what embed.h
-# sticks in front of them.
+case $CONFIG in
+'')
+ if test -f config.sh; then TOP=.;
+ elif test -f ../config.sh; then TOP=..;
+ elif test -f ../../config.sh; then TOP=../..;
+ elif test -f ../../../config.sh; then TOP=../../..;
+ elif test -f ../../../../config.sh; then TOP=../../../..;
+ else
+ echo "Can't find config.sh."; exit 1
+ fi
+ . $TOP/config.sh
+ ;;
+esac
+: This forces SH files to create target in same directory as SH file.
+: This is so that make depend always knows where to find SH derivatives.
+case "$0" in
+*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
+esac
echo "Extracting perl.exp"
@@ -22,25 +40,31 @@ echo "#!" > perl.exp
case "$bincompat3" in
y*)
- global=/tmp/exp$$g
- interp=/tmp/exp$$i
- compat3=/tmp/exp$$c
- trap 'rm -f $global $interp $compat3' 0
- trap 'exit 1' 1 2 3 13 15
- grep '^[A-Za-z]' global.sym | sort >$global
- grep '^[A-Za-z]' interp.sym | sort >$interp
- grep '^[A-Za-z]' compat3.sym | sort >$compat3
- comm -23 $global $compat3 | sed 's/^/Perl_/p' >> perl.exp
- comm -12 $global $compat3 >> perl.exp
- comm -12 $interp $compat3 | sed 's/^/Perl_/p' >> perl.exp
- comm -23 $interp $compat3 >> perl.exp
+ (
+ global=/tmp/exp$$g
+ interp=/tmp/exp$$i
+ compat3=/tmp/exp$$c
+ trap 'rm -f $global $interp $compat3' 0
+ trap 'exit 1' 1 2 3 13 15
+ grep '^[A-Za-z]' global.sym | sort >$global
+ grep '^[A-Za-z]' interp.sym | sort >$interp
+ grep '^[A-Za-z]' compat3.sym | sort >$compat3
+ comm -23 $global $compat3 | sed 's/^/Perl_/' >> perl.exp
+ comm -12 $interp $compat3 | sed 's/^/Perl_/' >> perl.exp
+ comm -12 $global $compat3 >> perl.exp
+ comm -23 $interp $compat3 >> perl.exp
+ )
;;
*)
sed -n '/^[A-Za-z]/ s/^/Perl_/p' global.sym interp.sym >> perl.exp
;;
esac
-# extra globals not included above.
+#
+# Extra globals not included above (including a few that might
+# not actually be defined, but there's no harm in that).
+#
+
cat <<END >> perl.exp
perl_init_i18nl10n
perl_init_i18nl14n
@@ -64,4 +88,12 @@ perl_call_pv
perl_call_method
perl_call_sv
perl_requirepv
+Mymalloc
+Mycalloc
+Myremalloc
+Myfree
+Perl_malloc
+Perl_calloc
+Perl_realloc
+Perl_free
END
diff --git a/perly.c b/perly.c
index 8f1de62a77..6ff2f58731 100644
--- a/perly.c
+++ b/perly.c
@@ -17,1044 +17,1007 @@ dep()
short yylhs[] = { -1,
40, 0, 7, 5, 8, 6, 9, 9, 9, 10,
10, 10, 10, 22, 22, 22, 22, 22, 22, 13,
- 13, 13, 12, 12, 12, 12, 37, 37, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 24, 24, 25,
- 25, 26, 27, 28, 29, 30, 39, 39, 1, 1,
- 1, 1, 3, 3, 41, 41, 36, 36, 4, 42,
- 42, 43, 14, 14, 14, 23, 23, 23, 34, 34,
- 34, 34, 34, 34, 34, 34, 35, 35, 15, 15,
+ 13, 13, 12, 12, 37, 37, 11, 11, 11, 11,
+ 11, 11, 11, 24, 24, 25, 25, 26, 27, 28,
+ 29, 30, 39, 39, 1, 1, 1, 1, 3, 3,
+ 41, 41, 36, 36, 4, 42, 42, 43, 14, 14,
+ 14, 23, 23, 23, 34, 34, 34, 34, 34, 34,
+ 34, 34, 35, 35, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 31, 31, 32, 32, 32, 2, 2, 38,
- 21, 16, 17, 18, 19, 20, 33, 33, 33, 33,
+ 15, 15, 15, 15, 15, 15, 15, 15, 31, 31,
+ 32, 32, 32, 2, 2, 38, 21, 16, 17, 18,
+ 19, 20, 33, 33, 33, 33,
};
short yylen[] = { 2,
0, 2, 4, 0, 4, 0, 0, 2, 2, 2,
1, 2, 3, 1, 1, 3, 3, 3, 3, 0,
- 2, 6, 7, 7, 4, 4, 0, 2, 8, 8,
- 5, 5, 10, 9, 8, 11, 3, 0, 1, 0,
- 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,
- 1, 1, 4, 3, 5, 5, 0, 1, 0, 3,
- 2, 6, 3, 3, 1, 2, 3, 1, 3, 5,
- 6, 3, 5, 2, 4, 4, 1, 1, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 5, 3, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 3, 2, 3, 2, 4, 3, 4, 1,
- 5, 1, 4, 5, 4, 1, 1, 1, 5, 6,
- 5, 6, 5, 4, 5, 1, 1, 3, 4, 3,
- 2, 2, 4, 5, 4, 5, 1, 2, 2, 1,
- 2, 2, 2, 1, 3, 1, 3, 4, 4, 6,
- 1, 1, 0, 1, 0, 1, 2, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+ 2, 6, 7, 7, 0, 2, 8, 8, 10, 9,
+ 8, 11, 3, 0, 1, 0, 1, 1, 1, 1,
+ 1, 1, 0, 1, 1, 1, 1, 1, 4, 3,
+ 5, 5, 0, 1, 0, 3, 2, 6, 3, 3,
+ 1, 2, 3, 1, 3, 5, 6, 3, 5, 2,
+ 4, 4, 1, 1, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 5, 3, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
+ 3, 2, 4, 3, 4, 1, 5, 1, 4, 5,
+ 4, 1, 1, 1, 5, 6, 5, 6, 5, 4,
+ 5, 1, 1, 3, 4, 3, 2, 2, 4, 5,
+ 4, 5, 1, 2, 2, 1, 2, 2, 2, 1,
+ 3, 1, 3, 4, 4, 6, 1, 1, 0, 1,
+ 0, 1, 2, 1, 1, 1, 2, 2, 2, 2,
+ 2, 2, 1, 1, 1, 1,
};
short yydefred[] = { 1,
- 0, 7, 0, 48, 59, 59, 0, 59, 8, 49,
- 9, 11, 0, 50, 51, 52, 0, 0, 0, 61,
- 0, 14, 4, 151, 0, 0, 126, 0, 146, 0,
- 59, 59, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 158, 159, 0,
+ 0, 7, 0, 44, 55, 55, 0, 55, 8, 45,
+ 9, 11, 0, 46, 47, 48, 0, 0, 0, 57,
+ 0, 14, 4, 147, 0, 0, 122, 0, 142, 0,
+ 55, 55, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 154, 155, 0,
0, 0, 0, 0, 0, 0, 0, 12, 0, 0,
0, 0, 0, 0, 0, 0, 0, 10, 0, 0,
- 0, 0, 116, 118, 0, 0, 0, 0, 152, 0,
- 54, 0, 60, 0, 7, 167, 170, 169, 168, 0,
- 0, 0, 0, 0, 0, 4, 0, 4, 0, 4,
- 0, 4, 0, 4, 4, 0, 0, 0, 0, 0,
- 141, 0, 0, 0, 0, 74, 0, 165, 0, 132,
- 0, 0, 0, 0, 0, 161, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 106, 0, 162, 163,
- 164, 166, 0, 0, 37, 0, 0, 0, 0, 0,
+ 0, 0, 112, 114, 0, 0, 0, 0, 148, 0,
+ 50, 0, 56, 0, 7, 163, 166, 165, 164, 0,
+ 0, 0, 0, 0, 0, 4, 4, 4, 4, 4,
+ 4, 0, 0, 0, 0, 0, 137, 0, 0, 0,
+ 0, 70, 0, 161, 0, 128, 0, 0, 0, 0,
+ 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 102, 0, 158, 159, 160, 162, 0, 0,
+ 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 94, 95, 0, 0, 0, 0, 0, 0,
+ 0, 0, 13, 0, 49, 54, 0, 0, 0, 68,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 99, 0, 0,
- 0, 0, 0, 0, 0, 0, 13, 0, 53, 58,
- 0, 0, 0, 72, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 4, 145,
- 147, 0, 0, 0, 0, 0, 0, 0, 108, 0,
- 130, 0, 0, 105, 28, 0, 0, 19, 0, 0,
- 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 77, 0,
- 78, 0, 0, 0, 0, 0, 0, 0, 128, 0,
- 0, 56, 55, 0, 3, 0, 149, 0, 76, 109,
- 0, 45, 0, 31, 46, 0, 32, 0, 0, 0,
- 0, 25, 0, 26, 160, 0, 0, 39, 44, 0,
- 0, 0, 148, 157, 75, 0, 133, 0, 135, 0,
- 107, 0, 0, 0, 0, 0, 0, 0, 115, 0,
- 113, 0, 124, 0, 129, 62, 73, 0, 0, 0,
- 0, 6, 21, 0, 0, 0, 0, 0, 0, 70,
- 134, 136, 123, 0, 121, 0, 0, 114, 0, 119,
- 125, 111, 150, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 0, 122, 120, 71, 29, 30, 23, 0,
- 0, 24, 0, 35, 0, 0, 5, 0, 0, 0,
- 34, 22, 33, 0, 36,
+ 4, 141, 143, 0, 0, 0, 0, 0, 0, 0,
+ 104, 0, 126, 0, 0, 101, 26, 0, 0, 19,
+ 0, 0, 0, 59, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 73, 0, 74, 0, 0, 0, 0, 0, 0, 0,
+ 124, 0, 0, 52, 51, 0, 3, 0, 145, 0,
+ 72, 105, 0, 41, 0, 42, 0, 0, 0, 0,
+ 156, 0, 0, 35, 40, 0, 0, 0, 144, 153,
+ 71, 0, 129, 0, 131, 0, 103, 0, 0, 0,
+ 0, 0, 0, 0, 111, 0, 109, 0, 120, 0,
+ 125, 58, 69, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 66, 130, 132, 119, 0, 117, 0, 0,
+ 110, 0, 115, 121, 107, 146, 6, 0, 0, 0,
+ 0, 0, 0, 0, 0, 118, 116, 67, 7, 27,
+ 28, 0, 0, 23, 24, 0, 31, 0, 0, 0,
+ 21, 0, 0, 0, 30, 5, 0, 29, 0, 0,
+ 32, 0, 22,
};
short yydgoto[] = { 1,
- 9, 66, 10, 17, 85, 337, 88, 313, 3, 11,
- 12, 68, 272, 268, 70, 71, 72, 73, 74, 75,
- 76, 278, 78, 279, 262, 265, 269, 281, 263, 266,
- 116, 204, 90, 79, 242, 181, 145, 276, 13, 2,
+ 9, 66, 10, 17, 85, 329, 88, 318, 3, 11,
+ 12, 68, 334, 258, 70, 71, 72, 73, 74, 75,
+ 76, 264, 78, 265, 254, 256, 259, 267, 255, 257,
+ 112, 196, 90, 79, 234, 177, 141, 262, 13, 2,
14, 15, 16,
};
short yysindex[] = { 0,
- 0, 0, -178, 0, 0, 0, -49, 0, 0, 0,
- 0, 0, 616, 0, 0, 0, -108, -233, 3, 0,
- -230, 0, 0, 0, -24, -24, 0, 28, 0, 1899,
- 0, 0, -17, -12, -11, -10, -35, 1899, 39, 54,
- 60, 992, 936, -24, 1055, 1319, -217, 0, 0, -24,
- 1899, 1899, 1899, 1899, 1899, 1899, 1375, 0, 1899, 1899,
- 1431, -24, -24, -24, -24, 1899, -161, 0, 277, 3829,
- -69, -42, 0, 0, -4, 88, 89, 97, 0, 24,
- 0, -107, 0, -105, 0, 0, 0, 0, 0, 1899,
- 114, 1899, 328, 24, -107, 0, 24, 0, 24, 0,
- 24, 0, 24, 0, 0, 115, 3829, 133, 1490, 936,
- 0, 328, 0, -69, 97, 0, 1899, 0, 137, 0,
- 328, -19, 56, 19, 1899, 0, 97, 98, 98, 98,
- -82, -82, 93, -21, 98, 98, 0, -87, 0, 0,
- 0, 0, 328, 24, 0, 1899, 1899, 1899, 1899, 1899,
- 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899,
- 1899, 1899, 1899, 1899, 1899, 1899, 0, 0, -32, 1899,
- 1899, 1899, 1899, 1899, 1899, 1665, 0, 1899, 0, 0,
- -8, 1899, 357, 0, 1899, 82, 1899, 24, 1899, -161,
- 1899, -161, 1899, -234, 1899, -234, 144, 1724, 0, 0,
- 0, 4, 11, 138, 1899, 97, 1780, 1836, 0, 61,
- 0, 1899, 96, 0, 0, -176, -176, 0, -176, -176,
- -95, 0, 21, 1092, 328, 373, 434, 92, 3829, 1204,
- 3238, 3721, 2430, 815, 419, 98, 98, 1899, 0, 1899,
- 0, 173, -80, 55, -68, 57, -54, 68, 0, 6,
- 3829, 0, 0, 157, 0, 178, 0, 1899, 0, 0,
- -176, 0, 181, 0, 0, 183, 0, -176, 190, 112,
- 209, 0, 231, 0, 0, 210, 277, 0, 0, 237,
- 224, 1899, 0, 0, 0, 9, 0, 15, 0, 17,
- 0, 105, 1899, 163, 1899, 81, 119, 1899, 0, 168,
- 0, 175, 0, 185, 0, 0, 0, 1146, 112, 112,
- 112, 0, 0, 1899, 112, 1899, 112, 1899, 279, 0,
- 0, 0, 0, 143, 0, 3863, 202, 0, 300, 0,
- 0, 0, 0, -161, -161, -234, 0, 321, -234, 326,
- -161, 309, 112, 0, 0, 0, 0, 0, 0, 398,
- 112, 0, 112, 0, 1724, -161, 0, -234, -161, 336,
- 0, 0, 0, 112, 0,
+ 0, 0, 236, 0, 0, 0, -45, 0, 0, 0,
+ 0, 0, 557, 0, 0, 0, -106, -232, -20, 0,
+ -216, 0, 0, 0, -8, -8, 0, 9, 0, 1840,
+ 0, 0, 11, 15, 19, 22, -33, 1840, 38, 47,
+ 51, 933, 877, -8, 996, 1260, -212, 0, 0, -8,
+ 1840, 1840, 1840, 1840, 1840, 1840, 1316, 0, 1840, 1840,
+ 1372, -8, -8, -8, -8, 1840, -193, 0, 273, 3713,
+ -67, -55, 0, 0, -26, 72, 57, 59, 0, 3,
+ 0, -137, 0, -130, 0, 0, 0, 0, 0, 1840,
+ 96, 1840, 1871, 3, -137, 0, 0, 0, 0, 0,
+ 0, 97, 3713, 99, 1431, 877, 0, 1871, 0, -67,
+ 59, 0, 1840, 0, 106, 0, 1871, -25, 27, 52,
+ 1840, 0, 59, 98, 98, 98, -85, -85, 74, -40,
+ 98, 98, 0, -88, 0, 0, 0, 0, 1871, 3,
+ 0, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1840, 0, 0, -34, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1606, 0, 1840, 0, 0, -51, 1840, 242, 0,
+ 1840, 1089, 1840, 3, 1840, 1840, 1840, 1840, 130, 1665,
+ 0, 0, 0, -30, 44, 126, 1840, 59, 1721, 1777,
+ 0, 53, 0, 1840, 79, 0, 0, -244, -244, 0,
+ -244, -244, -127, 0, 54, 1027, 1871, 756, 360, 869,
+ 3713, 3679, 3540, 3764, 1195, 340, 1054, 98, 98, 1840,
+ 0, 1840, 0, 134, -83, 58, -75, 60, -71, 62,
+ 0, -18, 3713, 0, 0, 117, 0, 138, 0, 1840,
+ 0, 0, -244, 0, 139, 0, 140, -244, 141, 142,
+ 0, 145, 273, 0, 0, 149, 136, 1840, 0, 0,
+ 0, -15, 0, 40, 0, 42, 0, -59, 1840, 68,
+ 1840, 85, 46, 1840, 0, 75, 0, 77, 0, 80,
+ 0, 0, 0, 1143, 84, 84, 84, 84, 1840, 84,
+ 1840, 167, 0, 0, 0, 0, 95, 0, 263, 86,
+ 0, 172, 0, 0, 0, 0, 0, -193, -193, -177,
+ -177, 175, -193, 159, 84, 0, 0, 0, 0, 0,
+ 0, 84, 194, 0, 0, 84, 0, 1665, -193, 256,
+ 0, 1840, -193, 191, 0, 0, 196, 0, 84, 84,
+ 0, -177, 0,
};
short yyrindex[] = { 0,
- 0, 0, 220, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 161, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2100, 1930, 0,
+ 0, 2740, 2808, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2159, 1989, 0,
- 0, 2799, 2867, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 37, 0, -9, 3616,
+ 2851, 2895, 0, 0, 2166, 1989, 0, 17, 0, 0,
+ 0, -39, 0, 0, 0, 0, 0, 0, 0, 2225,
+ 0, 0, 3367, 0, 112, 0, 0, 0, 0, 0,
+ 0, 0, 3635, 0, 0, 215, 0, 3410, 437, 498,
+ 2336, 0, 0, 0, 2052, 0, 3448, 2851, 0, 0,
+ 2225, 0, 2461, 2938, 2976, 3014, -28, 600, 2504, 0,
+ 3087, 3131, 0, 0, 0, 0, 0, 0, 3486, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 65, 0, -25, 193,
- 2910, 2954, 0, 0, 2225, 2048, 0, 333, 0, 0,
- 0, 2, 0, 0, 0, 0, 0, 0, 0, 2284,
- 0, 0, 3575, 0, 257, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3017, 0, 0, 348,
- 0, 3642, 496, 557, 2395, 0, 0, 0, 2111, 0,
- 3695, 2910, 0, 0, 2284, 0, 2520, 3065, 3103, 3190,
- 659, 2997, 2563, 0, 3301, 3354, 0, 0, 0, 0,
- 0, 0, 3741, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2631, 0, 0,
- 0, 331, 880, 0, 348, 0, 2284, 0, 352, 65,
- 0, 65, 0, 164, 0, 164, 0, 338, 0, 0,
- 0, 0, 358, 0, 0, 2674, 0, 0, 0, 0,
- 0, 0, 2718, 0, 0, -22, 36, 0, 91, 110,
- -33, 0, 0, 2573, 1267, 1531, 3476, 3521, 3675, 0,
- -27, 3826, 3794, 1587, -6, 3392, 3440, 0, 0, 0,
+ 0, 0, 0, 2572, 0, 0, 0, 205, 821, 0,
+ 215, 0, 2225, 0, 245, 0, 0, 0, 0, 240,
+ 0, 0, 0, 0, 272, 0, 0, 2615, 0, 0,
+ 0, 0, 0, 0, 2659, 0, 0, 5, 45, 0,
+ 49, 61, -32, 0, 0, 192, 1472, 1528, 3250, 3286,
+ 3645, 0, 2514, 3603, 3559, 3522, 3323, 3174, 3212, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3787, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 134, 0, 0, 0, 0, 0, 0, 359, 0, 0,
- 0, 0, 0, 0, 0, 0, 155, 0, 0, 0,
+ 0, 0, 3675, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 65, 0, 0, 0, 0, 277, 0, 0,
+ 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 348, 0, 0,
+ 0, 0, 0, 215, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 349, 0, 0,
- 0, 0, 0, 0, 0, 1953, 0, 0, 0, 0,
- 0, 0, 0, 65, 65, 164, 0, 0, 164, 0,
- 65, 0, 0, 0, 0, 0, 0, 0, 0, 880,
- 0, 0, 0, 0, 368, 65, 0, 164, 65, 0,
- 0, 0, 0, 0, 0,
+ 265, 0, 0, 0, 0, 0, 0, 0, 1894, 0,
+ 0, 0, 0, 0, 0, 0, 0, 37, 37, 105,
+ 105, 0, 37, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 286, 37, 821,
+ 0, 0, 37, 0, 0, 0, 0, 0, 0, 0,
+ 0, 105, 0,
};
short yygindex[] = { 0,
- 0, 0, 0, 136, -29, 0, 4145, 680, -78, 0,
- 0, 0, -193, -13, 3266, 519, 0, 0, 0, 0,
- 0, 400, 885, 0, 0, 267, -196, 63, 124, 250,
- -16, -167, 20, 0, 0, 320, 356, 0, 0, 0,
+ 0, 0, 0, 63, 418, 0, 914, 335, -81, 0,
+ 0, 0, -292, -13, 3885, 2516, 0, 0, 0, 0,
+ 0, 321, 530, 0, 0, 203, -150, -3, 93, 165,
+ -69, -162, 575, 0, 0, 300, -276, 0, 0, 0,
0, 0, 0,
};
-#define YYTABLESIZE 4333
+#define YYTABLESIZE 4166
short yytable[] = { 69,
- 62, 280, 274, 62, 105, 214, 183, 64, 170, 20,
- 64, 62, 299, 90, 23, 15, 90, 256, 18, 213,
- 208, 172, 96, 82, 301, 64, 84, 98, 100, 102,
- 90, 90, 124, 15, 83, 90, 18, 83, 303, 125,
- 152, 270, 271, 134, 283, 91, 305, 138, 174, 320,
- 252, 83, 83, 171, 284, 321, 83, 322, 240, 64,
- 57, 83, 117, 118, 27, 90, 189, 92, 191, 126,
- 193, 172, 195, 184, 197, 198, 42, 210, 108, 294,
- 173, 139, 140, 141, 142, 319, 83, 4, 5, 6,
- 238, 7, 8, 109, 42, 202, 203, 27, 23, 110,
- 27, 27, 27, 171, 27, 23, 27, 27, 211, 27,
- 23, 23, 23, 300, 23, 302, 144, 338, 175, 340,
- 150, 151, 257, 27, 57, 258, 304, 176, 27, 205,
- 329, 16, 216, 217, 219, 220, 221, 222, 223, 327,
- 178, 18, 349, 21, 159, 352, 23, 177, 80, 16,
- 17, 182, 180, 185, 199, 27, 243, 244, 245, 246,
- 247, 248, 250, 20, 362, 254, 94, 95, 17, 282,
- 259, 203, 170, 200, 41, 261, 207, 217, 285, 62,
- 209, 217, 170, 212, 277, 291, 293, 27, 170, 27,
- 27, 286, 41, 288, 290, 43, 20, 323, 292, 20,
- 20, 20, 151, 20, 152, 20, 20, 19, 20, 150,
- 151, 328, 298, 15, 152, 306, 150, 151, 307, 2,
- 152, 309, 20, 310, 296, 239, 297, 20, 150, 151,
- 311, 169, 86, 68, 312, 344, 68, 87, 64, 64,
- 64, 64, 150, 151, 90, 90, 90, 90, 314, 316,
- 68, 68, 47, 90, 20, 47, 47, 47, 350, 47,
- 104, 47, 47, 64, 47, 83, 83, 83, 83, 90,
- 90, 315, 90, 90, 83, 150, 151, 317, 47, 324,
- 83, 83, 318, 47, 203, 68, 20, 325, 20, 20,
- 83, 83, 330, 83, 83, 83, 83, 83, 83, 331,
- 150, 151, 150, 151, 261, 150, 151, 150, 151, 332,
- 47, 150, 151, 150, 151, 150, 151, 150, 151, 343,
- 27, 27, 27, 27, 27, 27, 345, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 346, 69, 47, 27, 27, 47, 27, 27, 27, 27,
- 27, 150, 151, 150, 151, 27, 27, 27, 27, 27,
- 27, 351, 153, 27, 150, 151, 353, 355, 154, 155,
- 156, 157, 27, 65, 27, 27, 364, 150, 151, 57,
- 156, 158, 160, 161, 162, 163, 164, 165, 155, 153,
- 166, 65, 40, 167, 168, 169, 38, 165, 156, 43,
- 166, 150, 151, 167, 168, 169, 166, 40, 38, 167,
- 168, 169, 77, 218, 188, 150, 151, 360, 170, 20,
- 20, 20, 20, 20, 20, 65, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 150,
- 151, 342, 20, 20, 273, 20, 20, 20, 20, 20,
- 152, 0, 0, 0, 20, 20, 20, 20, 20, 20,
- 0, 0, 20, 170, 68, 68, 68, 68, 0, 0,
- 0, 20, 0, 20, 20, 47, 47, 47, 47, 47,
- 47, 255, 47, 47, 47, 0, 0, 0, 47, 68,
- 68, 47, 47, 47, 47, 152, 0, 0, 47, 47,
- 0, 47, 47, 47, 47, 47, 0, 0, 0, 170,
- 47, 47, 47, 47, 47, 47, 0, 0, 47, 0,
- 0, 0, 357, 0, 170, 0, 0, 47, 167, 47,
- 47, 167, 167, 167, 0, 167, 151, 167, 167, 151,
- 167, 152, 0, 89, 89, 264, 0, 267, 146, 147,
- 148, 149, 0, 151, 151, 106, 152, 0, 151, 167,
- 0, 114, 89, 122, 0, 0, 0, 0, 89, 0,
- 0, 0, 0, 150, 151, 0, 0, 0, 0, 0,
- 89, 89, 89, 89, 0, 0, 151, 0, 151, 168,
- 0, 0, 168, 168, 168, 0, 168, 110, 168, 168,
- 110, 168, 0, 0, 65, 65, 65, 65, 0, 0,
- 0, 0, 0, 0, 110, 110, 156, 157, 151, 110,
- 168, 167, 4, 5, 6, 0, 7, 8, 114, 65,
- 65, 0, 164, 165, 0, 0, 166, 0, 0, 167,
- 168, 169, 0, 0, 0, 0, 0, 0, 52, 110,
- 0, 62, 64, 50, 0, 57, 0, 65, 60, 154,
- 59, 156, 157, 4, 5, 6, 0, 7, 8, 0,
- 0, 0, 0, 0, 58, 0, 0, 164, 165, 63,
- 0, 166, 168, 0, 167, 168, 169, 241, 0, 347,
- 348, 0, 0, 0, 0, 0, 354, 0, 0, 100,
- 0, 0, 100, 0, 0, 0, 61, 156, 157, 0,
- 0, 361, 0, 0, 363, 275, 100, 100, 0, 0,
- 0, 100, 0, 0, 165, 0, 0, 166, 0, 0,
- 167, 168, 169, 0, 0, 0, 0, 0, 23, 165,
- 0, 53, 166, 0, 0, 167, 168, 169, 0, 0,
- 0, 100, 167, 167, 167, 167, 167, 0, 167, 167,
- 167, 0, 0, 0, 167, 0, 0, 151, 151, 151,
- 151, 0, 0, 0, 0, 167, 151, 167, 167, 167,
- 167, 167, 151, 151, 151, 151, 167, 167, 167, 167,
- 167, 167, 151, 151, 167, 151, 151, 151, 151, 151,
- 151, 151, 0, 167, 151, 167, 167, 151, 151, 151,
- 0, 0, 0, 168, 168, 168, 168, 168, 0, 168,
- 168, 168, 0, 0, 0, 168, 0, 0, 110, 110,
- 110, 110, 0, 0, 0, 0, 168, 110, 168, 168,
- 168, 168, 168, 110, 110, 110, 110, 168, 168, 168,
- 168, 168, 168, 110, 110, 168, 110, 110, 110, 110,
- 110, 110, 110, 0, 168, 110, 168, 168, 110, 110,
- 110, 22, 24, 25, 26, 27, 28, 0, 29, 30,
- 31, 0, 0, 0, 32, 0, 0, 33, 34, 35,
- 36, 0, 0, 0, 37, 38, 0, 39, 40, 41,
- 42, 43, 0, 0, 0, 170, 44, 45, 46, 47,
- 48, 49, 47, 0, 51, 47, 47, 47, 0, 47,
- 0, 47, 47, 54, 47, 55, 56, 115, 0, 0,
- 100, 100, 100, 100, 0, 127, 0, 152, 47, 100,
- 0, 0, 0, 47, 0, 100, 100, 100, 100, 0,
- 0, 0, 0, 0, 0, 100, 100, 0, 100, 100,
- 100, 100, 100, 100, 100, 0, 0, 100, 52, 0,
- 47, 62, 64, 50, 115, 57, 0, 65, 60, 0,
- 59, 0, 0, 0, 0, 0, 0, 0, 334, 335,
- 336, 0, 0, 0, 339, 0, 341, 0, 0, 63,
- 0, 206, 47, 0, 0, 47, 0, 0, 0, 115,
+ 205, 62, 62, 179, 206, 166, 101, 244, 60, 285,
+ 269, 60, 96, 20, 200, 96, 23, 287, 248, 53,
+ 180, 289, 291, 168, 82, 303, 60, 62, 335, 96,
+ 96, 15, 120, 306, 96, 170, 25, 148, 83, 266,
+ 84, 330, 331, 130, 121, 18, 337, 134, 92, 15,
+ 96, 203, 146, 147, 97, 167, 232, 61, 98, 353,
+ 60, 99, 345, 18, 96, 168, 348, 169, 18, 25,
+ 21, 23, 25, 25, 25, 61, 25, 104, 25, 25,
+ 304, 25, 305, 53, 140, 38, 105, 270, 230, 16,
+ 106, 194, 195, 94, 95, 25, 171, 167, 332, 333,
+ 25, 17, 174, 38, 20, 37, 39, 16, 246, 61,
+ 202, 172, 280, 251, 23, 173, 286, 302, 288, 17,
+ 290, 312, 176, 37, 15, 23, 178, 25, 208, 209,
+ 211, 212, 213, 214, 215, 181, 191, 20, 311, 192,
+ 20, 20, 20, 310, 20, 199, 20, 20, 322, 20,
+ 80, 201, 235, 236, 237, 238, 239, 240, 242, 25,
+ 2, 25, 25, 20, 204, 62, 271, 195, 20, 279,
+ 147, 253, 209, 284, 209, 292, 263, 277, 293, 295,
+ 296, 297, 298, 272, 299, 274, 276, 326, 166, 300,
+ 278, 347, 308, 43, 301, 20, 43, 43, 43, 313,
+ 43, 314, 43, 43, 315, 43, 317, 325, 146, 147,
+ 327, 19, 328, 146, 147, 336, 282, 338, 283, 43,
+ 148, 146, 147, 231, 43, 146, 147, 20, 165, 20,
+ 20, 349, 84, 342, 53, 84, 350, 146, 147, 60,
+ 60, 60, 60, 96, 96, 96, 96, 340, 86, 84,
+ 84, 43, 96, 87, 84, 151, 146, 147, 96, 96,
+ 96, 96, 100, 149, 60, 307, 146, 147, 96, 96,
+ 195, 96, 96, 96, 96, 96, 96, 96, 146, 147,
+ 96, 146, 147, 43, 84, 36, 43, 253, 61, 61,
+ 61, 61, 25, 25, 25, 25, 25, 25, 34, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 152, 61, 61, 25, 25, 39, 25, 25,
+ 25, 25, 25, 36, 69, 155, 34, 25, 25, 25,
+ 25, 25, 25, 77, 344, 25, 146, 147, 146, 147,
+ 146, 147, 146, 147, 25, 210, 25, 25, 146, 147,
+ 146, 147, 260, 166, 146, 147, 146, 147, 146, 147,
+ 20, 20, 20, 20, 20, 20, 247, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 346, 146, 147, 20, 20, 148, 20, 20, 20, 20,
+ 20, 146, 147, 324, 184, 20, 20, 20, 20, 20,
+ 20, 0, 0, 20, 0, 0, 162, 0, 0, 163,
+ 164, 165, 20, 0, 20, 20, 43, 43, 43, 43,
+ 43, 43, 0, 43, 43, 43, 0, 0, 0, 43,
+ 166, 0, 43, 43, 43, 43, 0, 0, 0, 43,
+ 43, 0, 43, 43, 43, 43, 43, 0, 0, 0,
+ 166, 43, 43, 43, 43, 43, 43, 0, 0, 43,
+ 0, 0, 148, 84, 84, 84, 84, 0, 43, 163,
+ 43, 43, 163, 163, 163, 0, 163, 147, 163, 163,
+ 147, 163, 148, 0, 0, 0, 0, 0, 84, 84,
+ 0, 84, 0, 0, 147, 147, 0, 0, 0, 147,
+ 163, 4, 5, 6, 0, 7, 8, 4, 5, 6,
+ 0, 7, 8, 185, 186, 187, 188, 189, 190, 0,
+ 0, 4, 5, 6, 0, 7, 8, 147, 0, 147,
+ 164, 0, 0, 164, 164, 164, 0, 164, 106, 164,
+ 164, 106, 164, 149, 142, 143, 144, 145, 0, 150,
+ 151, 152, 153, 0, 0, 106, 106, 0, 0, 147,
+ 106, 164, 163, 156, 157, 158, 159, 160, 161, 146,
+ 147, 162, 111, 0, 163, 164, 165, 0, 0, 0,
+ 123, 0, 0, 0, 0, 0, 0, 0, 0, 52,
+ 106, 0, 62, 64, 50, 0, 57, 0, 65, 60,
+ 91, 59, 0, 0, 0, 0, 0, 0, 268, 0,
+ 0, 0, 0, 0, 0, 58, 0, 113, 114, 111,
+ 63, 0, 0, 164, 122, 0, 150, 151, 152, 153,
+ 319, 320, 321, 0, 323, 0, 135, 136, 137, 138,
+ 97, 0, 198, 97, 160, 161, 0, 61, 162, 0,
+ 111, 163, 164, 165, 0, 0, 0, 97, 97, 339,
+ 0, 0, 97, 0, 0, 161, 341, 0, 162, 0,
+ 343, 163, 164, 165, 0, 0, 0, 0, 0, 23,
+ 197, 0, 53, 351, 352, 0, 0, 0, 0, 0,
+ 0, 0, 97, 163, 163, 163, 163, 163, 0, 163,
+ 163, 163, 0, 0, 0, 163, 0, 111, 147, 147,
+ 147, 147, 111, 0, 0, 0, 163, 147, 163, 163,
+ 163, 163, 163, 147, 147, 147, 147, 163, 163, 163,
+ 163, 163, 163, 147, 147, 163, 147, 147, 147, 147,
+ 147, 147, 147, 0, 163, 147, 163, 163, 147, 147,
+ 147, 0, 0, 0, 164, 164, 164, 164, 164, 0,
+ 164, 164, 164, 0, 0, 0, 164, 0, 0, 106,
+ 106, 106, 106, 0, 0, 0, 0, 164, 106, 164,
+ 164, 164, 164, 164, 106, 106, 106, 106, 164, 164,
+ 164, 164, 164, 164, 106, 106, 164, 106, 106, 106,
+ 106, 106, 106, 106, 0, 164, 106, 164, 164, 106,
+ 106, 106, 22, 24, 25, 26, 27, 28, 0, 29,
+ 30, 31, 0, 0, 0, 32, 0, 0, 33, 34,
+ 35, 36, 0, 0, 0, 37, 38, 0, 39, 40,
+ 41, 42, 43, 0, 0, 0, 166, 44, 45, 46,
+ 47, 48, 49, 43, 0, 51, 43, 43, 43, 0,
+ 43, 0, 43, 43, 54, 43, 55, 56, 0, 0,
+ 0, 97, 97, 97, 97, 0, 0, 0, 148, 43,
+ 97, 0, 0, 0, 43, 0, 97, 97, 97, 97,
+ 0, 0, 0, 0, 0, 0, 97, 97, 0, 97,
+ 97, 97, 97, 97, 97, 97, 0, 0, 97, 52,
+ 0, 43, 62, 64, 50, 0, 57, 0, 65, 60,
+ 0, 59, 0, 0, 0, 0, 67, 0, 0, 0,
+ 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 63, 0, 0, 43, 0, 0, 43, 0, 0, 0,
+ 0, 0, 0, 0, 0, 107, 0, 0, 116, 166,
+ 0, 0, 0, 0, 0, 52, 0, 61, 62, 64,
+ 50, 0, 57, 0, 65, 60, 0, 59, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 356, 0, 52, 0, 61, 62, 64, 50,
- 358, 57, 359, 65, 60, 0, 59, 0, 0, 0,
- 0, 0, 0, 365, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 63, 0, 0, 23, 0,
- 0, 53, 0, 0, 0, 0, 115, 0, 0, 0,
- 0, 115, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 61, 0, 0, 0, 0, 52, 0, 0,
- 62, 64, 50, 0, 57, 0, 65, 60, 0, 59,
- 0, 154, 155, 156, 157, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 23, 0, 0, 53, 63, 164,
- 165, 0, 0, 166, 0, 0, 167, 168, 169, 0,
- 0, 0, 0, 0, 0, 47, 47, 47, 47, 47,
- 47, 0, 47, 47, 47, 61, 0, 0, 47, 0,
- 0, 47, 47, 47, 47, 0, 0, 0, 47, 47,
- 0, 47, 47, 47, 47, 47, 0, 0, 0, 0,
- 47, 47, 47, 47, 47, 47, 0, 23, 47, 0,
- 53, 0, 170, 0, 0, 0, 333, 47, 0, 47,
- 47, 0, 113, 25, 26, 27, 28, 87, 29, 30,
- 31, 0, 0, 0, 32, 0, 0, 0, 159, 0,
- 0, 0, 0, 0, 152, 38, 0, 39, 40, 41,
+ 0, 148, 0, 175, 0, 0, 63, 0, 0, 23,
+ 0, 0, 53, 0, 0, 0, 0, 183, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 61, 0, 0, 0, 0, 52, 0,
+ 0, 62, 64, 50, 0, 57, 0, 65, 60, 0,
+ 59, 0, 150, 0, 152, 153, 0, 0, 0, 0,
+ 0, 0, 0, 207, 0, 23, 0, 0, 53, 63,
+ 160, 161, 0, 0, 162, 0, 0, 163, 164, 165,
+ 0, 0, 0, 0, 0, 0, 43, 43, 43, 43,
+ 43, 43, 0, 43, 43, 43, 61, 0, 0, 43,
+ 245, 0, 43, 43, 43, 43, 0, 252, 0, 43,
+ 43, 0, 43, 43, 43, 43, 43, 0, 0, 0,
+ 0, 43, 43, 43, 43, 43, 43, 166, 23, 43,
+ 0, 53, 0, 0, 0, 0, 0, 0, 43, 249,
+ 43, 43, 250, 109, 25, 26, 27, 28, 87, 29,
+ 30, 31, 0, 0, 166, 32, 0, 0, 0, 148,
+ 0, 155, 0, 0, 0, 0, 38, 152, 39, 40,
+ 41, 42, 43, 0, 0, 0, 0, 44, 45, 46,
+ 47, 48, 49, 0, 161, 51, 148, 162, 0, 166,
+ 163, 164, 165, 316, 54, 0, 55, 56, 0, 24,
+ 25, 26, 27, 28, 0, 29, 30, 31, 0, 0,
+ 0, 32, 0, 0, 0, 155, 0, 0, 0, 0,
+ 0, 148, 38, 0, 39, 40, 41, 42, 43, 0,
+ 0, 0, 0, 44, 45, 46, 47, 48, 49, 0,
+ 0, 51, 0, 166, 0, 0, 0, 0, 0, 0,
+ 54, 0, 55, 56, 0, 0, 0, 0, 0, 0,
+ 0, 0, 115, 25, 26, 27, 28, 0, 29, 30,
+ 31, 0, 0, 0, 32, 148, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 38, 0, 39, 40, 41,
+ 42, 43, 0, 0, 0, 166, 44, 45, 46, 47,
+ 48, 49, 52, 0, 51, 62, 64, 50, 0, 57,
+ 0, 65, 60, 54, 59, 55, 56, 0, 0, 0,
+ 0, 0, 0, 150, 151, 152, 153, 148, 119, 0,
+ 0, 0, 0, 63, 0, 0, 0, 156, 157, 158,
+ 159, 160, 161, 0, 0, 162, 0, 0, 163, 164,
+ 165, 0, 152, 153, 0, 0, 0, 0, 52, 0,
+ 61, 62, 64, 50, 0, 57, 129, 65, 60, 161,
+ 59, 0, 162, 0, 0, 163, 164, 165, 0, 149,
+ 0, 0, 0, 0, 0, 150, 151, 152, 153, 63,
+ 0, 0, 0, 0, 0, 53, 0, 0, 154, 156,
+ 157, 158, 159, 160, 161, 0, 0, 162, 0, 0,
+ 163, 164, 165, 0, 52, 0, 61, 62, 64, 50,
+ 0, 57, 0, 65, 60, 0, 59, 0, 0, 0,
+ 0, 0, 0, 149, 0, 0, 0, 0, 0, 150,
+ 151, 152, 153, 0, 0, 63, 0, 0, 0, 0,
+ 0, 53, 154, 156, 157, 158, 159, 160, 161, 0,
+ 0, 162, 0, 0, 163, 164, 165, 0, 0, 0,
+ 0, 0, 61, 52, 133, 0, 62, 64, 50, 0,
+ 57, 193, 65, 60, 0, 59, 0, 0, 0, 0,
+ 0, 150, 151, 152, 153, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 63, 0, 0, 53, 159, 160,
+ 161, 0, 0, 162, 0, 0, 163, 164, 165, 0,
+ 0, 0, 80, 0, 0, 80, 24, 25, 26, 27,
+ 28, 61, 29, 30, 31, 0, 0, 0, 32, 80,
+ 80, 0, 0, 0, 80, 0, 0, 0, 0, 38,
+ 0, 39, 40, 41, 42, 43, 0, 0, 0, 0,
+ 44, 45, 46, 47, 48, 49, 53, 0, 51, 0,
+ 0, 0, 0, 0, 80, 0, 0, 54, 81, 55,
+ 56, 81, 24, 25, 26, 27, 28, 0, 29, 30,
+ 31, 0, 0, 0, 32, 81, 81, 0, 0, 0,
+ 81, 0, 0, 0, 0, 38, 0, 39, 40, 41,
42, 43, 0, 0, 0, 0, 44, 45, 46, 47,
- 48, 49, 0, 0, 51, 0, 170, 0, 0, 0,
- 0, 0, 0, 54, 0, 55, 56, 0, 24, 25,
- 26, 27, 28, 0, 29, 30, 31, 0, 0, 0,
- 32, 295, 0, 0, 0, 0, 159, 0, 152, 0,
- 0, 38, 0, 39, 40, 41, 42, 43, 0, 0,
- 0, 0, 44, 45, 46, 47, 48, 49, 0, 0,
- 51, 0, 0, 0, 170, 0, 0, 0, 0, 54,
- 0, 55, 56, 0, 0, 0, 0, 84, 0, 0,
- 84, 119, 25, 26, 27, 28, 0, 29, 30, 31,
- 0, 0, 0, 32, 84, 84, 152, 0, 0, 84,
- 0, 0, 0, 0, 38, 0, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 44, 45, 46, 47, 48,
- 49, 52, 0, 51, 62, 64, 50, 0, 57, 84,
- 65, 60, 54, 59, 55, 56, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 123, 154, 155,
- 156, 157, 63, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 160, 161, 162, 163, 164, 165, 0, 0,
- 166, 0, 0, 167, 168, 169, 0, 52, 0, 61,
- 62, 64, 50, 0, 57, 133, 65, 60, 0, 59,
- 0, 0, 0, 0, 0, 0, 153, 0, 0, 0,
- 0, 0, 154, 155, 156, 157, 0, 0, 63, 0,
- 0, 0, 0, 0, 53, 158, 160, 161, 162, 163,
- 164, 165, 0, 0, 166, 0, 0, 167, 168, 169,
- 0, 0, 0, 52, 0, 61, 62, 64, 50, 0,
- 57, 0, 65, 60, 0, 59, 0, 0, 0, 0,
- 0, 0, 0, 0, 153, 0, 0, 0, 0, 0,
- 154, 155, 156, 157, 63, 0, 0, 0, 0, 0,
- 53, 0, 0, 158, 160, 161, 162, 163, 164, 165,
- 0, 0, 166, 0, 0, 167, 168, 169, 0, 0,
- 0, 61, 52, 137, 0, 62, 64, 50, 0, 57,
- 201, 65, 60, 0, 59, 0, 0, 0, 84, 84,
- 84, 84, 0, 0, 0, 0, 0, 84, 0, 0,
- 0, 0, 0, 63, 84, 0, 53, 0, 0, 0,
- 0, 0, 0, 84, 84, 0, 84, 84, 84, 84,
- 84, 85, 0, 0, 85, 24, 25, 26, 27, 28,
- 61, 29, 30, 31, 0, 0, 0, 32, 85, 85,
- 0, 0, 0, 85, 0, 0, 0, 0, 38, 0,
- 39, 40, 41, 42, 43, 0, 0, 0, 0, 44,
- 45, 46, 47, 48, 49, 53, 0, 51, 0, 0,
- 0, 0, 0, 85, 0, 0, 54, 86, 55, 56,
- 86, 24, 25, 26, 27, 28, 0, 29, 30, 31,
- 0, 0, 0, 32, 86, 86, 0, 0, 0, 86,
- 0, 0, 0, 0, 38, 0, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 44, 45, 46, 47, 48,
- 49, 0, 0, 51, 0, 0, 0, 0, 0, 86,
- 0, 0, 54, 0, 55, 56, 0, 24, 25, 26,
- 27, 28, 0, 29, 30, 31, 0, 52, 0, 32,
- 62, 64, 50, 0, 57, 249, 65, 60, 0, 59,
+ 48, 49, 0, 0, 51, 0, 0, 0, 0, 0,
+ 81, 0, 0, 54, 0, 55, 56, 0, 24, 25,
+ 26, 27, 28, 0, 29, 30, 31, 0, 52, 0,
+ 32, 62, 64, 50, 0, 57, 241, 65, 60, 0,
+ 59, 38, 0, 39, 40, 41, 42, 43, 0, 0,
+ 0, 0, 44, 45, 46, 47, 48, 49, 0, 63,
+ 51, 0, 0, 0, 0, 0, 0, 0, 0, 54,
+ 0, 55, 56, 0, 0, 0, 0, 24, 25, 26,
+ 27, 28, 0, 29, 30, 31, 61, 52, 0, 32,
+ 62, 64, 50, 0, 57, 0, 65, 60, 0, 59,
38, 0, 39, 40, 41, 42, 43, 0, 0, 0,
0, 44, 45, 46, 47, 48, 49, 0, 63, 51,
- 0, 0, 0, 0, 0, 0, 0, 0, 54, 0,
- 55, 56, 0, 0, 0, 0, 24, 25, 26, 27,
- 28, 0, 29, 30, 31, 61, 52, 0, 32, 62,
- 64, 50, 0, 57, 0, 65, 60, 0, 59, 38,
- 0, 39, 40, 41, 42, 43, 0, 0, 0, 0,
- 44, 45, 46, 47, 48, 49, 0, 63, 51, 0,
- 53, 0, 0, 0, 0, 0, 0, 54, 0, 55,
- 56, 0, 85, 85, 85, 85, 0, 0, 0, 0,
- 0, 85, 52, 0, 61, 62, 64, 50, 0, 57,
- 287, 65, 60, 0, 59, 0, 0, 85, 85, 0,
- 85, 85, 85, 85, 85, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 53,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 86,
- 86, 86, 0, 0, 0, 0, 0, 86, 52, 0,
- 61, 62, 64, 50, 0, 57, 289, 65, 60, 0,
- 59, 0, 0, 86, 86, 0, 86, 86, 86, 86,
- 86, 0, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 53, 0, 0, 0, 0,
+ 0, 53, 0, 0, 0, 0, 0, 0, 54, 0,
+ 55, 56, 0, 80, 80, 80, 80, 0, 0, 0,
+ 0, 0, 80, 52, 0, 61, 62, 64, 50, 80,
+ 57, 273, 65, 60, 0, 59, 0, 0, 80, 80,
+ 0, 80, 80, 80, 80, 80, 0, 0, 0, 0,
+ 0, 0, 0, 0, 63, 0, 0, 0, 0, 0,
+ 53, 0, 0, 0, 0, 0, 0, 0, 0, 81,
+ 81, 81, 81, 0, 0, 0, 0, 0, 81, 52,
+ 0, 61, 62, 64, 50, 0, 57, 275, 65, 60,
+ 0, 59, 0, 0, 81, 81, 0, 81, 81, 81,
+ 81, 81, 0, 0, 0, 0, 0, 0, 0, 0,
+ 63, 0, 0, 0, 0, 0, 53, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 24, 25, 26, 27, 28, 61, 29, 30, 31,
- 0, 52, 0, 32, 62, 64, 50, 0, 57, 0,
- 65, 60, 0, 59, 38, 0, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 44, 45, 46, 47, 48,
- 49, 53, 63, 51, 0, 0, 0, 0, 0, 0,
- 0, 0, 54, 0, 55, 56, 0, 0, 0, 22,
- 24, 25, 26, 27, 28, 0, 29, 30, 31, 61,
- 0, 0, 32, 91, 0, 0, 91, 0, 0, 0,
- 0, 0, 0, 38, 0, 39, 40, 41, 42, 43,
- 91, 91, 0, 0, 44, 45, 46, 47, 48, 49,
- 0, 0, 51, 0, 53, 0, 0, 0, 0, 144,
- 0, 54, 144, 55, 56, 0, 24, 25, 26, 27,
- 28, 0, 29, 30, 31, 91, 144, 144, 32, 0,
- 0, 144, 0, 0, 0, 0, 0, 0, 0, 38,
- 0, 39, 40, 41, 42, 43, 0, 0, 0, 0,
- 44, 45, 46, 47, 48, 49, 0, 0, 51, 144,
- 0, 144, 0, 0, 0, 0, 0, 54, 127, 55,
- 56, 127, 24, 25, 26, 27, 28, 0, 29, 30,
- 31, 0, 0, 0, 32, 127, 127, 0, 0, 0,
- 127, 144, 0, 0, 0, 38, 0, 39, 40, 41,
+ 0, 0, 24, 25, 26, 27, 28, 61, 29, 30,
+ 31, 0, 52, 0, 32, 62, 64, 50, 0, 57,
+ 0, 65, 60, 0, 59, 38, 0, 39, 40, 41,
42, 43, 0, 0, 0, 0, 44, 45, 46, 47,
- 48, 49, 0, 0, 51, 0, 0, 0, 127, 0,
- 127, 0, 0, 54, 0, 55, 56, 0, 0, 0,
- 0, 151, 0, 0, 151, 24, 25, 26, 27, 28,
- 0, 29, 30, 31, 0, 0, 0, 32, 151, 151,
- 127, 0, 0, 151, 0, 0, 0, 0, 38, 0,
- 39, 40, 41, 42, 43, 0, 0, 0, 0, 44,
- 45, 46, 47, 48, 49, 0, 0, 51, 0, 137,
- 0, 151, 137, 151, 0, 0, 54, 0, 55, 56,
- 0, 0, 0, 0, 0, 0, 137, 137, 0, 0,
- 0, 137, 0, 0, 91, 91, 91, 91, 0, 0,
- 0, 0, 0, 151, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 91,
- 91, 137, 91, 0, 0, 0, 0, 0, 0, 0,
- 144, 144, 144, 144, 0, 112, 0, 0, 112, 144,
- 0, 0, 0, 0, 0, 144, 144, 144, 144, 0,
- 0, 137, 112, 112, 0, 144, 144, 112, 144, 144,
- 144, 144, 144, 144, 144, 0, 0, 144, 0, 0,
- 144, 144, 144, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 112, 0, 112, 0, 127,
- 127, 127, 127, 0, 153, 0, 0, 153, 127, 0,
- 0, 0, 0, 0, 127, 127, 127, 127, 0, 0,
- 0, 153, 153, 0, 127, 127, 153, 127, 127, 127,
- 127, 127, 127, 127, 0, 0, 127, 0, 0, 127,
- 127, 127, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 153, 0, 0, 0,
- 0, 0, 151, 151, 151, 151, 0, 0, 0, 0,
- 0, 151, 0, 0, 0, 0, 0, 151, 151, 151,
- 151, 0, 0, 0, 0, 0, 153, 151, 151, 0,
- 151, 151, 151, 151, 151, 151, 151, 0, 0, 151,
- 0, 0, 151, 151, 151, 0, 0, 0, 0, 0,
- 137, 137, 137, 137, 0, 154, 0, 0, 0, 137,
- 0, 0, 0, 0, 0, 137, 137, 137, 137, 0,
- 0, 0, 154, 154, 0, 137, 137, 154, 137, 137,
- 137, 137, 137, 137, 137, 0, 0, 137, 0, 0,
- 137, 137, 137, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 154, 0, 154, 0, 0,
- 0, 0, 0, 0, 0, 0, 112, 112, 112, 112,
- 0, 0, 0, 0, 0, 112, 0, 0, 0, 0,
- 0, 112, 112, 112, 112, 0, 0, 154, 0, 0,
- 170, 112, 112, 0, 112, 112, 112, 112, 112, 112,
- 112, 0, 0, 112, 0, 0, 112, 112, 112, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 152, 0, 0, 153, 153, 153, 153, 0,
- 139, 0, 0, 0, 153, 0, 0, 0, 0, 0,
- 153, 153, 153, 153, 0, 0, 0, 139, 139, 0,
- 153, 153, 139, 153, 153, 153, 153, 153, 153, 153,
- 0, 0, 153, 0, 0, 153, 153, 153, 0, 0,
- 0, 0, 0, 104, 0, 0, 104, 0, 0, 0,
- 139, 0, 139, 88, 0, 0, 88, 0, 0, 0,
- 104, 104, 0, 0, 0, 104, 0, 0, 0, 0,
- 88, 88, 0, 0, 0, 88, 0, 0, 0, 0,
- 0, 0, 139, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 104, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 88, 154, 154, 154, 154,
- 0, 66, 0, 0, 66, 154, 0, 0, 0, 0,
- 0, 154, 154, 154, 154, 104, 0, 0, 66, 66,
- 0, 154, 154, 66, 154, 154, 154, 154, 154, 154,
- 154, 0, 0, 154, 0, 0, 154, 154, 154, 0,
- 0, 0, 0, 0, 69, 0, 154, 155, 156, 157,
- 0, 0, 0, 66, 0, 0, 0, 0, 0, 0,
- 0, 69, 69, 163, 164, 165, 69, 0, 166, 0,
- 0, 167, 168, 169, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 66, 0, 0, 0, 0, 103, 0,
- 0, 103, 0, 0, 69, 0, 69, 0, 0, 0,
- 0, 0, 0, 0, 0, 103, 103, 0, 0, 0,
- 103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 139, 139, 139, 139, 0, 69, 0, 0, 0,
- 139, 0, 0, 0, 0, 0, 139, 139, 139, 139,
- 103, 0, 0, 0, 0, 0, 139, 139, 0, 139,
- 139, 139, 139, 139, 139, 139, 0, 0, 139, 0,
- 0, 139, 139, 139, 104, 104, 104, 104, 0, 140,
- 103, 0, 140, 104, 88, 88, 88, 88, 0, 104,
- 104, 104, 104, 0, 0, 0, 140, 140, 0, 104,
- 104, 140, 104, 104, 104, 104, 104, 104, 104, 88,
- 88, 104, 88, 0, 104, 104, 104, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 140, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66, 66, 66, 66, 0, 153, 0, 0,
- 153, 66, 0, 0, 0, 0, 0, 66, 66, 66,
- 66, 0, 0, 0, 153, 153, 0, 66, 66, 153,
- 66, 66, 66, 66, 66, 66, 66, 0, 0, 66,
- 0, 0, 66, 66, 66, 69, 69, 69, 69, 0,
- 110, 0, 0, 110, 69, 0, 0, 0, 0, 153,
- 69, 69, 69, 69, 0, 0, 0, 110, 110, 0,
- 69, 69, 110, 69, 69, 69, 69, 69, 69, 69,
- 0, 0, 69, 0, 0, 69, 69, 69, 0, 103,
- 103, 103, 103, 0, 117, 0, 0, 117, 103, 0,
- 0, 0, 110, 0, 103, 103, 103, 103, 0, 0,
- 0, 117, 117, 0, 103, 103, 117, 103, 103, 103,
- 103, 103, 103, 103, 0, 0, 103, 0, 0, 103,
- 103, 103, 0, 0, 0, 0, 0, 101, 0, 0,
- 101, 0, 0, 0, 0, 0, 117, 0, 0, 0,
- 0, 0, 0, 0, 101, 101, 0, 138, 0, 101,
- 138, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 140, 140, 140, 140, 138, 138, 0, 0, 0, 140,
- 0, 0, 0, 0, 0, 140, 140, 140, 140, 101,
- 0, 0, 0, 0, 0, 140, 140, 0, 140, 140,
- 140, 140, 140, 140, 140, 95, 0, 140, 95, 138,
- 140, 140, 140, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 95, 95, 0, 0, 0, 95, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 153, 153,
- 153, 153, 0, 96, 0, 0, 96, 153, 0, 0,
- 0, 0, 0, 153, 153, 153, 153, 95, 0, 0,
- 96, 96, 0, 153, 153, 96, 153, 153, 153, 153,
- 153, 153, 153, 0, 0, 153, 0, 0, 153, 153,
- 153, 110, 110, 110, 110, 0, 0, 0, 0, 0,
- 110, 0, 0, 0, 0, 96, 110, 110, 110, 110,
- 0, 0, 0, 0, 0, 0, 110, 110, 0, 110,
- 110, 110, 110, 110, 110, 110, 0, 0, 110, 0,
- 0, 110, 110, 110, 0, 117, 117, 117, 117, 0,
- 97, 0, 0, 97, 117, 0, 0, 0, 0, 0,
- 117, 117, 117, 117, 0, 0, 0, 97, 97, 0,
- 117, 117, 97, 117, 117, 117, 117, 117, 117, 117,
- 0, 0, 117, 0, 0, 117, 117, 117, 101, 101,
- 101, 101, 0, 0, 0, 0, 0, 101, 0, 0,
- 0, 0, 97, 101, 101, 101, 101, 0, 138, 138,
- 138, 138, 0, 101, 101, 93, 101, 101, 101, 101,
- 101, 101, 101, 107, 0, 101, 0, 112, 0, 0,
- 121, 0, 0, 138, 138, 0, 0, 128, 129, 130,
- 131, 132, 0, 0, 135, 136, 0, 0, 170, 0,
- 0, 143, 0, 0, 0, 0, 95, 95, 95, 95,
- 0, 93, 0, 0, 93, 95, 0, 0, 0, 0,
- 0, 95, 95, 95, 95, 0, 0, 186, 93, 93,
- 152, 95, 95, 93, 95, 95, 95, 95, 95, 95,
- 95, 0, 0, 0, 96, 96, 96, 96, 0, 0,
- 0, 0, 0, 96, 0, 0, 0, 0, 0, 96,
- 96, 96, 96, 93, 94, 0, 0, 94, 0, 96,
- 96, 0, 96, 96, 96, 96, 96, 96, 96, 0,
- 0, 94, 94, 0, 0, 0, 94, 0, 224, 225,
- 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
- 236, 237, 92, 0, 0, 92, 0, 0, 0, 0,
- 0, 0, 0, 251, 0, 0, 94, 0, 0, 92,
- 92, 0, 0, 0, 92, 0, 0, 0, 0, 0,
- 0, 97, 97, 97, 97, 0, 0, 0, 0, 0,
- 97, 0, 0, 0, 0, 0, 97, 97, 97, 97,
- 80, 0, 0, 80, 92, 0, 97, 97, 0, 97,
- 97, 97, 97, 97, 97, 97, 0, 80, 80, 0,
- 0, 0, 80, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 81, 0, 0, 81,
- 0, 0, 0, 308, 154, 155, 156, 157, 0, 0,
- 0, 0, 80, 81, 81, 0, 0, 0, 81, 161,
- 162, 163, 164, 165, 0, 0, 166, 0, 0, 167,
- 168, 169, 0, 0, 0, 0, 0, 0, 0, 0,
- 326, 82, 0, 0, 82, 0, 0, 0, 81, 0,
- 0, 0, 93, 93, 93, 93, 0, 0, 82, 82,
- 0, 93, 0, 82, 0, 0, 0, 93, 93, 93,
- 93, 0, 0, 0, 0, 0, 0, 93, 93, 0,
- 93, 93, 93, 93, 93, 93, 93, 0, 0, 0,
- 0, 0, 0, 82, 0, 143, 0, 0, 143, 0,
- 0, 0, 0, 0, 0, 94, 94, 94, 94, 0,
- 0, 0, 143, 143, 94, 0, 0, 143, 0, 0,
- 94, 94, 94, 94, 0, 0, 0, 0, 0, 0,
- 94, 94, 0, 94, 94, 94, 94, 94, 94, 94,
- 0, 0, 0, 92, 92, 92, 92, 143, 0, 0,
- 0, 0, 92, 0, 0, 0, 0, 0, 92, 92,
- 92, 92, 142, 0, 0, 142, 0, 0, 92, 92,
- 0, 92, 92, 92, 92, 92, 92, 92, 0, 142,
- 142, 0, 0, 0, 142, 0, 0, 0, 0, 0,
- 0, 80, 80, 80, 80, 79, 0, 0, 79, 0,
- 80, 0, 0, 0, 0, 0, 80, 80, 80, 80,
- 0, 0, 79, 79, 142, 131, 80, 80, 131, 80,
- 80, 80, 80, 80, 80, 80, 0, 81, 81, 81,
- 81, 0, 131, 131, 0, 0, 81, 131, 0, 0,
- 0, 0, 81, 81, 81, 81, 0, 79, 0, 0,
- 0, 0, 81, 81, 0, 81, 81, 81, 81, 81,
- 81, 102, 0, 0, 102, 0, 0, 131, 0, 0,
- 0, 0, 82, 82, 82, 82, 0, 0, 102, 102,
- 0, 82, 0, 102, 0, 0, 0, 82, 82, 0,
- 82, 170, 0, 0, 0, 0, 0, 82, 82, 0,
- 82, 82, 82, 82, 82, 82, 0, 67, 0, 0,
- 67, 0, 0, 102, 87, 0, 0, 87, 0, 0,
- 0, 0, 0, 152, 67, 67, 143, 143, 143, 143,
- 0, 87, 87, 0, 0, 143, 87, 0, 0, 0,
- 0, 143, 143, 0, 0, 0, 89, 0, 0, 89,
- 0, 143, 143, 0, 143, 143, 143, 143, 143, 67,
- 0, 0, 0, 89, 89, 0, 87, 0, 89, 0,
- 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 49, 53, 63, 51, 0, 0, 0, 0, 0,
+ 0, 0, 0, 54, 0, 55, 56, 0, 0, 0,
+ 22, 24, 25, 26, 27, 28, 0, 29, 30, 31,
+ 61, 0, 0, 32, 87, 0, 0, 87, 0, 0,
+ 0, 0, 0, 0, 38, 0, 39, 40, 41, 42,
+ 43, 87, 87, 0, 0, 44, 45, 46, 47, 48,
+ 49, 166, 0, 51, 0, 53, 0, 0, 0, 0,
+ 140, 0, 54, 140, 55, 56, 0, 24, 25, 26,
+ 27, 28, 0, 29, 30, 31, 87, 140, 140, 32,
+ 0, 0, 140, 148, 0, 0, 0, 0, 0, 0,
+ 38, 0, 39, 40, 41, 42, 43, 0, 0, 0,
+ 0, 44, 45, 46, 47, 48, 49, 0, 0, 51,
+ 140, 0, 140, 0, 0, 0, 0, 0, 54, 123,
+ 55, 56, 123, 24, 25, 26, 27, 28, 0, 29,
+ 30, 31, 0, 0, 0, 32, 123, 123, 0, 0,
+ 0, 123, 140, 0, 0, 0, 38, 0, 39, 40,
+ 41, 42, 43, 0, 0, 0, 0, 44, 45, 46,
+ 47, 48, 49, 0, 0, 51, 0, 0, 0, 123,
+ 0, 123, 0, 0, 54, 0, 55, 56, 0, 0,
+ 0, 0, 147, 0, 0, 147, 24, 25, 26, 27,
+ 28, 0, 29, 30, 31, 0, 0, 0, 32, 147,
+ 147, 123, 0, 0, 147, 0, 0, 0, 0, 38,
+ 0, 39, 40, 41, 42, 43, 0, 0, 0, 0,
+ 44, 45, 46, 47, 48, 49, 0, 0, 51, 0,
+ 133, 0, 147, 133, 147, 0, 0, 54, 0, 55,
+ 56, 0, 0, 0, 0, 0, 0, 133, 133, 152,
+ 153, 0, 133, 0, 0, 87, 87, 87, 87, 0,
+ 0, 0, 0, 0, 147, 160, 161, 0, 0, 162,
+ 0, 0, 163, 164, 165, 0, 0, 0, 0, 0,
+ 87, 87, 133, 87, 0, 0, 0, 0, 0, 0,
+ 0, 140, 140, 140, 140, 0, 108, 0, 0, 108,
+ 140, 0, 0, 0, 0, 0, 140, 140, 140, 140,
+ 0, 0, 133, 108, 108, 0, 140, 140, 108, 140,
+ 140, 140, 140, 140, 140, 140, 0, 0, 140, 0,
+ 0, 140, 140, 140, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 108, 0, 108, 0,
+ 123, 123, 123, 123, 0, 149, 0, 0, 149, 123,
+ 0, 0, 0, 0, 0, 123, 123, 123, 123, 0,
+ 0, 0, 149, 149, 0, 123, 123, 149, 123, 123,
+ 123, 123, 123, 123, 123, 0, 0, 123, 0, 0,
+ 123, 123, 123, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 149, 0, 0,
+ 0, 0, 0, 147, 147, 147, 147, 0, 0, 0,
+ 0, 0, 147, 0, 0, 0, 0, 0, 147, 147,
+ 147, 147, 0, 0, 0, 0, 0, 149, 147, 147,
+ 0, 147, 147, 147, 147, 147, 147, 147, 0, 0,
+ 147, 0, 0, 147, 147, 147, 0, 0, 0, 0,
+ 0, 133, 133, 133, 133, 0, 150, 0, 0, 0,
+ 133, 0, 0, 0, 0, 0, 133, 133, 133, 133,
+ 0, 0, 0, 150, 150, 0, 133, 133, 150, 133,
+ 133, 133, 133, 133, 133, 133, 0, 0, 133, 0,
+ 0, 133, 133, 133, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 150, 0, 150, 0,
+ 0, 0, 0, 0, 0, 0, 0, 108, 108, 108,
+ 108, 0, 0, 0, 0, 0, 108, 0, 0, 0,
+ 0, 0, 108, 108, 108, 108, 0, 0, 150, 0,
+ 0, 0, 108, 108, 0, 108, 108, 108, 108, 108,
+ 108, 108, 0, 0, 108, 0, 0, 108, 108, 108,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 142, 142, 142, 142, 0, 89, 170,
- 0, 0, 142, 0, 0, 159, 0, 0, 142, 142,
- 0, 0, 0, 0, 0, 0, 0, 0, 142, 142,
- 0, 142, 142, 142, 142, 142, 79, 79, 79, 79,
- 0, 152, 0, 170, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 131, 131, 131, 131,
- 0, 79, 79, 0, 0, 131, 0, 0, 0, 0,
- 0, 131, 131, 0, 0, 152, 0, 0, 0, 0,
- 0, 131, 131, 0, 131, 131, 131, 131, 131, 0,
- 0, 0, 0, 0, 0, 0, 0, 154, 155, 156,
- 157, 0, 102, 102, 102, 102, 0, 0, 0, 0,
- 0, 102, 0, 162, 163, 164, 165, 102, 102, 166,
- 0, 0, 167, 168, 169, 0, 0, 102, 102, 0,
- 102, 102, 102, 102, 102, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67, 67,
- 67, 67, 0, 0, 0, 87, 87, 87, 87, 0,
- 0, 0, 0, 0, 87, 0, 0, 0, 0, 0,
- 0, 0, 0, 67, 67, 0, 0, 0, 0, 0,
- 87, 87, 0, 87, 87, 87, 87, 89, 89, 89,
- 89, 0, 0, 0, 0, 0, 89, 0, 0, 153,
- 0, 0, 0, 0, 0, 154, 155, 156, 157, 0,
- 0, 0, 89, 89, 0, 89, 89, 89, 158, 160,
- 161, 162, 163, 164, 165, 0, 0, 166, 0, 0,
- 167, 168, 169, 153, 0, 0, 0, 0, 0, 154,
- 155, 156, 157, 0, 0, 0, 0, 67, 0, 0,
- 0, 81, 0, 160, 161, 162, 163, 164, 165, 0,
- 0, 166, 0, 0, 167, 168, 169, 97, 99, 101,
- 103, 0, 0, 0, 0, 0, 111, 0, 0, 120,
+ 0, 0, 0, 0, 0, 0, 149, 149, 149, 149,
+ 0, 135, 0, 0, 0, 149, 0, 0, 0, 0,
+ 0, 149, 149, 149, 149, 0, 0, 0, 135, 135,
+ 0, 149, 149, 135, 149, 149, 149, 149, 149, 149,
+ 149, 0, 0, 149, 0, 0, 149, 149, 149, 0,
+ 89, 89, 0, 0, 100, 0, 0, 100, 0, 0,
+ 0, 135, 102, 135, 86, 0, 0, 86, 110, 89,
+ 118, 100, 100, 0, 0, 89, 100, 0, 0, 0,
+ 0, 86, 86, 0, 0, 0, 86, 89, 89, 89,
+ 89, 0, 0, 135, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 100, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 86, 150, 150, 150,
+ 150, 0, 62, 0, 0, 62, 150, 0, 0, 0,
+ 0, 110, 150, 150, 150, 150, 100, 0, 0, 62,
+ 62, 0, 150, 150, 62, 150, 150, 150, 150, 150,
+ 150, 150, 0, 0, 150, 0, 0, 150, 150, 150,
+ 0, 0, 0, 0, 0, 65, 0, 0, 0, 0,
+ 0, 0, 0, 0, 62, 0, 0, 0, 0, 0,
+ 0, 0, 65, 65, 0, 0, 0, 65, 0, 0,
+ 233, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 62, 0, 0, 0, 0, 99,
+ 0, 0, 99, 0, 261, 65, 0, 65, 0, 0,
+ 0, 0, 0, 0, 0, 0, 99, 99, 0, 0,
+ 0, 99, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 135, 135, 135, 135, 0, 65, 0, 0,
+ 0, 135, 0, 0, 0, 0, 0, 135, 135, 135,
+ 135, 99, 0, 0, 0, 0, 0, 135, 135, 0,
+ 135, 135, 135, 135, 135, 135, 135, 0, 0, 135,
+ 0, 0, 135, 135, 135, 100, 100, 100, 100, 0,
+ 136, 99, 0, 136, 100, 86, 86, 86, 86, 0,
+ 100, 100, 100, 100, 86, 0, 0, 136, 136, 0,
+ 100, 100, 136, 100, 100, 100, 100, 100, 100, 100,
+ 86, 86, 100, 86, 86, 100, 100, 100, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 136, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 62, 62, 62, 62, 0, 149, 0,
+ 0, 149, 62, 0, 0, 0, 0, 0, 62, 62,
+ 62, 62, 0, 0, 0, 149, 149, 0, 62, 62,
+ 149, 62, 62, 62, 62, 62, 62, 62, 0, 0,
+ 62, 0, 0, 62, 62, 62, 65, 65, 65, 65,
+ 0, 106, 0, 0, 106, 65, 0, 0, 0, 0,
+ 149, 65, 65, 65, 65, 0, 0, 0, 106, 106,
+ 0, 65, 65, 106, 65, 65, 65, 65, 65, 65,
+ 65, 0, 0, 65, 0, 0, 65, 65, 65, 0,
+ 99, 99, 99, 99, 0, 113, 0, 0, 113, 99,
+ 0, 0, 0, 106, 0, 99, 99, 99, 99, 0,
+ 0, 0, 113, 113, 0, 99, 99, 113, 99, 99,
+ 99, 99, 99, 99, 99, 0, 0, 99, 0, 0,
+ 99, 99, 99, 0, 0, 0, 0, 0, 91, 0,
+ 0, 91, 0, 0, 0, 0, 0, 113, 0, 0,
+ 0, 0, 0, 0, 0, 91, 91, 0, 0, 0,
+ 91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 136, 136, 136, 136, 0, 92, 0, 0, 92,
+ 136, 0, 0, 0, 0, 0, 136, 136, 136, 136,
+ 91, 0, 0, 92, 92, 0, 136, 136, 92, 136,
+ 136, 136, 136, 136, 136, 136, 0, 0, 136, 0,
+ 0, 136, 136, 136, 93, 0, 0, 93, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 92, 0,
+ 0, 93, 93, 0, 0, 0, 93, 0, 0, 149,
+ 149, 149, 149, 0, 0, 0, 0, 0, 149, 0,
+ 0, 0, 0, 0, 149, 149, 149, 149, 0, 0,
+ 0, 0, 0, 0, 149, 149, 93, 149, 149, 149,
+ 149, 149, 149, 149, 0, 0, 149, 0, 0, 149,
+ 149, 149, 106, 106, 106, 106, 0, 89, 0, 0,
+ 89, 106, 0, 0, 0, 0, 0, 106, 106, 106,
+ 106, 0, 0, 0, 89, 89, 0, 106, 106, 89,
+ 106, 106, 106, 106, 106, 106, 106, 0, 0, 106,
+ 0, 0, 106, 106, 106, 0, 113, 113, 113, 113,
+ 0, 90, 0, 0, 90, 113, 0, 0, 0, 89,
+ 0, 113, 113, 113, 113, 0, 0, 0, 90, 90,
+ 0, 113, 113, 90, 113, 113, 113, 113, 113, 113,
+ 113, 0, 0, 113, 0, 0, 113, 113, 113, 91,
+ 91, 91, 91, 0, 88, 0, 0, 88, 91, 0,
+ 0, 0, 0, 90, 91, 91, 91, 91, 0, 0,
+ 0, 88, 88, 0, 91, 91, 88, 91, 91, 91,
+ 91, 91, 91, 91, 0, 0, 0, 92, 92, 92,
+ 92, 0, 76, 0, 0, 76, 92, 0, 0, 0,
+ 0, 0, 92, 92, 92, 92, 88, 0, 0, 76,
+ 76, 0, 92, 92, 76, 92, 92, 92, 92, 92,
+ 92, 92, 0, 0, 0, 93, 93, 93, 93, 0,
+ 77, 0, 0, 77, 93, 0, 0, 0, 0, 0,
+ 93, 93, 93, 93, 76, 0, 0, 77, 77, 0,
+ 93, 93, 77, 93, 93, 93, 93, 93, 93, 93,
+ 0, 0, 0, 0, 0, 0, 78, 0, 0, 78,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 77, 78, 78, 0, 0, 0, 78, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 89, 89,
+ 89, 89, 0, 79, 0, 0, 79, 89, 0, 0,
+ 0, 0, 0, 89, 89, 89, 89, 0, 78, 0,
+ 79, 79, 0, 89, 89, 79, 89, 89, 89, 89,
+ 89, 89, 89, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 90, 90, 90, 90, 0, 139, 0, 0,
+ 139, 90, 0, 0, 0, 79, 0, 90, 90, 90,
+ 90, 0, 0, 0, 139, 139, 0, 90, 90, 139,
+ 90, 90, 90, 90, 90, 90, 90, 0, 0, 0,
+ 0, 0, 0, 0, 0, 88, 88, 88, 88, 0,
+ 138, 0, 0, 138, 88, 0, 0, 0, 0, 139,
+ 88, 88, 88, 88, 0, 0, 0, 138, 138, 0,
+ 88, 88, 138, 88, 88, 88, 88, 88, 88, 88,
+ 0, 0, 0, 76, 76, 76, 76, 0, 127, 0,
+ 0, 127, 76, 0, 0, 0, 0, 0, 76, 76,
+ 76, 76, 138, 0, 0, 127, 127, 0, 76, 76,
+ 127, 76, 76, 76, 76, 76, 76, 76, 0, 0,
+ 0, 77, 77, 77, 77, 0, 98, 0, 0, 98,
+ 77, 0, 0, 0, 0, 0, 77, 77, 77, 77,
+ 127, 0, 0, 98, 98, 0, 77, 77, 98, 77,
+ 77, 77, 77, 77, 77, 0, 0, 78, 78, 78,
+ 78, 0, 82, 0, 0, 82, 78, 0, 0, 0,
+ 0, 0, 78, 78, 0, 78, 0, 0, 98, 82,
+ 82, 0, 78, 78, 82, 78, 78, 78, 78, 78,
+ 78, 0, 0, 0, 79, 79, 79, 79, 0, 83,
+ 0, 0, 83, 79, 0, 0, 0, 0, 0, 79,
+ 79, 0, 0, 0, 82, 0, 83, 83, 0, 79,
+ 79, 83, 79, 79, 79, 79, 79, 79, 0, 0,
+ 166, 0, 0, 0, 0, 0, 0, 0, 139, 139,
+ 139, 139, 0, 85, 0, 0, 85, 139, 0, 0,
+ 0, 83, 0, 139, 139, 0, 64, 0, 0, 64,
+ 85, 85, 148, 139, 139, 85, 139, 139, 139, 139,
+ 139, 0, 0, 64, 64, 134, 0, 0, 134, 0,
+ 0, 138, 138, 138, 138, 75, 0, 0, 75, 0,
+ 138, 0, 134, 134, 0, 85, 138, 138, 0, 0,
+ 0, 0, 75, 75, 0, 0, 138, 138, 64, 138,
+ 138, 138, 138, 138, 0, 63, 0, 0, 63, 127,
+ 127, 127, 127, 0, 0, 0, 0, 134, 127, 0,
+ 0, 0, 63, 63, 127, 127, 281, 75, 0, 0,
+ 0, 155, 0, 0, 127, 127, 0, 127, 127, 127,
+ 127, 127, 0, 0, 0, 0, 0, 98, 98, 98,
+ 98, 0, 0, 0, 0, 0, 98, 63, 0, 166,
+ 0, 0, 98, 98, 0, 155, 0, 0, 0, 0,
+ 0, 0, 98, 98, 0, 98, 98, 98, 98, 98,
+ 0, 0, 0, 82, 82, 82, 82, 0, 0, 0,
+ 0, 148, 82, 166, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82, 82,
+ 0, 82, 82, 82, 82, 82, 150, 151, 152, 153,
+ 83, 83, 83, 83, 0, 148, 0, 0, 0, 83,
+ 0, 157, 158, 159, 160, 161, 0, 0, 162, 0,
+ 0, 163, 164, 165, 166, 83, 83, 0, 83, 83,
+ 83, 83, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 85, 85, 85, 85, 0, 0,
+ 0, 0, 0, 85, 0, 0, 148, 64, 64, 64,
+ 64, 0, 0, 0, 0, 0, 0, 0, 0, 85,
+ 85, 0, 85, 85, 85, 0, 134, 134, 134, 134,
+ 0, 0, 64, 64, 93, 0, 75, 75, 75, 75,
+ 0, 0, 103, 0, 0, 0, 108, 0, 0, 117,
+ 0, 134, 134, 0, 0, 0, 124, 125, 126, 127,
+ 128, 75, 75, 131, 132, 0, 63, 63, 63, 63,
+ 139, 0, 0, 0, 0, 0, 0, 0, 0, 149,
+ 0, 0, 0, 0, 0, 150, 151, 152, 153, 0,
+ 0, 63, 63, 0, 0, 0, 182, 0, 154, 156,
+ 157, 158, 159, 160, 161, 0, 0, 162, 0, 0,
+ 163, 164, 165, 149, 0, 0, 0, 0, 0, 150,
+ 151, 152, 153, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 154, 156, 157, 158, 159, 160, 161, 0,
+ 0, 162, 0, 0, 163, 164, 165, 0, 0, 0,
+ 0, 0, 0, 216, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, 227, 228, 229, 0, 0, 0,
+ 150, 151, 152, 153, 0, 0, 0, 0, 243, 0,
+ 0, 0, 0, 0, 0, 0, 158, 159, 160, 161,
+ 0, 0, 162, 0, 0, 163, 164, 165, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 179, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 187, 0,
- 0, 190, 0, 192, 0, 194, 0, 196, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 215, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 294, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 253, 0, 0, 0, 0,
- 0, 0, 260,
+ 0, 0, 0, 0, 0, 309,
};
short yycheck[] = { 13,
- 36, 198, 196, 36, 40, 93, 85, 41, 91, 59,
- 44, 36, 93, 41, 123, 41, 44, 185, 41, 41,
- 40, 91, 40, 257, 93, 59, 257, 40, 40, 40,
- 58, 59, 46, 59, 41, 63, 59, 44, 93, 257,
- 123, 276, 277, 57, 41, 26, 41, 61, 91, 41,
- 59, 58, 59, 123, 44, 41, 63, 41, 91, 93,
- 59, 59, 43, 44, 0, 93, 96, 40, 98, 50,
- 100, 91, 102, 90, 104, 105, 41, 59, 40, 59,
- 123, 62, 63, 64, 65, 282, 93, 266, 267, 268,
- 123, 270, 271, 40, 59, 109, 110, 33, 123, 40,
- 36, 37, 38, 123, 40, 123, 42, 43, 125, 45,
- 123, 123, 123, 59, 123, 59, 278, 314, 123, 316,
- 297, 298, 41, 59, 123, 44, 59, 40, 64, 110,
- 298, 41, 146, 147, 148, 149, 150, 151, 152, 59,
- 44, 6, 336, 8, 63, 339, 123, 59, 257, 59,
- 41, 257, 260, 40, 40, 91, 170, 171, 172, 173,
- 174, 175, 176, 0, 358, 182, 31, 32, 59, 199,
- 187, 185, 91, 41, 41, 189, 40, 191, 41, 36,
- 125, 195, 91, 91, 198, 125, 91, 123, 91, 125,
- 126, 205, 59, 207, 208, 41, 33, 93, 212, 36,
- 37, 38, 298, 40, 123, 42, 43, 257, 45, 297,
- 298, 93, 40, 59, 123, 59, 297, 298, 41, 0,
- 123, 41, 59, 41, 238, 258, 240, 64, 297, 298,
- 41, 314, 257, 41, 123, 93, 44, 262, 272, 273,
- 274, 275, 297, 298, 272, 273, 274, 275, 40, 40,
- 58, 59, 33, 281, 91, 36, 37, 38, 337, 40,
- 296, 42, 43, 297, 45, 272, 273, 274, 275, 297,
- 298, 41, 300, 301, 281, 297, 298, 41, 59, 293,
- 287, 288, 59, 64, 298, 93, 123, 125, 125, 126,
- 297, 298, 125, 300, 301, 302, 303, 304, 305, 125,
- 297, 298, 297, 298, 318, 297, 298, 297, 298, 125,
- 91, 297, 298, 297, 298, 297, 298, 297, 298, 41,
+ 41, 36, 36, 85, 93, 91, 40, 59, 41, 93,
+ 41, 44, 41, 59, 40, 44, 123, 93, 181, 59,
+ 90, 93, 41, 91, 257, 41, 59, 36, 321, 58,
+ 59, 41, 46, 93, 63, 91, 0, 123, 59, 190,
+ 257, 318, 319, 57, 257, 41, 323, 61, 40, 59,
+ 40, 121, 297, 298, 40, 123, 91, 41, 40, 352,
+ 93, 40, 339, 59, 93, 91, 343, 123, 6, 33,
+ 8, 123, 36, 37, 38, 59, 40, 40, 42, 43,
+ 41, 45, 41, 123, 278, 41, 40, 44, 123, 41,
+ 40, 105, 106, 31, 32, 59, 123, 123, 276, 277,
+ 64, 41, 44, 59, 0, 41, 41, 59, 178, 93,
+ 59, 40, 59, 183, 123, 59, 59, 268, 59, 59,
+ 59, 284, 260, 59, 59, 123, 257, 91, 142, 143,
+ 144, 145, 146, 147, 148, 40, 40, 33, 93, 41,
+ 36, 37, 38, 59, 40, 40, 42, 43, 299, 45,
+ 257, 125, 166, 167, 168, 169, 170, 171, 172, 123,
+ 0, 125, 126, 59, 91, 36, 41, 181, 64, 91,
+ 298, 185, 186, 40, 188, 59, 190, 125, 41, 41,
+ 41, 41, 41, 197, 40, 199, 200, 93, 91, 41,
+ 204, 342, 125, 33, 59, 91, 36, 37, 38, 125,
+ 40, 125, 42, 43, 125, 45, 123, 41, 297, 298,
+ 125, 257, 41, 297, 298, 41, 230, 59, 232, 59,
+ 123, 297, 298, 258, 64, 297, 298, 123, 314, 125,
+ 126, 41, 41, 40, 123, 44, 41, 297, 298, 272,
+ 273, 274, 275, 272, 273, 274, 275, 329, 257, 58,
+ 59, 91, 281, 262, 63, 41, 297, 298, 287, 288,
+ 289, 290, 296, 59, 297, 279, 297, 298, 297, 298,
+ 284, 300, 301, 302, 303, 304, 305, 306, 297, 298,
+ 309, 297, 298, 123, 93, 41, 126, 301, 272, 273,
+ 274, 275, 256, 257, 258, 259, 260, 261, 59, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 41, 297, 298, 279, 280, 41, 282, 283,
+ 284, 285, 286, 59, 338, 63, 41, 291, 292, 293,
+ 294, 295, 296, 13, 338, 299, 297, 298, 297, 298,
+ 297, 298, 297, 298, 308, 143, 310, 311, 297, 298,
+ 297, 298, 188, 91, 297, 298, 297, 298, 297, 298,
256, 257, 258, 259, 260, 261, 125, 263, 264, 265,
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- 41, 355, 123, 279, 280, 126, 282, 283, 284, 285,
- 286, 297, 298, 297, 298, 291, 292, 293, 294, 295,
- 296, 41, 281, 299, 297, 298, 41, 59, 287, 288,
- 289, 290, 308, 41, 310, 311, 41, 297, 298, 123,
- 289, 300, 301, 302, 303, 304, 305, 306, 41, 59,
- 309, 59, 41, 312, 313, 314, 59, 306, 41, 41,
- 309, 297, 298, 312, 313, 314, 309, 59, 41, 312,
- 313, 314, 13, 147, 95, 297, 298, 355, 91, 256,
- 257, 258, 259, 260, 261, 93, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 297,
- 298, 318, 279, 280, 195, 282, 283, 284, 285, 286,
- 123, -1, -1, -1, 291, 292, 293, 294, 295, 296,
- -1, -1, 299, 91, 272, 273, 274, 275, -1, -1,
- -1, 308, -1, 310, 311, 256, 257, 258, 259, 260,
- 261, 125, 263, 264, 265, -1, -1, -1, 269, 297,
- 298, 272, 273, 274, 275, 123, -1, -1, 279, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, 91,
- 291, 292, 293, 294, 295, 296, -1, -1, 299, -1,
- -1, -1, 125, -1, 91, -1, -1, 308, 33, 310,
- 311, 36, 37, 38, -1, 40, 41, 42, 43, 44,
- 45, 123, -1, 25, 26, 190, -1, 192, 272, 273,
- 274, 275, -1, 58, 59, 37, 123, -1, 63, 64,
- -1, 43, 44, 45, -1, -1, -1, -1, 50, -1,
- -1, -1, -1, 297, 298, -1, -1, -1, -1, -1,
- 62, 63, 64, 65, -1, -1, 91, -1, 93, 33,
- -1, -1, 36, 37, 38, -1, 40, 41, 42, 43,
- 44, 45, -1, -1, 272, 273, 274, 275, -1, -1,
- -1, -1, -1, -1, 58, 59, 289, 290, 123, 63,
- 64, 126, 266, 267, 268, -1, 270, 271, 110, 297,
- 298, -1, 305, 306, -1, -1, 309, -1, -1, 312,
- 313, 314, -1, -1, -1, -1, -1, -1, 33, 93,
- -1, 36, 37, 38, -1, 40, -1, 42, 43, 287,
- 45, 289, 290, 266, 267, 268, -1, 270, 271, -1,
- -1, -1, -1, -1, 59, -1, -1, 305, 306, 64,
- -1, 309, 126, -1, 312, 313, 314, 169, -1, 334,
- 335, -1, -1, -1, -1, -1, 341, -1, -1, 41,
- -1, -1, 44, -1, -1, -1, 91, 289, 290, -1,
- -1, 356, -1, -1, 359, 197, 58, 59, -1, -1,
- -1, 63, -1, -1, 306, -1, -1, 309, -1, -1,
- 312, 313, 314, -1, -1, -1, -1, -1, 123, 306,
- -1, 126, 309, -1, -1, 312, 313, 314, -1, -1,
- -1, 93, 257, 258, 259, 260, 261, -1, 263, 264,
- 265, -1, -1, -1, 269, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, -1, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, -1, 308, 309, 310, 311, 312, 313, 314,
- -1, -1, -1, 257, 258, 259, 260, 261, -1, 263,
- 264, 265, -1, -1, -1, 269, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, -1, 280, 281, 282, 283,
+ 125, 297, 298, 279, 280, 123, 282, 283, 284, 285,
+ 286, 297, 298, 301, 95, 291, 292, 293, 294, 295,
+ 296, -1, -1, 299, -1, -1, 309, -1, -1, 312,
+ 313, 314, 308, -1, 310, 311, 256, 257, 258, 259,
+ 260, 261, -1, 263, 264, 265, -1, -1, -1, 269,
+ 91, -1, 272, 273, 274, 275, -1, -1, -1, 279,
+ 280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
+ 91, 291, 292, 293, 294, 295, 296, -1, -1, 299,
+ -1, -1, 123, 272, 273, 274, 275, -1, 308, 33,
+ 310, 311, 36, 37, 38, -1, 40, 41, 42, 43,
+ 44, 45, 123, -1, -1, -1, -1, -1, 297, 298,
+ -1, 300, -1, -1, 58, 59, -1, -1, -1, 63,
+ 64, 266, 267, 268, -1, 270, 271, 266, 267, 268,
+ -1, 270, 271, 96, 97, 98, 99, 100, 101, -1,
+ -1, 266, 267, 268, -1, 270, 271, 91, -1, 93,
+ 33, -1, -1, 36, 37, 38, -1, 40, 41, 42,
+ 43, 44, 45, 281, 272, 273, 274, 275, -1, 287,
+ 288, 289, 290, -1, -1, 58, 59, -1, -1, 123,
+ 63, 64, 126, 301, 302, 303, 304, 305, 306, 297,
+ 298, 309, 43, -1, 312, 313, 314, -1, -1, -1,
+ 51, -1, -1, -1, -1, -1, -1, -1, -1, 33,
+ 93, -1, 36, 37, 38, -1, 40, -1, 42, 43,
+ 26, 45, -1, -1, -1, -1, -1, -1, 191, -1,
+ -1, -1, -1, -1, -1, 59, -1, 43, 44, 90,
+ 64, -1, -1, 126, 50, -1, 287, 288, 289, 290,
+ 296, 297, 298, -1, 300, -1, 62, 63, 64, 65,
+ 41, -1, 113, 44, 305, 306, -1, 91, 309, -1,
+ 121, 312, 313, 314, -1, -1, -1, 58, 59, 325,
+ -1, -1, 63, -1, -1, 306, 332, -1, 309, -1,
+ 336, 312, 313, 314, -1, -1, -1, -1, -1, 123,
+ 106, -1, 126, 349, 350, -1, -1, -1, -1, -1,
+ -1, -1, 93, 257, 258, 259, 260, 261, -1, 263,
+ 264, 265, -1, -1, -1, 269, -1, 178, 272, 273,
+ 274, 275, 183, -1, -1, -1, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
304, 305, 306, -1, 308, 309, 310, 311, 312, 313,
- 314, 256, 257, 258, 259, 260, 261, -1, 263, 264,
- 265, -1, -1, -1, 269, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, 279, 280, -1, 282, 283, 284,
+ 314, -1, -1, -1, 257, 258, 259, 260, 261, -1,
+ 263, 264, 265, -1, -1, -1, 269, -1, -1, 272,
+ 273, 274, 275, -1, -1, -1, -1, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
+ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, -1, 308, 309, 310, 311, 312,
+ 313, 314, 256, 257, 258, 259, 260, 261, -1, 263,
+ 264, 265, -1, -1, -1, 269, -1, -1, 272, 273,
+ 274, 275, -1, -1, -1, 279, 280, -1, 282, 283,
+ 284, 285, 286, -1, -1, -1, 91, 291, 292, 293,
+ 294, 295, 296, 33, -1, 299, 36, 37, 38, -1,
+ 40, -1, 42, 43, 308, 45, 310, 311, -1, -1,
+ -1, 272, 273, 274, 275, -1, -1, -1, 123, 59,
+ 281, -1, -1, -1, 64, -1, 287, 288, 289, 290,
+ -1, -1, -1, -1, -1, -1, 297, 298, -1, 300,
+ 301, 302, 303, 304, 305, 306, -1, -1, 309, 33,
+ -1, 91, 36, 37, 38, -1, 40, -1, 42, 43,
+ -1, 45, -1, -1, -1, -1, 13, -1, -1, -1,
+ 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 64, -1, -1, 123, -1, -1, 126, -1, -1, -1,
+ -1, -1, -1, -1, -1, 42, -1, -1, 45, 91,
+ -1, -1, -1, -1, -1, 33, -1, 91, 36, 37,
+ 38, -1, 40, -1, 42, 43, -1, 45, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 123, -1, 80, -1, -1, 64, -1, -1, 123,
+ -1, -1, 126, -1, -1, -1, -1, 94, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 91, -1, -1, -1, -1, 33, -1,
+ -1, 36, 37, 38, -1, 40, -1, 42, 43, -1,
+ 45, -1, 287, -1, 289, 290, -1, -1, -1, -1,
+ -1, -1, -1, 140, -1, 123, -1, -1, 126, 64,
+ 305, 306, -1, -1, 309, -1, -1, 312, 313, 314,
+ -1, -1, -1, -1, -1, -1, 256, 257, 258, 259,
+ 260, 261, -1, 263, 264, 265, 91, -1, -1, 269,
+ 177, -1, 272, 273, 274, 275, -1, 184, -1, 279,
+ 280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
+ -1, 291, 292, 293, 294, 295, 296, 91, 123, 299,
+ -1, 126, -1, -1, -1, -1, -1, -1, 308, 41,
+ 310, 311, 44, 257, 258, 259, 260, 261, 262, 263,
+ 264, 265, -1, -1, 91, 269, -1, -1, -1, 123,
+ -1, 63, -1, -1, -1, -1, 280, 289, 282, 283,
+ 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
+ 294, 295, 296, -1, 306, 299, 123, 309, -1, 91,
+ 312, 313, 314, 41, 308, -1, 310, 311, -1, 257,
+ 258, 259, 260, 261, -1, 263, 264, 265, -1, -1,
+ -1, 269, -1, -1, -1, 63, -1, -1, -1, -1,
+ -1, 123, 280, -1, 282, 283, 284, 285, 286, -1,
+ -1, -1, -1, 291, 292, 293, 294, 295, 296, -1,
+ -1, 299, -1, 91, -1, -1, -1, -1, -1, -1,
+ 308, -1, 310, 311, -1, -1, -1, -1, -1, -1,
+ -1, -1, 257, 258, 259, 260, 261, -1, 263, 264,
+ 265, -1, -1, -1, 269, 123, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 280, -1, 282, 283, 284,
285, 286, -1, -1, -1, 91, 291, 292, 293, 294,
295, 296, 33, -1, 299, 36, 37, 38, -1, 40,
- -1, 42, 43, 308, 45, 310, 311, 43, -1, -1,
- 272, 273, 274, 275, -1, 51, -1, 123, 59, 281,
- -1, -1, -1, 64, -1, 287, 288, 289, 290, -1,
- -1, -1, -1, -1, -1, 297, 298, -1, 300, 301,
- 302, 303, 304, 305, 306, -1, -1, 309, 33, -1,
- 91, 36, 37, 38, 90, 40, -1, 42, 43, -1,
- 45, -1, -1, -1, -1, -1, -1, -1, 309, 310,
- 311, -1, -1, -1, 315, -1, 317, -1, -1, 64,
- -1, 117, 123, -1, -1, 126, -1, -1, -1, 125,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 343, -1, 33, -1, 91, 36, 37, 38,
- 351, 40, 353, 42, 43, -1, 45, -1, -1, -1,
- -1, -1, -1, 364, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 64, -1, -1, 123, -1,
- -1, 126, -1, -1, -1, -1, 182, -1, -1, -1,
- -1, 187, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 91, -1, -1, -1, -1, 33, -1, -1,
- 36, 37, 38, -1, 40, -1, 42, 43, -1, 45,
+ -1, 42, 43, 308, 45, 310, 311, -1, -1, -1,
+ -1, -1, -1, 287, 288, 289, 290, 123, 59, -1,
+ -1, -1, -1, 64, -1, -1, -1, 301, 302, 303,
+ 304, 305, 306, -1, -1, 309, -1, -1, 312, 313,
+ 314, -1, 289, 290, -1, -1, -1, -1, 33, -1,
+ 91, 36, 37, 38, -1, 40, 41, 42, 43, 306,
+ 45, -1, 309, -1, -1, 312, 313, 314, -1, 281,
+ -1, -1, -1, -1, -1, 287, 288, 289, 290, 64,
+ -1, -1, -1, -1, -1, 126, -1, -1, 300, 301,
+ 302, 303, 304, 305, 306, -1, -1, 309, -1, -1,
+ 312, 313, 314, -1, 33, -1, 91, 36, 37, 38,
+ -1, 40, -1, 42, 43, -1, 45, -1, -1, -1,
+ -1, -1, -1, 281, -1, -1, -1, -1, -1, 287,
+ 288, 289, 290, -1, -1, 64, -1, -1, -1, -1,
+ -1, 126, 300, 301, 302, 303, 304, 305, 306, -1,
+ -1, 309, -1, -1, 312, 313, 314, -1, -1, -1,
+ -1, -1, 91, 33, 93, -1, 36, 37, 38, -1,
+ 40, 41, 42, 43, -1, 45, -1, -1, -1, -1,
-1, 287, 288, 289, 290, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 123, -1, -1, 126, 64, 305,
+ -1, -1, -1, -1, 64, -1, -1, 126, 304, 305,
306, -1, -1, 309, -1, -1, 312, 313, 314, -1,
- -1, -1, -1, -1, -1, 256, 257, 258, 259, 260,
- 261, -1, 263, 264, 265, 91, -1, -1, 269, -1,
- -1, 272, 273, 274, 275, -1, -1, -1, 279, 280,
+ -1, -1, 41, -1, -1, 44, 257, 258, 259, 260,
+ 261, 91, 263, 264, 265, -1, -1, -1, 269, 58,
+ 59, -1, -1, -1, 63, -1, -1, -1, -1, 280,
-1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, 123, 299, -1,
- 126, -1, 91, -1, -1, -1, 41, 308, -1, 310,
- 311, -1, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, -1, -1, -1, 269, -1, -1, -1, 63, -1,
- -1, -1, -1, -1, 123, 280, -1, 282, 283, 284,
+ 291, 292, 293, 294, 295, 296, 126, -1, 299, -1,
+ -1, -1, -1, -1, 93, -1, -1, 308, 41, 310,
+ 311, 44, 257, 258, 259, 260, 261, -1, 263, 264,
+ 265, -1, -1, -1, 269, 58, 59, -1, -1, -1,
+ 63, -1, -1, -1, -1, 280, -1, 282, 283, 284,
285, 286, -1, -1, -1, -1, 291, 292, 293, 294,
- 295, 296, -1, -1, 299, -1, 91, -1, -1, -1,
- -1, -1, -1, 308, -1, 310, 311, -1, 257, 258,
- 259, 260, 261, -1, 263, 264, 265, -1, -1, -1,
- 269, 58, -1, -1, -1, -1, 63, -1, 123, -1,
- -1, 280, -1, 282, 283, 284, 285, 286, -1, -1,
- -1, -1, 291, 292, 293, 294, 295, 296, -1, -1,
- 299, -1, -1, -1, 91, -1, -1, -1, -1, 308,
- -1, 310, 311, -1, -1, -1, -1, 41, -1, -1,
- 44, 257, 258, 259, 260, 261, -1, 263, 264, 265,
- -1, -1, -1, 269, 58, 59, 123, -1, -1, 63,
- -1, -1, -1, -1, 280, -1, 282, 283, 284, 285,
- 286, -1, -1, -1, -1, 291, 292, 293, 294, 295,
- 296, 33, -1, 299, 36, 37, 38, -1, 40, 93,
- 42, 43, 308, 45, 310, 311, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 59, 287, 288,
- 289, 290, 64, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 301, 302, 303, 304, 305, 306, -1, -1,
- 309, -1, -1, 312, 313, 314, -1, 33, -1, 91,
- 36, 37, 38, -1, 40, 41, 42, 43, -1, 45,
- -1, -1, -1, -1, -1, -1, 281, -1, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, -1, 64, -1,
- -1, -1, -1, -1, 126, 300, 301, 302, 303, 304,
- 305, 306, -1, -1, 309, -1, -1, 312, 313, 314,
- -1, -1, -1, 33, -1, 91, 36, 37, 38, -1,
- 40, -1, 42, 43, -1, 45, -1, -1, -1, -1,
- -1, -1, -1, -1, 281, -1, -1, -1, -1, -1,
- 287, 288, 289, 290, 64, -1, -1, -1, -1, -1,
- 126, -1, -1, 300, 301, 302, 303, 304, 305, 306,
- -1, -1, 309, -1, -1, 312, 313, 314, -1, -1,
- -1, 91, 33, 93, -1, 36, 37, 38, -1, 40,
- 41, 42, 43, -1, 45, -1, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, -1, -1, 281, -1, -1,
- -1, -1, -1, 64, 288, -1, 126, -1, -1, -1,
- -1, -1, -1, 297, 298, -1, 300, 301, 302, 303,
- 304, 41, -1, -1, 44, 257, 258, 259, 260, 261,
- 91, 263, 264, 265, -1, -1, -1, 269, 58, 59,
- -1, -1, -1, 63, -1, -1, -1, -1, 280, -1,
- 282, 283, 284, 285, 286, -1, -1, -1, -1, 291,
- 292, 293, 294, 295, 296, 126, -1, 299, -1, -1,
- -1, -1, -1, 93, -1, -1, 308, 41, 310, 311,
- 44, 257, 258, 259, 260, 261, -1, 263, 264, 265,
- -1, -1, -1, 269, 58, 59, -1, -1, -1, 63,
- -1, -1, -1, -1, 280, -1, 282, 283, 284, 285,
- 286, -1, -1, -1, -1, 291, 292, 293, 294, 295,
- 296, -1, -1, 299, -1, -1, -1, -1, -1, 93,
- -1, -1, 308, -1, 310, 311, -1, 257, 258, 259,
- 260, 261, -1, 263, 264, 265, -1, 33, -1, 269,
- 36, 37, 38, -1, 40, 41, 42, 43, -1, 45,
+ 295, 296, -1, -1, 299, -1, -1, -1, -1, -1,
+ 93, -1, -1, 308, -1, 310, 311, -1, 257, 258,
+ 259, 260, 261, -1, 263, 264, 265, -1, 33, -1,
+ 269, 36, 37, 38, -1, 40, 41, 42, 43, -1,
+ 45, 280, -1, 282, 283, 284, 285, 286, -1, -1,
+ -1, -1, 291, 292, 293, 294, 295, 296, -1, 64,
+ 299, -1, -1, -1, -1, -1, -1, -1, -1, 308,
+ -1, 310, 311, -1, -1, -1, -1, 257, 258, 259,
+ 260, 261, -1, 263, 264, 265, 91, 33, -1, 269,
+ 36, 37, 38, -1, 40, -1, 42, 43, -1, 45,
280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
-1, 291, 292, 293, 294, 295, 296, -1, 64, 299,
- -1, -1, -1, -1, -1, -1, -1, -1, 308, -1,
- 310, 311, -1, -1, -1, -1, 257, 258, 259, 260,
- 261, -1, 263, 264, 265, 91, 33, -1, 269, 36,
- 37, 38, -1, 40, -1, 42, 43, -1, 45, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, 64, 299, -1,
- 126, -1, -1, -1, -1, -1, -1, 308, -1, 310,
- 311, -1, 272, 273, 274, 275, -1, -1, -1, -1,
- -1, 281, 33, -1, 91, 36, 37, 38, -1, 40,
- 41, 42, 43, -1, 45, -1, -1, 297, 298, -1,
- 300, 301, 302, 303, 304, -1, -1, -1, -1, -1,
- -1, -1, -1, 64, -1, -1, -1, -1, -1, 126,
- -1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, -1, -1, 281, 33, -1,
- 91, 36, 37, 38, -1, 40, 41, 42, 43, -1,
- 45, -1, -1, 297, 298, -1, 300, 301, 302, 303,
- 304, -1, -1, -1, -1, -1, -1, -1, -1, 64,
- -1, -1, -1, -1, -1, 126, -1, -1, -1, -1,
+ -1, 126, -1, -1, -1, -1, -1, -1, 308, -1,
+ 310, 311, -1, 272, 273, 274, 275, -1, -1, -1,
+ -1, -1, 281, 33, -1, 91, 36, 37, 38, 288,
+ 40, 41, 42, 43, -1, 45, -1, -1, 297, 298,
+ -1, 300, 301, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, 64, -1, -1, -1, -1, -1,
+ 126, -1, -1, -1, -1, -1, -1, -1, -1, 272,
+ 273, 274, 275, -1, -1, -1, -1, -1, 281, 33,
+ -1, 91, 36, 37, 38, -1, 40, 41, 42, 43,
+ -1, 45, -1, -1, 297, 298, -1, 300, 301, 302,
+ 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
+ 64, -1, -1, -1, -1, -1, 126, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 257, 258, 259, 260, 261, 91, 263, 264, 265,
- -1, 33, -1, 269, 36, 37, 38, -1, 40, -1,
- 42, 43, -1, 45, 280, -1, 282, 283, 284, 285,
- 286, -1, -1, -1, -1, 291, 292, 293, 294, 295,
- 296, 126, 64, 299, -1, -1, -1, -1, -1, -1,
- -1, -1, 308, -1, 310, 311, -1, -1, -1, 256,
- 257, 258, 259, 260, 261, -1, 263, 264, 265, 91,
- -1, -1, 269, 41, -1, -1, 44, -1, -1, -1,
- -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
- 58, 59, -1, -1, 291, 292, 293, 294, 295, 296,
- -1, -1, 299, -1, 126, -1, -1, -1, -1, 41,
- -1, 308, 44, 310, 311, -1, 257, 258, 259, 260,
- 261, -1, 263, 264, 265, 93, 58, 59, 269, -1,
- -1, 63, -1, -1, -1, -1, -1, -1, -1, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, -1, 299, 91,
- -1, 93, -1, -1, -1, -1, -1, 308, 41, 310,
- 311, 44, 257, 258, 259, 260, 261, -1, 263, 264,
- 265, -1, -1, -1, 269, 58, 59, -1, -1, -1,
- 63, 123, -1, -1, -1, 280, -1, 282, 283, 284,
+ -1, -1, 257, 258, 259, 260, 261, 91, 263, 264,
+ 265, -1, 33, -1, 269, 36, 37, 38, -1, 40,
+ -1, 42, 43, -1, 45, 280, -1, 282, 283, 284,
285, 286, -1, -1, -1, -1, 291, 292, 293, 294,
- 295, 296, -1, -1, 299, -1, -1, -1, 91, -1,
- 93, -1, -1, 308, -1, 310, 311, -1, -1, -1,
- -1, 41, -1, -1, 44, 257, 258, 259, 260, 261,
- -1, 263, 264, 265, -1, -1, -1, 269, 58, 59,
- 123, -1, -1, 63, -1, -1, -1, -1, 280, -1,
- 282, 283, 284, 285, 286, -1, -1, -1, -1, 291,
- 292, 293, 294, 295, 296, -1, -1, 299, -1, 41,
- -1, 91, 44, 93, -1, -1, 308, -1, 310, 311,
- -1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
- -1, 63, -1, -1, 272, 273, 274, 275, -1, -1,
- -1, -1, -1, 123, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 297,
- 298, 93, 300, -1, -1, -1, -1, -1, -1, -1,
- 272, 273, 274, 275, -1, 41, -1, -1, 44, 281,
- -1, -1, -1, -1, -1, 287, 288, 289, 290, -1,
- -1, 123, 58, 59, -1, 297, 298, 63, 300, 301,
- 302, 303, 304, 305, 306, -1, -1, 309, -1, -1,
- 312, 313, 314, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 91, -1, 93, -1, 272,
- 273, 274, 275, -1, 41, -1, -1, 44, 281, -1,
- -1, -1, -1, -1, 287, 288, 289, 290, -1, -1,
- -1, 58, 59, -1, 297, 298, 63, 300, 301, 302,
- 303, 304, 305, 306, -1, -1, 309, -1, -1, 312,
- 313, 314, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 93, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, -1, -1,
- -1, 281, -1, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, -1, -1, -1, -1, 123, 297, 298, -1,
- 300, 301, 302, 303, 304, 305, 306, -1, -1, 309,
+ 295, 296, 126, 64, 299, -1, -1, -1, -1, -1,
+ -1, -1, -1, 308, -1, 310, 311, -1, -1, -1,
+ 256, 257, 258, 259, 260, 261, -1, 263, 264, 265,
+ 91, -1, -1, 269, 41, -1, -1, 44, -1, -1,
+ -1, -1, -1, -1, 280, -1, 282, 283, 284, 285,
+ 286, 58, 59, -1, -1, 291, 292, 293, 294, 295,
+ 296, 91, -1, 299, -1, 126, -1, -1, -1, -1,
+ 41, -1, 308, 44, 310, 311, -1, 257, 258, 259,
+ 260, 261, -1, 263, 264, 265, 93, 58, 59, 269,
+ -1, -1, 63, 123, -1, -1, -1, -1, -1, -1,
+ 280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
+ -1, 291, 292, 293, 294, 295, 296, -1, -1, 299,
+ 91, -1, 93, -1, -1, -1, -1, -1, 308, 41,
+ 310, 311, 44, 257, 258, 259, 260, 261, -1, 263,
+ 264, 265, -1, -1, -1, 269, 58, 59, -1, -1,
+ -1, 63, 123, -1, -1, -1, 280, -1, 282, 283,
+ 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
+ 294, 295, 296, -1, -1, 299, -1, -1, -1, 91,
+ -1, 93, -1, -1, 308, -1, 310, 311, -1, -1,
+ -1, -1, 41, -1, -1, 44, 257, 258, 259, 260,
+ 261, -1, 263, 264, 265, -1, -1, -1, 269, 58,
+ 59, 123, -1, -1, 63, -1, -1, -1, -1, 280,
+ -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
+ 291, 292, 293, 294, 295, 296, -1, -1, 299, -1,
+ 41, -1, 91, 44, 93, -1, -1, 308, -1, 310,
+ 311, -1, -1, -1, -1, -1, -1, 58, 59, 289,
+ 290, -1, 63, -1, -1, 272, 273, 274, 275, -1,
+ -1, -1, -1, -1, 123, 305, 306, -1, -1, 309,
-1, -1, 312, 313, 314, -1, -1, -1, -1, -1,
- 272, 273, 274, 275, -1, 41, -1, -1, -1, 281,
+ 297, 298, 93, 300, -1, -1, -1, -1, -1, -1,
+ -1, 272, 273, 274, 275, -1, 41, -1, -1, 44,
+ 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
+ -1, -1, 123, 58, 59, -1, 297, 298, 63, 300,
+ 301, 302, 303, 304, 305, 306, -1, -1, 309, -1,
+ -1, 312, 313, 314, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 91, -1, 93, -1,
+ 272, 273, 274, 275, -1, 41, -1, -1, 44, 281,
-1, -1, -1, -1, -1, 287, 288, 289, 290, -1,
-1, -1, 58, 59, -1, 297, 298, 63, 300, 301,
302, 303, 304, 305, 306, -1, -1, 309, -1, -1,
312, 313, 314, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 91, -1, 93, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 93, -1, -1,
+ -1, -1, -1, 272, 273, 274, 275, -1, -1, -1,
+ -1, -1, 281, -1, -1, -1, -1, -1, 287, 288,
+ 289, 290, -1, -1, -1, -1, -1, 123, 297, 298,
+ -1, 300, 301, 302, 303, 304, 305, 306, -1, -1,
+ 309, -1, -1, 312, 313, 314, -1, -1, -1, -1,
+ -1, 272, 273, 274, 275, -1, 41, -1, -1, -1,
+ 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
+ -1, -1, -1, 58, 59, -1, 297, 298, 63, 300,
+ 301, 302, 303, 304, 305, 306, -1, -1, 309, -1,
+ -1, 312, 313, 314, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 91, -1, 93, -1,
+ -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
+ 275, -1, -1, -1, -1, -1, 281, -1, -1, -1,
+ -1, -1, 287, 288, 289, 290, -1, -1, 123, -1,
+ -1, -1, 297, 298, -1, 300, 301, 302, 303, 304,
+ 305, 306, -1, -1, 309, -1, -1, 312, 313, 314,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, -1, -1, -1, -1, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, 123, -1, -1,
- 91, 297, 298, -1, 300, 301, 302, 303, 304, 305,
+ -1, 41, -1, -1, -1, 281, -1, -1, -1, -1,
+ -1, 287, 288, 289, 290, -1, -1, -1, 58, 59,
+ -1, 297, 298, 63, 300, 301, 302, 303, 304, 305,
306, -1, -1, 309, -1, -1, 312, 313, 314, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 123, -1, -1, 272, 273, 274, 275, -1,
- 41, -1, -1, -1, 281, -1, -1, -1, -1, -1,
- 287, 288, 289, 290, -1, -1, -1, 58, 59, -1,
+ 25, 26, -1, -1, 41, -1, -1, 44, -1, -1,
+ -1, 91, 37, 93, 41, -1, -1, 44, 43, 44,
+ 45, 58, 59, -1, -1, 50, 63, -1, -1, -1,
+ -1, 58, 59, -1, -1, -1, 63, 62, 63, 64,
+ 65, -1, -1, 123, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 93, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 93, 272, 273, 274,
+ 275, -1, 41, -1, -1, 44, 281, -1, -1, -1,
+ -1, 106, 287, 288, 289, 290, 123, -1, -1, 58,
+ 59, -1, 297, 298, 63, 300, 301, 302, 303, 304,
+ 305, 306, -1, -1, 309, -1, -1, 312, 313, 314,
+ -1, -1, -1, -1, -1, 41, -1, -1, -1, -1,
+ -1, -1, -1, -1, 93, -1, -1, -1, -1, -1,
+ -1, -1, 58, 59, -1, -1, -1, 63, -1, -1,
+ 165, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 123, -1, -1, -1, -1, 41,
+ -1, -1, 44, -1, 189, 91, -1, 93, -1, -1,
+ -1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
+ -1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 272, 273, 274, 275, -1, 123, -1, -1,
+ -1, 281, -1, -1, -1, -1, -1, 287, 288, 289,
+ 290, 93, -1, -1, -1, -1, -1, 297, 298, -1,
+ 300, 301, 302, 303, 304, 305, 306, -1, -1, 309,
+ -1, -1, 312, 313, 314, 272, 273, 274, 275, -1,
+ 41, 123, -1, 44, 281, 272, 273, 274, 275, -1,
+ 287, 288, 289, 290, 281, -1, -1, 58, 59, -1,
297, 298, 63, 300, 301, 302, 303, 304, 305, 306,
- -1, -1, 309, -1, -1, 312, 313, 314, -1, -1,
- -1, -1, -1, 41, -1, -1, 44, -1, -1, -1,
- 91, -1, 93, 41, -1, -1, 44, -1, -1, -1,
- 58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
- 58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
- -1, -1, 123, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, 272, 273, 274, 275,
+ 297, 298, 309, 300, 301, 312, 313, 314, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 93, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 272, 273, 274, 275, -1, 41, -1,
+ -1, 44, 281, -1, -1, -1, -1, -1, 287, 288,
+ 289, 290, -1, -1, -1, 58, 59, -1, 297, 298,
+ 63, 300, 301, 302, 303, 304, 305, 306, -1, -1,
+ 309, -1, -1, 312, 313, 314, 272, 273, 274, 275,
-1, 41, -1, -1, 44, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, 123, -1, -1, 58, 59,
+ 93, 287, 288, 289, 290, -1, -1, -1, 58, 59,
-1, 297, 298, 63, 300, 301, 302, 303, 304, 305,
306, -1, -1, 309, -1, -1, 312, 313, 314, -1,
- -1, -1, -1, -1, 41, -1, 287, 288, 289, 290,
- -1, -1, -1, 93, -1, -1, -1, -1, -1, -1,
- -1, 58, 59, 304, 305, 306, 63, -1, 309, -1,
- -1, 312, 313, 314, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 123, -1, -1, -1, -1, 41, -1,
- -1, 44, -1, -1, 91, -1, 93, -1, -1, -1,
+ 272, 273, 274, 275, -1, 41, -1, -1, 44, 281,
+ -1, -1, -1, 93, -1, 287, 288, 289, 290, -1,
+ -1, -1, 58, 59, -1, 297, 298, 63, 300, 301,
+ 302, 303, 304, 305, 306, -1, -1, 309, -1, -1,
+ 312, 313, 314, -1, -1, -1, -1, -1, 41, -1,
+ -1, 44, -1, -1, -1, -1, -1, 93, -1, -1,
-1, -1, -1, -1, -1, 58, 59, -1, -1, -1,
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, 123, -1, -1, -1,
+ -1, 272, 273, 274, 275, -1, 41, -1, -1, 44,
281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- 93, -1, -1, -1, -1, -1, 297, 298, -1, 300,
+ 93, -1, -1, 58, 59, -1, 297, 298, 63, 300,
301, 302, 303, 304, 305, 306, -1, -1, 309, -1,
- -1, 312, 313, 314, 272, 273, 274, 275, -1, 41,
- 123, -1, 44, 281, 272, 273, 274, 275, -1, 287,
- 288, 289, 290, -1, -1, -1, 58, 59, -1, 297,
- 298, 63, 300, 301, 302, 303, 304, 305, 306, 297,
- 298, 309, 300, -1, 312, 313, 314, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 93, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, 41, -1, -1,
+ -1, 312, 313, 314, 41, -1, -1, 44, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
+ -1, 58, 59, -1, -1, -1, 63, -1, -1, 272,
+ 273, 274, 275, -1, -1, -1, -1, -1, 281, -1,
+ -1, -1, -1, -1, 287, 288, 289, 290, -1, -1,
+ -1, -1, -1, -1, 297, 298, 93, 300, 301, 302,
+ 303, 304, 305, 306, -1, -1, 309, -1, -1, 312,
+ 313, 314, 272, 273, 274, 275, -1, 41, -1, -1,
44, 281, -1, -1, -1, -1, -1, 287, 288, 289,
290, -1, -1, -1, 58, 59, -1, 297, 298, 63,
300, 301, 302, 303, 304, 305, 306, -1, -1, 309,
- -1, -1, 312, 313, 314, 272, 273, 274, 275, -1,
- 41, -1, -1, 44, 281, -1, -1, -1, -1, 93,
- 287, 288, 289, 290, -1, -1, -1, 58, 59, -1,
- 297, 298, 63, 300, 301, 302, 303, 304, 305, 306,
- -1, -1, 309, -1, -1, 312, 313, 314, -1, 272,
+ -1, -1, 312, 313, 314, -1, 272, 273, 274, 275,
+ -1, 41, -1, -1, 44, 281, -1, -1, -1, 93,
+ -1, 287, 288, 289, 290, -1, -1, -1, 58, 59,
+ -1, 297, 298, 63, 300, 301, 302, 303, 304, 305,
+ 306, -1, -1, 309, -1, -1, 312, 313, 314, 272,
273, 274, 275, -1, 41, -1, -1, 44, 281, -1,
- -1, -1, 93, -1, 287, 288, 289, 290, -1, -1,
+ -1, -1, -1, 93, 287, 288, 289, 290, -1, -1,
-1, 58, 59, -1, 297, 298, 63, 300, 301, 302,
- 303, 304, 305, 306, -1, -1, 309, -1, -1, 312,
- 313, 314, -1, -1, -1, -1, -1, 41, -1, -1,
- 44, -1, -1, -1, -1, -1, 93, -1, -1, -1,
- -1, -1, -1, -1, 58, 59, -1, 41, -1, 63,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 272, 273, 274, 275, 58, 59, -1, -1, -1, 281,
- -1, -1, -1, -1, -1, 287, 288, 289, 290, 93,
- -1, -1, -1, -1, -1, 297, 298, -1, 300, 301,
- 302, 303, 304, 305, 306, 41, -1, 309, 44, 93,
- 312, 313, 314, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 58, 59, -1, -1, -1, 63, -1, -1,
+ 303, 304, 305, 306, -1, -1, -1, 272, 273, 274,
+ 275, -1, 41, -1, -1, 44, 281, -1, -1, -1,
+ -1, -1, 287, 288, 289, 290, 93, -1, -1, 58,
+ 59, -1, 297, 298, 63, 300, 301, 302, 303, 304,
+ 305, 306, -1, -1, -1, 272, 273, 274, 275, -1,
+ 41, -1, -1, 44, 281, -1, -1, -1, -1, -1,
+ 287, 288, 289, 290, 93, -1, -1, 58, 59, -1,
+ 297, 298, 63, 300, 301, 302, 303, 304, 305, 306,
+ -1, -1, -1, -1, -1, -1, 41, -1, -1, 44,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 93, 58, 59, -1, -1, -1, 63, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
274, 275, -1, 41, -1, -1, 44, 281, -1, -1,
- -1, -1, -1, 287, 288, 289, 290, 93, -1, -1,
+ -1, -1, -1, 287, 288, 289, 290, -1, 93, -1,
58, 59, -1, 297, 298, 63, 300, 301, 302, 303,
- 304, 305, 306, -1, -1, 309, -1, -1, 312, 313,
- 314, 272, 273, 274, 275, -1, -1, -1, -1, -1,
- 281, -1, -1, -1, -1, 93, 287, 288, 289, 290,
- -1, -1, -1, -1, -1, -1, 297, 298, -1, 300,
- 301, 302, 303, 304, 305, 306, -1, -1, 309, -1,
- -1, 312, 313, 314, -1, 272, 273, 274, 275, -1,
- 41, -1, -1, 44, 281, -1, -1, -1, -1, -1,
+ 304, 305, 306, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 272, 273, 274, 275, -1, 41, -1, -1,
+ 44, 281, -1, -1, -1, 93, -1, 287, 288, 289,
+ 290, -1, -1, -1, 58, 59, -1, 297, 298, 63,
+ 300, 301, 302, 303, 304, 305, 306, -1, -1, -1,
+ -1, -1, -1, -1, -1, 272, 273, 274, 275, -1,
+ 41, -1, -1, 44, 281, -1, -1, -1, -1, 93,
287, 288, 289, 290, -1, -1, -1, 58, 59, -1,
297, 298, 63, 300, 301, 302, 303, 304, 305, 306,
- -1, -1, 309, -1, -1, 312, 313, 314, 272, 273,
- 274, 275, -1, -1, -1, -1, -1, 281, -1, -1,
- -1, -1, 93, 287, 288, 289, 290, -1, 272, 273,
- 274, 275, -1, 297, 298, 30, 300, 301, 302, 303,
- 304, 305, 306, 38, -1, 309, -1, 42, -1, -1,
- 45, -1, -1, 297, 298, -1, -1, 52, 53, 54,
- 55, 56, -1, -1, 59, 60, -1, -1, 91, -1,
- -1, 66, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 41, -1, -1, 44, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, 92, 58, 59,
- 123, 297, 298, 63, 300, 301, 302, 303, 304, 305,
- 306, -1, -1, -1, 272, 273, 274, 275, -1, -1,
- -1, -1, -1, 281, -1, -1, -1, -1, -1, 287,
- 288, 289, 290, 93, 41, -1, -1, 44, -1, 297,
- 298, -1, 300, 301, 302, 303, 304, 305, 306, -1,
- -1, 58, 59, -1, -1, -1, 63, -1, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 41, -1, -1, 44, -1, -1, -1, -1,
- -1, -1, -1, 178, -1, -1, 93, -1, -1, 58,
- 59, -1, -1, -1, 63, -1, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, -1, -1, -1, -1,
+ -1, -1, -1, 272, 273, 274, 275, -1, 41, -1,
+ -1, 44, 281, -1, -1, -1, -1, -1, 287, 288,
+ 289, 290, 93, -1, -1, 58, 59, -1, 297, 298,
+ 63, 300, 301, 302, 303, 304, 305, 306, -1, -1,
+ -1, 272, 273, 274, 275, -1, 41, -1, -1, 44,
281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- 41, -1, -1, 44, 93, -1, 297, 298, -1, 300,
- 301, 302, 303, 304, 305, 306, -1, 58, 59, -1,
- -1, -1, 63, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 41, -1, -1, 44,
- -1, -1, -1, 258, 287, 288, 289, 290, -1, -1,
- -1, -1, 93, 58, 59, -1, -1, -1, 63, 302,
- 303, 304, 305, 306, -1, -1, 309, -1, -1, 312,
- 313, 314, -1, -1, -1, -1, -1, -1, -1, -1,
- 295, 41, -1, -1, 44, -1, -1, -1, 93, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, 58, 59,
- -1, 281, -1, 63, -1, -1, -1, 287, 288, 289,
- 290, -1, -1, -1, -1, -1, -1, 297, 298, -1,
- 300, 301, 302, 303, 304, 305, 306, -1, -1, -1,
- -1, -1, -1, 93, -1, 41, -1, -1, 44, -1,
- -1, -1, -1, -1, -1, 272, 273, 274, 275, -1,
- -1, -1, 58, 59, 281, -1, -1, 63, -1, -1,
- 287, 288, 289, 290, -1, -1, -1, -1, -1, -1,
- 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
- -1, -1, -1, 272, 273, 274, 275, 93, -1, -1,
- -1, -1, 281, -1, -1, -1, -1, -1, 287, 288,
- 289, 290, 41, -1, -1, 44, -1, -1, 297, 298,
- -1, 300, 301, 302, 303, 304, 305, 306, -1, 58,
- 59, -1, -1, -1, 63, -1, -1, -1, -1, -1,
+ 93, -1, -1, 58, 59, -1, 297, 298, 63, 300,
+ 301, 302, 303, 304, 305, -1, -1, 272, 273, 274,
+ 275, -1, 41, -1, -1, 44, 281, -1, -1, -1,
+ -1, -1, 287, 288, -1, 290, -1, -1, 93, 58,
+ 59, -1, 297, 298, 63, 300, 301, 302, 303, 304,
+ 305, -1, -1, -1, 272, 273, 274, 275, -1, 41,
+ -1, -1, 44, 281, -1, -1, -1, -1, -1, 287,
+ 288, -1, -1, -1, 93, -1, 58, 59, -1, 297,
+ 298, 63, 300, 301, 302, 303, 304, 305, -1, -1,
+ 91, -1, -1, -1, -1, -1, -1, -1, 272, 273,
+ 274, 275, -1, 41, -1, -1, 44, 281, -1, -1,
+ -1, 93, -1, 287, 288, -1, 41, -1, -1, 44,
+ 58, 59, 123, 297, 298, 63, 300, 301, 302, 303,
+ 304, -1, -1, 58, 59, 41, -1, -1, 44, -1,
-1, 272, 273, 274, 275, 41, -1, -1, 44, -1,
- 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, 58, 59, 93, 41, 297, 298, 44, 300,
- 301, 302, 303, 304, 305, 306, -1, 272, 273, 274,
- 275, -1, 58, 59, -1, -1, 281, 63, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, 93, -1, -1,
+ 281, -1, 58, 59, -1, 93, 287, 288, -1, -1,
+ -1, -1, 58, 59, -1, -1, 297, 298, 93, 300,
+ 301, 302, 303, 304, -1, 41, -1, -1, 44, 272,
+ 273, 274, 275, -1, -1, -1, -1, 93, 281, -1,
+ -1, -1, 58, 59, 287, 288, 58, 93, -1, -1,
+ -1, 63, -1, -1, 297, 298, -1, 300, 301, 302,
+ 303, 304, -1, -1, -1, -1, -1, 272, 273, 274,
+ 275, -1, -1, -1, -1, -1, 281, 93, -1, 91,
+ -1, -1, 287, 288, -1, 63, -1, -1, -1, -1,
-1, -1, 297, 298, -1, 300, 301, 302, 303, 304,
- 305, 41, -1, -1, 44, -1, -1, 93, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, 58, 59,
- -1, 281, -1, 63, -1, -1, -1, 287, 288, -1,
- 290, 91, -1, -1, -1, -1, -1, 297, 298, -1,
- 300, 301, 302, 303, 304, 305, -1, 41, -1, -1,
- 44, -1, -1, 93, 41, -1, -1, 44, -1, -1,
- -1, -1, -1, 123, 58, 59, 272, 273, 274, 275,
- -1, 58, 59, -1, -1, 281, 63, -1, -1, -1,
- -1, 287, 288, -1, -1, -1, 41, -1, -1, 44,
- -1, 297, 298, -1, 300, 301, 302, 303, 304, 93,
- -1, -1, -1, 58, 59, -1, 93, -1, 63, -1,
- -1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 272, 273, 274, 275, -1, 93, 91,
- -1, -1, 281, -1, -1, 63, -1, -1, 287, 288,
+ -1, -1, -1, 272, 273, 274, 275, -1, -1, -1,
+ -1, 123, 281, 91, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 297, 298,
- -1, 300, 301, 302, 303, 304, 272, 273, 274, 275,
- -1, 123, -1, 91, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 297, 298, -1, -1, 281, -1, -1, -1, -1,
- -1, 287, 288, -1, -1, 123, -1, -1, -1, -1,
- -1, 297, 298, -1, 300, 301, 302, 303, 304, -1,
- -1, -1, -1, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, 272, 273, 274, 275, -1, -1, -1, -1,
- -1, 281, -1, 303, 304, 305, 306, 287, 288, 309,
- -1, -1, 312, 313, 314, -1, -1, 297, 298, -1,
- 300, 301, 302, 303, 304, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, 272, 273, 274, 275, -1,
- -1, -1, -1, -1, 281, -1, -1, -1, -1, -1,
- -1, -1, -1, 297, 298, -1, -1, -1, -1, -1,
- 297, 298, -1, 300, 301, 302, 303, 272, 273, 274,
- 275, -1, -1, -1, -1, -1, 281, -1, -1, 281,
+ -1, 300, 301, 302, 303, 304, 287, 288, 289, 290,
+ 272, 273, 274, 275, -1, 123, -1, -1, -1, 281,
+ -1, 302, 303, 304, 305, 306, -1, -1, 309, -1,
+ -1, 312, 313, 314, 91, 297, 298, -1, 300, 301,
+ 302, 303, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
+ -1, -1, -1, 281, -1, -1, 123, 272, 273, 274,
+ 275, -1, -1, -1, -1, -1, -1, -1, -1, 297,
+ 298, -1, 300, 301, 302, -1, 272, 273, 274, 275,
+ -1, -1, 297, 298, 30, -1, 272, 273, 274, 275,
+ -1, -1, 38, -1, -1, -1, 42, -1, -1, 45,
+ -1, 297, 298, -1, -1, -1, 52, 53, 54, 55,
+ 56, 297, 298, 59, 60, -1, 272, 273, 274, 275,
+ 66, -1, -1, -1, -1, -1, -1, -1, -1, 281,
-1, -1, -1, -1, -1, 287, 288, 289, 290, -1,
- -1, -1, 297, 298, -1, 300, 301, 302, 300, 301,
+ -1, 297, 298, -1, -1, -1, 92, -1, 300, 301,
302, 303, 304, 305, 306, -1, -1, 309, -1, -1,
312, 313, 314, 281, -1, -1, -1, -1, -1, 287,
- 288, 289, 290, -1, -1, -1, -1, 13, -1, -1,
- -1, 17, -1, 301, 302, 303, 304, 305, 306, -1,
- -1, 309, -1, -1, 312, 313, 314, 33, 34, 35,
- 36, -1, -1, -1, -1, -1, 42, -1, -1, 45,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 288, 289, 290, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 300, 301, 302, 303, 304, 305, 306, -1,
+ -1, 309, -1, -1, 312, 313, 314, -1, -1, -1,
+ -1, -1, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, -1, -1, -1,
+ 287, 288, 289, 290, -1, -1, -1, -1, 174, -1,
+ -1, -1, -1, -1, -1, -1, 303, 304, 305, 306,
+ -1, -1, 309, -1, -1, 312, 313, 314, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 80, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
- -1, 97, -1, 99, -1, 101, -1, 103, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 144, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 250, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 181, -1, -1, -1, -1,
- -1, -1, 188,
+ -1, -1, -1, -1, -1, 281,
};
#define YYFINAL 1
#ifndef YYDEBUG
@@ -1105,14 +1068,10 @@ char *yyrule[] = {
"else : ELSIF '(' mexpr ')' mblock else",
"cond : IF '(' remember mexpr ')' mblock else",
"cond : UNLESS '(' remember miexpr ')' mblock else",
-"cond : IF block block else",
-"cond : UNLESS block block else",
"cont :",
"cont : CONTINUE block",
"loop : label WHILE '(' remember mtexpr ')' mblock cont",
"loop : label UNTIL '(' remember miexpr ')' mblock cont",
-"loop : label WHILE block block cont",
-"loop : label UNTIL block block cont",
"loop : label FOR MY remember my_scalar '(' mexpr ')' mblock cont",
"loop : label FOR scalar '(' remember mexpr ')' mblock cont",
"loop : label FOR '(' remember mexpr ')' mblock cont",
@@ -1273,9 +1232,9 @@ int yyerrflag;
int yychar;
YYSTYPE yyval;
YYSTYPE yylval;
-#line 624 "perly.y"
+#line 602 "perly.y"
/* PROGRAM */
-#line 1349 "perly.c"
+#line 1308 "perly.c"
#define YYABORT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
@@ -1619,77 +1578,47 @@ case 24:
newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
break;
case 25:
-#line 177 "perly.y"
-{ copline = yyvsp[-3].ival;
- deprecate("if BLOCK BLOCK");
- yyval.opval = newCONDOP(0, scope(yyvsp[-2].opval), scope(yyvsp[-1].opval), yyvsp[0].opval); }
+#line 179 "perly.y"
+{ yyval.opval = Nullop; }
break;
case 26:
#line 181 "perly.y"
-{ copline = yyvsp[-3].ival;
- deprecate("unless BLOCK BLOCK");
- yyval.opval = newCONDOP(0, invert(scalar(scope(yyvsp[-2].opval))),
- scope(yyvsp[-1].opval), yyvsp[0].opval); }
-break;
-case 27:
-#line 188 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 28:
-#line 190 "perly.y"
{ yyval.opval = scope(yyvsp[0].opval); }
break;
-case 29:
-#line 194 "perly.y"
+case 27:
+#line 185 "perly.y"
{ copline = yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newSTATEOP(0, yyvsp[-7].pval,
newWHILEOP(0, 1, (LOOP*)Nullop,
yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
break;
-case 30:
-#line 200 "perly.y"
+case 28:
+#line 191 "perly.y"
{ copline = yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newSTATEOP(0, yyvsp[-7].pval,
newWHILEOP(0, 1, (LOOP*)Nullop,
yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
break;
-case 31:
-#line 206 "perly.y"
-{ copline = yyvsp[-3].ival;
- deprecate("while BLOCK BLOCK");
- yyval.opval = newSTATEOP(0, yyvsp[-4].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- scope(yyvsp[-2].opval), yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 32:
-#line 212 "perly.y"
-{ copline = yyvsp[-3].ival;
- deprecate("until BLOCK BLOCK");
- yyval.opval = newSTATEOP(0, yyvsp[-4].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- invert(scalar(scope(yyvsp[-2].opval))),
- yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 33:
-#line 219 "perly.y"
+case 29:
+#line 197 "perly.y"
{ yyval.opval = block_end(yyvsp[-6].ival,
newFOROP(0, yyvsp[-9].pval, yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
-case 34:
-#line 222 "perly.y"
+case 30:
+#line 200 "perly.y"
{ yyval.opval = block_end(yyvsp[-4].ival,
newFOROP(0, yyvsp[-8].pval, yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
-case 35:
-#line 226 "perly.y"
+case 31:
+#line 204 "perly.y"
{ yyval.opval = block_end(yyvsp[-4].ival,
newFOROP(0, yyvsp[-7].pval, yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
-case 36:
-#line 230 "perly.y"
+case 32:
+#line 208 "perly.y"
{ copline = yyvsp[-9].ival;
yyval.opval = block_end(yyvsp[-7].ival,
append_elem(OP_LINESEQ, scalar(yyvsp[-6].opval),
@@ -1698,365 +1627,365 @@ case 36:
scalar(yyvsp[-4].opval),
yyvsp[0].opval, scalar(yyvsp[-2].opval))))); }
break;
-case 37:
-#line 238 "perly.y"
+case 33:
+#line 216 "perly.y"
{ yyval.opval = newSTATEOP(0,
yyvsp[-2].pval, newWHILEOP(0, 1, (LOOP*)Nullop,
Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
-case 38:
-#line 244 "perly.y"
+case 34:
+#line 222 "perly.y"
{ yyval.opval = Nullop; }
break;
-case 40:
-#line 249 "perly.y"
+case 36:
+#line 227 "perly.y"
{ (void)scan_num("1"); yyval.opval = yylval.opval; }
break;
-case 42:
-#line 254 "perly.y"
+case 38:
+#line 232 "perly.y"
{ yyval.opval = invert(scalar(yyvsp[0].opval)); }
break;
-case 43:
-#line 258 "perly.y"
+case 39:
+#line 236 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
-case 44:
-#line 262 "perly.y"
+case 40:
+#line 240 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
-case 45:
-#line 266 "perly.y"
+case 41:
+#line 244 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
-case 46:
-#line 270 "perly.y"
+case 42:
+#line 248 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
-case 47:
-#line 274 "perly.y"
+case 43:
+#line 252 "perly.y"
{ yyval.pval = Nullch; }
break;
-case 49:
-#line 279 "perly.y"
+case 45:
+#line 257 "perly.y"
{ yyval.ival = 0; }
break;
-case 50:
-#line 281 "perly.y"
+case 46:
+#line 259 "perly.y"
{ yyval.ival = 0; }
break;
-case 51:
-#line 283 "perly.y"
+case 47:
+#line 261 "perly.y"
{ yyval.ival = 0; }
break;
-case 52:
-#line 285 "perly.y"
+case 48:
+#line 263 "perly.y"
{ yyval.ival = 0; }
break;
-case 53:
-#line 289 "perly.y"
+case 49:
+#line 267 "perly.y"
{ newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
break;
-case 54:
-#line 291 "perly.y"
+case 50:
+#line 269 "perly.y"
{ newFORM(yyvsp[-1].ival, Nullop, yyvsp[0].opval); }
break;
-case 55:
-#line 295 "perly.y"
+case 51:
+#line 273 "perly.y"
{ newSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
break;
-case 56:
-#line 297 "perly.y"
+case 52:
+#line 275 "perly.y"
{ newSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, Nullop); expect = XSTATE; }
break;
-case 57:
-#line 301 "perly.y"
+case 53:
+#line 279 "perly.y"
{ yyval.opval = Nullop; }
break;
-case 59:
-#line 306 "perly.y"
+case 55:
+#line 284 "perly.y"
{ yyval.ival = start_subparse(); }
break;
-case 60:
-#line 310 "perly.y"
+case 56:
+#line 288 "perly.y"
{ package(yyvsp[-1].opval); }
break;
-case 61:
-#line 312 "perly.y"
+case 57:
+#line 290 "perly.y"
{ package(Nullop); }
break;
-case 62:
-#line 316 "perly.y"
+case 58:
+#line 294 "perly.y"
{ utilize(yyvsp[-5].ival, yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
break;
-case 63:
-#line 320 "perly.y"
+case 59:
+#line 298 "perly.y"
{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 64:
-#line 322 "perly.y"
+case 60:
+#line 300 "perly.y"
{ yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 66:
-#line 327 "perly.y"
+case 62:
+#line 305 "perly.y"
{ yyval.opval = yyvsp[-1].opval; }
break;
-case 67:
-#line 329 "perly.y"
+case 63:
+#line 307 "perly.y"
{ yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 69:
-#line 334 "perly.y"
+case 65:
+#line 312 "perly.y"
{ yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); }
break;
-case 70:
-#line 337 "perly.y"
+case 66:
+#line 315 "perly.y"
{ yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); }
break;
-case 71:
-#line 340 "perly.y"
+case 67:
+#line 318 "perly.y"
{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); }
break;
-case 72:
-#line 345 "perly.y"
+case 68:
+#line 323 "perly.y"
{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); }
break;
-case 73:
-#line 350 "perly.y"
+case 69:
+#line 328 "perly.y"
{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); }
break;
-case 74:
-#line 355 "perly.y"
+case 70:
+#line 333 "perly.y"
{ yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
-case 75:
-#line 357 "perly.y"
+case 71:
+#line 335 "perly.y"
{ yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
break;
-case 76:
-#line 359 "perly.y"
+case 72:
+#line 337 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, newANONSUB(yyvsp[-2].ival, 0, yyvsp[-1].opval), yyvsp[0].opval),
yyvsp[-3].opval)); }
break;
-case 79:
-#line 370 "perly.y"
+case 75:
+#line 348 "perly.y"
{ yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
break;
-case 80:
-#line 372 "perly.y"
+case 76:
+#line 350 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 81:
-#line 374 "perly.y"
+case 77:
+#line 352 "perly.y"
{ if (yyvsp[-1].ival != OP_REPEAT)
scalar(yyvsp[-2].opval);
yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
break;
-case 82:
-#line 378 "perly.y"
+case 78:
+#line 356 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 83:
-#line 380 "perly.y"
+case 79:
+#line 358 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 84:
-#line 382 "perly.y"
+case 80:
+#line 360 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 85:
-#line 384 "perly.y"
+case 81:
+#line 362 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 86:
-#line 386 "perly.y"
+case 82:
+#line 364 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 87:
-#line 388 "perly.y"
+case 83:
+#line 366 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 88:
-#line 390 "perly.y"
+case 84:
+#line 368 "perly.y"
{ yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
break;
-case 89:
-#line 392 "perly.y"
+case 85:
+#line 370 "perly.y"
{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 90:
-#line 394 "perly.y"
+case 86:
+#line 372 "perly.y"
{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 91:
-#line 396 "perly.y"
+case 87:
+#line 374 "perly.y"
{ yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 92:
-#line 398 "perly.y"
+case 88:
+#line 376 "perly.y"
{ yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 93:
-#line 401 "perly.y"
+case 89:
+#line 379 "perly.y"
{ yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
break;
-case 94:
-#line 403 "perly.y"
+case 90:
+#line 381 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 95:
-#line 405 "perly.y"
+case 91:
+#line 383 "perly.y"
{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
break;
-case 96:
-#line 407 "perly.y"
+case 92:
+#line 385 "perly.y"
{ yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
break;
-case 97:
-#line 409 "perly.y"
+case 93:
+#line 387 "perly.y"
{ yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
break;
-case 98:
-#line 411 "perly.y"
+case 94:
+#line 389 "perly.y"
{ yyval.opval = newUNOP(OP_POSTINC, 0,
mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
break;
-case 99:
-#line 414 "perly.y"
+case 95:
+#line 392 "perly.y"
{ yyval.opval = newUNOP(OP_POSTDEC, 0,
mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
break;
-case 100:
-#line 417 "perly.y"
+case 96:
+#line 395 "perly.y"
{ yyval.opval = newUNOP(OP_PREINC, 0,
mod(scalar(yyvsp[0].opval), OP_PREINC)); }
break;
-case 101:
-#line 420 "perly.y"
+case 97:
+#line 398 "perly.y"
{ yyval.opval = newUNOP(OP_PREDEC, 0,
mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
break;
-case 102:
-#line 423 "perly.y"
+case 98:
+#line 401 "perly.y"
{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
break;
-case 103:
-#line 425 "perly.y"
+case 99:
+#line 403 "perly.y"
{ yyval.opval = sawparens(yyvsp[-1].opval); }
break;
-case 104:
-#line 427 "perly.y"
+case 100:
+#line 405 "perly.y"
{ yyval.opval = sawparens(newNULLLIST()); }
break;
-case 105:
-#line 429 "perly.y"
+case 101:
+#line 407 "perly.y"
{ yyval.opval = newANONLIST(yyvsp[-1].opval); }
break;
-case 106:
-#line 431 "perly.y"
+case 102:
+#line 409 "perly.y"
{ yyval.opval = newANONLIST(Nullop); }
break;
-case 107:
-#line 433 "perly.y"
+case 103:
+#line 411 "perly.y"
{ yyval.opval = newANONHASH(yyvsp[-2].opval); }
break;
-case 108:
-#line 435 "perly.y"
+case 104:
+#line 413 "perly.y"
{ yyval.opval = newANONHASH(Nullop); }
break;
-case 109:
-#line 437 "perly.y"
+case 105:
+#line 415 "perly.y"
{ yyval.opval = newANONSUB(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
break;
-case 110:
-#line 439 "perly.y"
+case 106:
+#line 417 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 111:
-#line 441 "perly.y"
+case 107:
+#line 419 "perly.y"
{ yyval.opval = newBINOP(OP_GELEM, 0, newGVREF(0,yyvsp[-4].opval), yyvsp[-2].opval); }
break;
-case 112:
-#line 443 "perly.y"
+case 108:
+#line 421 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 113:
-#line 445 "perly.y"
+case 109:
+#line 423 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
break;
-case 114:
-#line 447 "perly.y"
+case 110:
+#line 425 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0,
ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
scalar(yyvsp[-1].opval));}
break;
-case 115:
-#line 451 "perly.y"
+case 111:
+#line 429 "perly.y"
{ assertref(yyvsp[-3].opval); yyval.opval = newBINOP(OP_AELEM, 0,
ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
scalar(yyvsp[-1].opval));}
break;
-case 116:
-#line 455 "perly.y"
+case 112:
+#line 433 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 117:
-#line 457 "perly.y"
+case 113:
+#line 435 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 118:
-#line 459 "perly.y"
+case 114:
+#line 437 "perly.y"
{ yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
break;
-case 119:
-#line 461 "perly.y"
+case 115:
+#line 439 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
expect = XOPERATOR; }
break;
-case 120:
-#line 464 "perly.y"
+case 116:
+#line 442 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0,
ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
jmaybe(yyvsp[-2].opval));
expect = XOPERATOR; }
break;
-case 121:
-#line 469 "perly.y"
+case 117:
+#line 447 "perly.y"
{ assertref(yyvsp[-4].opval); yyval.opval = newBINOP(OP_HELEM, 0,
ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
jmaybe(yyvsp[-2].opval));
expect = XOPERATOR; }
break;
-case 122:
-#line 474 "perly.y"
+case 118:
+#line 452 "perly.y"
{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
break;
-case 123:
-#line 476 "perly.y"
+case 119:
+#line 454 "perly.y"
{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
break;
-case 124:
-#line 478 "perly.y"
+case 120:
+#line 456 "perly.y"
{ yyval.opval = prepend_elem(OP_ASLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_ASLICE, 0,
list(yyvsp[-1].opval),
ref(yyvsp[-3].opval, OP_ASLICE))); }
break;
-case 125:
-#line 484 "perly.y"
+case 121:
+#line 462 "perly.y"
{ yyval.opval = prepend_elem(OP_HSLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_HSLICE, 0,
@@ -2064,38 +1993,38 @@ case 125:
ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
expect = XOPERATOR; }
break;
-case 126:
-#line 491 "perly.y"
+case 122:
+#line 469 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 127:
-#line 493 "perly.y"
+case 123:
+#line 471 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
break;
-case 128:
-#line 495 "perly.y"
+case 124:
+#line 473 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
break;
-case 129:
-#line 497 "perly.y"
+case 125:
+#line 475 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
break;
-case 130:
-#line 500 "perly.y"
+case 126:
+#line 478 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
break;
-case 131:
-#line 503 "perly.y"
+case 127:
+#line 481 "perly.y"
{ yyval.opval = newUNOP(OP_DOFILE, 0, scalar(yyvsp[0].opval)); }
break;
-case 132:
-#line 505 "perly.y"
+case 128:
+#line 483 "perly.y"
{ yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
break;
-case 133:
-#line 507 "perly.y"
+case 129:
+#line 485 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
@@ -2104,8 +2033,8 @@ case 133:
scalar(yyvsp[-2].opval)
)),Nullop)); dep();}
break;
-case 134:
-#line 515 "perly.y"
+case 130:
+#line 493 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
append_elem(OP_LIST,
@@ -2115,151 +2044,151 @@ case 134:
scalar(yyvsp[-3].opval)
)))); dep();}
break;
-case 135:
-#line 524 "perly.y"
+case 131:
+#line 502 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();}
break;
-case 136:
-#line 528 "perly.y"
+case 132:
+#line 506 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
yyvsp[-1].opval,
scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();}
break;
-case 137:
-#line 533 "perly.y"
+case 133:
+#line 511 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
hints |= HINT_BLOCK_SCOPE; }
break;
-case 138:
-#line 536 "perly.y"
+case 134:
+#line 514 "perly.y"
{ yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
break;
-case 139:
-#line 538 "perly.y"
+case 135:
+#line 516 "perly.y"
{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
break;
-case 140:
-#line 540 "perly.y"
+case 136:
+#line 518 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, 0); }
break;
-case 141:
-#line 542 "perly.y"
+case 137:
+#line 520 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
-case 142:
-#line 544 "perly.y"
+case 138:
+#line 522 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
-case 143:
-#line 546 "perly.y"
+case 139:
+#line 524 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
break;
-case 144:
-#line 549 "perly.y"
+case 140:
+#line 527 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, 0); }
break;
-case 145:
-#line 551 "perly.y"
+case 141:
+#line 529 "perly.y"
{ yyval.opval = newOP(yyvsp[-2].ival, 0); }
break;
-case 146:
-#line 553 "perly.y"
+case 142:
+#line 531 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, 0,
scalar(yyvsp[0].opval)); }
break;
-case 147:
-#line 556 "perly.y"
+case 143:
+#line 534 "perly.y"
{ yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
break;
-case 148:
-#line 558 "perly.y"
+case 144:
+#line 536 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
break;
-case 149:
-#line 560 "perly.y"
+case 145:
+#line 538 "perly.y"
{ yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
break;
-case 150:
-#line 562 "perly.y"
+case 146:
+#line 540 "perly.y"
{ yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
break;
-case 153:
-#line 568 "perly.y"
+case 149:
+#line 546 "perly.y"
{ yyval.opval = Nullop; }
break;
-case 154:
-#line 570 "perly.y"
+case 150:
+#line 548 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 155:
-#line 574 "perly.y"
+case 151:
+#line 552 "perly.y"
{ yyval.opval = Nullop; }
break;
-case 156:
-#line 576 "perly.y"
+case 152:
+#line 554 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 157:
-#line 578 "perly.y"
+case 153:
+#line 556 "perly.y"
{ yyval.opval = yyvsp[-1].opval; }
break;
-case 158:
-#line 581 "perly.y"
+case 154:
+#line 559 "perly.y"
{ yyval.ival = 0; }
break;
-case 159:
-#line 582 "perly.y"
+case 155:
+#line 560 "perly.y"
{ yyval.ival = 1; }
break;
-case 160:
-#line 586 "perly.y"
+case 156:
+#line 564 "perly.y"
{ in_my = 0; yyval.opval = my(yyvsp[0].opval); }
break;
-case 161:
-#line 590 "perly.y"
+case 157:
+#line 568 "perly.y"
{ yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
break;
-case 162:
-#line 594 "perly.y"
+case 158:
+#line 572 "perly.y"
{ yyval.opval = newSVREF(yyvsp[0].opval); }
break;
-case 163:
-#line 598 "perly.y"
+case 159:
+#line 576 "perly.y"
{ yyval.opval = newAVREF(yyvsp[0].opval); }
break;
-case 164:
-#line 602 "perly.y"
+case 160:
+#line 580 "perly.y"
{ yyval.opval = newHVREF(yyvsp[0].opval); }
break;
-case 165:
-#line 606 "perly.y"
+case 161:
+#line 584 "perly.y"
{ yyval.opval = newAVREF(yyvsp[0].opval); }
break;
-case 166:
-#line 610 "perly.y"
+case 162:
+#line 588 "perly.y"
{ yyval.opval = newGVREF(0,yyvsp[0].opval); }
break;
-case 167:
-#line 614 "perly.y"
+case 163:
+#line 592 "perly.y"
{ yyval.opval = scalar(yyvsp[0].opval); }
break;
-case 168:
-#line 616 "perly.y"
+case 164:
+#line 594 "perly.y"
{ yyval.opval = scalar(yyvsp[0].opval); }
break;
-case 169:
-#line 618 "perly.y"
+case 165:
+#line 596 "perly.y"
{ yyval.opval = scope(yyvsp[0].opval); }
break;
-case 170:
-#line 621 "perly.y"
+case 166:
+#line 599 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-#line 2249 "perly.c"
+#line 2178 "perly.c"
}
yyssp -= yym;
yystate = *yyssp;
diff --git a/perly.c.diff b/perly.c.diff
index a3472508b8..dae42d3774 100644
--- a/perly.c.diff
+++ b/perly.c.diff
@@ -78,7 +78,7 @@ Index: perly.c
#define YYERRCODE 256
short yylhs[] = { -1,
***************
-*** 1337,1347 ****
+*** 1296,1306 ****
int yyerrflag;
int yychar;
- short *yyssp;
@@ -88,12 +88,12 @@ Index: perly.c
- short yyss[YYSTACKSIZE];
- YYSTYPE yyvs[YYSTACKSIZE];
- #define yystacksize YYSTACKSIZE
- #line 624 "perly.y"
+ #line 602 "perly.y"
/* PROGRAM */
---- 1272,1277 ----
+--- 1231,1236 ----
***************
-*** 1350,1361 ****
---- 1280,1336 ----
+*** 1309,1320 ****
+--- 1239,1295 ----
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
+
@@ -152,8 +152,8 @@ Index: perly.c
if (yys = getenv("YYDEBUG"))
{
***************
-*** 1370,1373 ****
---- 1345,1356 ----
+*** 1329,1332 ****
+--- 1304,1315 ----
yychar = (-1);
+ /*
@@ -167,20 +167,20 @@ Index: perly.c
yyssp = yyss;
yyvsp = yyvs;
***************
-*** 1385,1389 ****
+*** 1344,1348 ****
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! printf("yydebug: state %d, reading %d (%s)\n", yystate,
yychar, yys);
}
---- 1368,1372 ----
+--- 1327,1331 ----
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! fprintf(stderr, "yydebug: state %d, reading %d (%s)\n", yystate,
yychar, yys);
}
***************
-*** 1395,1404 ****
+*** 1354,1363 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, shifting to state %d\n",
@@ -191,7 +191,7 @@ Index: perly.c
! goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
---- 1378,1401 ----
+--- 1337,1360 ----
#if YYDEBUG
if (yydebug)
! fprintf(stderr, "yydebug: state %d, shifting to state %d\n",
@@ -217,7 +217,7 @@ Index: perly.c
}
*++yyssp = yystate = yytable[yyn];
***************
-*** 1436,1445 ****
+*** 1395,1404 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, error recovery shifting\
@@ -228,7 +228,7 @@ Index: perly.c
! goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
---- 1433,1457 ----
+--- 1392,1416 ----
#if YYDEBUG
if (yydebug)
! fprintf(stderr,
@@ -255,14 +255,14 @@ Index: perly.c
}
*++yyssp = yystate = yytable[yyn];
***************
-*** 1451,1456 ****
+*** 1410,1415 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: error recovery discarding state %d\n",
! *yyssp);
#endif
if (yyssp <= yyss) goto yyabort;
---- 1463,1469 ----
+--- 1422,1428 ----
#if YYDEBUG
if (yydebug)
! fprintf(stderr,
@@ -271,14 +271,14 @@ Index: perly.c
#endif
if (yyssp <= yyss) goto yyabort;
***************
-*** 1469,1474 ****
+*** 1428,1433 ****
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! printf("yydebug: state %d, error recovery discards token %d (%s)\n",
! yystate, yychar, yys);
}
#endif
---- 1482,1488 ----
+--- 1441,1447 ----
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! fprintf(stderr,
@@ -287,27 +287,27 @@ Index: perly.c
}
#endif
***************
-*** 1479,1483 ****
+*** 1438,1442 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, reducing by rule %d (%s)\n",
yystate, yyn, yyrule[yyn]);
#endif
---- 1493,1497 ----
+--- 1452,1456 ----
#if YYDEBUG
if (yydebug)
! fprintf(stderr, "yydebug: state %d, reducing by rule %d (%s)\n",
yystate, yyn, yyrule[yyn]);
#endif
***************
-*** 2256,2261 ****
+*** 2185,2190 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: after reduction, shifting from state 0 to\
! state %d\n", YYFINAL);
#endif
yystate = YYFINAL;
---- 2270,2276 ----
+--- 2199,2205 ----
#if YYDEBUG
if (yydebug)
! fprintf(stderr,
@@ -316,20 +316,20 @@ Index: perly.c
#endif
yystate = YYFINAL;
***************
-*** 2271,2275 ****
+*** 2200,2204 ****
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! printf("yydebug: state %d, reading %d (%s)\n",
YYFINAL, yychar, yys);
}
---- 2286,2290 ----
+--- 2215,2219 ----
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! fprintf(stderr, "yydebug: state %d, reading %d (%s)\n",
YYFINAL, yychar, yys);
}
***************
-*** 2286,2295 ****
+*** 2215,2224 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: after reduction, shifting from state %d \
@@ -340,7 +340,7 @@ Index: perly.c
! goto yyoverflow;
}
*++yyssp = yystate;
---- 2301,2325 ----
+--- 2230,2254 ----
#if YYDEBUG
if (yydebug)
! fprintf(stderr,
@@ -367,7 +367,7 @@ Index: perly.c
}
*++yyssp = yystate;
***************
-*** 2297,2304 ****
+*** 2226,2233 ****
goto yyloop;
yyoverflow:
! yyerror("yacc stack overflow");
@@ -376,7 +376,7 @@ Index: perly.c
yyaccept:
! return (0);
}
---- 2327,2334 ----
+--- 2256,2263 ----
goto yyloop;
yyoverflow:
! yyerror("Out of memory for yacc stack");
diff --git a/perly.y b/perly.y
index 5ee78f8210..a281dff9b9 100644
--- a/perly.y
+++ b/perly.y
@@ -173,15 +173,6 @@ cond : IF '(' remember mexpr ')' mblock else
{ copline = $1;
$$ = block_end($3,
newCONDOP(0, $4, scope($6), $7)); }
- | IF block block else
- { copline = $1;
- deprecate("if BLOCK BLOCK");
- $$ = newCONDOP(0, scope($2), scope($3), $4); }
- | UNLESS block block else
- { copline = $1;
- deprecate("unless BLOCK BLOCK");
- $$ = newCONDOP(0, invert(scalar(scope($2))),
- scope($3), $4); }
;
cont : /* NULL */
@@ -202,19 +193,6 @@ loop : label WHILE '(' remember mtexpr ')' mblock cont
newSTATEOP(0, $1,
newWHILEOP(0, 1, (LOOP*)Nullop,
$5, $7, $8))); }
- | label WHILE block block cont
- { copline = $2;
- deprecate("while BLOCK BLOCK");
- $$ = newSTATEOP(0, $1,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- scope($3), $4, $5)); }
- | label UNTIL block block cont
- { copline = $2;
- deprecate("until BLOCK BLOCK");
- $$ = newSTATEOP(0, $1,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- invert(scalar(scope($3))),
- $4, $5)); }
| label FOR MY remember my_scalar '(' mexpr ')' mblock cont
{ $$ = block_end($4,
newFOROP(0, $1, $2, $5, $7, $9, $10)); }
diff --git a/pod/Makefile b/pod/Makefile
index 564a63a192..9012b5735b 100644
--- a/pod/Makefile
+++ b/pod/Makefile
@@ -17,10 +17,11 @@ POD = \
perlform.pod \
perlfunc.pod \
perlguts.pod \
- perli18n.pod \
perlipc.pod \
+ perllocale.pod \
perllol.pod \
perlmod.pod \
+ perlnews.pod \
perlobj.pod \
perlop.pod \
perlovl.pod \
@@ -34,6 +35,7 @@ POD = \
perlsyn.pod \
perltie.pod \
perltoc.pod \
+ perltoot.pod \
perltrap.pod \
perlvar.pod \
perlxs.pod \
@@ -53,10 +55,11 @@ MAN = \
perlform.man \
perlfunc.man \
perlguts.man \
- perli18n.man \
perlipc.man \
+ perllocale.man \
perllol.man \
perlmod.man \
+ perlnews.man \
perlobj.man \
perlop.man \
perlovl.man \
@@ -70,6 +73,7 @@ MAN = \
perlsyn.man \
perltie.man \
perltoc.man \
+ perltoot.man \
perltrap.man \
perlvar.man \
perlxs.man \
@@ -89,10 +93,11 @@ HTML = \
perlform.html \
perlfunc.html \
perlguts.html \
- perli18n.html \
perlipc.html \
+ perllocale.html \
perllol.html \
perlmod.html \
+ perlnews.html \
perlobj.html \
perlop.html \
perlovl.html \
@@ -106,6 +111,7 @@ HTML = \
perlsyn.html \
perltie.html \
perltoc.html \
+ perltoot.html \
perltrap.html \
perlvar.html \
perlxs.html \
@@ -125,10 +131,11 @@ TEX = \
perlform.tex \
perlfunc.tex \
perlguts.tex \
- perli18n.tex \
perlipc.tex \
+ perllocale.tex \
perllol.tex \
perlmod.tex \
+ perlnews.tex \
perlobj.tex \
perlop.tex \
perlovl.tex \
@@ -142,6 +149,7 @@ TEX = \
perlsyn.tex \
perltie.tex \
perltoc.tex \
+ perltoot.tex \
perltrap.tex \
perlvar.tex \
perlxs.tex \
diff --git a/pod/perl.pod b/pod/perl.pod
index e43424f26b..76a0f269fe 100644
--- a/pod/perl.pod
+++ b/pod/perl.pod
@@ -268,7 +268,7 @@ directory. If PERL5LIB is defined, PERLLIB is not used.
=back
Perl also has environment variables that control how Perl handles
-language-specific data. Please consult the L<perli18n> section.
+language-specific data. Please consult L<perllocale>.
Apart from these, Perl uses no other environment variables, except
to make them available to the script being executed, and to child
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 9e6a7f12ea..fe3da14929 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -3392,8 +3392,11 @@ That is exactly equivalent to
BEGIN { require Module; }
If the VERSION argument is present between Module and LIST, then the
-C<use> will fail if the C<$VERSION> variable in package Module is
-less than VERSION.
+C<use> will call the VERSION method in class Module with the given
+version as an argument. The default VERSION method, inherited from
+the Universal class, croaks if the given version is larger than the
+value of the variable $Module::VERSION. (Note that there is not a
+comma after VERSION!)
Because this is a wide-open interface, pragmas (compiler directives)
are also implemented this way. Currently implemented pragmas are:
diff --git a/pod/perlmod.pod b/pod/perlmod.pod
index e6081aa2e3..c2b1f6c961 100644
--- a/pod/perlmod.pod
+++ b/pod/perlmod.pod
@@ -380,7 +380,7 @@ manipulate @INC at compile time
=item locale
-use or ignore current locale for built-in operations (see L<perli18n>)
+use or ignore current locale for built-in operations (see L<perllocale>)
=item ops
@@ -432,6 +432,18 @@ split a package for autoloading
benchmark running times of code
+=item CPAN
+
+interface to Comprehensive Perl Archive Network
+
+=item CPAN::FirstTime
+
+create a CPAN configuration file
+
+=item CPAN::Nox
+
+run CPAN while avoiding compiled extensions
+
=item Carp
warn of errors (from perspective of caller)
@@ -520,18 +532,6 @@ write linker options files for dynamic extension
add blib/* directories to @INC
-=item CPAN
-
-interface to Comprehensive Perl Archive Network
-
-=item CPAN::FirstTime
-
-create a CPAN configuration file
-
-=item CPAN::Nox
-
-run CPAN while avoiding compiled extensions
-
=item Fatal
replace functions with equivalents which succeed or die
@@ -648,50 +648,10 @@ complex numbers and associated mathematical functions
tied access to ndbm files
-=item Net::Cmd
-
-Base class for command-oriented protocols
-
-=item Net::Domain
-
-Domain Name System client
-
-=item Net::FTP
-
-File Transfer Protocol client
-
-=item Net::NNTP
-
-Network News Transfer Protocol client
-
-=item Net::Netrc
-
-.netrc lookup routines
-
=item Net::Ping
Hello, anybody home?
-=item Net::POP3
-
-Post Office Protocol client
-
-=item Net::SMTP
-
-Simple Mail Transfer Protocol client
-
-=item Net::SNPP
-
-Simple Network Pager Protocol client
-
-=item Net::Telnet
-
-Telnet client
-
-=item Net::Time
-
-Time and NetTime protocols
-
=item Net::hostent
by-name interface to Perl's built-in gethost*() functions
diff --git a/pod/perlnews.pod b/pod/perlnews.pod
index 7e6e626723..a624b21c17 100644
--- a/pod/perlnews.pod
+++ b/pod/perlnews.pod
@@ -162,10 +162,11 @@ this more than we have to.)
=item use Module VERSION LIST
If the VERSION argument is present between Module and LIST, then the
-C<use> will fail if the $VERSION variable in package Module is
-less than VERSION.
-
-Note that there is not a comma after the version!
+C<use> will call the VERSION method in class Module with the given
+version as an argument. The default VERSION method, inherited from
+the Universal class, croaks if the given version is larger than the
+value of the variable $Module::VERSION. (Note that there is not a
+comma after VERSION!)
=item prototype(FUNCTION)
@@ -209,16 +210,16 @@ I<undef> is returned.
=item VERSION( [NEED] )
-C<VERSION> returns the version number of the class (package). If the
-NEED argument is given then it will check that the current version is
-not less than NEED and die if this is not the case. This method is
-normally called as a class method. This method is also called when the
-C<VERSION> form of C<use> is used.
+C<VERSION> returns the version number of the class (package). If the
+NEED argument is given then it will check that the current version (as
+defined by the $VERSION variable in the given package) not less than
+NEED; it will die if this is not the case. This method is normally
+called as a class method. This method is called automatically by the
+C<VERSION> form of C<use>.
use A 1.2 qw(some imported subs);
-
- A->VERSION( 1.2 );
- $ref->is_instance(); # True
+ # implies:
+ A->VERSION(1.2);
=item class()
@@ -425,18 +426,22 @@ new pods are included in section 1:
=over 4
-=item L<perli18n>
+=item L<perlnews>
-Internationalization.
+This document.
-=item L<perlapio>
+=item L<perllocale>
-Perl internal IO abstraction interface.
+Locale support (internationalization and localization).
=item L<perltoot>
Tutorial on Perl OO programming.
+=item L<perlapio>
+
+Perl internal IO abstraction interface.
+
=item L<perldebug>
Although not new, this has been massively updated.
diff --git a/pod/perlobj.pod b/pod/perlobj.pod
index 1d13d90c9a..9b1ede111f 100644
--- a/pod/perlobj.pod
+++ b/pod/perlobj.pod
@@ -281,7 +281,7 @@ are inherited by all other classes:
=over 4
-=item isa ( CLASS )
+=item isa(CLASS)
C<isa> returns I<true> if its object is blessed into a sub-class of C<CLASS>
@@ -294,29 +294,30 @@ allows the ability to check what a reference points to. Example
...
}
-=item can ( METHOD )
+=item can(METHOD)
C<can> checks to see if its object has a method called C<METHOD>,
if it does then a reference to the sub is returned, if it does not then
I<undef> is returned.
-=item VERSION ( [ VERSION ] )
+=item VERSION( [NEED] )
-C<VERSION> returns the VERSION number of the class (package). If
-an argument is given then it will check that the current version is not
-less that the given argument. This method is normally called as a class
-method. This method is also called when the C<VERSION> form of C<use> is
-used.
+C<VERSION> returns the version number of the class (package). If the
+NEED argument is given then it will check that the current version (as
+defined by the $VERSION variable in the given package) not less than
+NEED; it will die if this is not the case. This method is normally
+called as a class method. This method is called automatically by the
+C<VERSION> form of C<use>.
use A 1.2 qw(some imported subs);
-
- A->VERSION( 1.2 );
+ # implies:
+ A->VERSION(1.2);
-=item class ()
+=item class()
C<class> returns the class name of its object.
-=item is_instance ()
+=item is_instance()
C<is_instance> returns true if its object is an instance of some
class, false if its object is the class (package) itself. Example
@@ -336,6 +337,9 @@ C<isa> uses a very similar method and cache-ing strategy. This may cause
strange effects if the Perl code dynamically changes @ISA in any package.
You may add other methods to the UNIVERSAL class via Perl or XS code.
+You do not need to C<use UNIVERSAL> in order to make these methods
+available to your program. This is necessary only if you wish to
+have C<isa> available as a plain subroutine in the current package.
=head2 Destructors
diff --git a/pod/perltoot.pod b/pod/perltoot.pod
index 3fdedc2513..ff8e24fb3e 100644
--- a/pod/perltoot.pod
+++ b/pod/perltoot.pod
@@ -928,7 +928,7 @@ superclass's name. This in particular is bad if you change which classes
you inherit from, or add others. Fortunately, the pseudoclass SUPER
comes to the rescue here.
- $class->SUPER::debug($Debugging);
+ $self->SUPER::debug($Debugging);
This way it starts looking in my class's @ISA. This only makes sense
from I<within> a method call, though. Don't try to access anything
@@ -1271,7 +1271,7 @@ Although this is the same function each time, it contains a different
version of $self.
When a method like C<$him-E<gt>name("Jason")> is called, its implicit
-zeroth argument is as the invoking object just as it is with all method
+zeroth argument is the invoking object just as it is with all method
calls. But in this case, it's our code reference (something like a
function pointer in C++, but with deep binding of lexical variables).
There's not a lot to be done with a code reference beyond calling it, so
diff --git a/pod/roffitall b/pod/roffitall
index 024279a69e..3df9386103 100644
--- a/pod/roffitall
+++ b/pod/roffitall
@@ -2,11 +2,13 @@
#psroff -t -man -rC1 -rD1 -rF1 > /tmp/PerlDoc.ps 2>/tmp/PerlTOC.raw \
nroff -man -rC1 -rD1 -rF1 > /tmp/PerlDoc.txt 2>/tmp/PerlTOC.nr.raw \
/usr/local/man/man1/perl.1 \
+ /usr/local/man/man1/perlnews.1 \
/usr/local/man/man1/perldata.1 \
/usr/local/man/man1/perlsyn.1 \
/usr/local/man/man1/perlop.1 \
/usr/local/man/man1/perlre.1 \
/usr/local/man/man1/perlrun.1 \
+ /usr/local/man/man1/perllocale.1 \
/usr/local/man/man1/perlfunc.1 \
/usr/local/man/man1/perlvar.1 \
/usr/local/man/man1/perlsub.1 \
diff --git a/pp.c b/pp.c
index ab1816df63..b07a54bdc9 100644
--- a/pp.c
+++ b/pp.c
@@ -29,7 +29,8 @@
typedef int IBW;
typedef unsigned UBW;
-static void doencodes _((SV *sv, char *s, I32 len));
+static SV* refto _((SV* sv));
+static void doencodes _((SV* sv, char* s, I32 len));
/* variations on pp_null */
@@ -283,49 +284,49 @@ PP(pp_anoncode)
PP(pp_srefgen)
{
- dSP; dTOPss;
- SV* rv;
- rv = sv_newmortal();
- sv_upgrade(rv, SVt_RV);
- if (SvPADTMP(sv))
- sv = newSVsv(sv);
- else {
- SvTEMP_off(sv);
- (void)SvREFCNT_inc(sv);
- }
- SvRV(rv) = sv;
- SvROK_on(rv);
- SETs(rv);
+ dSP;
+ *SP = refto(*SP);
RETURN;
}
PP(pp_refgen)
{
dSP; dMARK;
- SV* sv;
- SV* rv;
if (GIMME != G_ARRAY) {
MARK[1] = *SP;
SP = MARK + 1;
}
EXTEND_MORTAL(SP - MARK);
- while (MARK < SP) {
- sv = *++MARK;
- rv = sv_newmortal();
- sv_upgrade(rv, SVt_RV);
- if (SvPADTMP(sv))
- sv = newSVsv(sv);
- else {
- SvTEMP_off(sv);
- (void)SvREFCNT_inc(sv);
- }
- SvRV(rv) = sv;
- SvROK_on(rv);
- *MARK = rv;
- }
+ while (++MARK <= SP)
+ *MARK = refto(*MARK);
RETURN;
}
+static SV*
+refto(sv)
+SV* sv;
+{
+ SV* rv;
+
+ if (SvTYPE(sv) == SVt_PVLV && LvTYPE(sv) == 'y') {
+ if (LvTARGLEN(sv))
+ vivify_itervar(sv);
+ if (LvTARG(sv))
+ sv = LvTARG(sv);
+ }
+ else if (SvPADTMP(sv))
+ sv = newSVsv(sv);
+ else {
+ SvTEMP_off(sv);
+ (void)SvREFCNT_inc(sv);
+ }
+ rv = sv_newmortal();
+ sv_upgrade(rv, SVt_RV);
+ SvRV(rv) = sv;
+ SvROK_on(rv);
+ return rv;
+}
+
PP(pp_ref)
{
dSP; dTARGET;
diff --git a/pp_ctl.c b/pp_ctl.c
index 601879323e..332ae4831d 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -109,6 +109,8 @@ PP(pp_substcont)
if (cx->sb_iters > cx->sb_maxiters)
DIE("Substitution loop");
+ if (!cx->sb_rxtainted)
+ cx->sb_rxtainted = SvTAINTED(TOPs);
sv_catsv(dstr, POPs);
if (rx->subbase)
Safefree(rx->subbase);
@@ -131,6 +133,8 @@ PP(pp_substcont)
(void)SvPOK_only(targ);
SvSETMAGIC(targ);
+ if (cx->sb_rxtainted)
+ SvTAINTED_on(targ);
PUSHs(sv_2mortal(newSViv((I32)cx->sb_iters - 1)));
LEAVE_SCOPE(cx->sb_oldsave);
POPSUBST(cx);
@@ -148,6 +152,7 @@ PP(pp_substcont)
sv_catpvn(dstr, s, m-s);
cx->sb_s = rx->endp[0];
cx->sb_subbase = rx->subbase;
+ cx->sb_rxtainted |= rx->exec_tainted;
rx->subbase = Nullch; /* so recursion works */
RETURNOP(pm->op_pmreplstart);
diff --git a/pp_hot.c b/pp_hot.c
index fb28bfee83..ba49535d0c 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -894,8 +894,6 @@ play_it_again:
else
mg->mg_flags &= ~MGf_MINMATCH;
}
- else
- mg->mg_len = -1;
}
LEAVE_SCOPE(oldsave);
RETPUSHYES;
@@ -932,13 +930,6 @@ nope:
++BmUSEFUL(pm->op_pmshort);
ret_no:
- if (global) {
- if (SvTYPE(TARG) >= SVt_PVMG && SvMAGIC(TARG)) {
- MAGIC* mg = mg_find(TARG, 'g');
- if (mg)
- mg->mg_len = -1;
- }
- }
LEAVE_SCOPE(oldsave);
if (gimme == G_ARRAY)
RETURN;
@@ -1157,6 +1148,7 @@ do_readline()
SvTAINTED_on(sv);
}
IoLINES(io)++;
+ SvSETMAGIC(sv);
XPUSHs(sv);
if (type == OP_GLOB) {
char *tmps;
@@ -1314,11 +1306,9 @@ PP(pp_iter)
cx = &cxstack[cxstack_ix];
if (cx->cx_type != CXt_LOOP)
DIE("panic: pp_iter");
- av = cx->blk_loop.iterary;
- if (av == curstack && cx->blk_loop.iterix >= cx->blk_oldsp)
- RETPUSHNO;
- if (cx->blk_loop.iterix >= AvFILL(av))
+ av = cx->blk_loop.iterary;
+ if (cx->blk_loop.iterix >= (av == curstack ? cx->blk_oldsp : AvFILL(av)))
RETPUSHNO;
if (sv = AvARRAY(av)[++cx->blk_loop.iterix])
@@ -1327,6 +1317,10 @@ PP(pp_iter)
sv = &sv_undef;
if (av != curstack && SvIMMORTAL(sv)) {
SV *lv = cx->blk_loop.iterlval;
+ if (lv && SvREFCNT(lv) > 1) {
+ SvREFCNT_dec(lv);
+ lv = Nullsv;
+ }
if (lv)
SvREFCNT_dec(LvTARG(lv));
else {
@@ -1360,6 +1354,7 @@ PP(pp_subst)
I32 maxiters;
register I32 i;
bool once;
+ bool rxtainted;
char *orig;
I32 safebase;
register REGEXP *rx = pm->op_pmregexp;
@@ -1427,116 +1422,105 @@ PP(pp_subst)
pm->op_pmshort = Nullsv; /* opt is being useless */
}
}
+
+ /* only replace once? */
once = !(rpm->op_pmflags & PMf_GLOBAL);
- if (rpm->op_pmflags & PMf_CONST) { /* known replacement string? */
- c = SvPV(dstr, clen);
- if (clen <= rx->minlen) {
- /* can do inplace substitution */
- if (pregexec(rx, s, strend, orig, 0,
- SvSCREAM(TARG) ? TARG : Nullsv, safebase)) {
- if (force_on_match) {
- force_on_match = 0;
- s = SvPV_force(TARG, len);
- goto force_it;
+
+ /* known replacement string? */
+ c = (rpm->op_pmflags & PMf_CONST) ? SvPV(dstr, clen) : Nullch;
+
+ /* can do inplace substitution? */
+ if (c && clen <= rx->minlen) {
+ if (! pregexec(rx, s, strend, orig, 0,
+ SvSCREAM(TARG) ? TARG : Nullsv, safebase)) {
+ PUSHs(&sv_no);
+ LEAVE_SCOPE(oldsave);
+ RETURN;
+ }
+ if (force_on_match) {
+ force_on_match = 0;
+ s = SvPV_force(TARG, len);
+ goto force_it;
+ }
+ if (rx->subbase) /* oops, no we can't */
+ goto long_way;
+ d = s;
+ curpm = pm;
+ SvSCREAM_off(TARG); /* disable possible screamer */
+ if (once) {
+ rxtainted = rx->exec_tainted;
+ m = rx->startp[0];
+ d = rx->endp[0];
+ s = orig;
+ if (m - s > strend - d) { /* faster to shorten from end */
+ if (clen) {
+ Copy(c, m, clen, char);
+ m += clen;
}
- if (rx->subbase) /* oops, no we can't */
- goto long_way;
- d = s;
- curpm = pm;
- SvSCREAM_off(TARG); /* disable possible screamer */
- if (once) {
- m = rx->startp[0];
- d = rx->endp[0];
- s = orig;
- if (m - s > strend - d) { /* faster to shorten from end */
- if (clen) {
- Copy(c, m, clen, char);
- m += clen;
- }
- i = strend - d;
- if (i > 0) {
- Move(d, m, i, char);
- m += i;
- }
- *m = '\0';
- SvCUR_set(TARG, m - s);
- (void)SvPOK_only(TARG);
- SvSETMAGIC(TARG);
- PUSHs(&sv_yes);
- LEAVE_SCOPE(oldsave);
- RETURN;
- }
- /*SUPPRESS 560*/
- else if (i = m - s) { /* faster from front */
- d -= clen;
- m = d;
- sv_chop(TARG, d-i);
- s += i;
- while (i--)
- *--d = *--s;
- if (clen)
- Copy(c, m, clen, char);
- (void)SvPOK_only(TARG);
- SvSETMAGIC(TARG);
- PUSHs(&sv_yes);
- LEAVE_SCOPE(oldsave);
- RETURN;
- }
- else if (clen) {
- d -= clen;
- sv_chop(TARG, d);
- Copy(c, d, clen, char);
- (void)SvPOK_only(TARG);
- SvSETMAGIC(TARG);
- PUSHs(&sv_yes);
- LEAVE_SCOPE(oldsave);
- RETURN;
- }
- else {
- sv_chop(TARG, d);
- (void)SvPOK_only(TARG);
- SvSETMAGIC(TARG);
- PUSHs(&sv_yes);
- LEAVE_SCOPE(oldsave);
- RETURN;
- }
- /* NOTREACHED */
+ i = strend - d;
+ if (i > 0) {
+ Move(d, m, i, char);
+ m += i;
}
- do {
- if (iters++ > maxiters)
- DIE("Substitution loop");
- m = rx->startp[0];
- /*SUPPRESS 560*/
- if (i = m - s) {
- if (s != d)
- Move(s, d, i, char);
- d += i;
- }
- if (clen) {
- Copy(c, d, clen, char);
- d += clen;
- }
- s = rx->endp[0];
- } while (pregexec(rx, s, strend, orig, s == m,
- Nullsv, TRUE)); /* (don't match same null twice) */
- if (s != d) {
- i = strend - s;
- SvCUR_set(TARG, d - SvPVX(TARG) + i);
- Move(s, d, i+1, char); /* include the Null */
+ *m = '\0';
+ SvCUR_set(TARG, m - s);
+ }
+ /*SUPPRESS 560*/
+ else if (i = m - s) { /* faster from front */
+ d -= clen;
+ m = d;
+ sv_chop(TARG, d-i);
+ s += i;
+ while (i--)
+ *--d = *--s;
+ if (clen)
+ Copy(c, m, clen, char);
+ }
+ else if (clen) {
+ d -= clen;
+ sv_chop(TARG, d);
+ Copy(c, d, clen, char);
+ }
+ else {
+ sv_chop(TARG, d);
+ }
+ PUSHs(&sv_yes);
+ }
+ else {
+ rxtainted = 0;
+ do {
+ if (iters++ > maxiters)
+ DIE("Substitution loop");
+ rxtainted |= rx->exec_tainted;
+ m = rx->startp[0];
+ /*SUPPRESS 560*/
+ if (i = m - s) {
+ if (s != d)
+ Move(s, d, i, char);
+ d += i;
}
- (void)SvPOK_only(TARG);
- SvSETMAGIC(TARG);
- PUSHs(sv_2mortal(newSViv((I32)iters)));
- LEAVE_SCOPE(oldsave);
- RETURN;
+ if (clen) {
+ Copy(c, d, clen, char);
+ d += clen;
+ }
+ s = rx->endp[0];
+ } while (pregexec(rx, s, strend, orig, s == m,
+ Nullsv, TRUE)); /* don't match same null twice */
+ if (s != d) {
+ i = strend - s;
+ SvCUR_set(TARG, d - SvPVX(TARG) + i);
+ Move(s, d, i+1, char); /* include the NUL */
}
- PUSHs(&sv_no);
- LEAVE_SCOPE(oldsave);
- RETURN;
+ PUSHs(sv_2mortal(newSViv((I32)iters)));
}
+ (void)SvPOK_only(TARG);
+ SvSETMAGIC(TARG);
+ if (rxtainted)
+ SvTAINTED_on(TARG);
+ LEAVE_SCOPE(oldsave);
+ RETURN;
}
- else
- c = Nullch;
+
if (pregexec(rx, s, strend, orig, 0,
SvSCREAM(TARG) ? TARG : Nullsv, safebase)) {
long_way:
@@ -1545,6 +1529,7 @@ PP(pp_subst)
s = SvPV_force(TARG, len);
goto force_it;
}
+ rxtainted = rx->exec_tainted;
dstr = NEWSV(25, sv_len(TARG));
sv_setpvn(dstr, m, s-m);
curpm = pm;
@@ -1556,6 +1541,7 @@ PP(pp_subst)
do {
if (iters++ > maxiters)
DIE("Substitution loop");
+ rxtainted |= rx->exec_tainted;
if (rx->subbase && rx->subbase != orig) {
m = s;
s = orig;
@@ -1583,6 +1569,8 @@ PP(pp_subst)
(void)SvPOK_only(TARG);
SvSETMAGIC(TARG);
+ if (rxtainted)
+ SvTAINTED_on(TARG);
PUSHs(sv_2mortal(newSViv((I32)iters)));
LEAVE_SCOPE(oldsave);
RETURN;
@@ -1762,12 +1750,16 @@ PP(pp_entersub)
gimme = GIMME;
if ((op->op_private & OPpENTERSUB_DB)) {
+ SV *oldsv = sv;
sv = GvSV(DBsub);
save_item(sv);
gv = CvGV(cv);
- if ( CvFLAGS(cv) & (CVf_ANON | CVf_CLONED)
- || strEQ(GvNAME(gv), "END") ) {
- /* GV is potentially non-unique */
+ if ( (CvFLAGS(cv) & (CVf_ANON | CVf_CLONED))
+ || strEQ(GvNAME(gv), "END")
+ || ((GvCV(gv) != cv) && /* Could be imported, and old sub redefined. */
+ !( (SvTYPE(oldsv) == SVt_PVGV) && (GvCV((GV*)oldsv) == cv)
+ && (gv = (GV*)oldsv) ))) { /* Use GV from the stack as a fallback. */
+ /* GV is potentially non-unique, or contain different CV. */
sv_setsv(sv, newRV((SV*)cv));
}
else {
diff --git a/proto.h b/proto.h
index cbf38d48aa..fe06b488a4 100644
--- a/proto.h
+++ b/proto.h
@@ -43,7 +43,8 @@ OP * ck_gvconst _((OP * o));
OP * ck_retarget _((OP *op));
OP* convert _((I32 optype, I32 flags, OP* op));
char* cpytill _((char* to, char* from, char* fromend, int delim, I32* retlen));
-void croak _((char* pat,...)) __attribute__((format(printf,1,2),noreturn));
+void croak _((const char* pat,...))
+ __attribute__((format(printf,1,2),noreturn));
CV* cv_clone _((CV* proto));
void cv_undef _((CV* cv));
SV* cv_const_sv _((CV* cv));
@@ -54,7 +55,7 @@ SV * filter_add _((filter_t funcp, SV *datasv));
void filter_del _((filter_t funcp));
I32 filter_read _((int idx, SV *buffer, int maxlen));
I32 cxinc _((void));
-void deb _((char* pat,...)) __attribute__((format(printf,1,2)));
+void deb _((const char* pat,...)) __attribute__((format(printf,1,2)));
void deb_growlevel _((void));
I32 debop _((OP* op));
I32 debstackptrs _((void));
@@ -63,7 +64,8 @@ void debprofdump _((void));
#endif
I32 debstack _((void));
void deprecate _((char* s));
-OP* die _((char* pat,...)) __attribute__((format(printf,1,2)));
+OP* die _((const char* pat,...))
+ __attribute__((format(printf,1,2),noreturn));
OP* die_where _((char* message));
void dounwind _((I32 cxix));
bool do_aexec _((SV* really, SV** mark, SV** sp));
@@ -179,11 +181,12 @@ int magic_clearenv _((SV* sv, MAGIC* mg));
int magic_clearpack _((SV* sv, MAGIC* mg));
int magic_clearsig _((SV* sv, MAGIC* mg));
int magic_existspack _((SV* sv, MAGIC* mg));
-int magic_freevivary _((SV* sv, MAGIC* mg));
+int magic_freeitervar _((SV* sv, MAGIC* mg));
int magic_get _((SV* sv, MAGIC* mg));
int magic_getarylen _((SV* sv, MAGIC* mg));
int magic_getpack _((SV* sv, MAGIC* mg));
int magic_getglob _((SV* sv, MAGIC* mg));
+int magic_getitervar _((SV* sv, MAGIC* mg));
int magic_getpos _((SV* sv, MAGIC* mg));
int magic_getsig _((SV* sv, MAGIC* mg));
int magic_gettaint _((SV* sv, MAGIC* mg));
@@ -201,6 +204,7 @@ int magic_setcollxfrm _((SV* sv, MAGIC* mg));
int magic_setenv _((SV* sv, MAGIC* mg));
int magic_setfm _((SV* sv, MAGIC* mg));
int magic_setisa _((SV* sv, MAGIC* mg));
+int magic_setitervar _((SV* sv, MAGIC* mg));
int magic_setglob _((SV* sv, MAGIC* mg));
int magic_setmglob _((SV* sv, MAGIC* mg));
int magic_setnkeys _((SV* sv, MAGIC* mg));
@@ -211,7 +215,6 @@ int magic_setsubstr _((SV* sv, MAGIC* mg));
int magic_settaint _((SV* sv, MAGIC* mg));
int magic_setuvar _((SV* sv, MAGIC* mg));
int magic_setvec _((SV* sv, MAGIC* mg));
-int magic_setvivary _((SV* sv, MAGIC* mg));
int magic_wipepack _((SV* sv, MAGIC* mg));
void magicname _((char* sym, char* name, I32 namlen));
int main _((int argc, char** argv, char** env));
@@ -219,7 +222,7 @@ void markstack_grow _((void));
#ifdef USE_LOCALE_COLLATE
char* mem_collxfrm _((const char *s, STRLEN len, STRLEN *xlen));
#endif
-char* mess _((char* pat, va_list* args));
+char* mess _((const char* pat, va_list* args));
int mg_clear _((SV* sv));
int mg_copy _((SV *, SV *, char *, I32));
MAGIC* mg_find _((SV* sv, int type));
@@ -371,10 +374,6 @@ I32 same_dirent _((char* a, char* b));
#endif
char* savepv _((char* sv));
char* savepvn _((char* sv, I32 len));
-char* sharepvn _((char* sv, I32 len, U32 hash));
-void unsharepvn _((char* sv, I32 len, U32 hash));
-HEK* share_hek _((char* sv, I32 len, U32 hash));
-void unshare_hek _((HEK* hek));
void savestack_grow _((void));
void save_aptr _((AV** aptr));
AV* save_ary _((GV* gv));
@@ -415,6 +414,8 @@ char* screaminstr _((SV* bigsv, SV* littlesv));
I32 setenv_getix _((char* nam));
#endif
void setdefout _((GV *gv));
+char* sharepvn _((char* sv, I32 len, U32 hash));
+HEK* share_hek _((char* sv, I32 len, U32 hash));
Signal_t sighandler _((int sig));
SV** stack_grow _((SV** sp, SV**p, int n));
int start_subparse _((void));
@@ -475,8 +476,8 @@ SV* sv_setref_iv _((SV *rv, char *classname, IV iv));
SV* sv_setref_nv _((SV *rv, char *classname, double nv));
SV* sv_setref_pv _((SV *rv, char *classname, void* pv));
SV* sv_setref_pvn _((SV *rv, char *classname, char* pv, I32 n));
-void sv_setpv _((SV* sv, char* ptr));
-void sv_setpvn _((SV* sv, char* ptr, STRLEN len));
+void sv_setpv _((SV* sv, const char* ptr));
+void sv_setpvn _((SV* sv, const char* ptr, STRLEN len));
void sv_setsv _((SV* dsv, SV* ssv));
void sv_taint _((SV* sv));
bool sv_tainted _((SV* sv));
@@ -486,13 +487,16 @@ void sv_untaint _((SV* sv));
bool sv_upgrade _((SV* sv, U32 mt));
void sv_usepvn _((SV* sv, char* ptr, STRLEN len));
void taint_env _((void));
-void taint_proper _((char* f, char* s));
+void taint_proper _((const char* f, char* s));
#ifdef UNLINK_ALL_VERSIONS
I32 unlnk _((char* f));
#endif
+void unsharepvn _((char* sv, I32 len, U32 hash));
+void unshare_hek _((HEK* hek));
void utilize _((int aver, I32 floor, OP* version, OP* id, OP* arg));
+void vivify_itervar _((SV* sv));
I32 wait4pid _((int pid, int* statusp, int flags));
-void warn _((char* pat,...)) __attribute__((format(printf,1,2)));
+void warn _((const char* pat,...)) __attribute__((format(printf,1,2)));
void watch _((char **addr));
I32 whichsig _((char* sig));
int yyerror _((char* s));
diff --git a/sv.c b/sv.c
index 3784350e3e..47869b1209 100644
--- a/sv.c
+++ b/sv.c
@@ -1949,11 +1949,14 @@ register SV *sstr;
(CvROOT(cv) || CvXSUB(cv)) )
warn("Subroutine %s redefined",
GvENAME((GV*)dstr));
- SvFAKE_on(cv);
+ if (SvREFCNT(cv) == 1)
+ SvFAKE_on(cv);
}
}
+ sub_generation++;
if (GvCV(dstr) != (CV*)sref) {
GvCV(dstr) = (CV*)sref;
+ GvCVGEN(dstr) = 0; /* Switch off cacheness. */
GvASSUMECV_on(dstr);
}
if (curcop->cop_stash != GvSTASH(dstr))
@@ -2077,7 +2080,7 @@ register SV *sstr;
void
sv_setpvn(sv,ptr,len)
register SV *sv;
-register char *ptr;
+register const char *ptr;
register STRLEN len;
{
assert(len >= 0); /* STRLEN is probably unsigned, so this may
@@ -2109,7 +2112,7 @@ register STRLEN len;
void
sv_setpv(sv,ptr)
register SV *sv;
-register char *ptr;
+register const char *ptr;
{
register STRLEN len;
@@ -2394,7 +2397,7 @@ I32 namlen;
mg->mg_virtual = &vtbl_substr;
break;
case 'y':
- mg->mg_virtual = &vtbl_vivary;
+ mg->mg_virtual = &vtbl_itervar;
break;
case '*':
mg->mg_virtual = &vtbl_glob;
diff --git a/t/lib/filecopy.t b/t/lib/filecopy.t
index 8c64be1c98..0a5f4c180c 100755
--- a/t/lib/filecopy.t
+++ b/t/lib/filecopy.t
@@ -5,7 +5,7 @@ BEGIN {
@INC = '../lib';
}
-print "1..5\n";
+print "1..11\n";
$| = 1;
@@ -29,15 +29,56 @@ print "not " unless $foo eq "ok 3\n";
print "ok 2\n";
copy "copy-$$", \*STDOUT;
+unlink "copy-$$";
+open(F,"file-$$");
+copy(*F, "copy-$$");
+open(R, "copy-$$") or die; $foo = <R>; close(R);
+print "not " unless $foo eq "ok 3\n";
+print "ok 4\n";
+unlink "copy-$$";
+open(F,"file-$$");
+copy(\*F, "copy-$$");
+open(R, "copy-$$") or die; $foo = <R>; close(R);
+print "not " unless $foo eq "ok 3\n";
+print "ok 5\n";
+unlink "copy-$$";
+
+require IO::File;
+$fh = IO::File->new(">copy-$$") or die "Cannot open copy-$$:$!";
+copy("file-$$",$fh);
+$fh->close;
+open(R, "copy-$$") or die; $foo = <R>; close(R);
+print "not " unless $foo eq "ok 3\n";
+print "ok 6\n";
+unlink "copy-$$";
+require FileHandle;
+my $fh = FileHandle->new(">copy-$$") or die "Cannot open copy-$$:$!";
+copy("file-$$",$fh);
+$fh->close;
+open(R, "copy-$$") or die; $foo = <R>; close(R);
+print "not " unless $foo eq "ok 3\n";
+print "ok 7\n";
unlink "file-$$";
print "not " if move("file-$$", "copy-$$") or not -e "copy-$$";
-print "ok 4\n";
+print "ok 8\n";
move "copy-$$", "file-$$";
-
print "not " unless -e "file-$$" and not -e "copy-$$";
-print "ok 5\n";
+open(R, "file-$$") or die; $foo = <R>; close(R);
+print "not " unless $foo eq "ok 3\n";
+print "ok 9\n";
+
+copy "file-$$", "lib";
+open(R, "lib/file-$$") or die; $foo = <R>; close(R);
+print "not " unless $foo eq "ok 3\n";
+print "ok 10\n";
+unlink "lib/file-$$";
+
+move "file-$$", "lib";
+open(R, "lib/file-$$") or die; $foo = <R>; close(R);
+print "not " unless $foo eq "ok 3\n" and not -e "file-$$";;
+print "ok 11\n";
+unlink "lib/file-$$";
-unlink "file-$$";
diff --git a/t/lib/open2.t b/t/lib/open2.t
index 8dd786b76e..1cf325a875 100755
--- a/t/lib/open2.t
+++ b/t/lib/open2.t
@@ -1,5 +1,4 @@
#!./perl -w
-use strict;
BEGIN {
chdir 't' if -d 't';
@@ -8,6 +7,7 @@ BEGIN {
$SIG{__WARN__} = sub { die @_ };
}
+use strict;
use IO::Handle;
use IPC::Open2;
#require 'open2.pl'; use subs 'open2';
diff --git a/t/lib/open3.t b/t/lib/open3.t
index a4a978ebea..a5d7f2e8ee 100755
--- a/t/lib/open3.t
+++ b/t/lib/open3.t
@@ -1,5 +1,4 @@
#!./perl -w
-use strict;
BEGIN {
chdir 't' if -d 't';
@@ -8,6 +7,7 @@ BEGIN {
$SIG{__WARN__} = sub { die @_ };
}
+use strict;
use IO::Handle;
use IPC::Open3;
#require 'open3.pl'; use subs 'open3';
diff --git a/t/op/pat.t b/t/op/pat.t
index d93e6d66e2..d9941fa816 100755
--- a/t/op/pat.t
+++ b/t/op/pat.t
@@ -2,7 +2,7 @@
# $RCSfile: pat.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:12 $
-print "1..60\n";
+print "1..61\n";
$x = "abc\ndef\n";
@@ -134,17 +134,19 @@ print join(':',@words) eq "now:is:the:time:for:all:good:men:to:come:to"
: "not ok 45\n";
@words = ();
+pos = 0;
while (/to/g) {
push(@words, $&);
}
print join(':',@words) eq "to:to"
? "ok 46\n"
- : "not ok 46 @words\n";
+ : "not ok 46 `@words'\n";
+pos $_ = 0;
@words = /to/g;
print join(':',@words) eq "to:to"
? "ok 47\n"
- : "not ok 47 @words\n";
+ : "not ok 47 `@words'\n";
$_ = "abcdefghi";
@@ -191,12 +193,14 @@ $x=/abc/g;
print $` eq "abcfoo" ? "ok 53\n" : "not ok 53\n" if $x;
$x=/abc/g;
print $x == 0 ? "ok 54\n" : "not ok 54\n";
+pos = 0;
$x=/ABC/gi;
print $` eq "" ? "ok 55\n" : "not ok 55\n" if $x;
$x=/ABC/gi;
print $` eq "abcfoo" ? "ok 56\n" : "not ok 56\n" if $x;
$x=/ABC/gi;
print $x == 0 ? "ok 57\n" : "not ok 57\n";
+pos = 0;
$x=/abc/g;
print $' eq "fooabcbar" ? "ok 58\n" : "not ok 58\n" if $x;
$x=/abc/g;
@@ -204,3 +208,9 @@ print $' eq "bar" ? "ok 59\n" : "not ok 59\n" if $x;
$_ .= '';
@x=/abc/g;
print scalar @x == 2 ? "ok 60\n" : "not ok 60\n";
+
+$_ = "abdc";
+pos $_ = 2;
+/\Gc/g;
+print "not " if (pos $_) != 2;
+print "ok 61\n";
diff --git a/taint.c b/taint.c
index d9fac77b5f..dbb0a1e9dc 100644
--- a/taint.c
+++ b/taint.c
@@ -9,7 +9,7 @@
void
taint_proper(f, s)
-char *f;
+const char *f;
char *s;
{
char *ug;
diff --git a/toke.c b/toke.c
index 4c79d7b33a..6884fa975b 100644
--- a/toke.c
+++ b/toke.c
@@ -1208,7 +1208,7 @@ STRLEN append;
{ "OPERATOR", "TERM", "REF", "STATE", "BLOCK", "TERMBLOCK" };
#endif
-extern int yychar; /* last token */
+EXT int yychar; /* last token */
int
yylex()
@@ -2915,7 +2915,7 @@ yylex()
case KEY_if:
yylval.ival = curcop->cop_line;
- PRETERMBLOCK(IF);
+ OPERATOR(IF);
case KEY_index:
LOP(OP_INDEX,XTERM);
@@ -3430,11 +3430,11 @@ yylex()
case KEY_until:
yylval.ival = curcop->cop_line;
- PRETERMBLOCK(UNTIL);
+ OPERATOR(UNTIL);
case KEY_unless:
yylval.ival = curcop->cop_line;
- PRETERMBLOCK(UNLESS);
+ OPERATOR(UNLESS);
case KEY_unlink:
LOP(OP_UNLINK,XTERM);
@@ -3486,7 +3486,7 @@ yylex()
case KEY_while:
yylval.ival = curcop->cop_line;
- PRETERMBLOCK(WHILE);
+ OPERATOR(WHILE);
case KEY_warn:
hints |= HINT_BLOCK_SCOPE;
diff --git a/util.c b/util.c
index d14a1178f9..84c55730df 100644
--- a/util.c
+++ b/util.c
@@ -1037,12 +1037,12 @@ register I32 len;
#ifdef I_STDARG
char *
-mess(char *pat, va_list *args)
+mess(const char *pat, va_list *args)
#else
/*VARARGS0*/
char *
mess(pat, args)
- char *pat;
+ const char *pat;
va_list *args;
#endif
{
@@ -1112,12 +1112,12 @@ mess(pat, args)
#ifdef I_STDARG
OP *
-die(char* pat, ...)
+die(const char* pat, ...)
#else
/*VARARGS0*/
OP *
die(pat, va_alist)
- char *pat;
+ const char *pat;
va_dcl
#endif
{
@@ -1167,7 +1167,7 @@ die(pat, va_alist)
#ifdef I_STDARG
void
-croak(char* pat, ...)
+croak(const char* pat, ...)
#else
/*VARARGS0*/
void
@@ -1233,11 +1233,11 @@ croak(pat, va_alist)
void
#ifdef I_STDARG
-warn(char* pat,...)
+warn(const char* pat,...)
#else
/*VARARGS0*/
warn(pat,va_alist)
- char *pat;
+ const char *pat;
va_dcl
#endif
{
@@ -1416,7 +1416,9 @@ char *
int
#endif
vsprintf(dest, pat, args)
-char *dest, *pat, *args;
+char *dest;
+const char *pat;
+char *args;
{
FILE fakebuf;
@@ -2143,7 +2145,7 @@ I32 *retlen;
return retval;
}
-unsigned long
+UV
scan_hex(start, len, retlen)
char *start;
I32 len;
diff --git a/vms/Makefile b/vms/Makefile
index 3622ad9c42..542e139e59 100644
--- a/vms/Makefile
+++ b/vms/Makefile
@@ -44,7 +44,7 @@ OBJVAL = $@
#> .endif
# Updated by fndvers.com -- do not edit by hand
-PERL_VERSION = 5_00311#
+PERL_VERSION = 5_00313#
ARCHDIR = [.lib.$(ARCH).$(PERL_VERSION)]
@@ -248,10 +248,10 @@ utils : [.lib.pod]perldoc [.lib.ExtUtils]Miniperl.pm [.utils]c2ph [.utils]h2ph [
podxform : [.lib.pod]pod2text [.lib.pod]pod2html [.lib.pod]pod2latex [.lib.pod]pod2man
@ $(NOOP)
-pod1 = [.lib.pod]perl.pod [.lib.pod]perlbook.pod [.lib.pod]perlbot.pod [.lib.pod]perlcall.pod
+pod1 = [.lib.pod]perl.pod [.lib.pod]perlapio.pod [.lib.pod]perlbook.pod [.lib.pod]perlbot.pod [.lib.pod]perlcall.pod
pod2 = [.lib.pod]perldata.pod [.lib.pod]perldebug.pod [.lib.pod]perldiag.pod [.lib.pod]perldsc.pod
pod3 = [.lib.pod]perlembed.pod [.lib.pod]perlform.pod [.lib.pod]perlfunc.pod [.lib.pod]perlguts.pod
-pod4 = [.lib.pod]perlipc.pod [.lib.pod]perllol.pod [.lib.pod]perlmod.pod [.lib.pod]perlobj.pod
+pod4 = [.lib.pod]perlipc.pod [.lib.pod]perllocale.pod [.lib.pod]perllol.pod [.lib.pod]perlmod.pod [.lib.pod]perlobj.pod
pod5 = [.lib.pod]perlop.pod [.lib.pod]perlovl.pod [.lib.pod]perlpod.pod [.lib.pod]perlre.pod
pod6 = [.lib.pod]perlref.pod [.lib.pod]perlrun.pod [.lib.pod]perlsec.pod [.lib.pod]perlstyle.pod
pod7 = [.lib.pod]perlsub.pod [.lib.pod]perlsyn.pod [.lib.pod]perltie.pod [.lib.pod]perltoc.pod
@@ -488,6 +488,10 @@ IO : [.lib]IO.pm [.lib.IO]File.pm [.lib.IO]Handle.pm [.lib.IO]Pipe.pm [.lib.IO]S
[.utils]pl2pm : [.utils]pl2pm.PL $(ARCHDIR)Config.pm
$(MINIPERL) [.utils]pl2pm.PL
+[.lib]splain : [.utils]splain.PL $(ARCHDIR)Config.pm
+ $(MINIPERL) [.utils]splain.PL
+ Rename/Log [.utils]splain $@
+
[.lib.pod]pod2html : [.pod]pod2html.PL $(ARCHDIR)Config.pm
@ If f$$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
$(MINIPERL) [.pod]pod2html.PL
@@ -517,6 +521,10 @@ preplibrary : $(MINIPERL_EXE) $(ARCHDIR)Config.pm [.lib]DynaLoader.pm [.lib.VMS]
@ If f$$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
@ Copy/Log [.pod]perl.pod $@
+[.lib.pod]perlapio.pod : [.pod]perlapio.pod
+ @ If f$$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+ @ Copy/Log [.pod]perlapio.pod $@
+
[.lib.pod]perlbook.pod : [.pod]perlbook.pod
@ If f$$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
@ Copy/Log [.pod]perlbook.pod $@
@@ -561,6 +569,10 @@ preplibrary : $(MINIPERL_EXE) $(ARCHDIR)Config.pm [.lib]DynaLoader.pm [.lib.VMS]
@ If f$$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
@ Copy/Log [.pod]perlguts.pod $@
+[.lib.pod]perllocale.pod : [.pod]perllocale.pod
+ @ If f$$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+ @ Copy/Log [.pod]perllocale.pod $@
+
[.lib.pod]perlipc.pod : [.pod]perlipc.pod
@ If f$$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
@ Copy/Log [.pod]perlipc.pod $@
diff --git a/vms/config.vms b/vms/config.vms
index 186df810cc..48aa6a5a57 100644
--- a/vms/config.vms
+++ b/vms/config.vms
@@ -76,9 +76,15 @@
* when Perl is built. Please do not change it by hand; make
* any changes to FndVers.Com instead.
*/
-#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00310" /**/
+#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00314" /**/
#define ARCHLIB ARCHLIB_EXP /*config-skip*/
+/* BINCOMPAT3:
+ * This symbol, if defined, indicates that Perl 5.004 should be
+ * binary-compatible with Perl 5.003.
+ */
+#undef BINCOMPAT3
+
/* CPPSTDIN:
* This symbol contains the first part of the string which will invoke
* the C preprocessor on the standard input and produce to standard
@@ -206,6 +212,17 @@
*/
#define HAS_FSETPOS /**/
+/* HAS_GETTIMEOFDAY:
+ * This symbol, if defined, indicates that the gettimeofday() system
+ * call is available for a sub-second accuracy clock. Usually, the file
+ * <sys/resource.h> needs to be included (see I_SYS_RESOURCE).
+ * The type "Timeval" should be used to refer to "struct timeval".
+ */
+#undef HAS_GETTIMEOFDAY /**/
+#ifdef HAS_GETTIMEOFDAY
+# define Timeval struct timeval /*config-skip*/
+#endif
+
/* HAS_GETGROUPS:
* This symbol, if defined, indicates that the getgroups() routine is
* available to get the list of process groups. If unavailable, multiple
@@ -1138,19 +1155,19 @@
/* HAS_STRTOD:
* This symbol, if defined, indicates that the strtod routine is
- * available to translate strings to doubles.
+ * available to provide better numeric string conversion than atof().
*/
#define HAS_STRTOD /**/
/* HAS_STRTOL:
- * This symbol, if defined, indicates that the strtol routine is
- * available to translate strings to integers.
+ * This symbol, if defined, indicates that the strtol routine is available
+ * to provide better numeric string conversion than atoi() and friends.
*/
#define HAS_STRTOL /**/
/* HAS_STRTOUL:
* This symbol, if defined, indicates that the strtoul routine is
- * available to translate strings to integers.
+ * available to provide conversion of strings to unsigned long.
*/
#define HAS_STRTOUL /**/
@@ -1506,6 +1523,15 @@
#undef SETUID_SCRIPTS_ARE_SECURE_NOW /**/
#undef DOSUID /**/
+/* HAS_INET_ATON:
+ * This symbol, if defined, indicates to the C program that the
+ * inet_aton() function is available to parse IP address "dotted-quad"
+ * strings.
+ * VMS: SocketShr doesn't support this, so we let the Socket extension
+ * roll its own.
+ */
+#undef HAS_INET_ATON /**/
+
/* HAS_ISASCII:
* This manifest constant lets the C program know that the
* isascii is available.
@@ -1570,10 +1596,9 @@
#define HAS_SAFE_MEMCPY /**/
/* HAS_SANE_MEMCMP:
- * This symbol, if defined, indicates that the memcmp() routine is
- * available to compare memory blocks for relative magnitude. If this
- * symbol is not defined, and if HAS_MEMCMP is defined, then memcmp()
- * may be used only to compare memory blocks for equality.
+ * This symbol, if defined, indicates that the memcmp routine is available
+ * and can be used to compare relative magnitudes of chars with their high
+ * bits set. If it is not defined, roll your own version.
*/
#define HAS_SANE_MEMCMP /**/
diff --git a/vms/descrip.mms b/vms/descrip.mms
index b86cbd53ce..9bfdf0cb3e 100644
--- a/vms/descrip.mms
+++ b/vms/descrip.mms
@@ -65,7 +65,7 @@ OBJVAL = $(MMS$TARGET_NAME)$(O)
.endif
# Updated by fndvers.com -- do not edit by hand
-PERL_VERSION = 5_00311#
+PERL_VERSION = 5_00314#
ARCHDIR = [.lib.$(ARCH).$(PERL_VERSION)]
@@ -279,10 +279,10 @@ utils : [.lib.pod]perldoc [.lib.ExtUtils]Miniperl.pm [.utils]c2ph [.utils]h2ph [
podxform : [.lib.pod]pod2text [.lib.pod]pod2html [.lib.pod]pod2latex [.lib.pod]pod2man
@ $(NOOP)
-pod1 = [.lib.pod]perl.pod [.lib.pod]perlbook.pod [.lib.pod]perlbot.pod [.lib.pod]perlcall.pod
+pod1 = [.lib.pod]perl.pod [.lib.pod]perlapio.pod [.lib.pod]perlbook.pod [.lib.pod]perlbot.pod [.lib.pod]perlcall.pod
pod2 = [.lib.pod]perldata.pod [.lib.pod]perldebug.pod [.lib.pod]perldiag.pod [.lib.pod]perldsc.pod
pod3 = [.lib.pod]perlembed.pod [.lib.pod]perlform.pod [.lib.pod]perlfunc.pod [.lib.pod]perlguts.pod
-pod4 = [.lib.pod]perlipc.pod [.lib.pod]perllol.pod [.lib.pod]perlmod.pod [.lib.pod]perlobj.pod
+pod4 = [.lib.pod]perlipc.pod [.lib.pod]perllocale.pod [.lib.pod]perllol.pod [.lib.pod]perlmod.pod [.lib.pod]perlobj.pod
pod5 = [.lib.pod]perlop.pod [.lib.pod]perlovl.pod [.lib.pod]perlpod.pod [.lib.pod]perlre.pod
pod6 = [.lib.pod]perlref.pod [.lib.pod]perlrun.pod [.lib.pod]perlsec.pod [.lib.pod]perlstyle.pod
pod7 = [.lib.pod]perlsub.pod [.lib.pod]perlsyn.pod [.lib.pod]perltie.pod [.lib.pod]perltoc.pod
@@ -519,6 +519,10 @@ IO : [.lib]IO.pm [.lib.IO]File.pm [.lib.IO]Handle.pm [.lib.IO]Pipe.pm [.lib.IO]S
[.utils]pl2pm : [.utils]pl2pm.PL $(ARCHDIR)Config.pm
$(MINIPERL) $(MMS$SOURCE)
+[.lib]splain : [.utils]splain.PL $(ARCHDIR)Config.pm
+ $(MINIPERL) $(MMS$SOURCE)
+ Rename/Log [.utils]splain $(MMS$TARGET)
+
[.lib.pod]pod2html : [.pod]pod2html.PL $(ARCHDIR)Config.pm
@ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
$(MINIPERL) $(MMS$SOURCE)
@@ -548,6 +552,10 @@ preplibrary : $(MINIPERL_EXE) $(ARCHDIR)Config.pm [.lib]DynaLoader.pm [.lib.VMS]
@ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
@ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+[.lib.pod]perlapio.pod : [.pod]perlapio.pod
+ @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+ @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+
[.lib.pod]perlbook.pod : [.pod]perlbook.pod
@ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
@ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -592,6 +600,10 @@ preplibrary : $(MINIPERL_EXE) $(ARCHDIR)Config.pm [.lib]DynaLoader.pm [.lib.VMS]
@ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
@ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+[.lib.pod]perllocale.pod : [.pod]perllocale.pod
+ @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+ @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+
[.lib.pod]perlipc.pod : [.pod]perlipc.pod
@ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
@ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
diff --git a/vms/gen_shrfls.pl b/vms/gen_shrfls.pl
index 87b493fdd0..48092ba360 100644
--- a/vms/gen_shrfls.pl
+++ b/vms/gen_shrfls.pl
@@ -34,12 +34,13 @@
# (i.e. /Define=DEBUGGING,EMBED,MULTIPLICITY)?
#
# Author: Charles Bailey bailey@genetics.upenn.edu
-# Revised: 3-Dec-1996
require 5.000;
$debug = $ENV{'GEN_SHRFLS_DEBUG'};
+print "gen_shrfls.pl Rev. 14-Dec-1996\n" if $debug;
+
if ($ARGV[0] eq '-f') {
open(INP,$ARGV[1]) or die "Can't read input file $ARGV[1]: $!\n";
print "Input taken from file $ARGV[1]\n" if $debug;
@@ -78,7 +79,9 @@ if ($docc) {
$isvaxc = 0;
$isgcc = `$cc_cmd _nla0:/Version` =~ /GNU/
or 0; # make debug output nice
- $isvaxc = (!$isgcc && $isvax && `$cc_cmd /prefix=all _nla0:` =~ /IVQUAL/)
+ $isvaxc = (!$isgcc && $isvax &&
+ # Check exit status too, in case message is shut off
+ (`$cc_cmd /prefix=all _nla0:` =~ /IVQUAL/ || $? == 0x38240))
or 0; # again, make debug output nice
print "\$isgcc: $isgcc\n" if $debug;
print "\$isvaxc: $isvaxc\n" if $debug;
@@ -139,6 +142,7 @@ sub scan_enum {
sub scan_var {
my($line) = @_;
+ my($const) = $line =~ /^EXTCONST/;
print "\tchecking for global variable\n" if $debug > 1;
$line =~ s/INIT\(.*\)//;
@@ -147,8 +151,21 @@ sub scan_var {
$line =~ s/\W*;?\s*$//;
print "\tfiltered to \\$line\\\n" if $debug > 1;
if ($line =~ /(\w+)$/) {
- print "\tvar name is \\$1\\\n" if $debug > 1;
- $vars{$1}++;
+ print "\tvar name is \\$1\\" . ($const ? ' (const)' : '') . "\n" if $debug > 1;
+ if ($const) { $cvars{$1}++; }
+ else { $vars{$1}++; }
+ }
+ if ($isvaxc) {
+ my($type) = $line =~ /^EXT\w*\s+(\w+)/;
+ print "\tchecking for use of enum (type is \"$type\")\n" if $debug > 2;
+ if ($type eq 'expectation') {
+ $used_expectation_enum++;
+ print "\tsaw global use of enum \"expectation\"\n" if $debug > 1;
+ }
+ if ($type eq 'opcode') {
+ $used_opcode_enum++;
+ print "\tsaw global use of enum \"opcode\"\n" if $debug > 1;
+ }
}
}
@@ -203,20 +220,8 @@ LINE: while (<CPP>) {
else { &scan_func($_); }
last LINE unless $_ = <CPP>;
}
- print $_ if $debug > 3;
- if (($type) = /^EXT\s+(\w+)/) {
- if ($isvaxc) {
- if ($type eq 'expectation') {
- $used_expectation_enum++;
- print "\tsaw global use of enum \"expectation\"\n" if $debug > 1;
- }
- if ($type eq 'opcode') {
- $used_opcode_enum++;
- print "\tsaw global use of enum \"opcode\"\n" if $debug > 1;
- }
- }
- &scan_var($_);
- }
+ print $_ if $debug > 3 && ($debug > 5 || length($_));
+ if (/^EXT/) { &scan_var($_); }
}
close CPP;
@@ -277,7 +282,11 @@ if ($isvax) {
or die "$0: Can't write to ${dir}perlshr_gbl${marord}.mar: $!\n";
print MAR "\t.title perlshr_gbl$marord\n";
}
-foreach $var (sort keys %vars) {
+unless ($isgcc) {
+ print OPTBLD "PSECT_ATTR=\$GLOBAL_RO_VARS,PIC,NOEXE,RD,NOWRT,SHR\n";
+ print OPTBLD "PSECT_ATTR=\$GLOBAL_RW_VARS,PIC,NOEXE,RD,WRT,NOSHR\n";
+}
+foreach $var (sort (keys %vars,keys %cvars)) {
if ($isvax) { print OPTBLD "UNIVERSAL=$var\n"; }
else { print OPTBLD "SYMBOL_VECTOR=($var=DATA)\n"; }
# This hack brought to you by the lack of a globaldef in gcc.
@@ -312,9 +321,19 @@ if ($isvax) {
open(OPTATTR,">${dir}perlshr_attr.opt")
or die "$0: Can't write to ${dir}perlshr_attr.opt: $!\n";
-print OPTATTR "PSECT_ATTR=\$CHAR_STRING_CONSTANTS,PIC,SHR,NOEXE,RD,NOWRT\n";
-foreach $var (sort keys %vars) {
- print OPTATTR "PSECT_ATTR=${var},PIC,OVR,RD,NOEXE,WRT,NOSHR\n";
+if ($isvaxc) {
+ print OPTATTR "PSECT_ATTR=\$CHAR_STRING_CONSTANTS,PIC,SHR,NOEXE,RD,NOWRT\n";
+}
+elsif ($isgcc) {
+ foreach $var (sort keys %cvars) {
+ print OPTATTR "PSECT_ATTR=${var},PIC,OVR,RD,NOEXE,NOWRT,SHR\n";
+ }
+ foreach $var (sort keys %vars) {
+ print OPTATTR "PSECT_ATTR=${var},PIC,OVR,RD,NOEXE,WRT,NOSHR\n";
+ }
+}
+else {
+ print OPTATTR "! No additional linker directives are needed when using DECC\n";
}
close OPTATTR;
diff --git a/vms/genconfig.pl b/vms/genconfig.pl
index 521be99e11..da295f72e9 100644
--- a/vms/genconfig.pl
+++ b/vms/genconfig.pl
@@ -126,7 +126,9 @@ foreach (@ARGV) {
print OUT "gccversion='$1'\n";
}
elsif ($archsufx eq 'VAX' &&
- `$val/NoObject/NoList /prefix=all _nla0:` =~ /IVQUAL/) {
+ # Check exit status too, in case message is turned off
+ ( `$val/NoObject/NoList /prefix=all _nla0:` =~ /IVQUAL/ ||
+ $? == 0x38240 )) {
$cctype = 'vaxc';
$d_attr = 'undef';
}
diff --git a/vms/genopt.com b/vms/genopt.com
index 53ee6a82b6..3d3e5fe5df 100644
--- a/vms/genopt.com
+++ b/vms/genopt.com
@@ -16,13 +16,16 @@ $ if y .nes. "" .and. -
$ then
$ name = f$element(0,"/",y)
$ tail = f$extract(f$length(name),1024,y)
-$ name = f$parse(name,"sys$share:.exe;") ! Look where image activator will
-$ name = f$search(name) ! Does it really exist?
-$ if name .nes. ""
+$ if f$trnlnm(name) .eqs. "" ! If it's a logical name, assume it's OK as is
$ then
-$ name = name - f$parse(name,,,"version") ! Insist on current version
-$ y = name + tail
-$ endif
+$ name = f$parse(name,"sys$share:.exe;") ! Look where image activator will
+$ name = f$search(name) ! Does it really exist?
+$ if name .nes. ""
+$ then
+$ name = name - f$parse(name,,,"version") ! Insist on current version
+$ y = name + tail
+$ endif
+$ endif
$ endif
$ if y .nes. "" then write file y
$ element=element+1
diff --git a/vms/perly_c.vms b/vms/perly_c.vms
index 28b84e492f..dfc096ca22 100644
--- a/vms/perly_c.vms
+++ b/vms/perly_c.vms
@@ -1,4 +1,4 @@
-/* Postprocessed by vms_yfix.pl 1.1 to add VMS declarations of globals */
+/* Postprocessed by vms_yfix.pl 1.11 to add VMS declarations of globals */
#ifndef lint
static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91";
#endif
@@ -18,1044 +18,1007 @@ dep()
dEXT short yylhs[] = { -1,
40, 0, 7, 5, 8, 6, 9, 9, 9, 10,
10, 10, 10, 22, 22, 22, 22, 22, 22, 13,
- 13, 13, 12, 12, 12, 12, 37, 37, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 24, 24, 25,
- 25, 26, 27, 28, 29, 30, 39, 39, 1, 1,
- 1, 1, 3, 3, 41, 41, 36, 36, 4, 42,
- 42, 43, 14, 14, 14, 23, 23, 23, 34, 34,
- 34, 34, 34, 34, 34, 34, 35, 35, 15, 15,
+ 13, 13, 12, 12, 37, 37, 11, 11, 11, 11,
+ 11, 11, 11, 24, 24, 25, 25, 26, 27, 28,
+ 29, 30, 39, 39, 1, 1, 1, 1, 3, 3,
+ 41, 41, 36, 36, 4, 42, 42, 43, 14, 14,
+ 14, 23, 23, 23, 34, 34, 34, 34, 34, 34,
+ 34, 34, 35, 35, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 31, 31, 32, 32, 32, 2, 2, 38,
- 21, 16, 17, 18, 19, 20, 33, 33, 33, 33,
+ 15, 15, 15, 15, 15, 15, 15, 15, 31, 31,
+ 32, 32, 32, 2, 2, 38, 21, 16, 17, 18,
+ 19, 20, 33, 33, 33, 33,
};
dEXT short yylen[] = { 2,
0, 2, 4, 0, 4, 0, 0, 2, 2, 2,
1, 2, 3, 1, 1, 3, 3, 3, 3, 0,
- 2, 6, 7, 7, 4, 4, 0, 2, 8, 8,
- 5, 5, 10, 9, 8, 11, 3, 0, 1, 0,
- 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,
- 1, 1, 4, 3, 5, 5, 0, 1, 0, 3,
- 2, 6, 3, 3, 1, 2, 3, 1, 3, 5,
- 6, 3, 5, 2, 4, 4, 1, 1, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 5, 3, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 3, 2, 3, 2, 4, 3, 4, 1,
- 5, 1, 4, 5, 4, 1, 1, 1, 5, 6,
- 5, 6, 5, 4, 5, 1, 1, 3, 4, 3,
- 2, 2, 4, 5, 4, 5, 1, 2, 2, 1,
- 2, 2, 2, 1, 3, 1, 3, 4, 4, 6,
- 1, 1, 0, 1, 0, 1, 2, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+ 2, 6, 7, 7, 0, 2, 8, 8, 10, 9,
+ 8, 11, 3, 0, 1, 0, 1, 1, 1, 1,
+ 1, 1, 0, 1, 1, 1, 1, 1, 4, 3,
+ 5, 5, 0, 1, 0, 3, 2, 6, 3, 3,
+ 1, 2, 3, 1, 3, 5, 6, 3, 5, 2,
+ 4, 4, 1, 1, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 5, 3, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
+ 3, 2, 4, 3, 4, 1, 5, 1, 4, 5,
+ 4, 1, 1, 1, 5, 6, 5, 6, 5, 4,
+ 5, 1, 1, 3, 4, 3, 2, 2, 4, 5,
+ 4, 5, 1, 2, 2, 1, 2, 2, 2, 1,
+ 3, 1, 3, 4, 4, 6, 1, 1, 0, 1,
+ 0, 1, 2, 1, 1, 1, 2, 2, 2, 2,
+ 2, 2, 1, 1, 1, 1,
};
dEXT short yydefred[] = { 1,
- 0, 7, 0, 48, 59, 59, 0, 59, 8, 49,
- 9, 11, 0, 50, 51, 52, 0, 0, 0, 61,
- 0, 14, 4, 151, 0, 0, 126, 0, 146, 0,
- 59, 59, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 158, 159, 0,
+ 0, 7, 0, 44, 55, 55, 0, 55, 8, 45,
+ 9, 11, 0, 46, 47, 48, 0, 0, 0, 57,
+ 0, 14, 4, 147, 0, 0, 122, 0, 142, 0,
+ 55, 55, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 154, 155, 0,
0, 0, 0, 0, 0, 0, 0, 12, 0, 0,
0, 0, 0, 0, 0, 0, 0, 10, 0, 0,
- 0, 0, 116, 118, 0, 0, 0, 0, 152, 0,
- 54, 0, 60, 0, 7, 167, 170, 169, 168, 0,
- 0, 0, 0, 0, 0, 4, 0, 4, 0, 4,
- 0, 4, 0, 4, 4, 0, 0, 0, 0, 0,
- 141, 0, 0, 0, 0, 74, 0, 165, 0, 132,
- 0, 0, 0, 0, 0, 161, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 106, 0, 162, 163,
- 164, 166, 0, 0, 37, 0, 0, 0, 0, 0,
+ 0, 0, 112, 114, 0, 0, 0, 0, 148, 0,
+ 50, 0, 56, 0, 7, 163, 166, 165, 164, 0,
+ 0, 0, 0, 0, 0, 4, 4, 4, 4, 4,
+ 4, 0, 0, 0, 0, 0, 137, 0, 0, 0,
+ 0, 70, 0, 161, 0, 128, 0, 0, 0, 0,
+ 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 102, 0, 158, 159, 160, 162, 0, 0,
+ 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 94, 95, 0, 0, 0, 0, 0, 0,
+ 0, 0, 13, 0, 49, 54, 0, 0, 0, 68,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 99, 0, 0,
- 0, 0, 0, 0, 0, 0, 13, 0, 53, 58,
- 0, 0, 0, 72, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 4, 145,
- 147, 0, 0, 0, 0, 0, 0, 0, 108, 0,
- 130, 0, 0, 105, 28, 0, 0, 19, 0, 0,
- 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 77, 0,
- 78, 0, 0, 0, 0, 0, 0, 0, 128, 0,
- 0, 56, 55, 0, 3, 0, 149, 0, 76, 109,
- 0, 45, 0, 31, 46, 0, 32, 0, 0, 0,
- 0, 25, 0, 26, 160, 0, 0, 39, 44, 0,
- 0, 0, 148, 157, 75, 0, 133, 0, 135, 0,
- 107, 0, 0, 0, 0, 0, 0, 0, 115, 0,
- 113, 0, 124, 0, 129, 62, 73, 0, 0, 0,
- 0, 6, 21, 0, 0, 0, 0, 0, 0, 70,
- 134, 136, 123, 0, 121, 0, 0, 114, 0, 119,
- 125, 111, 150, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 0, 122, 120, 71, 29, 30, 23, 0,
- 0, 24, 0, 35, 0, 0, 5, 0, 0, 0,
- 34, 22, 33, 0, 36,
+ 4, 141, 143, 0, 0, 0, 0, 0, 0, 0,
+ 104, 0, 126, 0, 0, 101, 26, 0, 0, 19,
+ 0, 0, 0, 59, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 73, 0, 74, 0, 0, 0, 0, 0, 0, 0,
+ 124, 0, 0, 52, 51, 0, 3, 0, 145, 0,
+ 72, 105, 0, 41, 0, 42, 0, 0, 0, 0,
+ 156, 0, 0, 35, 40, 0, 0, 0, 144, 153,
+ 71, 0, 129, 0, 131, 0, 103, 0, 0, 0,
+ 0, 0, 0, 0, 111, 0, 109, 0, 120, 0,
+ 125, 58, 69, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 66, 130, 132, 119, 0, 117, 0, 0,
+ 110, 0, 115, 121, 107, 146, 6, 0, 0, 0,
+ 0, 0, 0, 0, 0, 118, 116, 67, 7, 27,
+ 28, 0, 0, 23, 24, 0, 31, 0, 0, 0,
+ 21, 0, 0, 0, 30, 5, 0, 29, 0, 0,
+ 32, 0, 22,
};
dEXT short yydgoto[] = { 1,
- 9, 66, 10, 17, 85, 337, 88, 313, 3, 11,
- 12, 68, 272, 268, 70, 71, 72, 73, 74, 75,
- 76, 278, 78, 279, 262, 265, 269, 281, 263, 266,
- 116, 204, 90, 79, 242, 181, 145, 276, 13, 2,
+ 9, 66, 10, 17, 85, 329, 88, 318, 3, 11,
+ 12, 68, 334, 258, 70, 71, 72, 73, 74, 75,
+ 76, 264, 78, 265, 254, 256, 259, 267, 255, 257,
+ 112, 196, 90, 79, 234, 177, 141, 262, 13, 2,
14, 15, 16,
};
dEXT short yysindex[] = { 0,
- 0, 0, -178, 0, 0, 0, -49, 0, 0, 0,
- 0, 0, 616, 0, 0, 0, -108, -233, 3, 0,
- -230, 0, 0, 0, -24, -24, 0, 28, 0, 1899,
- 0, 0, -17, -12, -11, -10, -35, 1899, 39, 54,
- 60, 992, 936, -24, 1055, 1319, -217, 0, 0, -24,
- 1899, 1899, 1899, 1899, 1899, 1899, 1375, 0, 1899, 1899,
- 1431, -24, -24, -24, -24, 1899, -161, 0, 277, 3829,
- -69, -42, 0, 0, -4, 88, 89, 97, 0, 24,
- 0, -107, 0, -105, 0, 0, 0, 0, 0, 1899,
- 114, 1899, 328, 24, -107, 0, 24, 0, 24, 0,
- 24, 0, 24, 0, 0, 115, 3829, 133, 1490, 936,
- 0, 328, 0, -69, 97, 0, 1899, 0, 137, 0,
- 328, -19, 56, 19, 1899, 0, 97, 98, 98, 98,
- -82, -82, 93, -21, 98, 98, 0, -87, 0, 0,
- 0, 0, 328, 24, 0, 1899, 1899, 1899, 1899, 1899,
- 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899,
- 1899, 1899, 1899, 1899, 1899, 1899, 0, 0, -32, 1899,
- 1899, 1899, 1899, 1899, 1899, 1665, 0, 1899, 0, 0,
- -8, 1899, 357, 0, 1899, 82, 1899, 24, 1899, -161,
- 1899, -161, 1899, -234, 1899, -234, 144, 1724, 0, 0,
- 0, 4, 11, 138, 1899, 97, 1780, 1836, 0, 61,
- 0, 1899, 96, 0, 0, -176, -176, 0, -176, -176,
- -95, 0, 21, 1092, 328, 373, 434, 92, 3829, 1204,
- 3238, 3721, 2430, 815, 419, 98, 98, 1899, 0, 1899,
- 0, 173, -80, 55, -68, 57, -54, 68, 0, 6,
- 3829, 0, 0, 157, 0, 178, 0, 1899, 0, 0,
- -176, 0, 181, 0, 0, 183, 0, -176, 190, 112,
- 209, 0, 231, 0, 0, 210, 277, 0, 0, 237,
- 224, 1899, 0, 0, 0, 9, 0, 15, 0, 17,
- 0, 105, 1899, 163, 1899, 81, 119, 1899, 0, 168,
- 0, 175, 0, 185, 0, 0, 0, 1146, 112, 112,
- 112, 0, 0, 1899, 112, 1899, 112, 1899, 279, 0,
- 0, 0, 0, 143, 0, 3863, 202, 0, 300, 0,
- 0, 0, 0, -161, -161, -234, 0, 321, -234, 326,
- -161, 309, 112, 0, 0, 0, 0, 0, 0, 398,
- 112, 0, 112, 0, 1724, -161, 0, -234, -161, 336,
- 0, 0, 0, 112, 0,
+ 0, 0, 236, 0, 0, 0, -45, 0, 0, 0,
+ 0, 0, 557, 0, 0, 0, -106, -232, -20, 0,
+ -216, 0, 0, 0, -8, -8, 0, 9, 0, 1840,
+ 0, 0, 11, 15, 19, 22, -33, 1840, 38, 47,
+ 51, 933, 877, -8, 996, 1260, -212, 0, 0, -8,
+ 1840, 1840, 1840, 1840, 1840, 1840, 1316, 0, 1840, 1840,
+ 1372, -8, -8, -8, -8, 1840, -193, 0, 273, 3713,
+ -67, -55, 0, 0, -26, 72, 57, 59, 0, 3,
+ 0, -137, 0, -130, 0, 0, 0, 0, 0, 1840,
+ 96, 1840, 1871, 3, -137, 0, 0, 0, 0, 0,
+ 0, 97, 3713, 99, 1431, 877, 0, 1871, 0, -67,
+ 59, 0, 1840, 0, 106, 0, 1871, -25, 27, 52,
+ 1840, 0, 59, 98, 98, 98, -85, -85, 74, -40,
+ 98, 98, 0, -88, 0, 0, 0, 0, 1871, 3,
+ 0, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1840, 0, 0, -34, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1606, 0, 1840, 0, 0, -51, 1840, 242, 0,
+ 1840, 1089, 1840, 3, 1840, 1840, 1840, 1840, 130, 1665,
+ 0, 0, 0, -30, 44, 126, 1840, 59, 1721, 1777,
+ 0, 53, 0, 1840, 79, 0, 0, -244, -244, 0,
+ -244, -244, -127, 0, 54, 1027, 1871, 756, 360, 869,
+ 3713, 3679, 3540, 3764, 1195, 340, 1054, 98, 98, 1840,
+ 0, 1840, 0, 134, -83, 58, -75, 60, -71, 62,
+ 0, -18, 3713, 0, 0, 117, 0, 138, 0, 1840,
+ 0, 0, -244, 0, 139, 0, 140, -244, 141, 142,
+ 0, 145, 273, 0, 0, 149, 136, 1840, 0, 0,
+ 0, -15, 0, 40, 0, 42, 0, -59, 1840, 68,
+ 1840, 85, 46, 1840, 0, 75, 0, 77, 0, 80,
+ 0, 0, 0, 1143, 84, 84, 84, 84, 1840, 84,
+ 1840, 167, 0, 0, 0, 0, 95, 0, 263, 86,
+ 0, 172, 0, 0, 0, 0, 0, -193, -193, -177,
+ -177, 175, -193, 159, 84, 0, 0, 0, 0, 0,
+ 0, 84, 194, 0, 0, 84, 0, 1665, -193, 256,
+ 0, 1840, -193, 191, 0, 0, 196, 0, 84, 84,
+ 0, -177, 0,
};
dEXT short yyrindex[] = { 0,
- 0, 0, 220, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 161, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2100, 1930, 0,
+ 0, 2740, 2808, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2159, 1989, 0,
- 0, 2799, 2867, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 37, 0, -9, 3616,
+ 2851, 2895, 0, 0, 2166, 1989, 0, 17, 0, 0,
+ 0, -39, 0, 0, 0, 0, 0, 0, 0, 2225,
+ 0, 0, 3367, 0, 112, 0, 0, 0, 0, 0,
+ 0, 0, 3635, 0, 0, 215, 0, 3410, 437, 498,
+ 2336, 0, 0, 0, 2052, 0, 3448, 2851, 0, 0,
+ 2225, 0, 2461, 2938, 2976, 3014, -28, 600, 2504, 0,
+ 3087, 3131, 0, 0, 0, 0, 0, 0, 3486, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 65, 0, -25, 193,
- 2910, 2954, 0, 0, 2225, 2048, 0, 333, 0, 0,
- 0, 2, 0, 0, 0, 0, 0, 0, 0, 2284,
- 0, 0, 3575, 0, 257, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3017, 0, 0, 348,
- 0, 3642, 496, 557, 2395, 0, 0, 0, 2111, 0,
- 3695, 2910, 0, 0, 2284, 0, 2520, 3065, 3103, 3190,
- 659, 2997, 2563, 0, 3301, 3354, 0, 0, 0, 0,
- 0, 0, 3741, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2631, 0, 0,
- 0, 331, 880, 0, 348, 0, 2284, 0, 352, 65,
- 0, 65, 0, 164, 0, 164, 0, 338, 0, 0,
- 0, 0, 358, 0, 0, 2674, 0, 0, 0, 0,
- 0, 0, 2718, 0, 0, -22, 36, 0, 91, 110,
- -33, 0, 0, 2573, 1267, 1531, 3476, 3521, 3675, 0,
- -27, 3826, 3794, 1587, -6, 3392, 3440, 0, 0, 0,
+ 0, 0, 0, 2572, 0, 0, 0, 205, 821, 0,
+ 215, 0, 2225, 0, 245, 0, 0, 0, 0, 240,
+ 0, 0, 0, 0, 272, 0, 0, 2615, 0, 0,
+ 0, 0, 0, 0, 2659, 0, 0, 5, 45, 0,
+ 49, 61, -32, 0, 0, 192, 1472, 1528, 3250, 3286,
+ 3645, 0, 2514, 3603, 3559, 3522, 3323, 3174, 3212, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3787, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 134, 0, 0, 0, 0, 0, 0, 359, 0, 0,
- 0, 0, 0, 0, 0, 0, 155, 0, 0, 0,
+ 0, 0, 3675, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 65, 0, 0, 0, 0, 277, 0, 0,
+ 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 348, 0, 0,
+ 0, 0, 0, 215, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 349, 0, 0,
- 0, 0, 0, 0, 0, 1953, 0, 0, 0, 0,
- 0, 0, 0, 65, 65, 164, 0, 0, 164, 0,
- 65, 0, 0, 0, 0, 0, 0, 0, 0, 880,
- 0, 0, 0, 0, 368, 65, 0, 164, 65, 0,
- 0, 0, 0, 0, 0,
+ 265, 0, 0, 0, 0, 0, 0, 0, 1894, 0,
+ 0, 0, 0, 0, 0, 0, 0, 37, 37, 105,
+ 105, 0, 37, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 286, 37, 821,
+ 0, 0, 37, 0, 0, 0, 0, 0, 0, 0,
+ 0, 105, 0,
};
dEXT short yygindex[] = { 0,
- 0, 0, 0, 136, -29, 0, 4145, 680, -78, 0,
- 0, 0, -193, -13, 3266, 519, 0, 0, 0, 0,
- 0, 400, 885, 0, 0, 267, -196, 63, 124, 250,
- -16, -167, 20, 0, 0, 320, 356, 0, 0, 0,
+ 0, 0, 0, 63, 418, 0, 914, 335, -81, 0,
+ 0, 0, -292, -13, 3885, 2516, 0, 0, 0, 0,
+ 0, 321, 530, 0, 0, 203, -150, -3, 93, 165,
+ -69, -162, 575, 0, 0, 300, -276, 0, 0, 0,
0, 0, 0,
};
-#define YYTABLESIZE 4333
+#define YYTABLESIZE 4166
dEXT short yytable[] = { 69,
- 62, 280, 274, 62, 105, 214, 183, 64, 170, 20,
- 64, 62, 299, 90, 23, 15, 90, 256, 18, 213,
- 208, 172, 96, 82, 301, 64, 84, 98, 100, 102,
- 90, 90, 124, 15, 83, 90, 18, 83, 303, 125,
- 152, 270, 271, 134, 283, 91, 305, 138, 174, 320,
- 252, 83, 83, 171, 284, 321, 83, 322, 240, 64,
- 57, 83, 117, 118, 27, 90, 189, 92, 191, 126,
- 193, 172, 195, 184, 197, 198, 42, 210, 108, 294,
- 173, 139, 140, 141, 142, 319, 83, 4, 5, 6,
- 238, 7, 8, 109, 42, 202, 203, 27, 23, 110,
- 27, 27, 27, 171, 27, 23, 27, 27, 211, 27,
- 23, 23, 23, 300, 23, 302, 144, 338, 175, 340,
- 150, 151, 257, 27, 57, 258, 304, 176, 27, 205,
- 329, 16, 216, 217, 219, 220, 221, 222, 223, 327,
- 178, 18, 349, 21, 159, 352, 23, 177, 80, 16,
- 17, 182, 180, 185, 199, 27, 243, 244, 245, 246,
- 247, 248, 250, 20, 362, 254, 94, 95, 17, 282,
- 259, 203, 170, 200, 41, 261, 207, 217, 285, 62,
- 209, 217, 170, 212, 277, 291, 293, 27, 170, 27,
- 27, 286, 41, 288, 290, 43, 20, 323, 292, 20,
- 20, 20, 151, 20, 152, 20, 20, 19, 20, 150,
- 151, 328, 298, 15, 152, 306, 150, 151, 307, 2,
- 152, 309, 20, 310, 296, 239, 297, 20, 150, 151,
- 311, 169, 86, 68, 312, 344, 68, 87, 64, 64,
- 64, 64, 150, 151, 90, 90, 90, 90, 314, 316,
- 68, 68, 47, 90, 20, 47, 47, 47, 350, 47,
- 104, 47, 47, 64, 47, 83, 83, 83, 83, 90,
- 90, 315, 90, 90, 83, 150, 151, 317, 47, 324,
- 83, 83, 318, 47, 203, 68, 20, 325, 20, 20,
- 83, 83, 330, 83, 83, 83, 83, 83, 83, 331,
- 150, 151, 150, 151, 261, 150, 151, 150, 151, 332,
- 47, 150, 151, 150, 151, 150, 151, 150, 151, 343,
- 27, 27, 27, 27, 27, 27, 345, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 346, 69, 47, 27, 27, 47, 27, 27, 27, 27,
- 27, 150, 151, 150, 151, 27, 27, 27, 27, 27,
- 27, 351, 153, 27, 150, 151, 353, 355, 154, 155,
- 156, 157, 27, 65, 27, 27, 364, 150, 151, 57,
- 156, 158, 160, 161, 162, 163, 164, 165, 155, 153,
- 166, 65, 40, 167, 168, 169, 38, 165, 156, 43,
- 166, 150, 151, 167, 168, 169, 166, 40, 38, 167,
- 168, 169, 77, 218, 188, 150, 151, 360, 170, 20,
- 20, 20, 20, 20, 20, 65, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 150,
- 151, 342, 20, 20, 273, 20, 20, 20, 20, 20,
- 152, 0, 0, 0, 20, 20, 20, 20, 20, 20,
- 0, 0, 20, 170, 68, 68, 68, 68, 0, 0,
- 0, 20, 0, 20, 20, 47, 47, 47, 47, 47,
- 47, 255, 47, 47, 47, 0, 0, 0, 47, 68,
- 68, 47, 47, 47, 47, 152, 0, 0, 47, 47,
- 0, 47, 47, 47, 47, 47, 0, 0, 0, 170,
- 47, 47, 47, 47, 47, 47, 0, 0, 47, 0,
- 0, 0, 357, 0, 170, 0, 0, 47, 167, 47,
- 47, 167, 167, 167, 0, 167, 151, 167, 167, 151,
- 167, 152, 0, 89, 89, 264, 0, 267, 146, 147,
- 148, 149, 0, 151, 151, 106, 152, 0, 151, 167,
- 0, 114, 89, 122, 0, 0, 0, 0, 89, 0,
- 0, 0, 0, 150, 151, 0, 0, 0, 0, 0,
- 89, 89, 89, 89, 0, 0, 151, 0, 151, 168,
- 0, 0, 168, 168, 168, 0, 168, 110, 168, 168,
- 110, 168, 0, 0, 65, 65, 65, 65, 0, 0,
- 0, 0, 0, 0, 110, 110, 156, 157, 151, 110,
- 168, 167, 4, 5, 6, 0, 7, 8, 114, 65,
- 65, 0, 164, 165, 0, 0, 166, 0, 0, 167,
- 168, 169, 0, 0, 0, 0, 0, 0, 52, 110,
- 0, 62, 64, 50, 0, 57, 0, 65, 60, 154,
- 59, 156, 157, 4, 5, 6, 0, 7, 8, 0,
- 0, 0, 0, 0, 58, 0, 0, 164, 165, 63,
- 0, 166, 168, 0, 167, 168, 169, 241, 0, 347,
- 348, 0, 0, 0, 0, 0, 354, 0, 0, 100,
- 0, 0, 100, 0, 0, 0, 61, 156, 157, 0,
- 0, 361, 0, 0, 363, 275, 100, 100, 0, 0,
- 0, 100, 0, 0, 165, 0, 0, 166, 0, 0,
- 167, 168, 169, 0, 0, 0, 0, 0, 23, 165,
- 0, 53, 166, 0, 0, 167, 168, 169, 0, 0,
- 0, 100, 167, 167, 167, 167, 167, 0, 167, 167,
- 167, 0, 0, 0, 167, 0, 0, 151, 151, 151,
- 151, 0, 0, 0, 0, 167, 151, 167, 167, 167,
- 167, 167, 151, 151, 151, 151, 167, 167, 167, 167,
- 167, 167, 151, 151, 167, 151, 151, 151, 151, 151,
- 151, 151, 0, 167, 151, 167, 167, 151, 151, 151,
- 0, 0, 0, 168, 168, 168, 168, 168, 0, 168,
- 168, 168, 0, 0, 0, 168, 0, 0, 110, 110,
- 110, 110, 0, 0, 0, 0, 168, 110, 168, 168,
- 168, 168, 168, 110, 110, 110, 110, 168, 168, 168,
- 168, 168, 168, 110, 110, 168, 110, 110, 110, 110,
- 110, 110, 110, 0, 168, 110, 168, 168, 110, 110,
- 110, 22, 24, 25, 26, 27, 28, 0, 29, 30,
- 31, 0, 0, 0, 32, 0, 0, 33, 34, 35,
- 36, 0, 0, 0, 37, 38, 0, 39, 40, 41,
- 42, 43, 0, 0, 0, 170, 44, 45, 46, 47,
- 48, 49, 47, 0, 51, 47, 47, 47, 0, 47,
- 0, 47, 47, 54, 47, 55, 56, 115, 0, 0,
- 100, 100, 100, 100, 0, 127, 0, 152, 47, 100,
- 0, 0, 0, 47, 0, 100, 100, 100, 100, 0,
- 0, 0, 0, 0, 0, 100, 100, 0, 100, 100,
- 100, 100, 100, 100, 100, 0, 0, 100, 52, 0,
- 47, 62, 64, 50, 115, 57, 0, 65, 60, 0,
- 59, 0, 0, 0, 0, 0, 0, 0, 334, 335,
- 336, 0, 0, 0, 339, 0, 341, 0, 0, 63,
- 0, 206, 47, 0, 0, 47, 0, 0, 0, 115,
+ 205, 62, 62, 179, 206, 166, 101, 244, 60, 285,
+ 269, 60, 96, 20, 200, 96, 23, 287, 248, 53,
+ 180, 289, 291, 168, 82, 303, 60, 62, 335, 96,
+ 96, 15, 120, 306, 96, 170, 25, 148, 83, 266,
+ 84, 330, 331, 130, 121, 18, 337, 134, 92, 15,
+ 96, 203, 146, 147, 97, 167, 232, 61, 98, 353,
+ 60, 99, 345, 18, 96, 168, 348, 169, 18, 25,
+ 21, 23, 25, 25, 25, 61, 25, 104, 25, 25,
+ 304, 25, 305, 53, 140, 38, 105, 270, 230, 16,
+ 106, 194, 195, 94, 95, 25, 171, 167, 332, 333,
+ 25, 17, 174, 38, 20, 37, 39, 16, 246, 61,
+ 202, 172, 280, 251, 23, 173, 286, 302, 288, 17,
+ 290, 312, 176, 37, 15, 23, 178, 25, 208, 209,
+ 211, 212, 213, 214, 215, 181, 191, 20, 311, 192,
+ 20, 20, 20, 310, 20, 199, 20, 20, 322, 20,
+ 80, 201, 235, 236, 237, 238, 239, 240, 242, 25,
+ 2, 25, 25, 20, 204, 62, 271, 195, 20, 279,
+ 147, 253, 209, 284, 209, 292, 263, 277, 293, 295,
+ 296, 297, 298, 272, 299, 274, 276, 326, 166, 300,
+ 278, 347, 308, 43, 301, 20, 43, 43, 43, 313,
+ 43, 314, 43, 43, 315, 43, 317, 325, 146, 147,
+ 327, 19, 328, 146, 147, 336, 282, 338, 283, 43,
+ 148, 146, 147, 231, 43, 146, 147, 20, 165, 20,
+ 20, 349, 84, 342, 53, 84, 350, 146, 147, 60,
+ 60, 60, 60, 96, 96, 96, 96, 340, 86, 84,
+ 84, 43, 96, 87, 84, 151, 146, 147, 96, 96,
+ 96, 96, 100, 149, 60, 307, 146, 147, 96, 96,
+ 195, 96, 96, 96, 96, 96, 96, 96, 146, 147,
+ 96, 146, 147, 43, 84, 36, 43, 253, 61, 61,
+ 61, 61, 25, 25, 25, 25, 25, 25, 34, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 152, 61, 61, 25, 25, 39, 25, 25,
+ 25, 25, 25, 36, 69, 155, 34, 25, 25, 25,
+ 25, 25, 25, 77, 344, 25, 146, 147, 146, 147,
+ 146, 147, 146, 147, 25, 210, 25, 25, 146, 147,
+ 146, 147, 260, 166, 146, 147, 146, 147, 146, 147,
+ 20, 20, 20, 20, 20, 20, 247, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 346, 146, 147, 20, 20, 148, 20, 20, 20, 20,
+ 20, 146, 147, 324, 184, 20, 20, 20, 20, 20,
+ 20, 0, 0, 20, 0, 0, 162, 0, 0, 163,
+ 164, 165, 20, 0, 20, 20, 43, 43, 43, 43,
+ 43, 43, 0, 43, 43, 43, 0, 0, 0, 43,
+ 166, 0, 43, 43, 43, 43, 0, 0, 0, 43,
+ 43, 0, 43, 43, 43, 43, 43, 0, 0, 0,
+ 166, 43, 43, 43, 43, 43, 43, 0, 0, 43,
+ 0, 0, 148, 84, 84, 84, 84, 0, 43, 163,
+ 43, 43, 163, 163, 163, 0, 163, 147, 163, 163,
+ 147, 163, 148, 0, 0, 0, 0, 0, 84, 84,
+ 0, 84, 0, 0, 147, 147, 0, 0, 0, 147,
+ 163, 4, 5, 6, 0, 7, 8, 4, 5, 6,
+ 0, 7, 8, 185, 186, 187, 188, 189, 190, 0,
+ 0, 4, 5, 6, 0, 7, 8, 147, 0, 147,
+ 164, 0, 0, 164, 164, 164, 0, 164, 106, 164,
+ 164, 106, 164, 149, 142, 143, 144, 145, 0, 150,
+ 151, 152, 153, 0, 0, 106, 106, 0, 0, 147,
+ 106, 164, 163, 156, 157, 158, 159, 160, 161, 146,
+ 147, 162, 111, 0, 163, 164, 165, 0, 0, 0,
+ 123, 0, 0, 0, 0, 0, 0, 0, 0, 52,
+ 106, 0, 62, 64, 50, 0, 57, 0, 65, 60,
+ 91, 59, 0, 0, 0, 0, 0, 0, 268, 0,
+ 0, 0, 0, 0, 0, 58, 0, 113, 114, 111,
+ 63, 0, 0, 164, 122, 0, 150, 151, 152, 153,
+ 319, 320, 321, 0, 323, 0, 135, 136, 137, 138,
+ 97, 0, 198, 97, 160, 161, 0, 61, 162, 0,
+ 111, 163, 164, 165, 0, 0, 0, 97, 97, 339,
+ 0, 0, 97, 0, 0, 161, 341, 0, 162, 0,
+ 343, 163, 164, 165, 0, 0, 0, 0, 0, 23,
+ 197, 0, 53, 351, 352, 0, 0, 0, 0, 0,
+ 0, 0, 97, 163, 163, 163, 163, 163, 0, 163,
+ 163, 163, 0, 0, 0, 163, 0, 111, 147, 147,
+ 147, 147, 111, 0, 0, 0, 163, 147, 163, 163,
+ 163, 163, 163, 147, 147, 147, 147, 163, 163, 163,
+ 163, 163, 163, 147, 147, 163, 147, 147, 147, 147,
+ 147, 147, 147, 0, 163, 147, 163, 163, 147, 147,
+ 147, 0, 0, 0, 164, 164, 164, 164, 164, 0,
+ 164, 164, 164, 0, 0, 0, 164, 0, 0, 106,
+ 106, 106, 106, 0, 0, 0, 0, 164, 106, 164,
+ 164, 164, 164, 164, 106, 106, 106, 106, 164, 164,
+ 164, 164, 164, 164, 106, 106, 164, 106, 106, 106,
+ 106, 106, 106, 106, 0, 164, 106, 164, 164, 106,
+ 106, 106, 22, 24, 25, 26, 27, 28, 0, 29,
+ 30, 31, 0, 0, 0, 32, 0, 0, 33, 34,
+ 35, 36, 0, 0, 0, 37, 38, 0, 39, 40,
+ 41, 42, 43, 0, 0, 0, 166, 44, 45, 46,
+ 47, 48, 49, 43, 0, 51, 43, 43, 43, 0,
+ 43, 0, 43, 43, 54, 43, 55, 56, 0, 0,
+ 0, 97, 97, 97, 97, 0, 0, 0, 148, 43,
+ 97, 0, 0, 0, 43, 0, 97, 97, 97, 97,
+ 0, 0, 0, 0, 0, 0, 97, 97, 0, 97,
+ 97, 97, 97, 97, 97, 97, 0, 0, 97, 52,
+ 0, 43, 62, 64, 50, 0, 57, 0, 65, 60,
+ 0, 59, 0, 0, 0, 0, 67, 0, 0, 0,
+ 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 63, 0, 0, 43, 0, 0, 43, 0, 0, 0,
+ 0, 0, 0, 0, 0, 107, 0, 0, 116, 166,
+ 0, 0, 0, 0, 0, 52, 0, 61, 62, 64,
+ 50, 0, 57, 0, 65, 60, 0, 59, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 356, 0, 52, 0, 61, 62, 64, 50,
- 358, 57, 359, 65, 60, 0, 59, 0, 0, 0,
- 0, 0, 0, 365, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 63, 0, 0, 23, 0,
- 0, 53, 0, 0, 0, 0, 115, 0, 0, 0,
- 0, 115, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 61, 0, 0, 0, 0, 52, 0, 0,
- 62, 64, 50, 0, 57, 0, 65, 60, 0, 59,
- 0, 154, 155, 156, 157, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 23, 0, 0, 53, 63, 164,
- 165, 0, 0, 166, 0, 0, 167, 168, 169, 0,
- 0, 0, 0, 0, 0, 47, 47, 47, 47, 47,
- 47, 0, 47, 47, 47, 61, 0, 0, 47, 0,
- 0, 47, 47, 47, 47, 0, 0, 0, 47, 47,
- 0, 47, 47, 47, 47, 47, 0, 0, 0, 0,
- 47, 47, 47, 47, 47, 47, 0, 23, 47, 0,
- 53, 0, 170, 0, 0, 0, 333, 47, 0, 47,
- 47, 0, 113, 25, 26, 27, 28, 87, 29, 30,
- 31, 0, 0, 0, 32, 0, 0, 0, 159, 0,
- 0, 0, 0, 0, 152, 38, 0, 39, 40, 41,
+ 0, 148, 0, 175, 0, 0, 63, 0, 0, 23,
+ 0, 0, 53, 0, 0, 0, 0, 183, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 61, 0, 0, 0, 0, 52, 0,
+ 0, 62, 64, 50, 0, 57, 0, 65, 60, 0,
+ 59, 0, 150, 0, 152, 153, 0, 0, 0, 0,
+ 0, 0, 0, 207, 0, 23, 0, 0, 53, 63,
+ 160, 161, 0, 0, 162, 0, 0, 163, 164, 165,
+ 0, 0, 0, 0, 0, 0, 43, 43, 43, 43,
+ 43, 43, 0, 43, 43, 43, 61, 0, 0, 43,
+ 245, 0, 43, 43, 43, 43, 0, 252, 0, 43,
+ 43, 0, 43, 43, 43, 43, 43, 0, 0, 0,
+ 0, 43, 43, 43, 43, 43, 43, 166, 23, 43,
+ 0, 53, 0, 0, 0, 0, 0, 0, 43, 249,
+ 43, 43, 250, 109, 25, 26, 27, 28, 87, 29,
+ 30, 31, 0, 0, 166, 32, 0, 0, 0, 148,
+ 0, 155, 0, 0, 0, 0, 38, 152, 39, 40,
+ 41, 42, 43, 0, 0, 0, 0, 44, 45, 46,
+ 47, 48, 49, 0, 161, 51, 148, 162, 0, 166,
+ 163, 164, 165, 316, 54, 0, 55, 56, 0, 24,
+ 25, 26, 27, 28, 0, 29, 30, 31, 0, 0,
+ 0, 32, 0, 0, 0, 155, 0, 0, 0, 0,
+ 0, 148, 38, 0, 39, 40, 41, 42, 43, 0,
+ 0, 0, 0, 44, 45, 46, 47, 48, 49, 0,
+ 0, 51, 0, 166, 0, 0, 0, 0, 0, 0,
+ 54, 0, 55, 56, 0, 0, 0, 0, 0, 0,
+ 0, 0, 115, 25, 26, 27, 28, 0, 29, 30,
+ 31, 0, 0, 0, 32, 148, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 38, 0, 39, 40, 41,
+ 42, 43, 0, 0, 0, 166, 44, 45, 46, 47,
+ 48, 49, 52, 0, 51, 62, 64, 50, 0, 57,
+ 0, 65, 60, 54, 59, 55, 56, 0, 0, 0,
+ 0, 0, 0, 150, 151, 152, 153, 148, 119, 0,
+ 0, 0, 0, 63, 0, 0, 0, 156, 157, 158,
+ 159, 160, 161, 0, 0, 162, 0, 0, 163, 164,
+ 165, 0, 152, 153, 0, 0, 0, 0, 52, 0,
+ 61, 62, 64, 50, 0, 57, 129, 65, 60, 161,
+ 59, 0, 162, 0, 0, 163, 164, 165, 0, 149,
+ 0, 0, 0, 0, 0, 150, 151, 152, 153, 63,
+ 0, 0, 0, 0, 0, 53, 0, 0, 154, 156,
+ 157, 158, 159, 160, 161, 0, 0, 162, 0, 0,
+ 163, 164, 165, 0, 52, 0, 61, 62, 64, 50,
+ 0, 57, 0, 65, 60, 0, 59, 0, 0, 0,
+ 0, 0, 0, 149, 0, 0, 0, 0, 0, 150,
+ 151, 152, 153, 0, 0, 63, 0, 0, 0, 0,
+ 0, 53, 154, 156, 157, 158, 159, 160, 161, 0,
+ 0, 162, 0, 0, 163, 164, 165, 0, 0, 0,
+ 0, 0, 61, 52, 133, 0, 62, 64, 50, 0,
+ 57, 193, 65, 60, 0, 59, 0, 0, 0, 0,
+ 0, 150, 151, 152, 153, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 63, 0, 0, 53, 159, 160,
+ 161, 0, 0, 162, 0, 0, 163, 164, 165, 0,
+ 0, 0, 80, 0, 0, 80, 24, 25, 26, 27,
+ 28, 61, 29, 30, 31, 0, 0, 0, 32, 80,
+ 80, 0, 0, 0, 80, 0, 0, 0, 0, 38,
+ 0, 39, 40, 41, 42, 43, 0, 0, 0, 0,
+ 44, 45, 46, 47, 48, 49, 53, 0, 51, 0,
+ 0, 0, 0, 0, 80, 0, 0, 54, 81, 55,
+ 56, 81, 24, 25, 26, 27, 28, 0, 29, 30,
+ 31, 0, 0, 0, 32, 81, 81, 0, 0, 0,
+ 81, 0, 0, 0, 0, 38, 0, 39, 40, 41,
42, 43, 0, 0, 0, 0, 44, 45, 46, 47,
- 48, 49, 0, 0, 51, 0, 170, 0, 0, 0,
- 0, 0, 0, 54, 0, 55, 56, 0, 24, 25,
- 26, 27, 28, 0, 29, 30, 31, 0, 0, 0,
- 32, 295, 0, 0, 0, 0, 159, 0, 152, 0,
- 0, 38, 0, 39, 40, 41, 42, 43, 0, 0,
- 0, 0, 44, 45, 46, 47, 48, 49, 0, 0,
- 51, 0, 0, 0, 170, 0, 0, 0, 0, 54,
- 0, 55, 56, 0, 0, 0, 0, 84, 0, 0,
- 84, 119, 25, 26, 27, 28, 0, 29, 30, 31,
- 0, 0, 0, 32, 84, 84, 152, 0, 0, 84,
- 0, 0, 0, 0, 38, 0, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 44, 45, 46, 47, 48,
- 49, 52, 0, 51, 62, 64, 50, 0, 57, 84,
- 65, 60, 54, 59, 55, 56, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 123, 154, 155,
- 156, 157, 63, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 160, 161, 162, 163, 164, 165, 0, 0,
- 166, 0, 0, 167, 168, 169, 0, 52, 0, 61,
- 62, 64, 50, 0, 57, 133, 65, 60, 0, 59,
- 0, 0, 0, 0, 0, 0, 153, 0, 0, 0,
- 0, 0, 154, 155, 156, 157, 0, 0, 63, 0,
- 0, 0, 0, 0, 53, 158, 160, 161, 162, 163,
- 164, 165, 0, 0, 166, 0, 0, 167, 168, 169,
- 0, 0, 0, 52, 0, 61, 62, 64, 50, 0,
- 57, 0, 65, 60, 0, 59, 0, 0, 0, 0,
- 0, 0, 0, 0, 153, 0, 0, 0, 0, 0,
- 154, 155, 156, 157, 63, 0, 0, 0, 0, 0,
- 53, 0, 0, 158, 160, 161, 162, 163, 164, 165,
- 0, 0, 166, 0, 0, 167, 168, 169, 0, 0,
- 0, 61, 52, 137, 0, 62, 64, 50, 0, 57,
- 201, 65, 60, 0, 59, 0, 0, 0, 84, 84,
- 84, 84, 0, 0, 0, 0, 0, 84, 0, 0,
- 0, 0, 0, 63, 84, 0, 53, 0, 0, 0,
- 0, 0, 0, 84, 84, 0, 84, 84, 84, 84,
- 84, 85, 0, 0, 85, 24, 25, 26, 27, 28,
- 61, 29, 30, 31, 0, 0, 0, 32, 85, 85,
- 0, 0, 0, 85, 0, 0, 0, 0, 38, 0,
- 39, 40, 41, 42, 43, 0, 0, 0, 0, 44,
- 45, 46, 47, 48, 49, 53, 0, 51, 0, 0,
- 0, 0, 0, 85, 0, 0, 54, 86, 55, 56,
- 86, 24, 25, 26, 27, 28, 0, 29, 30, 31,
- 0, 0, 0, 32, 86, 86, 0, 0, 0, 86,
- 0, 0, 0, 0, 38, 0, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 44, 45, 46, 47, 48,
- 49, 0, 0, 51, 0, 0, 0, 0, 0, 86,
- 0, 0, 54, 0, 55, 56, 0, 24, 25, 26,
- 27, 28, 0, 29, 30, 31, 0, 52, 0, 32,
- 62, 64, 50, 0, 57, 249, 65, 60, 0, 59,
+ 48, 49, 0, 0, 51, 0, 0, 0, 0, 0,
+ 81, 0, 0, 54, 0, 55, 56, 0, 24, 25,
+ 26, 27, 28, 0, 29, 30, 31, 0, 52, 0,
+ 32, 62, 64, 50, 0, 57, 241, 65, 60, 0,
+ 59, 38, 0, 39, 40, 41, 42, 43, 0, 0,
+ 0, 0, 44, 45, 46, 47, 48, 49, 0, 63,
+ 51, 0, 0, 0, 0, 0, 0, 0, 0, 54,
+ 0, 55, 56, 0, 0, 0, 0, 24, 25, 26,
+ 27, 28, 0, 29, 30, 31, 61, 52, 0, 32,
+ 62, 64, 50, 0, 57, 0, 65, 60, 0, 59,
38, 0, 39, 40, 41, 42, 43, 0, 0, 0,
0, 44, 45, 46, 47, 48, 49, 0, 63, 51,
- 0, 0, 0, 0, 0, 0, 0, 0, 54, 0,
- 55, 56, 0, 0, 0, 0, 24, 25, 26, 27,
- 28, 0, 29, 30, 31, 61, 52, 0, 32, 62,
- 64, 50, 0, 57, 0, 65, 60, 0, 59, 38,
- 0, 39, 40, 41, 42, 43, 0, 0, 0, 0,
- 44, 45, 46, 47, 48, 49, 0, 63, 51, 0,
- 53, 0, 0, 0, 0, 0, 0, 54, 0, 55,
- 56, 0, 85, 85, 85, 85, 0, 0, 0, 0,
- 0, 85, 52, 0, 61, 62, 64, 50, 0, 57,
- 287, 65, 60, 0, 59, 0, 0, 85, 85, 0,
- 85, 85, 85, 85, 85, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 53,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 86,
- 86, 86, 0, 0, 0, 0, 0, 86, 52, 0,
- 61, 62, 64, 50, 0, 57, 289, 65, 60, 0,
- 59, 0, 0, 86, 86, 0, 86, 86, 86, 86,
- 86, 0, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 53, 0, 0, 0, 0,
+ 0, 53, 0, 0, 0, 0, 0, 0, 54, 0,
+ 55, 56, 0, 80, 80, 80, 80, 0, 0, 0,
+ 0, 0, 80, 52, 0, 61, 62, 64, 50, 80,
+ 57, 273, 65, 60, 0, 59, 0, 0, 80, 80,
+ 0, 80, 80, 80, 80, 80, 0, 0, 0, 0,
+ 0, 0, 0, 0, 63, 0, 0, 0, 0, 0,
+ 53, 0, 0, 0, 0, 0, 0, 0, 0, 81,
+ 81, 81, 81, 0, 0, 0, 0, 0, 81, 52,
+ 0, 61, 62, 64, 50, 0, 57, 275, 65, 60,
+ 0, 59, 0, 0, 81, 81, 0, 81, 81, 81,
+ 81, 81, 0, 0, 0, 0, 0, 0, 0, 0,
+ 63, 0, 0, 0, 0, 0, 53, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 24, 25, 26, 27, 28, 61, 29, 30, 31,
- 0, 52, 0, 32, 62, 64, 50, 0, 57, 0,
- 65, 60, 0, 59, 38, 0, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 44, 45, 46, 47, 48,
- 49, 53, 63, 51, 0, 0, 0, 0, 0, 0,
- 0, 0, 54, 0, 55, 56, 0, 0, 0, 22,
- 24, 25, 26, 27, 28, 0, 29, 30, 31, 61,
- 0, 0, 32, 91, 0, 0, 91, 0, 0, 0,
- 0, 0, 0, 38, 0, 39, 40, 41, 42, 43,
- 91, 91, 0, 0, 44, 45, 46, 47, 48, 49,
- 0, 0, 51, 0, 53, 0, 0, 0, 0, 144,
- 0, 54, 144, 55, 56, 0, 24, 25, 26, 27,
- 28, 0, 29, 30, 31, 91, 144, 144, 32, 0,
- 0, 144, 0, 0, 0, 0, 0, 0, 0, 38,
- 0, 39, 40, 41, 42, 43, 0, 0, 0, 0,
- 44, 45, 46, 47, 48, 49, 0, 0, 51, 144,
- 0, 144, 0, 0, 0, 0, 0, 54, 127, 55,
- 56, 127, 24, 25, 26, 27, 28, 0, 29, 30,
- 31, 0, 0, 0, 32, 127, 127, 0, 0, 0,
- 127, 144, 0, 0, 0, 38, 0, 39, 40, 41,
+ 0, 0, 24, 25, 26, 27, 28, 61, 29, 30,
+ 31, 0, 52, 0, 32, 62, 64, 50, 0, 57,
+ 0, 65, 60, 0, 59, 38, 0, 39, 40, 41,
42, 43, 0, 0, 0, 0, 44, 45, 46, 47,
- 48, 49, 0, 0, 51, 0, 0, 0, 127, 0,
- 127, 0, 0, 54, 0, 55, 56, 0, 0, 0,
- 0, 151, 0, 0, 151, 24, 25, 26, 27, 28,
- 0, 29, 30, 31, 0, 0, 0, 32, 151, 151,
- 127, 0, 0, 151, 0, 0, 0, 0, 38, 0,
- 39, 40, 41, 42, 43, 0, 0, 0, 0, 44,
- 45, 46, 47, 48, 49, 0, 0, 51, 0, 137,
- 0, 151, 137, 151, 0, 0, 54, 0, 55, 56,
- 0, 0, 0, 0, 0, 0, 137, 137, 0, 0,
- 0, 137, 0, 0, 91, 91, 91, 91, 0, 0,
- 0, 0, 0, 151, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 91,
- 91, 137, 91, 0, 0, 0, 0, 0, 0, 0,
- 144, 144, 144, 144, 0, 112, 0, 0, 112, 144,
- 0, 0, 0, 0, 0, 144, 144, 144, 144, 0,
- 0, 137, 112, 112, 0, 144, 144, 112, 144, 144,
- 144, 144, 144, 144, 144, 0, 0, 144, 0, 0,
- 144, 144, 144, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 112, 0, 112, 0, 127,
- 127, 127, 127, 0, 153, 0, 0, 153, 127, 0,
- 0, 0, 0, 0, 127, 127, 127, 127, 0, 0,
- 0, 153, 153, 0, 127, 127, 153, 127, 127, 127,
- 127, 127, 127, 127, 0, 0, 127, 0, 0, 127,
- 127, 127, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 153, 0, 0, 0,
- 0, 0, 151, 151, 151, 151, 0, 0, 0, 0,
- 0, 151, 0, 0, 0, 0, 0, 151, 151, 151,
- 151, 0, 0, 0, 0, 0, 153, 151, 151, 0,
- 151, 151, 151, 151, 151, 151, 151, 0, 0, 151,
- 0, 0, 151, 151, 151, 0, 0, 0, 0, 0,
- 137, 137, 137, 137, 0, 154, 0, 0, 0, 137,
- 0, 0, 0, 0, 0, 137, 137, 137, 137, 0,
- 0, 0, 154, 154, 0, 137, 137, 154, 137, 137,
- 137, 137, 137, 137, 137, 0, 0, 137, 0, 0,
- 137, 137, 137, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 154, 0, 154, 0, 0,
- 0, 0, 0, 0, 0, 0, 112, 112, 112, 112,
- 0, 0, 0, 0, 0, 112, 0, 0, 0, 0,
- 0, 112, 112, 112, 112, 0, 0, 154, 0, 0,
- 170, 112, 112, 0, 112, 112, 112, 112, 112, 112,
- 112, 0, 0, 112, 0, 0, 112, 112, 112, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 152, 0, 0, 153, 153, 153, 153, 0,
- 139, 0, 0, 0, 153, 0, 0, 0, 0, 0,
- 153, 153, 153, 153, 0, 0, 0, 139, 139, 0,
- 153, 153, 139, 153, 153, 153, 153, 153, 153, 153,
- 0, 0, 153, 0, 0, 153, 153, 153, 0, 0,
- 0, 0, 0, 104, 0, 0, 104, 0, 0, 0,
- 139, 0, 139, 88, 0, 0, 88, 0, 0, 0,
- 104, 104, 0, 0, 0, 104, 0, 0, 0, 0,
- 88, 88, 0, 0, 0, 88, 0, 0, 0, 0,
- 0, 0, 139, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 104, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 88, 154, 154, 154, 154,
- 0, 66, 0, 0, 66, 154, 0, 0, 0, 0,
- 0, 154, 154, 154, 154, 104, 0, 0, 66, 66,
- 0, 154, 154, 66, 154, 154, 154, 154, 154, 154,
- 154, 0, 0, 154, 0, 0, 154, 154, 154, 0,
- 0, 0, 0, 0, 69, 0, 154, 155, 156, 157,
- 0, 0, 0, 66, 0, 0, 0, 0, 0, 0,
- 0, 69, 69, 163, 164, 165, 69, 0, 166, 0,
- 0, 167, 168, 169, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 66, 0, 0, 0, 0, 103, 0,
- 0, 103, 0, 0, 69, 0, 69, 0, 0, 0,
- 0, 0, 0, 0, 0, 103, 103, 0, 0, 0,
- 103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 139, 139, 139, 139, 0, 69, 0, 0, 0,
- 139, 0, 0, 0, 0, 0, 139, 139, 139, 139,
- 103, 0, 0, 0, 0, 0, 139, 139, 0, 139,
- 139, 139, 139, 139, 139, 139, 0, 0, 139, 0,
- 0, 139, 139, 139, 104, 104, 104, 104, 0, 140,
- 103, 0, 140, 104, 88, 88, 88, 88, 0, 104,
- 104, 104, 104, 0, 0, 0, 140, 140, 0, 104,
- 104, 140, 104, 104, 104, 104, 104, 104, 104, 88,
- 88, 104, 88, 0, 104, 104, 104, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 140, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66, 66, 66, 66, 0, 153, 0, 0,
- 153, 66, 0, 0, 0, 0, 0, 66, 66, 66,
- 66, 0, 0, 0, 153, 153, 0, 66, 66, 153,
- 66, 66, 66, 66, 66, 66, 66, 0, 0, 66,
- 0, 0, 66, 66, 66, 69, 69, 69, 69, 0,
- 110, 0, 0, 110, 69, 0, 0, 0, 0, 153,
- 69, 69, 69, 69, 0, 0, 0, 110, 110, 0,
- 69, 69, 110, 69, 69, 69, 69, 69, 69, 69,
- 0, 0, 69, 0, 0, 69, 69, 69, 0, 103,
- 103, 103, 103, 0, 117, 0, 0, 117, 103, 0,
- 0, 0, 110, 0, 103, 103, 103, 103, 0, 0,
- 0, 117, 117, 0, 103, 103, 117, 103, 103, 103,
- 103, 103, 103, 103, 0, 0, 103, 0, 0, 103,
- 103, 103, 0, 0, 0, 0, 0, 101, 0, 0,
- 101, 0, 0, 0, 0, 0, 117, 0, 0, 0,
- 0, 0, 0, 0, 101, 101, 0, 138, 0, 101,
- 138, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 140, 140, 140, 140, 138, 138, 0, 0, 0, 140,
- 0, 0, 0, 0, 0, 140, 140, 140, 140, 101,
- 0, 0, 0, 0, 0, 140, 140, 0, 140, 140,
- 140, 140, 140, 140, 140, 95, 0, 140, 95, 138,
- 140, 140, 140, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 95, 95, 0, 0, 0, 95, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 153, 153,
- 153, 153, 0, 96, 0, 0, 96, 153, 0, 0,
- 0, 0, 0, 153, 153, 153, 153, 95, 0, 0,
- 96, 96, 0, 153, 153, 96, 153, 153, 153, 153,
- 153, 153, 153, 0, 0, 153, 0, 0, 153, 153,
- 153, 110, 110, 110, 110, 0, 0, 0, 0, 0,
- 110, 0, 0, 0, 0, 96, 110, 110, 110, 110,
- 0, 0, 0, 0, 0, 0, 110, 110, 0, 110,
- 110, 110, 110, 110, 110, 110, 0, 0, 110, 0,
- 0, 110, 110, 110, 0, 117, 117, 117, 117, 0,
- 97, 0, 0, 97, 117, 0, 0, 0, 0, 0,
- 117, 117, 117, 117, 0, 0, 0, 97, 97, 0,
- 117, 117, 97, 117, 117, 117, 117, 117, 117, 117,
- 0, 0, 117, 0, 0, 117, 117, 117, 101, 101,
- 101, 101, 0, 0, 0, 0, 0, 101, 0, 0,
- 0, 0, 97, 101, 101, 101, 101, 0, 138, 138,
- 138, 138, 0, 101, 101, 93, 101, 101, 101, 101,
- 101, 101, 101, 107, 0, 101, 0, 112, 0, 0,
- 121, 0, 0, 138, 138, 0, 0, 128, 129, 130,
- 131, 132, 0, 0, 135, 136, 0, 0, 170, 0,
- 0, 143, 0, 0, 0, 0, 95, 95, 95, 95,
- 0, 93, 0, 0, 93, 95, 0, 0, 0, 0,
- 0, 95, 95, 95, 95, 0, 0, 186, 93, 93,
- 152, 95, 95, 93, 95, 95, 95, 95, 95, 95,
- 95, 0, 0, 0, 96, 96, 96, 96, 0, 0,
- 0, 0, 0, 96, 0, 0, 0, 0, 0, 96,
- 96, 96, 96, 93, 94, 0, 0, 94, 0, 96,
- 96, 0, 96, 96, 96, 96, 96, 96, 96, 0,
- 0, 94, 94, 0, 0, 0, 94, 0, 224, 225,
- 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
- 236, 237, 92, 0, 0, 92, 0, 0, 0, 0,
- 0, 0, 0, 251, 0, 0, 94, 0, 0, 92,
- 92, 0, 0, 0, 92, 0, 0, 0, 0, 0,
- 0, 97, 97, 97, 97, 0, 0, 0, 0, 0,
- 97, 0, 0, 0, 0, 0, 97, 97, 97, 97,
- 80, 0, 0, 80, 92, 0, 97, 97, 0, 97,
- 97, 97, 97, 97, 97, 97, 0, 80, 80, 0,
- 0, 0, 80, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 81, 0, 0, 81,
- 0, 0, 0, 308, 154, 155, 156, 157, 0, 0,
- 0, 0, 80, 81, 81, 0, 0, 0, 81, 161,
- 162, 163, 164, 165, 0, 0, 166, 0, 0, 167,
- 168, 169, 0, 0, 0, 0, 0, 0, 0, 0,
- 326, 82, 0, 0, 82, 0, 0, 0, 81, 0,
- 0, 0, 93, 93, 93, 93, 0, 0, 82, 82,
- 0, 93, 0, 82, 0, 0, 0, 93, 93, 93,
- 93, 0, 0, 0, 0, 0, 0, 93, 93, 0,
- 93, 93, 93, 93, 93, 93, 93, 0, 0, 0,
- 0, 0, 0, 82, 0, 143, 0, 0, 143, 0,
- 0, 0, 0, 0, 0, 94, 94, 94, 94, 0,
- 0, 0, 143, 143, 94, 0, 0, 143, 0, 0,
- 94, 94, 94, 94, 0, 0, 0, 0, 0, 0,
- 94, 94, 0, 94, 94, 94, 94, 94, 94, 94,
- 0, 0, 0, 92, 92, 92, 92, 143, 0, 0,
- 0, 0, 92, 0, 0, 0, 0, 0, 92, 92,
- 92, 92, 142, 0, 0, 142, 0, 0, 92, 92,
- 0, 92, 92, 92, 92, 92, 92, 92, 0, 142,
- 142, 0, 0, 0, 142, 0, 0, 0, 0, 0,
- 0, 80, 80, 80, 80, 79, 0, 0, 79, 0,
- 80, 0, 0, 0, 0, 0, 80, 80, 80, 80,
- 0, 0, 79, 79, 142, 131, 80, 80, 131, 80,
- 80, 80, 80, 80, 80, 80, 0, 81, 81, 81,
- 81, 0, 131, 131, 0, 0, 81, 131, 0, 0,
- 0, 0, 81, 81, 81, 81, 0, 79, 0, 0,
- 0, 0, 81, 81, 0, 81, 81, 81, 81, 81,
- 81, 102, 0, 0, 102, 0, 0, 131, 0, 0,
- 0, 0, 82, 82, 82, 82, 0, 0, 102, 102,
- 0, 82, 0, 102, 0, 0, 0, 82, 82, 0,
- 82, 170, 0, 0, 0, 0, 0, 82, 82, 0,
- 82, 82, 82, 82, 82, 82, 0, 67, 0, 0,
- 67, 0, 0, 102, 87, 0, 0, 87, 0, 0,
- 0, 0, 0, 152, 67, 67, 143, 143, 143, 143,
- 0, 87, 87, 0, 0, 143, 87, 0, 0, 0,
- 0, 143, 143, 0, 0, 0, 89, 0, 0, 89,
- 0, 143, 143, 0, 143, 143, 143, 143, 143, 67,
- 0, 0, 0, 89, 89, 0, 87, 0, 89, 0,
- 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 49, 53, 63, 51, 0, 0, 0, 0, 0,
+ 0, 0, 0, 54, 0, 55, 56, 0, 0, 0,
+ 22, 24, 25, 26, 27, 28, 0, 29, 30, 31,
+ 61, 0, 0, 32, 87, 0, 0, 87, 0, 0,
+ 0, 0, 0, 0, 38, 0, 39, 40, 41, 42,
+ 43, 87, 87, 0, 0, 44, 45, 46, 47, 48,
+ 49, 166, 0, 51, 0, 53, 0, 0, 0, 0,
+ 140, 0, 54, 140, 55, 56, 0, 24, 25, 26,
+ 27, 28, 0, 29, 30, 31, 87, 140, 140, 32,
+ 0, 0, 140, 148, 0, 0, 0, 0, 0, 0,
+ 38, 0, 39, 40, 41, 42, 43, 0, 0, 0,
+ 0, 44, 45, 46, 47, 48, 49, 0, 0, 51,
+ 140, 0, 140, 0, 0, 0, 0, 0, 54, 123,
+ 55, 56, 123, 24, 25, 26, 27, 28, 0, 29,
+ 30, 31, 0, 0, 0, 32, 123, 123, 0, 0,
+ 0, 123, 140, 0, 0, 0, 38, 0, 39, 40,
+ 41, 42, 43, 0, 0, 0, 0, 44, 45, 46,
+ 47, 48, 49, 0, 0, 51, 0, 0, 0, 123,
+ 0, 123, 0, 0, 54, 0, 55, 56, 0, 0,
+ 0, 0, 147, 0, 0, 147, 24, 25, 26, 27,
+ 28, 0, 29, 30, 31, 0, 0, 0, 32, 147,
+ 147, 123, 0, 0, 147, 0, 0, 0, 0, 38,
+ 0, 39, 40, 41, 42, 43, 0, 0, 0, 0,
+ 44, 45, 46, 47, 48, 49, 0, 0, 51, 0,
+ 133, 0, 147, 133, 147, 0, 0, 54, 0, 55,
+ 56, 0, 0, 0, 0, 0, 0, 133, 133, 152,
+ 153, 0, 133, 0, 0, 87, 87, 87, 87, 0,
+ 0, 0, 0, 0, 147, 160, 161, 0, 0, 162,
+ 0, 0, 163, 164, 165, 0, 0, 0, 0, 0,
+ 87, 87, 133, 87, 0, 0, 0, 0, 0, 0,
+ 0, 140, 140, 140, 140, 0, 108, 0, 0, 108,
+ 140, 0, 0, 0, 0, 0, 140, 140, 140, 140,
+ 0, 0, 133, 108, 108, 0, 140, 140, 108, 140,
+ 140, 140, 140, 140, 140, 140, 0, 0, 140, 0,
+ 0, 140, 140, 140, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 108, 0, 108, 0,
+ 123, 123, 123, 123, 0, 149, 0, 0, 149, 123,
+ 0, 0, 0, 0, 0, 123, 123, 123, 123, 0,
+ 0, 0, 149, 149, 0, 123, 123, 149, 123, 123,
+ 123, 123, 123, 123, 123, 0, 0, 123, 0, 0,
+ 123, 123, 123, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 149, 0, 0,
+ 0, 0, 0, 147, 147, 147, 147, 0, 0, 0,
+ 0, 0, 147, 0, 0, 0, 0, 0, 147, 147,
+ 147, 147, 0, 0, 0, 0, 0, 149, 147, 147,
+ 0, 147, 147, 147, 147, 147, 147, 147, 0, 0,
+ 147, 0, 0, 147, 147, 147, 0, 0, 0, 0,
+ 0, 133, 133, 133, 133, 0, 150, 0, 0, 0,
+ 133, 0, 0, 0, 0, 0, 133, 133, 133, 133,
+ 0, 0, 0, 150, 150, 0, 133, 133, 150, 133,
+ 133, 133, 133, 133, 133, 133, 0, 0, 133, 0,
+ 0, 133, 133, 133, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 150, 0, 150, 0,
+ 0, 0, 0, 0, 0, 0, 0, 108, 108, 108,
+ 108, 0, 0, 0, 0, 0, 108, 0, 0, 0,
+ 0, 0, 108, 108, 108, 108, 0, 0, 150, 0,
+ 0, 0, 108, 108, 0, 108, 108, 108, 108, 108,
+ 108, 108, 0, 0, 108, 0, 0, 108, 108, 108,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 142, 142, 142, 142, 0, 89, 170,
- 0, 0, 142, 0, 0, 159, 0, 0, 142, 142,
- 0, 0, 0, 0, 0, 0, 0, 0, 142, 142,
- 0, 142, 142, 142, 142, 142, 79, 79, 79, 79,
- 0, 152, 0, 170, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 131, 131, 131, 131,
- 0, 79, 79, 0, 0, 131, 0, 0, 0, 0,
- 0, 131, 131, 0, 0, 152, 0, 0, 0, 0,
- 0, 131, 131, 0, 131, 131, 131, 131, 131, 0,
- 0, 0, 0, 0, 0, 0, 0, 154, 155, 156,
- 157, 0, 102, 102, 102, 102, 0, 0, 0, 0,
- 0, 102, 0, 162, 163, 164, 165, 102, 102, 166,
- 0, 0, 167, 168, 169, 0, 0, 102, 102, 0,
- 102, 102, 102, 102, 102, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67, 67,
- 67, 67, 0, 0, 0, 87, 87, 87, 87, 0,
- 0, 0, 0, 0, 87, 0, 0, 0, 0, 0,
- 0, 0, 0, 67, 67, 0, 0, 0, 0, 0,
- 87, 87, 0, 87, 87, 87, 87, 89, 89, 89,
- 89, 0, 0, 0, 0, 0, 89, 0, 0, 153,
- 0, 0, 0, 0, 0, 154, 155, 156, 157, 0,
- 0, 0, 89, 89, 0, 89, 89, 89, 158, 160,
- 161, 162, 163, 164, 165, 0, 0, 166, 0, 0,
- 167, 168, 169, 153, 0, 0, 0, 0, 0, 154,
- 155, 156, 157, 0, 0, 0, 0, 67, 0, 0,
- 0, 81, 0, 160, 161, 162, 163, 164, 165, 0,
- 0, 166, 0, 0, 167, 168, 169, 97, 99, 101,
- 103, 0, 0, 0, 0, 0, 111, 0, 0, 120,
+ 0, 0, 0, 0, 0, 0, 149, 149, 149, 149,
+ 0, 135, 0, 0, 0, 149, 0, 0, 0, 0,
+ 0, 149, 149, 149, 149, 0, 0, 0, 135, 135,
+ 0, 149, 149, 135, 149, 149, 149, 149, 149, 149,
+ 149, 0, 0, 149, 0, 0, 149, 149, 149, 0,
+ 89, 89, 0, 0, 100, 0, 0, 100, 0, 0,
+ 0, 135, 102, 135, 86, 0, 0, 86, 110, 89,
+ 118, 100, 100, 0, 0, 89, 100, 0, 0, 0,
+ 0, 86, 86, 0, 0, 0, 86, 89, 89, 89,
+ 89, 0, 0, 135, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 100, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 86, 150, 150, 150,
+ 150, 0, 62, 0, 0, 62, 150, 0, 0, 0,
+ 0, 110, 150, 150, 150, 150, 100, 0, 0, 62,
+ 62, 0, 150, 150, 62, 150, 150, 150, 150, 150,
+ 150, 150, 0, 0, 150, 0, 0, 150, 150, 150,
+ 0, 0, 0, 0, 0, 65, 0, 0, 0, 0,
+ 0, 0, 0, 0, 62, 0, 0, 0, 0, 0,
+ 0, 0, 65, 65, 0, 0, 0, 65, 0, 0,
+ 233, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 62, 0, 0, 0, 0, 99,
+ 0, 0, 99, 0, 261, 65, 0, 65, 0, 0,
+ 0, 0, 0, 0, 0, 0, 99, 99, 0, 0,
+ 0, 99, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 135, 135, 135, 135, 0, 65, 0, 0,
+ 0, 135, 0, 0, 0, 0, 0, 135, 135, 135,
+ 135, 99, 0, 0, 0, 0, 0, 135, 135, 0,
+ 135, 135, 135, 135, 135, 135, 135, 0, 0, 135,
+ 0, 0, 135, 135, 135, 100, 100, 100, 100, 0,
+ 136, 99, 0, 136, 100, 86, 86, 86, 86, 0,
+ 100, 100, 100, 100, 86, 0, 0, 136, 136, 0,
+ 100, 100, 136, 100, 100, 100, 100, 100, 100, 100,
+ 86, 86, 100, 86, 86, 100, 100, 100, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 136, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 62, 62, 62, 62, 0, 149, 0,
+ 0, 149, 62, 0, 0, 0, 0, 0, 62, 62,
+ 62, 62, 0, 0, 0, 149, 149, 0, 62, 62,
+ 149, 62, 62, 62, 62, 62, 62, 62, 0, 0,
+ 62, 0, 0, 62, 62, 62, 65, 65, 65, 65,
+ 0, 106, 0, 0, 106, 65, 0, 0, 0, 0,
+ 149, 65, 65, 65, 65, 0, 0, 0, 106, 106,
+ 0, 65, 65, 106, 65, 65, 65, 65, 65, 65,
+ 65, 0, 0, 65, 0, 0, 65, 65, 65, 0,
+ 99, 99, 99, 99, 0, 113, 0, 0, 113, 99,
+ 0, 0, 0, 106, 0, 99, 99, 99, 99, 0,
+ 0, 0, 113, 113, 0, 99, 99, 113, 99, 99,
+ 99, 99, 99, 99, 99, 0, 0, 99, 0, 0,
+ 99, 99, 99, 0, 0, 0, 0, 0, 91, 0,
+ 0, 91, 0, 0, 0, 0, 0, 113, 0, 0,
+ 0, 0, 0, 0, 0, 91, 91, 0, 0, 0,
+ 91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 136, 136, 136, 136, 0, 92, 0, 0, 92,
+ 136, 0, 0, 0, 0, 0, 136, 136, 136, 136,
+ 91, 0, 0, 92, 92, 0, 136, 136, 92, 136,
+ 136, 136, 136, 136, 136, 136, 0, 0, 136, 0,
+ 0, 136, 136, 136, 93, 0, 0, 93, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 92, 0,
+ 0, 93, 93, 0, 0, 0, 93, 0, 0, 149,
+ 149, 149, 149, 0, 0, 0, 0, 0, 149, 0,
+ 0, 0, 0, 0, 149, 149, 149, 149, 0, 0,
+ 0, 0, 0, 0, 149, 149, 93, 149, 149, 149,
+ 149, 149, 149, 149, 0, 0, 149, 0, 0, 149,
+ 149, 149, 106, 106, 106, 106, 0, 89, 0, 0,
+ 89, 106, 0, 0, 0, 0, 0, 106, 106, 106,
+ 106, 0, 0, 0, 89, 89, 0, 106, 106, 89,
+ 106, 106, 106, 106, 106, 106, 106, 0, 0, 106,
+ 0, 0, 106, 106, 106, 0, 113, 113, 113, 113,
+ 0, 90, 0, 0, 90, 113, 0, 0, 0, 89,
+ 0, 113, 113, 113, 113, 0, 0, 0, 90, 90,
+ 0, 113, 113, 90, 113, 113, 113, 113, 113, 113,
+ 113, 0, 0, 113, 0, 0, 113, 113, 113, 91,
+ 91, 91, 91, 0, 88, 0, 0, 88, 91, 0,
+ 0, 0, 0, 90, 91, 91, 91, 91, 0, 0,
+ 0, 88, 88, 0, 91, 91, 88, 91, 91, 91,
+ 91, 91, 91, 91, 0, 0, 0, 92, 92, 92,
+ 92, 0, 76, 0, 0, 76, 92, 0, 0, 0,
+ 0, 0, 92, 92, 92, 92, 88, 0, 0, 76,
+ 76, 0, 92, 92, 76, 92, 92, 92, 92, 92,
+ 92, 92, 0, 0, 0, 93, 93, 93, 93, 0,
+ 77, 0, 0, 77, 93, 0, 0, 0, 0, 0,
+ 93, 93, 93, 93, 76, 0, 0, 77, 77, 0,
+ 93, 93, 77, 93, 93, 93, 93, 93, 93, 93,
+ 0, 0, 0, 0, 0, 0, 78, 0, 0, 78,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 77, 78, 78, 0, 0, 0, 78, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 89, 89,
+ 89, 89, 0, 79, 0, 0, 79, 89, 0, 0,
+ 0, 0, 0, 89, 89, 89, 89, 0, 78, 0,
+ 79, 79, 0, 89, 89, 79, 89, 89, 89, 89,
+ 89, 89, 89, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 90, 90, 90, 90, 0, 139, 0, 0,
+ 139, 90, 0, 0, 0, 79, 0, 90, 90, 90,
+ 90, 0, 0, 0, 139, 139, 0, 90, 90, 139,
+ 90, 90, 90, 90, 90, 90, 90, 0, 0, 0,
+ 0, 0, 0, 0, 0, 88, 88, 88, 88, 0,
+ 138, 0, 0, 138, 88, 0, 0, 0, 0, 139,
+ 88, 88, 88, 88, 0, 0, 0, 138, 138, 0,
+ 88, 88, 138, 88, 88, 88, 88, 88, 88, 88,
+ 0, 0, 0, 76, 76, 76, 76, 0, 127, 0,
+ 0, 127, 76, 0, 0, 0, 0, 0, 76, 76,
+ 76, 76, 138, 0, 0, 127, 127, 0, 76, 76,
+ 127, 76, 76, 76, 76, 76, 76, 76, 0, 0,
+ 0, 77, 77, 77, 77, 0, 98, 0, 0, 98,
+ 77, 0, 0, 0, 0, 0, 77, 77, 77, 77,
+ 127, 0, 0, 98, 98, 0, 77, 77, 98, 77,
+ 77, 77, 77, 77, 77, 0, 0, 78, 78, 78,
+ 78, 0, 82, 0, 0, 82, 78, 0, 0, 0,
+ 0, 0, 78, 78, 0, 78, 0, 0, 98, 82,
+ 82, 0, 78, 78, 82, 78, 78, 78, 78, 78,
+ 78, 0, 0, 0, 79, 79, 79, 79, 0, 83,
+ 0, 0, 83, 79, 0, 0, 0, 0, 0, 79,
+ 79, 0, 0, 0, 82, 0, 83, 83, 0, 79,
+ 79, 83, 79, 79, 79, 79, 79, 79, 0, 0,
+ 166, 0, 0, 0, 0, 0, 0, 0, 139, 139,
+ 139, 139, 0, 85, 0, 0, 85, 139, 0, 0,
+ 0, 83, 0, 139, 139, 0, 64, 0, 0, 64,
+ 85, 85, 148, 139, 139, 85, 139, 139, 139, 139,
+ 139, 0, 0, 64, 64, 134, 0, 0, 134, 0,
+ 0, 138, 138, 138, 138, 75, 0, 0, 75, 0,
+ 138, 0, 134, 134, 0, 85, 138, 138, 0, 0,
+ 0, 0, 75, 75, 0, 0, 138, 138, 64, 138,
+ 138, 138, 138, 138, 0, 63, 0, 0, 63, 127,
+ 127, 127, 127, 0, 0, 0, 0, 134, 127, 0,
+ 0, 0, 63, 63, 127, 127, 281, 75, 0, 0,
+ 0, 155, 0, 0, 127, 127, 0, 127, 127, 127,
+ 127, 127, 0, 0, 0, 0, 0, 98, 98, 98,
+ 98, 0, 0, 0, 0, 0, 98, 63, 0, 166,
+ 0, 0, 98, 98, 0, 155, 0, 0, 0, 0,
+ 0, 0, 98, 98, 0, 98, 98, 98, 98, 98,
+ 0, 0, 0, 82, 82, 82, 82, 0, 0, 0,
+ 0, 148, 82, 166, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82, 82,
+ 0, 82, 82, 82, 82, 82, 150, 151, 152, 153,
+ 83, 83, 83, 83, 0, 148, 0, 0, 0, 83,
+ 0, 157, 158, 159, 160, 161, 0, 0, 162, 0,
+ 0, 163, 164, 165, 166, 83, 83, 0, 83, 83,
+ 83, 83, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 85, 85, 85, 85, 0, 0,
+ 0, 0, 0, 85, 0, 0, 148, 64, 64, 64,
+ 64, 0, 0, 0, 0, 0, 0, 0, 0, 85,
+ 85, 0, 85, 85, 85, 0, 134, 134, 134, 134,
+ 0, 0, 64, 64, 93, 0, 75, 75, 75, 75,
+ 0, 0, 103, 0, 0, 0, 108, 0, 0, 117,
+ 0, 134, 134, 0, 0, 0, 124, 125, 126, 127,
+ 128, 75, 75, 131, 132, 0, 63, 63, 63, 63,
+ 139, 0, 0, 0, 0, 0, 0, 0, 0, 149,
+ 0, 0, 0, 0, 0, 150, 151, 152, 153, 0,
+ 0, 63, 63, 0, 0, 0, 182, 0, 154, 156,
+ 157, 158, 159, 160, 161, 0, 0, 162, 0, 0,
+ 163, 164, 165, 149, 0, 0, 0, 0, 0, 150,
+ 151, 152, 153, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 154, 156, 157, 158, 159, 160, 161, 0,
+ 0, 162, 0, 0, 163, 164, 165, 0, 0, 0,
+ 0, 0, 0, 216, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, 227, 228, 229, 0, 0, 0,
+ 150, 151, 152, 153, 0, 0, 0, 0, 243, 0,
+ 0, 0, 0, 0, 0, 0, 158, 159, 160, 161,
+ 0, 0, 162, 0, 0, 163, 164, 165, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 179, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 187, 0,
- 0, 190, 0, 192, 0, 194, 0, 196, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 215, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 294, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 253, 0, 0, 0, 0,
- 0, 0, 260,
+ 0, 0, 0, 0, 0, 309,
};
dEXT short yycheck[] = { 13,
- 36, 198, 196, 36, 40, 93, 85, 41, 91, 59,
- 44, 36, 93, 41, 123, 41, 44, 185, 41, 41,
- 40, 91, 40, 257, 93, 59, 257, 40, 40, 40,
- 58, 59, 46, 59, 41, 63, 59, 44, 93, 257,
- 123, 276, 277, 57, 41, 26, 41, 61, 91, 41,
- 59, 58, 59, 123, 44, 41, 63, 41, 91, 93,
- 59, 59, 43, 44, 0, 93, 96, 40, 98, 50,
- 100, 91, 102, 90, 104, 105, 41, 59, 40, 59,
- 123, 62, 63, 64, 65, 282, 93, 266, 267, 268,
- 123, 270, 271, 40, 59, 109, 110, 33, 123, 40,
- 36, 37, 38, 123, 40, 123, 42, 43, 125, 45,
- 123, 123, 123, 59, 123, 59, 278, 314, 123, 316,
- 297, 298, 41, 59, 123, 44, 59, 40, 64, 110,
- 298, 41, 146, 147, 148, 149, 150, 151, 152, 59,
- 44, 6, 336, 8, 63, 339, 123, 59, 257, 59,
- 41, 257, 260, 40, 40, 91, 170, 171, 172, 173,
- 174, 175, 176, 0, 358, 182, 31, 32, 59, 199,
- 187, 185, 91, 41, 41, 189, 40, 191, 41, 36,
- 125, 195, 91, 91, 198, 125, 91, 123, 91, 125,
- 126, 205, 59, 207, 208, 41, 33, 93, 212, 36,
- 37, 38, 298, 40, 123, 42, 43, 257, 45, 297,
- 298, 93, 40, 59, 123, 59, 297, 298, 41, 0,
- 123, 41, 59, 41, 238, 258, 240, 64, 297, 298,
- 41, 314, 257, 41, 123, 93, 44, 262, 272, 273,
- 274, 275, 297, 298, 272, 273, 274, 275, 40, 40,
- 58, 59, 33, 281, 91, 36, 37, 38, 337, 40,
- 296, 42, 43, 297, 45, 272, 273, 274, 275, 297,
- 298, 41, 300, 301, 281, 297, 298, 41, 59, 293,
- 287, 288, 59, 64, 298, 93, 123, 125, 125, 126,
- 297, 298, 125, 300, 301, 302, 303, 304, 305, 125,
- 297, 298, 297, 298, 318, 297, 298, 297, 298, 125,
- 91, 297, 298, 297, 298, 297, 298, 297, 298, 41,
+ 41, 36, 36, 85, 93, 91, 40, 59, 41, 93,
+ 41, 44, 41, 59, 40, 44, 123, 93, 181, 59,
+ 90, 93, 41, 91, 257, 41, 59, 36, 321, 58,
+ 59, 41, 46, 93, 63, 91, 0, 123, 59, 190,
+ 257, 318, 319, 57, 257, 41, 323, 61, 40, 59,
+ 40, 121, 297, 298, 40, 123, 91, 41, 40, 352,
+ 93, 40, 339, 59, 93, 91, 343, 123, 6, 33,
+ 8, 123, 36, 37, 38, 59, 40, 40, 42, 43,
+ 41, 45, 41, 123, 278, 41, 40, 44, 123, 41,
+ 40, 105, 106, 31, 32, 59, 123, 123, 276, 277,
+ 64, 41, 44, 59, 0, 41, 41, 59, 178, 93,
+ 59, 40, 59, 183, 123, 59, 59, 268, 59, 59,
+ 59, 284, 260, 59, 59, 123, 257, 91, 142, 143,
+ 144, 145, 146, 147, 148, 40, 40, 33, 93, 41,
+ 36, 37, 38, 59, 40, 40, 42, 43, 299, 45,
+ 257, 125, 166, 167, 168, 169, 170, 171, 172, 123,
+ 0, 125, 126, 59, 91, 36, 41, 181, 64, 91,
+ 298, 185, 186, 40, 188, 59, 190, 125, 41, 41,
+ 41, 41, 41, 197, 40, 199, 200, 93, 91, 41,
+ 204, 342, 125, 33, 59, 91, 36, 37, 38, 125,
+ 40, 125, 42, 43, 125, 45, 123, 41, 297, 298,
+ 125, 257, 41, 297, 298, 41, 230, 59, 232, 59,
+ 123, 297, 298, 258, 64, 297, 298, 123, 314, 125,
+ 126, 41, 41, 40, 123, 44, 41, 297, 298, 272,
+ 273, 274, 275, 272, 273, 274, 275, 329, 257, 58,
+ 59, 91, 281, 262, 63, 41, 297, 298, 287, 288,
+ 289, 290, 296, 59, 297, 279, 297, 298, 297, 298,
+ 284, 300, 301, 302, 303, 304, 305, 306, 297, 298,
+ 309, 297, 298, 123, 93, 41, 126, 301, 272, 273,
+ 274, 275, 256, 257, 258, 259, 260, 261, 59, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 41, 297, 298, 279, 280, 41, 282, 283,
+ 284, 285, 286, 59, 338, 63, 41, 291, 292, 293,
+ 294, 295, 296, 13, 338, 299, 297, 298, 297, 298,
+ 297, 298, 297, 298, 308, 143, 310, 311, 297, 298,
+ 297, 298, 188, 91, 297, 298, 297, 298, 297, 298,
256, 257, 258, 259, 260, 261, 125, 263, 264, 265,
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- 41, 355, 123, 279, 280, 126, 282, 283, 284, 285,
- 286, 297, 298, 297, 298, 291, 292, 293, 294, 295,
- 296, 41, 281, 299, 297, 298, 41, 59, 287, 288,
- 289, 290, 308, 41, 310, 311, 41, 297, 298, 123,
- 289, 300, 301, 302, 303, 304, 305, 306, 41, 59,
- 309, 59, 41, 312, 313, 314, 59, 306, 41, 41,
- 309, 297, 298, 312, 313, 314, 309, 59, 41, 312,
- 313, 314, 13, 147, 95, 297, 298, 355, 91, 256,
- 257, 258, 259, 260, 261, 93, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 297,
- 298, 318, 279, 280, 195, 282, 283, 284, 285, 286,
- 123, -1, -1, -1, 291, 292, 293, 294, 295, 296,
- -1, -1, 299, 91, 272, 273, 274, 275, -1, -1,
- -1, 308, -1, 310, 311, 256, 257, 258, 259, 260,
- 261, 125, 263, 264, 265, -1, -1, -1, 269, 297,
- 298, 272, 273, 274, 275, 123, -1, -1, 279, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, 91,
- 291, 292, 293, 294, 295, 296, -1, -1, 299, -1,
- -1, -1, 125, -1, 91, -1, -1, 308, 33, 310,
- 311, 36, 37, 38, -1, 40, 41, 42, 43, 44,
- 45, 123, -1, 25, 26, 190, -1, 192, 272, 273,
- 274, 275, -1, 58, 59, 37, 123, -1, 63, 64,
- -1, 43, 44, 45, -1, -1, -1, -1, 50, -1,
- -1, -1, -1, 297, 298, -1, -1, -1, -1, -1,
- 62, 63, 64, 65, -1, -1, 91, -1, 93, 33,
- -1, -1, 36, 37, 38, -1, 40, 41, 42, 43,
- 44, 45, -1, -1, 272, 273, 274, 275, -1, -1,
- -1, -1, -1, -1, 58, 59, 289, 290, 123, 63,
- 64, 126, 266, 267, 268, -1, 270, 271, 110, 297,
- 298, -1, 305, 306, -1, -1, 309, -1, -1, 312,
- 313, 314, -1, -1, -1, -1, -1, -1, 33, 93,
- -1, 36, 37, 38, -1, 40, -1, 42, 43, 287,
- 45, 289, 290, 266, 267, 268, -1, 270, 271, -1,
- -1, -1, -1, -1, 59, -1, -1, 305, 306, 64,
- -1, 309, 126, -1, 312, 313, 314, 169, -1, 334,
- 335, -1, -1, -1, -1, -1, 341, -1, -1, 41,
- -1, -1, 44, -1, -1, -1, 91, 289, 290, -1,
- -1, 356, -1, -1, 359, 197, 58, 59, -1, -1,
- -1, 63, -1, -1, 306, -1, -1, 309, -1, -1,
- 312, 313, 314, -1, -1, -1, -1, -1, 123, 306,
- -1, 126, 309, -1, -1, 312, 313, 314, -1, -1,
- -1, 93, 257, 258, 259, 260, 261, -1, 263, 264,
- 265, -1, -1, -1, 269, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, -1, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, -1, 308, 309, 310, 311, 312, 313, 314,
- -1, -1, -1, 257, 258, 259, 260, 261, -1, 263,
- 264, 265, -1, -1, -1, 269, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, -1, 280, 281, 282, 283,
+ 125, 297, 298, 279, 280, 123, 282, 283, 284, 285,
+ 286, 297, 298, 301, 95, 291, 292, 293, 294, 295,
+ 296, -1, -1, 299, -1, -1, 309, -1, -1, 312,
+ 313, 314, 308, -1, 310, 311, 256, 257, 258, 259,
+ 260, 261, -1, 263, 264, 265, -1, -1, -1, 269,
+ 91, -1, 272, 273, 274, 275, -1, -1, -1, 279,
+ 280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
+ 91, 291, 292, 293, 294, 295, 296, -1, -1, 299,
+ -1, -1, 123, 272, 273, 274, 275, -1, 308, 33,
+ 310, 311, 36, 37, 38, -1, 40, 41, 42, 43,
+ 44, 45, 123, -1, -1, -1, -1, -1, 297, 298,
+ -1, 300, -1, -1, 58, 59, -1, -1, -1, 63,
+ 64, 266, 267, 268, -1, 270, 271, 266, 267, 268,
+ -1, 270, 271, 96, 97, 98, 99, 100, 101, -1,
+ -1, 266, 267, 268, -1, 270, 271, 91, -1, 93,
+ 33, -1, -1, 36, 37, 38, -1, 40, 41, 42,
+ 43, 44, 45, 281, 272, 273, 274, 275, -1, 287,
+ 288, 289, 290, -1, -1, 58, 59, -1, -1, 123,
+ 63, 64, 126, 301, 302, 303, 304, 305, 306, 297,
+ 298, 309, 43, -1, 312, 313, 314, -1, -1, -1,
+ 51, -1, -1, -1, -1, -1, -1, -1, -1, 33,
+ 93, -1, 36, 37, 38, -1, 40, -1, 42, 43,
+ 26, 45, -1, -1, -1, -1, -1, -1, 191, -1,
+ -1, -1, -1, -1, -1, 59, -1, 43, 44, 90,
+ 64, -1, -1, 126, 50, -1, 287, 288, 289, 290,
+ 296, 297, 298, -1, 300, -1, 62, 63, 64, 65,
+ 41, -1, 113, 44, 305, 306, -1, 91, 309, -1,
+ 121, 312, 313, 314, -1, -1, -1, 58, 59, 325,
+ -1, -1, 63, -1, -1, 306, 332, -1, 309, -1,
+ 336, 312, 313, 314, -1, -1, -1, -1, -1, 123,
+ 106, -1, 126, 349, 350, -1, -1, -1, -1, -1,
+ -1, -1, 93, 257, 258, 259, 260, 261, -1, 263,
+ 264, 265, -1, -1, -1, 269, -1, 178, 272, 273,
+ 274, 275, 183, -1, -1, -1, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
304, 305, 306, -1, 308, 309, 310, 311, 312, 313,
- 314, 256, 257, 258, 259, 260, 261, -1, 263, 264,
- 265, -1, -1, -1, 269, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, 279, 280, -1, 282, 283, 284,
+ 314, -1, -1, -1, 257, 258, 259, 260, 261, -1,
+ 263, 264, 265, -1, -1, -1, 269, -1, -1, 272,
+ 273, 274, 275, -1, -1, -1, -1, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
+ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, -1, 308, 309, 310, 311, 312,
+ 313, 314, 256, 257, 258, 259, 260, 261, -1, 263,
+ 264, 265, -1, -1, -1, 269, -1, -1, 272, 273,
+ 274, 275, -1, -1, -1, 279, 280, -1, 282, 283,
+ 284, 285, 286, -1, -1, -1, 91, 291, 292, 293,
+ 294, 295, 296, 33, -1, 299, 36, 37, 38, -1,
+ 40, -1, 42, 43, 308, 45, 310, 311, -1, -1,
+ -1, 272, 273, 274, 275, -1, -1, -1, 123, 59,
+ 281, -1, -1, -1, 64, -1, 287, 288, 289, 290,
+ -1, -1, -1, -1, -1, -1, 297, 298, -1, 300,
+ 301, 302, 303, 304, 305, 306, -1, -1, 309, 33,
+ -1, 91, 36, 37, 38, -1, 40, -1, 42, 43,
+ -1, 45, -1, -1, -1, -1, 13, -1, -1, -1,
+ 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 64, -1, -1, 123, -1, -1, 126, -1, -1, -1,
+ -1, -1, -1, -1, -1, 42, -1, -1, 45, 91,
+ -1, -1, -1, -1, -1, 33, -1, 91, 36, 37,
+ 38, -1, 40, -1, 42, 43, -1, 45, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 123, -1, 80, -1, -1, 64, -1, -1, 123,
+ -1, -1, 126, -1, -1, -1, -1, 94, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 91, -1, -1, -1, -1, 33, -1,
+ -1, 36, 37, 38, -1, 40, -1, 42, 43, -1,
+ 45, -1, 287, -1, 289, 290, -1, -1, -1, -1,
+ -1, -1, -1, 140, -1, 123, -1, -1, 126, 64,
+ 305, 306, -1, -1, 309, -1, -1, 312, 313, 314,
+ -1, -1, -1, -1, -1, -1, 256, 257, 258, 259,
+ 260, 261, -1, 263, 264, 265, 91, -1, -1, 269,
+ 177, -1, 272, 273, 274, 275, -1, 184, -1, 279,
+ 280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
+ -1, 291, 292, 293, 294, 295, 296, 91, 123, 299,
+ -1, 126, -1, -1, -1, -1, -1, -1, 308, 41,
+ 310, 311, 44, 257, 258, 259, 260, 261, 262, 263,
+ 264, 265, -1, -1, 91, 269, -1, -1, -1, 123,
+ -1, 63, -1, -1, -1, -1, 280, 289, 282, 283,
+ 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
+ 294, 295, 296, -1, 306, 299, 123, 309, -1, 91,
+ 312, 313, 314, 41, 308, -1, 310, 311, -1, 257,
+ 258, 259, 260, 261, -1, 263, 264, 265, -1, -1,
+ -1, 269, -1, -1, -1, 63, -1, -1, -1, -1,
+ -1, 123, 280, -1, 282, 283, 284, 285, 286, -1,
+ -1, -1, -1, 291, 292, 293, 294, 295, 296, -1,
+ -1, 299, -1, 91, -1, -1, -1, -1, -1, -1,
+ 308, -1, 310, 311, -1, -1, -1, -1, -1, -1,
+ -1, -1, 257, 258, 259, 260, 261, -1, 263, 264,
+ 265, -1, -1, -1, 269, 123, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 280, -1, 282, 283, 284,
285, 286, -1, -1, -1, 91, 291, 292, 293, 294,
295, 296, 33, -1, 299, 36, 37, 38, -1, 40,
- -1, 42, 43, 308, 45, 310, 311, 43, -1, -1,
- 272, 273, 274, 275, -1, 51, -1, 123, 59, 281,
- -1, -1, -1, 64, -1, 287, 288, 289, 290, -1,
- -1, -1, -1, -1, -1, 297, 298, -1, 300, 301,
- 302, 303, 304, 305, 306, -1, -1, 309, 33, -1,
- 91, 36, 37, 38, 90, 40, -1, 42, 43, -1,
- 45, -1, -1, -1, -1, -1, -1, -1, 309, 310,
- 311, -1, -1, -1, 315, -1, 317, -1, -1, 64,
- -1, 117, 123, -1, -1, 126, -1, -1, -1, 125,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 343, -1, 33, -1, 91, 36, 37, 38,
- 351, 40, 353, 42, 43, -1, 45, -1, -1, -1,
- -1, -1, -1, 364, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 64, -1, -1, 123, -1,
- -1, 126, -1, -1, -1, -1, 182, -1, -1, -1,
- -1, 187, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 91, -1, -1, -1, -1, 33, -1, -1,
- 36, 37, 38, -1, 40, -1, 42, 43, -1, 45,
+ -1, 42, 43, 308, 45, 310, 311, -1, -1, -1,
+ -1, -1, -1, 287, 288, 289, 290, 123, 59, -1,
+ -1, -1, -1, 64, -1, -1, -1, 301, 302, 303,
+ 304, 305, 306, -1, -1, 309, -1, -1, 312, 313,
+ 314, -1, 289, 290, -1, -1, -1, -1, 33, -1,
+ 91, 36, 37, 38, -1, 40, 41, 42, 43, 306,
+ 45, -1, 309, -1, -1, 312, 313, 314, -1, 281,
+ -1, -1, -1, -1, -1, 287, 288, 289, 290, 64,
+ -1, -1, -1, -1, -1, 126, -1, -1, 300, 301,
+ 302, 303, 304, 305, 306, -1, -1, 309, -1, -1,
+ 312, 313, 314, -1, 33, -1, 91, 36, 37, 38,
+ -1, 40, -1, 42, 43, -1, 45, -1, -1, -1,
+ -1, -1, -1, 281, -1, -1, -1, -1, -1, 287,
+ 288, 289, 290, -1, -1, 64, -1, -1, -1, -1,
+ -1, 126, 300, 301, 302, 303, 304, 305, 306, -1,
+ -1, 309, -1, -1, 312, 313, 314, -1, -1, -1,
+ -1, -1, 91, 33, 93, -1, 36, 37, 38, -1,
+ 40, 41, 42, 43, -1, 45, -1, -1, -1, -1,
-1, 287, 288, 289, 290, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 123, -1, -1, 126, 64, 305,
+ -1, -1, -1, -1, 64, -1, -1, 126, 304, 305,
306, -1, -1, 309, -1, -1, 312, 313, 314, -1,
- -1, -1, -1, -1, -1, 256, 257, 258, 259, 260,
- 261, -1, 263, 264, 265, 91, -1, -1, 269, -1,
- -1, 272, 273, 274, 275, -1, -1, -1, 279, 280,
+ -1, -1, 41, -1, -1, 44, 257, 258, 259, 260,
+ 261, 91, 263, 264, 265, -1, -1, -1, 269, 58,
+ 59, -1, -1, -1, 63, -1, -1, -1, -1, 280,
-1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, 123, 299, -1,
- 126, -1, 91, -1, -1, -1, 41, 308, -1, 310,
- 311, -1, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, -1, -1, -1, 269, -1, -1, -1, 63, -1,
- -1, -1, -1, -1, 123, 280, -1, 282, 283, 284,
+ 291, 292, 293, 294, 295, 296, 126, -1, 299, -1,
+ -1, -1, -1, -1, 93, -1, -1, 308, 41, 310,
+ 311, 44, 257, 258, 259, 260, 261, -1, 263, 264,
+ 265, -1, -1, -1, 269, 58, 59, -1, -1, -1,
+ 63, -1, -1, -1, -1, 280, -1, 282, 283, 284,
285, 286, -1, -1, -1, -1, 291, 292, 293, 294,
- 295, 296, -1, -1, 299, -1, 91, -1, -1, -1,
- -1, -1, -1, 308, -1, 310, 311, -1, 257, 258,
- 259, 260, 261, -1, 263, 264, 265, -1, -1, -1,
- 269, 58, -1, -1, -1, -1, 63, -1, 123, -1,
- -1, 280, -1, 282, 283, 284, 285, 286, -1, -1,
- -1, -1, 291, 292, 293, 294, 295, 296, -1, -1,
- 299, -1, -1, -1, 91, -1, -1, -1, -1, 308,
- -1, 310, 311, -1, -1, -1, -1, 41, -1, -1,
- 44, 257, 258, 259, 260, 261, -1, 263, 264, 265,
- -1, -1, -1, 269, 58, 59, 123, -1, -1, 63,
- -1, -1, -1, -1, 280, -1, 282, 283, 284, 285,
- 286, -1, -1, -1, -1, 291, 292, 293, 294, 295,
- 296, 33, -1, 299, 36, 37, 38, -1, 40, 93,
- 42, 43, 308, 45, 310, 311, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 59, 287, 288,
- 289, 290, 64, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 301, 302, 303, 304, 305, 306, -1, -1,
- 309, -1, -1, 312, 313, 314, -1, 33, -1, 91,
- 36, 37, 38, -1, 40, 41, 42, 43, -1, 45,
- -1, -1, -1, -1, -1, -1, 281, -1, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, -1, 64, -1,
- -1, -1, -1, -1, 126, 300, 301, 302, 303, 304,
- 305, 306, -1, -1, 309, -1, -1, 312, 313, 314,
- -1, -1, -1, 33, -1, 91, 36, 37, 38, -1,
- 40, -1, 42, 43, -1, 45, -1, -1, -1, -1,
- -1, -1, -1, -1, 281, -1, -1, -1, -1, -1,
- 287, 288, 289, 290, 64, -1, -1, -1, -1, -1,
- 126, -1, -1, 300, 301, 302, 303, 304, 305, 306,
- -1, -1, 309, -1, -1, 312, 313, 314, -1, -1,
- -1, 91, 33, 93, -1, 36, 37, 38, -1, 40,
- 41, 42, 43, -1, 45, -1, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, -1, -1, 281, -1, -1,
- -1, -1, -1, 64, 288, -1, 126, -1, -1, -1,
- -1, -1, -1, 297, 298, -1, 300, 301, 302, 303,
- 304, 41, -1, -1, 44, 257, 258, 259, 260, 261,
- 91, 263, 264, 265, -1, -1, -1, 269, 58, 59,
- -1, -1, -1, 63, -1, -1, -1, -1, 280, -1,
- 282, 283, 284, 285, 286, -1, -1, -1, -1, 291,
- 292, 293, 294, 295, 296, 126, -1, 299, -1, -1,
- -1, -1, -1, 93, -1, -1, 308, 41, 310, 311,
- 44, 257, 258, 259, 260, 261, -1, 263, 264, 265,
- -1, -1, -1, 269, 58, 59, -1, -1, -1, 63,
- -1, -1, -1, -1, 280, -1, 282, 283, 284, 285,
- 286, -1, -1, -1, -1, 291, 292, 293, 294, 295,
- 296, -1, -1, 299, -1, -1, -1, -1, -1, 93,
- -1, -1, 308, -1, 310, 311, -1, 257, 258, 259,
- 260, 261, -1, 263, 264, 265, -1, 33, -1, 269,
- 36, 37, 38, -1, 40, 41, 42, 43, -1, 45,
+ 295, 296, -1, -1, 299, -1, -1, -1, -1, -1,
+ 93, -1, -1, 308, -1, 310, 311, -1, 257, 258,
+ 259, 260, 261, -1, 263, 264, 265, -1, 33, -1,
+ 269, 36, 37, 38, -1, 40, 41, 42, 43, -1,
+ 45, 280, -1, 282, 283, 284, 285, 286, -1, -1,
+ -1, -1, 291, 292, 293, 294, 295, 296, -1, 64,
+ 299, -1, -1, -1, -1, -1, -1, -1, -1, 308,
+ -1, 310, 311, -1, -1, -1, -1, 257, 258, 259,
+ 260, 261, -1, 263, 264, 265, 91, 33, -1, 269,
+ 36, 37, 38, -1, 40, -1, 42, 43, -1, 45,
280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
-1, 291, 292, 293, 294, 295, 296, -1, 64, 299,
- -1, -1, -1, -1, -1, -1, -1, -1, 308, -1,
- 310, 311, -1, -1, -1, -1, 257, 258, 259, 260,
- 261, -1, 263, 264, 265, 91, 33, -1, 269, 36,
- 37, 38, -1, 40, -1, 42, 43, -1, 45, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, 64, 299, -1,
- 126, -1, -1, -1, -1, -1, -1, 308, -1, 310,
- 311, -1, 272, 273, 274, 275, -1, -1, -1, -1,
- -1, 281, 33, -1, 91, 36, 37, 38, -1, 40,
- 41, 42, 43, -1, 45, -1, -1, 297, 298, -1,
- 300, 301, 302, 303, 304, -1, -1, -1, -1, -1,
- -1, -1, -1, 64, -1, -1, -1, -1, -1, 126,
- -1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, -1, -1, 281, 33, -1,
- 91, 36, 37, 38, -1, 40, 41, 42, 43, -1,
- 45, -1, -1, 297, 298, -1, 300, 301, 302, 303,
- 304, -1, -1, -1, -1, -1, -1, -1, -1, 64,
- -1, -1, -1, -1, -1, 126, -1, -1, -1, -1,
+ -1, 126, -1, -1, -1, -1, -1, -1, 308, -1,
+ 310, 311, -1, 272, 273, 274, 275, -1, -1, -1,
+ -1, -1, 281, 33, -1, 91, 36, 37, 38, 288,
+ 40, 41, 42, 43, -1, 45, -1, -1, 297, 298,
+ -1, 300, 301, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, 64, -1, -1, -1, -1, -1,
+ 126, -1, -1, -1, -1, -1, -1, -1, -1, 272,
+ 273, 274, 275, -1, -1, -1, -1, -1, 281, 33,
+ -1, 91, 36, 37, 38, -1, 40, 41, 42, 43,
+ -1, 45, -1, -1, 297, 298, -1, 300, 301, 302,
+ 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
+ 64, -1, -1, -1, -1, -1, 126, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 257, 258, 259, 260, 261, 91, 263, 264, 265,
- -1, 33, -1, 269, 36, 37, 38, -1, 40, -1,
- 42, 43, -1, 45, 280, -1, 282, 283, 284, 285,
- 286, -1, -1, -1, -1, 291, 292, 293, 294, 295,
- 296, 126, 64, 299, -1, -1, -1, -1, -1, -1,
- -1, -1, 308, -1, 310, 311, -1, -1, -1, 256,
- 257, 258, 259, 260, 261, -1, 263, 264, 265, 91,
- -1, -1, 269, 41, -1, -1, 44, -1, -1, -1,
- -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
- 58, 59, -1, -1, 291, 292, 293, 294, 295, 296,
- -1, -1, 299, -1, 126, -1, -1, -1, -1, 41,
- -1, 308, 44, 310, 311, -1, 257, 258, 259, 260,
- 261, -1, 263, 264, 265, 93, 58, 59, 269, -1,
- -1, 63, -1, -1, -1, -1, -1, -1, -1, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, -1, 299, 91,
- -1, 93, -1, -1, -1, -1, -1, 308, 41, 310,
- 311, 44, 257, 258, 259, 260, 261, -1, 263, 264,
- 265, -1, -1, -1, 269, 58, 59, -1, -1, -1,
- 63, 123, -1, -1, -1, 280, -1, 282, 283, 284,
+ -1, -1, 257, 258, 259, 260, 261, 91, 263, 264,
+ 265, -1, 33, -1, 269, 36, 37, 38, -1, 40,
+ -1, 42, 43, -1, 45, 280, -1, 282, 283, 284,
285, 286, -1, -1, -1, -1, 291, 292, 293, 294,
- 295, 296, -1, -1, 299, -1, -1, -1, 91, -1,
- 93, -1, -1, 308, -1, 310, 311, -1, -1, -1,
- -1, 41, -1, -1, 44, 257, 258, 259, 260, 261,
- -1, 263, 264, 265, -1, -1, -1, 269, 58, 59,
- 123, -1, -1, 63, -1, -1, -1, -1, 280, -1,
- 282, 283, 284, 285, 286, -1, -1, -1, -1, 291,
- 292, 293, 294, 295, 296, -1, -1, 299, -1, 41,
- -1, 91, 44, 93, -1, -1, 308, -1, 310, 311,
- -1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
- -1, 63, -1, -1, 272, 273, 274, 275, -1, -1,
- -1, -1, -1, 123, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 297,
- 298, 93, 300, -1, -1, -1, -1, -1, -1, -1,
- 272, 273, 274, 275, -1, 41, -1, -1, 44, 281,
- -1, -1, -1, -1, -1, 287, 288, 289, 290, -1,
- -1, 123, 58, 59, -1, 297, 298, 63, 300, 301,
- 302, 303, 304, 305, 306, -1, -1, 309, -1, -1,
- 312, 313, 314, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 91, -1, 93, -1, 272,
- 273, 274, 275, -1, 41, -1, -1, 44, 281, -1,
- -1, -1, -1, -1, 287, 288, 289, 290, -1, -1,
- -1, 58, 59, -1, 297, 298, 63, 300, 301, 302,
- 303, 304, 305, 306, -1, -1, 309, -1, -1, 312,
- 313, 314, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 93, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, -1, -1,
- -1, 281, -1, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, -1, -1, -1, -1, 123, 297, 298, -1,
- 300, 301, 302, 303, 304, 305, 306, -1, -1, 309,
+ 295, 296, 126, 64, 299, -1, -1, -1, -1, -1,
+ -1, -1, -1, 308, -1, 310, 311, -1, -1, -1,
+ 256, 257, 258, 259, 260, 261, -1, 263, 264, 265,
+ 91, -1, -1, 269, 41, -1, -1, 44, -1, -1,
+ -1, -1, -1, -1, 280, -1, 282, 283, 284, 285,
+ 286, 58, 59, -1, -1, 291, 292, 293, 294, 295,
+ 296, 91, -1, 299, -1, 126, -1, -1, -1, -1,
+ 41, -1, 308, 44, 310, 311, -1, 257, 258, 259,
+ 260, 261, -1, 263, 264, 265, 93, 58, 59, 269,
+ -1, -1, 63, 123, -1, -1, -1, -1, -1, -1,
+ 280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
+ -1, 291, 292, 293, 294, 295, 296, -1, -1, 299,
+ 91, -1, 93, -1, -1, -1, -1, -1, 308, 41,
+ 310, 311, 44, 257, 258, 259, 260, 261, -1, 263,
+ 264, 265, -1, -1, -1, 269, 58, 59, -1, -1,
+ -1, 63, 123, -1, -1, -1, 280, -1, 282, 283,
+ 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
+ 294, 295, 296, -1, -1, 299, -1, -1, -1, 91,
+ -1, 93, -1, -1, 308, -1, 310, 311, -1, -1,
+ -1, -1, 41, -1, -1, 44, 257, 258, 259, 260,
+ 261, -1, 263, 264, 265, -1, -1, -1, 269, 58,
+ 59, 123, -1, -1, 63, -1, -1, -1, -1, 280,
+ -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
+ 291, 292, 293, 294, 295, 296, -1, -1, 299, -1,
+ 41, -1, 91, 44, 93, -1, -1, 308, -1, 310,
+ 311, -1, -1, -1, -1, -1, -1, 58, 59, 289,
+ 290, -1, 63, -1, -1, 272, 273, 274, 275, -1,
+ -1, -1, -1, -1, 123, 305, 306, -1, -1, 309,
-1, -1, 312, 313, 314, -1, -1, -1, -1, -1,
- 272, 273, 274, 275, -1, 41, -1, -1, -1, 281,
+ 297, 298, 93, 300, -1, -1, -1, -1, -1, -1,
+ -1, 272, 273, 274, 275, -1, 41, -1, -1, 44,
+ 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
+ -1, -1, 123, 58, 59, -1, 297, 298, 63, 300,
+ 301, 302, 303, 304, 305, 306, -1, -1, 309, -1,
+ -1, 312, 313, 314, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 91, -1, 93, -1,
+ 272, 273, 274, 275, -1, 41, -1, -1, 44, 281,
-1, -1, -1, -1, -1, 287, 288, 289, 290, -1,
-1, -1, 58, 59, -1, 297, 298, 63, 300, 301,
302, 303, 304, 305, 306, -1, -1, 309, -1, -1,
312, 313, 314, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 91, -1, 93, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 93, -1, -1,
+ -1, -1, -1, 272, 273, 274, 275, -1, -1, -1,
+ -1, -1, 281, -1, -1, -1, -1, -1, 287, 288,
+ 289, 290, -1, -1, -1, -1, -1, 123, 297, 298,
+ -1, 300, 301, 302, 303, 304, 305, 306, -1, -1,
+ 309, -1, -1, 312, 313, 314, -1, -1, -1, -1,
+ -1, 272, 273, 274, 275, -1, 41, -1, -1, -1,
+ 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
+ -1, -1, -1, 58, 59, -1, 297, 298, 63, 300,
+ 301, 302, 303, 304, 305, 306, -1, -1, 309, -1,
+ -1, 312, 313, 314, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 91, -1, 93, -1,
+ -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
+ 275, -1, -1, -1, -1, -1, 281, -1, -1, -1,
+ -1, -1, 287, 288, 289, 290, -1, -1, 123, -1,
+ -1, -1, 297, 298, -1, 300, 301, 302, 303, 304,
+ 305, 306, -1, -1, 309, -1, -1, 312, 313, 314,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, -1, -1, -1, -1, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, 123, -1, -1,
- 91, 297, 298, -1, 300, 301, 302, 303, 304, 305,
+ -1, 41, -1, -1, -1, 281, -1, -1, -1, -1,
+ -1, 287, 288, 289, 290, -1, -1, -1, 58, 59,
+ -1, 297, 298, 63, 300, 301, 302, 303, 304, 305,
306, -1, -1, 309, -1, -1, 312, 313, 314, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 123, -1, -1, 272, 273, 274, 275, -1,
- 41, -1, -1, -1, 281, -1, -1, -1, -1, -1,
- 287, 288, 289, 290, -1, -1, -1, 58, 59, -1,
+ 25, 26, -1, -1, 41, -1, -1, 44, -1, -1,
+ -1, 91, 37, 93, 41, -1, -1, 44, 43, 44,
+ 45, 58, 59, -1, -1, 50, 63, -1, -1, -1,
+ -1, 58, 59, -1, -1, -1, 63, 62, 63, 64,
+ 65, -1, -1, 123, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 93, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 93, 272, 273, 274,
+ 275, -1, 41, -1, -1, 44, 281, -1, -1, -1,
+ -1, 106, 287, 288, 289, 290, 123, -1, -1, 58,
+ 59, -1, 297, 298, 63, 300, 301, 302, 303, 304,
+ 305, 306, -1, -1, 309, -1, -1, 312, 313, 314,
+ -1, -1, -1, -1, -1, 41, -1, -1, -1, -1,
+ -1, -1, -1, -1, 93, -1, -1, -1, -1, -1,
+ -1, -1, 58, 59, -1, -1, -1, 63, -1, -1,
+ 165, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 123, -1, -1, -1, -1, 41,
+ -1, -1, 44, -1, 189, 91, -1, 93, -1, -1,
+ -1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
+ -1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 272, 273, 274, 275, -1, 123, -1, -1,
+ -1, 281, -1, -1, -1, -1, -1, 287, 288, 289,
+ 290, 93, -1, -1, -1, -1, -1, 297, 298, -1,
+ 300, 301, 302, 303, 304, 305, 306, -1, -1, 309,
+ -1, -1, 312, 313, 314, 272, 273, 274, 275, -1,
+ 41, 123, -1, 44, 281, 272, 273, 274, 275, -1,
+ 287, 288, 289, 290, 281, -1, -1, 58, 59, -1,
297, 298, 63, 300, 301, 302, 303, 304, 305, 306,
- -1, -1, 309, -1, -1, 312, 313, 314, -1, -1,
- -1, -1, -1, 41, -1, -1, 44, -1, -1, -1,
- 91, -1, 93, 41, -1, -1, 44, -1, -1, -1,
- 58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
- 58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
- -1, -1, 123, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, 272, 273, 274, 275,
+ 297, 298, 309, 300, 301, 312, 313, 314, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 93, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 272, 273, 274, 275, -1, 41, -1,
+ -1, 44, 281, -1, -1, -1, -1, -1, 287, 288,
+ 289, 290, -1, -1, -1, 58, 59, -1, 297, 298,
+ 63, 300, 301, 302, 303, 304, 305, 306, -1, -1,
+ 309, -1, -1, 312, 313, 314, 272, 273, 274, 275,
-1, 41, -1, -1, 44, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, 123, -1, -1, 58, 59,
+ 93, 287, 288, 289, 290, -1, -1, -1, 58, 59,
-1, 297, 298, 63, 300, 301, 302, 303, 304, 305,
306, -1, -1, 309, -1, -1, 312, 313, 314, -1,
- -1, -1, -1, -1, 41, -1, 287, 288, 289, 290,
- -1, -1, -1, 93, -1, -1, -1, -1, -1, -1,
- -1, 58, 59, 304, 305, 306, 63, -1, 309, -1,
- -1, 312, 313, 314, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 123, -1, -1, -1, -1, 41, -1,
- -1, 44, -1, -1, 91, -1, 93, -1, -1, -1,
+ 272, 273, 274, 275, -1, 41, -1, -1, 44, 281,
+ -1, -1, -1, 93, -1, 287, 288, 289, 290, -1,
+ -1, -1, 58, 59, -1, 297, 298, 63, 300, 301,
+ 302, 303, 304, 305, 306, -1, -1, 309, -1, -1,
+ 312, 313, 314, -1, -1, -1, -1, -1, 41, -1,
+ -1, 44, -1, -1, -1, -1, -1, 93, -1, -1,
-1, -1, -1, -1, -1, 58, 59, -1, -1, -1,
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, 123, -1, -1, -1,
+ -1, 272, 273, 274, 275, -1, 41, -1, -1, 44,
281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- 93, -1, -1, -1, -1, -1, 297, 298, -1, 300,
+ 93, -1, -1, 58, 59, -1, 297, 298, 63, 300,
301, 302, 303, 304, 305, 306, -1, -1, 309, -1,
- -1, 312, 313, 314, 272, 273, 274, 275, -1, 41,
- 123, -1, 44, 281, 272, 273, 274, 275, -1, 287,
- 288, 289, 290, -1, -1, -1, 58, 59, -1, 297,
- 298, 63, 300, 301, 302, 303, 304, 305, 306, 297,
- 298, 309, 300, -1, 312, 313, 314, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 93, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, 41, -1, -1,
+ -1, 312, 313, 314, 41, -1, -1, 44, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
+ -1, 58, 59, -1, -1, -1, 63, -1, -1, 272,
+ 273, 274, 275, -1, -1, -1, -1, -1, 281, -1,
+ -1, -1, -1, -1, 287, 288, 289, 290, -1, -1,
+ -1, -1, -1, -1, 297, 298, 93, 300, 301, 302,
+ 303, 304, 305, 306, -1, -1, 309, -1, -1, 312,
+ 313, 314, 272, 273, 274, 275, -1, 41, -1, -1,
44, 281, -1, -1, -1, -1, -1, 287, 288, 289,
290, -1, -1, -1, 58, 59, -1, 297, 298, 63,
300, 301, 302, 303, 304, 305, 306, -1, -1, 309,
- -1, -1, 312, 313, 314, 272, 273, 274, 275, -1,
- 41, -1, -1, 44, 281, -1, -1, -1, -1, 93,
- 287, 288, 289, 290, -1, -1, -1, 58, 59, -1,
- 297, 298, 63, 300, 301, 302, 303, 304, 305, 306,
- -1, -1, 309, -1, -1, 312, 313, 314, -1, 272,
+ -1, -1, 312, 313, 314, -1, 272, 273, 274, 275,
+ -1, 41, -1, -1, 44, 281, -1, -1, -1, 93,
+ -1, 287, 288, 289, 290, -1, -1, -1, 58, 59,
+ -1, 297, 298, 63, 300, 301, 302, 303, 304, 305,
+ 306, -1, -1, 309, -1, -1, 312, 313, 314, 272,
273, 274, 275, -1, 41, -1, -1, 44, 281, -1,
- -1, -1, 93, -1, 287, 288, 289, 290, -1, -1,
+ -1, -1, -1, 93, 287, 288, 289, 290, -1, -1,
-1, 58, 59, -1, 297, 298, 63, 300, 301, 302,
- 303, 304, 305, 306, -1, -1, 309, -1, -1, 312,
- 313, 314, -1, -1, -1, -1, -1, 41, -1, -1,
- 44, -1, -1, -1, -1, -1, 93, -1, -1, -1,
- -1, -1, -1, -1, 58, 59, -1, 41, -1, 63,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 272, 273, 274, 275, 58, 59, -1, -1, -1, 281,
- -1, -1, -1, -1, -1, 287, 288, 289, 290, 93,
- -1, -1, -1, -1, -1, 297, 298, -1, 300, 301,
- 302, 303, 304, 305, 306, 41, -1, 309, 44, 93,
- 312, 313, 314, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 58, 59, -1, -1, -1, 63, -1, -1,
+ 303, 304, 305, 306, -1, -1, -1, 272, 273, 274,
+ 275, -1, 41, -1, -1, 44, 281, -1, -1, -1,
+ -1, -1, 287, 288, 289, 290, 93, -1, -1, 58,
+ 59, -1, 297, 298, 63, 300, 301, 302, 303, 304,
+ 305, 306, -1, -1, -1, 272, 273, 274, 275, -1,
+ 41, -1, -1, 44, 281, -1, -1, -1, -1, -1,
+ 287, 288, 289, 290, 93, -1, -1, 58, 59, -1,
+ 297, 298, 63, 300, 301, 302, 303, 304, 305, 306,
+ -1, -1, -1, -1, -1, -1, 41, -1, -1, 44,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 93, 58, 59, -1, -1, -1, 63, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
274, 275, -1, 41, -1, -1, 44, 281, -1, -1,
- -1, -1, -1, 287, 288, 289, 290, 93, -1, -1,
+ -1, -1, -1, 287, 288, 289, 290, -1, 93, -1,
58, 59, -1, 297, 298, 63, 300, 301, 302, 303,
- 304, 305, 306, -1, -1, 309, -1, -1, 312, 313,
- 314, 272, 273, 274, 275, -1, -1, -1, -1, -1,
- 281, -1, -1, -1, -1, 93, 287, 288, 289, 290,
- -1, -1, -1, -1, -1, -1, 297, 298, -1, 300,
- 301, 302, 303, 304, 305, 306, -1, -1, 309, -1,
- -1, 312, 313, 314, -1, 272, 273, 274, 275, -1,
- 41, -1, -1, 44, 281, -1, -1, -1, -1, -1,
+ 304, 305, 306, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 272, 273, 274, 275, -1, 41, -1, -1,
+ 44, 281, -1, -1, -1, 93, -1, 287, 288, 289,
+ 290, -1, -1, -1, 58, 59, -1, 297, 298, 63,
+ 300, 301, 302, 303, 304, 305, 306, -1, -1, -1,
+ -1, -1, -1, -1, -1, 272, 273, 274, 275, -1,
+ 41, -1, -1, 44, 281, -1, -1, -1, -1, 93,
287, 288, 289, 290, -1, -1, -1, 58, 59, -1,
297, 298, 63, 300, 301, 302, 303, 304, 305, 306,
- -1, -1, 309, -1, -1, 312, 313, 314, 272, 273,
- 274, 275, -1, -1, -1, -1, -1, 281, -1, -1,
- -1, -1, 93, 287, 288, 289, 290, -1, 272, 273,
- 274, 275, -1, 297, 298, 30, 300, 301, 302, 303,
- 304, 305, 306, 38, -1, 309, -1, 42, -1, -1,
- 45, -1, -1, 297, 298, -1, -1, 52, 53, 54,
- 55, 56, -1, -1, 59, 60, -1, -1, 91, -1,
- -1, 66, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 41, -1, -1, 44, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, 92, 58, 59,
- 123, 297, 298, 63, 300, 301, 302, 303, 304, 305,
- 306, -1, -1, -1, 272, 273, 274, 275, -1, -1,
- -1, -1, -1, 281, -1, -1, -1, -1, -1, 287,
- 288, 289, 290, 93, 41, -1, -1, 44, -1, 297,
- 298, -1, 300, 301, 302, 303, 304, 305, 306, -1,
- -1, 58, 59, -1, -1, -1, 63, -1, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 41, -1, -1, 44, -1, -1, -1, -1,
- -1, -1, -1, 178, -1, -1, 93, -1, -1, 58,
- 59, -1, -1, -1, 63, -1, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, -1, -1, -1, -1,
+ -1, -1, -1, 272, 273, 274, 275, -1, 41, -1,
+ -1, 44, 281, -1, -1, -1, -1, -1, 287, 288,
+ 289, 290, 93, -1, -1, 58, 59, -1, 297, 298,
+ 63, 300, 301, 302, 303, 304, 305, 306, -1, -1,
+ -1, 272, 273, 274, 275, -1, 41, -1, -1, 44,
281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- 41, -1, -1, 44, 93, -1, 297, 298, -1, 300,
- 301, 302, 303, 304, 305, 306, -1, 58, 59, -1,
- -1, -1, 63, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 41, -1, -1, 44,
- -1, -1, -1, 258, 287, 288, 289, 290, -1, -1,
- -1, -1, 93, 58, 59, -1, -1, -1, 63, 302,
- 303, 304, 305, 306, -1, -1, 309, -1, -1, 312,
- 313, 314, -1, -1, -1, -1, -1, -1, -1, -1,
- 295, 41, -1, -1, 44, -1, -1, -1, 93, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, 58, 59,
- -1, 281, -1, 63, -1, -1, -1, 287, 288, 289,
- 290, -1, -1, -1, -1, -1, -1, 297, 298, -1,
- 300, 301, 302, 303, 304, 305, 306, -1, -1, -1,
- -1, -1, -1, 93, -1, 41, -1, -1, 44, -1,
- -1, -1, -1, -1, -1, 272, 273, 274, 275, -1,
- -1, -1, 58, 59, 281, -1, -1, 63, -1, -1,
- 287, 288, 289, 290, -1, -1, -1, -1, -1, -1,
- 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
- -1, -1, -1, 272, 273, 274, 275, 93, -1, -1,
- -1, -1, 281, -1, -1, -1, -1, -1, 287, 288,
- 289, 290, 41, -1, -1, 44, -1, -1, 297, 298,
- -1, 300, 301, 302, 303, 304, 305, 306, -1, 58,
- 59, -1, -1, -1, 63, -1, -1, -1, -1, -1,
+ 93, -1, -1, 58, 59, -1, 297, 298, 63, 300,
+ 301, 302, 303, 304, 305, -1, -1, 272, 273, 274,
+ 275, -1, 41, -1, -1, 44, 281, -1, -1, -1,
+ -1, -1, 287, 288, -1, 290, -1, -1, 93, 58,
+ 59, -1, 297, 298, 63, 300, 301, 302, 303, 304,
+ 305, -1, -1, -1, 272, 273, 274, 275, -1, 41,
+ -1, -1, 44, 281, -1, -1, -1, -1, -1, 287,
+ 288, -1, -1, -1, 93, -1, 58, 59, -1, 297,
+ 298, 63, 300, 301, 302, 303, 304, 305, -1, -1,
+ 91, -1, -1, -1, -1, -1, -1, -1, 272, 273,
+ 274, 275, -1, 41, -1, -1, 44, 281, -1, -1,
+ -1, 93, -1, 287, 288, -1, 41, -1, -1, 44,
+ 58, 59, 123, 297, 298, 63, 300, 301, 302, 303,
+ 304, -1, -1, 58, 59, 41, -1, -1, 44, -1,
-1, 272, 273, 274, 275, 41, -1, -1, 44, -1,
- 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, 58, 59, 93, 41, 297, 298, 44, 300,
- 301, 302, 303, 304, 305, 306, -1, 272, 273, 274,
- 275, -1, 58, 59, -1, -1, 281, 63, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, 93, -1, -1,
+ 281, -1, 58, 59, -1, 93, 287, 288, -1, -1,
+ -1, -1, 58, 59, -1, -1, 297, 298, 93, 300,
+ 301, 302, 303, 304, -1, 41, -1, -1, 44, 272,
+ 273, 274, 275, -1, -1, -1, -1, 93, 281, -1,
+ -1, -1, 58, 59, 287, 288, 58, 93, -1, -1,
+ -1, 63, -1, -1, 297, 298, -1, 300, 301, 302,
+ 303, 304, -1, -1, -1, -1, -1, 272, 273, 274,
+ 275, -1, -1, -1, -1, -1, 281, 93, -1, 91,
+ -1, -1, 287, 288, -1, 63, -1, -1, -1, -1,
-1, -1, 297, 298, -1, 300, 301, 302, 303, 304,
- 305, 41, -1, -1, 44, -1, -1, 93, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, 58, 59,
- -1, 281, -1, 63, -1, -1, -1, 287, 288, -1,
- 290, 91, -1, -1, -1, -1, -1, 297, 298, -1,
- 300, 301, 302, 303, 304, 305, -1, 41, -1, -1,
- 44, -1, -1, 93, 41, -1, -1, 44, -1, -1,
- -1, -1, -1, 123, 58, 59, 272, 273, 274, 275,
- -1, 58, 59, -1, -1, 281, 63, -1, -1, -1,
- -1, 287, 288, -1, -1, -1, 41, -1, -1, 44,
- -1, 297, 298, -1, 300, 301, 302, 303, 304, 93,
- -1, -1, -1, 58, 59, -1, 93, -1, 63, -1,
- -1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 272, 273, 274, 275, -1, 93, 91,
- -1, -1, 281, -1, -1, 63, -1, -1, 287, 288,
+ -1, -1, -1, 272, 273, 274, 275, -1, -1, -1,
+ -1, 123, 281, 91, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 297, 298,
- -1, 300, 301, 302, 303, 304, 272, 273, 274, 275,
- -1, 123, -1, 91, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 297, 298, -1, -1, 281, -1, -1, -1, -1,
- -1, 287, 288, -1, -1, 123, -1, -1, -1, -1,
- -1, 297, 298, -1, 300, 301, 302, 303, 304, -1,
- -1, -1, -1, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, 272, 273, 274, 275, -1, -1, -1, -1,
- -1, 281, -1, 303, 304, 305, 306, 287, 288, 309,
- -1, -1, 312, 313, 314, -1, -1, 297, 298, -1,
- 300, 301, 302, 303, 304, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, 272, 273, 274, 275, -1,
- -1, -1, -1, -1, 281, -1, -1, -1, -1, -1,
- -1, -1, -1, 297, 298, -1, -1, -1, -1, -1,
- 297, 298, -1, 300, 301, 302, 303, 272, 273, 274,
- 275, -1, -1, -1, -1, -1, 281, -1, -1, 281,
+ -1, 300, 301, 302, 303, 304, 287, 288, 289, 290,
+ 272, 273, 274, 275, -1, 123, -1, -1, -1, 281,
+ -1, 302, 303, 304, 305, 306, -1, -1, 309, -1,
+ -1, 312, 313, 314, 91, 297, 298, -1, 300, 301,
+ 302, 303, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
+ -1, -1, -1, 281, -1, -1, 123, 272, 273, 274,
+ 275, -1, -1, -1, -1, -1, -1, -1, -1, 297,
+ 298, -1, 300, 301, 302, -1, 272, 273, 274, 275,
+ -1, -1, 297, 298, 30, -1, 272, 273, 274, 275,
+ -1, -1, 38, -1, -1, -1, 42, -1, -1, 45,
+ -1, 297, 298, -1, -1, -1, 52, 53, 54, 55,
+ 56, 297, 298, 59, 60, -1, 272, 273, 274, 275,
+ 66, -1, -1, -1, -1, -1, -1, -1, -1, 281,
-1, -1, -1, -1, -1, 287, 288, 289, 290, -1,
- -1, -1, 297, 298, -1, 300, 301, 302, 300, 301,
+ -1, 297, 298, -1, -1, -1, 92, -1, 300, 301,
302, 303, 304, 305, 306, -1, -1, 309, -1, -1,
312, 313, 314, 281, -1, -1, -1, -1, -1, 287,
- 288, 289, 290, -1, -1, -1, -1, 13, -1, -1,
- -1, 17, -1, 301, 302, 303, 304, 305, 306, -1,
- -1, 309, -1, -1, 312, 313, 314, 33, 34, 35,
- 36, -1, -1, -1, -1, -1, 42, -1, -1, 45,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 288, 289, 290, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 300, 301, 302, 303, 304, 305, 306, -1,
+ -1, 309, -1, -1, 312, 313, 314, -1, -1, -1,
+ -1, -1, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, -1, -1, -1,
+ 287, 288, 289, 290, -1, -1, -1, -1, 174, -1,
+ -1, -1, -1, -1, -1, -1, 303, 304, 305, 306,
+ -1, -1, 309, -1, -1, 312, 313, 314, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 80, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
- -1, 97, -1, 99, -1, 101, -1, 103, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 144, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 250, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 181, -1, -1, -1, -1,
- -1, -1, 188,
+ -1, -1, -1, -1, -1, 281,
};
#define YYFINAL 1
#ifndef YYDEBUG
@@ -1106,14 +1069,10 @@ dEXT char * yyrule[] = {
"else : ELSIF '(' mexpr ')' mblock else",
"cond : IF '(' remember mexpr ')' mblock else",
"cond : UNLESS '(' remember miexpr ')' mblock else",
-"cond : IF block block else",
-"cond : UNLESS block block else",
"cont :",
"cont : CONTINUE block",
"loop : label WHILE '(' remember mtexpr ')' mblock cont",
"loop : label UNTIL '(' remember miexpr ')' mblock cont",
-"loop : label WHILE block block cont",
-"loop : label UNTIL block block cont",
"loop : label FOR MY remember my_scalar '(' mexpr ')' mblock cont",
"loop : label FOR scalar '(' remember mexpr ')' mblock cont",
"loop : label FOR '(' remember mexpr ')' mblock cont",
@@ -1274,9 +1233,9 @@ dEXT int yyerrflag;
dEXT int yychar;
dEXT YYSTYPE yyval;
dEXT YYSTYPE yylval;
-#line 624 "perly.y"
+#line 602 "perly.y"
/* PROGRAM */
-#line 1349 "perly.c"
+#line 1308 "perly.c"
#define YYABORT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
@@ -1620,77 +1579,47 @@ case 24:
newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
break;
case 25:
-#line 177 "perly.y"
-{ copline = yyvsp[-3].ival;
- deprecate("if BLOCK BLOCK");
- yyval.opval = newCONDOP(0, scope(yyvsp[-2].opval), scope(yyvsp[-1].opval), yyvsp[0].opval); }
+#line 179 "perly.y"
+{ yyval.opval = Nullop; }
break;
case 26:
#line 181 "perly.y"
-{ copline = yyvsp[-3].ival;
- deprecate("unless BLOCK BLOCK");
- yyval.opval = newCONDOP(0, invert(scalar(scope(yyvsp[-2].opval))),
- scope(yyvsp[-1].opval), yyvsp[0].opval); }
-break;
-case 27:
-#line 188 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 28:
-#line 190 "perly.y"
{ yyval.opval = scope(yyvsp[0].opval); }
break;
-case 29:
-#line 194 "perly.y"
+case 27:
+#line 185 "perly.y"
{ copline = yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newSTATEOP(0, yyvsp[-7].pval,
newWHILEOP(0, 1, (LOOP*)Nullop,
yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
break;
-case 30:
-#line 200 "perly.y"
+case 28:
+#line 191 "perly.y"
{ copline = yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newSTATEOP(0, yyvsp[-7].pval,
newWHILEOP(0, 1, (LOOP*)Nullop,
yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
break;
-case 31:
-#line 206 "perly.y"
-{ copline = yyvsp[-3].ival;
- deprecate("while BLOCK BLOCK");
- yyval.opval = newSTATEOP(0, yyvsp[-4].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- scope(yyvsp[-2].opval), yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 32:
-#line 212 "perly.y"
-{ copline = yyvsp[-3].ival;
- deprecate("until BLOCK BLOCK");
- yyval.opval = newSTATEOP(0, yyvsp[-4].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- invert(scalar(scope(yyvsp[-2].opval))),
- yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 33:
-#line 219 "perly.y"
+case 29:
+#line 197 "perly.y"
{ yyval.opval = block_end(yyvsp[-6].ival,
newFOROP(0, yyvsp[-9].pval, yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
-case 34:
-#line 222 "perly.y"
+case 30:
+#line 200 "perly.y"
{ yyval.opval = block_end(yyvsp[-4].ival,
newFOROP(0, yyvsp[-8].pval, yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
-case 35:
-#line 226 "perly.y"
+case 31:
+#line 204 "perly.y"
{ yyval.opval = block_end(yyvsp[-4].ival,
newFOROP(0, yyvsp[-7].pval, yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
-case 36:
-#line 230 "perly.y"
+case 32:
+#line 208 "perly.y"
{ copline = yyvsp[-9].ival;
yyval.opval = block_end(yyvsp[-7].ival,
append_elem(OP_LINESEQ, scalar(yyvsp[-6].opval),
@@ -1699,365 +1628,365 @@ case 36:
scalar(yyvsp[-4].opval),
yyvsp[0].opval, scalar(yyvsp[-2].opval))))); }
break;
-case 37:
-#line 238 "perly.y"
+case 33:
+#line 216 "perly.y"
{ yyval.opval = newSTATEOP(0,
yyvsp[-2].pval, newWHILEOP(0, 1, (LOOP*)Nullop,
Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
-case 38:
-#line 244 "perly.y"
+case 34:
+#line 222 "perly.y"
{ yyval.opval = Nullop; }
break;
-case 40:
-#line 249 "perly.y"
+case 36:
+#line 227 "perly.y"
{ (void)scan_num("1"); yyval.opval = yylval.opval; }
break;
-case 42:
-#line 254 "perly.y"
+case 38:
+#line 232 "perly.y"
{ yyval.opval = invert(scalar(yyvsp[0].opval)); }
break;
-case 43:
-#line 258 "perly.y"
+case 39:
+#line 236 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
-case 44:
-#line 262 "perly.y"
+case 40:
+#line 240 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
-case 45:
-#line 266 "perly.y"
+case 41:
+#line 244 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
-case 46:
-#line 270 "perly.y"
+case 42:
+#line 248 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
-case 47:
-#line 274 "perly.y"
+case 43:
+#line 252 "perly.y"
{ yyval.pval = Nullch; }
break;
-case 49:
-#line 279 "perly.y"
+case 45:
+#line 257 "perly.y"
{ yyval.ival = 0; }
break;
-case 50:
-#line 281 "perly.y"
+case 46:
+#line 259 "perly.y"
{ yyval.ival = 0; }
break;
-case 51:
-#line 283 "perly.y"
+case 47:
+#line 261 "perly.y"
{ yyval.ival = 0; }
break;
-case 52:
-#line 285 "perly.y"
+case 48:
+#line 263 "perly.y"
{ yyval.ival = 0; }
break;
-case 53:
-#line 289 "perly.y"
+case 49:
+#line 267 "perly.y"
{ newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
break;
-case 54:
-#line 291 "perly.y"
+case 50:
+#line 269 "perly.y"
{ newFORM(yyvsp[-1].ival, Nullop, yyvsp[0].opval); }
break;
-case 55:
-#line 295 "perly.y"
+case 51:
+#line 273 "perly.y"
{ newSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
break;
-case 56:
-#line 297 "perly.y"
+case 52:
+#line 275 "perly.y"
{ newSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, Nullop); expect = XSTATE; }
break;
-case 57:
-#line 301 "perly.y"
+case 53:
+#line 279 "perly.y"
{ yyval.opval = Nullop; }
break;
-case 59:
-#line 306 "perly.y"
+case 55:
+#line 284 "perly.y"
{ yyval.ival = start_subparse(); }
break;
-case 60:
-#line 310 "perly.y"
+case 56:
+#line 288 "perly.y"
{ package(yyvsp[-1].opval); }
break;
-case 61:
-#line 312 "perly.y"
+case 57:
+#line 290 "perly.y"
{ package(Nullop); }
break;
-case 62:
-#line 316 "perly.y"
+case 58:
+#line 294 "perly.y"
{ utilize(yyvsp[-5].ival, yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
break;
-case 63:
-#line 320 "perly.y"
+case 59:
+#line 298 "perly.y"
{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 64:
-#line 322 "perly.y"
+case 60:
+#line 300 "perly.y"
{ yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 66:
-#line 327 "perly.y"
+case 62:
+#line 305 "perly.y"
{ yyval.opval = yyvsp[-1].opval; }
break;
-case 67:
-#line 329 "perly.y"
+case 63:
+#line 307 "perly.y"
{ yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 69:
-#line 334 "perly.y"
+case 65:
+#line 312 "perly.y"
{ yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); }
break;
-case 70:
-#line 337 "perly.y"
+case 66:
+#line 315 "perly.y"
{ yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); }
break;
-case 71:
-#line 340 "perly.y"
+case 67:
+#line 318 "perly.y"
{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); }
break;
-case 72:
-#line 345 "perly.y"
+case 68:
+#line 323 "perly.y"
{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); }
break;
-case 73:
-#line 350 "perly.y"
+case 69:
+#line 328 "perly.y"
{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); }
break;
-case 74:
-#line 355 "perly.y"
+case 70:
+#line 333 "perly.y"
{ yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
-case 75:
-#line 357 "perly.y"
+case 71:
+#line 335 "perly.y"
{ yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
break;
-case 76:
-#line 359 "perly.y"
+case 72:
+#line 337 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, newANONSUB(yyvsp[-2].ival, 0, yyvsp[-1].opval), yyvsp[0].opval),
yyvsp[-3].opval)); }
break;
-case 79:
-#line 370 "perly.y"
+case 75:
+#line 348 "perly.y"
{ yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
break;
-case 80:
-#line 372 "perly.y"
+case 76:
+#line 350 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 81:
-#line 374 "perly.y"
+case 77:
+#line 352 "perly.y"
{ if (yyvsp[-1].ival != OP_REPEAT)
scalar(yyvsp[-2].opval);
yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
break;
-case 82:
-#line 378 "perly.y"
+case 78:
+#line 356 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 83:
-#line 380 "perly.y"
+case 79:
+#line 358 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 84:
-#line 382 "perly.y"
+case 80:
+#line 360 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 85:
-#line 384 "perly.y"
+case 81:
+#line 362 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 86:
-#line 386 "perly.y"
+case 82:
+#line 364 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 87:
-#line 388 "perly.y"
+case 83:
+#line 366 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
-case 88:
-#line 390 "perly.y"
+case 84:
+#line 368 "perly.y"
{ yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
break;
-case 89:
-#line 392 "perly.y"
+case 85:
+#line 370 "perly.y"
{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 90:
-#line 394 "perly.y"
+case 86:
+#line 372 "perly.y"
{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 91:
-#line 396 "perly.y"
+case 87:
+#line 374 "perly.y"
{ yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 92:
-#line 398 "perly.y"
+case 88:
+#line 376 "perly.y"
{ yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
break;
-case 93:
-#line 401 "perly.y"
+case 89:
+#line 379 "perly.y"
{ yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
break;
-case 94:
-#line 403 "perly.y"
+case 90:
+#line 381 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 95:
-#line 405 "perly.y"
+case 91:
+#line 383 "perly.y"
{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
break;
-case 96:
-#line 407 "perly.y"
+case 92:
+#line 385 "perly.y"
{ yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
break;
-case 97:
-#line 409 "perly.y"
+case 93:
+#line 387 "perly.y"
{ yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
break;
-case 98:
-#line 411 "perly.y"
+case 94:
+#line 389 "perly.y"
{ yyval.opval = newUNOP(OP_POSTINC, 0,
mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
break;
-case 99:
-#line 414 "perly.y"
+case 95:
+#line 392 "perly.y"
{ yyval.opval = newUNOP(OP_POSTDEC, 0,
mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
break;
-case 100:
-#line 417 "perly.y"
+case 96:
+#line 395 "perly.y"
{ yyval.opval = newUNOP(OP_PREINC, 0,
mod(scalar(yyvsp[0].opval), OP_PREINC)); }
break;
-case 101:
-#line 420 "perly.y"
+case 97:
+#line 398 "perly.y"
{ yyval.opval = newUNOP(OP_PREDEC, 0,
mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
break;
-case 102:
-#line 423 "perly.y"
+case 98:
+#line 401 "perly.y"
{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
break;
-case 103:
-#line 425 "perly.y"
+case 99:
+#line 403 "perly.y"
{ yyval.opval = sawparens(yyvsp[-1].opval); }
break;
-case 104:
-#line 427 "perly.y"
+case 100:
+#line 405 "perly.y"
{ yyval.opval = sawparens(newNULLLIST()); }
break;
-case 105:
-#line 429 "perly.y"
+case 101:
+#line 407 "perly.y"
{ yyval.opval = newANONLIST(yyvsp[-1].opval); }
break;
-case 106:
-#line 431 "perly.y"
+case 102:
+#line 409 "perly.y"
{ yyval.opval = newANONLIST(Nullop); }
break;
-case 107:
-#line 433 "perly.y"
+case 103:
+#line 411 "perly.y"
{ yyval.opval = newANONHASH(yyvsp[-2].opval); }
break;
-case 108:
-#line 435 "perly.y"
+case 104:
+#line 413 "perly.y"
{ yyval.opval = newANONHASH(Nullop); }
break;
-case 109:
-#line 437 "perly.y"
+case 105:
+#line 415 "perly.y"
{ yyval.opval = newANONSUB(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
break;
-case 110:
-#line 439 "perly.y"
+case 106:
+#line 417 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 111:
-#line 441 "perly.y"
+case 107:
+#line 419 "perly.y"
{ yyval.opval = newBINOP(OP_GELEM, 0, newGVREF(0,yyvsp[-4].opval), yyvsp[-2].opval); }
break;
-case 112:
-#line 443 "perly.y"
+case 108:
+#line 421 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 113:
-#line 445 "perly.y"
+case 109:
+#line 423 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
break;
-case 114:
-#line 447 "perly.y"
+case 110:
+#line 425 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0,
ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
scalar(yyvsp[-1].opval));}
break;
-case 115:
-#line 451 "perly.y"
+case 111:
+#line 429 "perly.y"
{ assertref(yyvsp[-3].opval); yyval.opval = newBINOP(OP_AELEM, 0,
ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
scalar(yyvsp[-1].opval));}
break;
-case 116:
-#line 455 "perly.y"
+case 112:
+#line 433 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 117:
-#line 457 "perly.y"
+case 113:
+#line 435 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 118:
-#line 459 "perly.y"
+case 114:
+#line 437 "perly.y"
{ yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
break;
-case 119:
-#line 461 "perly.y"
+case 115:
+#line 439 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
expect = XOPERATOR; }
break;
-case 120:
-#line 464 "perly.y"
+case 116:
+#line 442 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0,
ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
jmaybe(yyvsp[-2].opval));
expect = XOPERATOR; }
break;
-case 121:
-#line 469 "perly.y"
+case 117:
+#line 447 "perly.y"
{ assertref(yyvsp[-4].opval); yyval.opval = newBINOP(OP_HELEM, 0,
ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
jmaybe(yyvsp[-2].opval));
expect = XOPERATOR; }
break;
-case 122:
-#line 474 "perly.y"
+case 118:
+#line 452 "perly.y"
{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
break;
-case 123:
-#line 476 "perly.y"
+case 119:
+#line 454 "perly.y"
{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
break;
-case 124:
-#line 478 "perly.y"
+case 120:
+#line 456 "perly.y"
{ yyval.opval = prepend_elem(OP_ASLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_ASLICE, 0,
list(yyvsp[-1].opval),
ref(yyvsp[-3].opval, OP_ASLICE))); }
break;
-case 125:
-#line 484 "perly.y"
+case 121:
+#line 462 "perly.y"
{ yyval.opval = prepend_elem(OP_HSLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_HSLICE, 0,
@@ -2065,38 +1994,38 @@ case 125:
ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
expect = XOPERATOR; }
break;
-case 126:
-#line 491 "perly.y"
+case 122:
+#line 469 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 127:
-#line 493 "perly.y"
+case 123:
+#line 471 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
break;
-case 128:
-#line 495 "perly.y"
+case 124:
+#line 473 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
break;
-case 129:
-#line 497 "perly.y"
+case 125:
+#line 475 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
break;
-case 130:
-#line 500 "perly.y"
+case 126:
+#line 478 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
break;
-case 131:
-#line 503 "perly.y"
+case 127:
+#line 481 "perly.y"
{ yyval.opval = newUNOP(OP_DOFILE, 0, scalar(yyvsp[0].opval)); }
break;
-case 132:
-#line 505 "perly.y"
+case 128:
+#line 483 "perly.y"
{ yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
break;
-case 133:
-#line 507 "perly.y"
+case 129:
+#line 485 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
@@ -2105,8 +2034,8 @@ case 133:
scalar(yyvsp[-2].opval)
)),Nullop)); dep();}
break;
-case 134:
-#line 515 "perly.y"
+case 130:
+#line 493 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
append_elem(OP_LIST,
@@ -2116,151 +2045,151 @@ case 134:
scalar(yyvsp[-3].opval)
)))); dep();}
break;
-case 135:
-#line 524 "perly.y"
+case 131:
+#line 502 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();}
break;
-case 136:
-#line 528 "perly.y"
+case 132:
+#line 506 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
yyvsp[-1].opval,
scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();}
break;
-case 137:
-#line 533 "perly.y"
+case 133:
+#line 511 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
hints |= HINT_BLOCK_SCOPE; }
break;
-case 138:
-#line 536 "perly.y"
+case 134:
+#line 514 "perly.y"
{ yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
break;
-case 139:
-#line 538 "perly.y"
+case 135:
+#line 516 "perly.y"
{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
break;
-case 140:
-#line 540 "perly.y"
+case 136:
+#line 518 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, 0); }
break;
-case 141:
-#line 542 "perly.y"
+case 137:
+#line 520 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
-case 142:
-#line 544 "perly.y"
+case 138:
+#line 522 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
-case 143:
-#line 546 "perly.y"
+case 139:
+#line 524 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
break;
-case 144:
-#line 549 "perly.y"
+case 140:
+#line 527 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, 0); }
break;
-case 145:
-#line 551 "perly.y"
+case 141:
+#line 529 "perly.y"
{ yyval.opval = newOP(yyvsp[-2].ival, 0); }
break;
-case 146:
-#line 553 "perly.y"
+case 142:
+#line 531 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, 0,
scalar(yyvsp[0].opval)); }
break;
-case 147:
-#line 556 "perly.y"
+case 143:
+#line 534 "perly.y"
{ yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
break;
-case 148:
-#line 558 "perly.y"
+case 144:
+#line 536 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
break;
-case 149:
-#line 560 "perly.y"
+case 145:
+#line 538 "perly.y"
{ yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
break;
-case 150:
-#line 562 "perly.y"
+case 146:
+#line 540 "perly.y"
{ yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
break;
-case 153:
-#line 568 "perly.y"
+case 149:
+#line 546 "perly.y"
{ yyval.opval = Nullop; }
break;
-case 154:
-#line 570 "perly.y"
+case 150:
+#line 548 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 155:
-#line 574 "perly.y"
+case 151:
+#line 552 "perly.y"
{ yyval.opval = Nullop; }
break;
-case 156:
-#line 576 "perly.y"
+case 152:
+#line 554 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-case 157:
-#line 578 "perly.y"
+case 153:
+#line 556 "perly.y"
{ yyval.opval = yyvsp[-1].opval; }
break;
-case 158:
-#line 581 "perly.y"
+case 154:
+#line 559 "perly.y"
{ yyval.ival = 0; }
break;
-case 159:
-#line 582 "perly.y"
+case 155:
+#line 560 "perly.y"
{ yyval.ival = 1; }
break;
-case 160:
-#line 586 "perly.y"
+case 156:
+#line 564 "perly.y"
{ in_my = 0; yyval.opval = my(yyvsp[0].opval); }
break;
-case 161:
-#line 590 "perly.y"
+case 157:
+#line 568 "perly.y"
{ yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
break;
-case 162:
-#line 594 "perly.y"
+case 158:
+#line 572 "perly.y"
{ yyval.opval = newSVREF(yyvsp[0].opval); }
break;
-case 163:
-#line 598 "perly.y"
+case 159:
+#line 576 "perly.y"
{ yyval.opval = newAVREF(yyvsp[0].opval); }
break;
-case 164:
-#line 602 "perly.y"
+case 160:
+#line 580 "perly.y"
{ yyval.opval = newHVREF(yyvsp[0].opval); }
break;
-case 165:
-#line 606 "perly.y"
+case 161:
+#line 584 "perly.y"
{ yyval.opval = newAVREF(yyvsp[0].opval); }
break;
-case 166:
-#line 610 "perly.y"
+case 162:
+#line 588 "perly.y"
{ yyval.opval = newGVREF(0,yyvsp[0].opval); }
break;
-case 167:
-#line 614 "perly.y"
+case 163:
+#line 592 "perly.y"
{ yyval.opval = scalar(yyvsp[0].opval); }
break;
-case 168:
-#line 616 "perly.y"
+case 164:
+#line 594 "perly.y"
{ yyval.opval = scalar(yyvsp[0].opval); }
break;
-case 169:
-#line 618 "perly.y"
+case 165:
+#line 596 "perly.y"
{ yyval.opval = scope(yyvsp[0].opval); }
break;
-case 170:
-#line 621 "perly.y"
+case 166:
+#line 599 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-#line 2249 "perly.c"
+#line 2178 "perly.c"
}
yyssp -= yym;
yystate = *yyssp;
diff --git a/vms/perly_h.vms b/vms/perly_h.vms
index dd927648bf..ebeaaf735a 100644
--- a/vms/perly_h.vms
+++ b/vms/perly_h.vms
@@ -1,4 +1,4 @@
-/* Postprocessed by vms_yfix.pl 1.1 to add VMS declarations of globals */
+/* Postprocessed by vms_yfix.pl 1.11 to add VMS declarations of globals */
#define WORD 257
#define METHOD 258
#define FUNCMETH 259
diff --git a/vms/test.com b/vms/test.com
index 2afe93cd60..6f521d2e1a 100644
--- a/vms/test.com
+++ b/vms/test.com
@@ -74,7 +74,7 @@ $
$! And do it
$ testdir = "Directory/NoHead/NoTrail/Column=1"
$ Define/User Perlshr Sys$Disk:[-]PerlShr'exe'
-$ MCR Sys$Disk:[]Perl. "''p2'" "''p3'" "''p4'" "''p5'" "''p6'"
+$ MCR Sys$Disk:[]Perl. - "''p2'" "''p3'" "''p4'" "''p5'" "''p6'"
$ Deck/Dollar=$$END-OF-TEST$$
# $RCSfile: TEST,v $$Revision: 4.1 $$Date: 92/08/07 18:27:00 $
# Modified for VMS 30-Sep-1994 Charles Bailey bailey@genetics.upenn.edu
@@ -85,13 +85,22 @@ $ Deck/Dollar=$$END-OF-TEST$$
# skip those tests we know will fail entirely or cause perl to hang bacause
# of Unixisms in the tests. (The Perl operators being tested may work fine,
# but the tests may use other operators which don't.)
+use Config;
+
@compexcl=('cpp.t','script.t');
@ioexcl=('argv.t','dup.t','fs.t','inplace.t','pipe.t');
@libexcl=('anydbm.t','db-btree.t','db-hash.t','db-recno.t',
'gdbm.t','io_dup.t', 'io_pipe.t', 'io_sock.t',
- 'ndbm.t','odbm.t','posix.t','sdbm.t','soundex.t');
- # Note: POSIX is not part of basic build, but can be built
- # separately if you're using DECC
+ 'ndbm.t','odbm.t','open2.t','open3.t','posix.t',
+ 'sdbm.t','soundex.t');
+
+# Note: POSIX is not part of basic build, but can be built
+# separately if you're using DECC
+# io_xs.t tests the new_tmpfile routine, which doesn't work with the
+# VAXCRTL, since the file can't be stat()d, an Perl's do_open()
+# insists on stat()ing a file descriptor before it'll use it.
+push(@libexcl,'io_xs.t') if $Config{'vms_cc_type'} ne 'decc';
+
@opexcl=('exec.t','fork.t','glob.t','groups.t','magic.t','misc.t','stat.t');
@exclist=(@compexcl,@ioexcl,@libexcl,@opexcl);
foreach $file (@exclist) { $skip{$file}++; }
diff --git a/vms/vms.c b/vms/vms.c
index e13747a06a..992e75f0a7 100644
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -402,7 +402,6 @@ kill_file(char *name)
set_errno(ENOENT); break;
case RMS$_DEV:
set_errno(ENODEV); break;
- case RMS$_FNM:
case RMS$_SYN:
case SS$_INVFILFOROP:
set_errno(EINVAL); break;
@@ -860,6 +859,14 @@ my_gconvert(double val, int ndig, int trail, char *buf)
char *loc;
loc = buf ? buf : __gcvtbuf;
+
+#ifndef __DECC /* VAXCRTL gcvt uses E format for numbers < 1 */
+ if (val < 1) {
+ sprintf(loc,"%.*g",ndig,val);
+ return loc;
+ }
+#endif
+
if (val) {
if (!buf && ndig > DBL_DIG) ndig = DBL_DIG;
return gcvt(val,ndig,loc);
@@ -2140,6 +2147,7 @@ unsigned long int zero = 0, sts;
set_errno(ENOENT); break;
case RMS$_DEV:
set_errno(ENODEV); break;
+ case RMS$_FNM:
case RMS$_SYN:
set_errno(EINVAL); break;
case RMS$_PRV:
@@ -3424,6 +3432,7 @@ int
flex_fstat(int fd, struct mystat *statbufp)
{
if (!fstat(fd,(stat_t *) statbufp)) {
+ if (statbufp == &statcache) *namecache == '\0';
statbufp->st_dev = encode_dev(statbufp->st_devnam);
return 0;
}
@@ -3486,16 +3495,22 @@ my_binmode(FILE *fp, char iotype)
fpos_t pos;
if (!fgetname(fp,filespec)) return NULL;
- if (fgetpos(fp,&pos) == -1) return NULL;
+ if (iotype != '-' && fgetpos(fp,&pos) == -1) return NULL;
switch (iotype) {
case '<': case 'r': acmode = "rb"; break;
- case '>': case 'w': acmode = "wb"; break;
- case '+': case '|': case 's': acmode = "rb+"; break;
+ case '>': case 'w':
+ /* use 'a' instead of 'w' to avoid creating new file;
+ fsetpos below will take care of restoring file position */
case 'a': acmode = "ab"; break;
- case '-': acmode = fileno(fp) ? "wb" : "rb"; break;
+ case '+': case '|': case 's': acmode = "rb+"; break;
+ case '-': acmode = fileno(fp) ? "ab" : "rb"; break;
+ default:
+ warn("Unrecognized iotype %c in my_binmode",iotype);
+ acmode = "rb+";
}
if (freopen(filespec,acmode,fp) == NULL) return NULL;
- if (fsetpos(fp,&pos) == -1) return NULL;
+ if (iotype != '-' && fsetpos(fp,&pos) == -1) return NULL;
+ return fp;
} /* end of my_binmode() */
/*}}}*/
diff --git a/vms/vms_yfix.pl b/vms/vms_yfix.pl
index 33af914b25..9f29c80825 100644
--- a/vms/vms_yfix.pl
+++ b/vms/vms_yfix.pl
@@ -6,10 +6,12 @@
# If it finds that the input files are already patches for VMS,
# it just copies the input to the output.
#
-# Revised 29-Jan-1996 by Charles Bailey bailey@genetics.upenn.edu
+# Revised 20-Dec-1996 by Charles Bailey bailey@genetics.upenn.edu
-$VERSION = '1.1';
+$VERSION = '1.11';
+push(@ARGV,(qw[ perly.c perly.h vms/perly_c.vms vms/perly_h.vms])[@ARGV..4])
+ if @ARGV < 4;
($cinfile,$hinfile,$coutfile,$houtfile) = @ARGV;
open C,$cinfile or die "Can't read $cinfile: $!\n";