This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: c++/10505: [sparc only] g++ 3.2.1 on sun won't compile obj withlist ofobj as member data


The following reply was made to PR c++/10505; it has been noted by GNATS.

From: tom <tjj at aol dot net>
To: ehrhardt at mathematik dot uni-ulm dot de, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org,
   nobody at gcc dot gnu dot org, tjj at aol dot net, gcc-gnats at gcc dot gnu dot org
Cc:  
Subject: Re: c++/10505: [sparc only] g++ 3.2.1 on sun won't compile obj with
 list ofobj as member data
Date: Mon, 28 Apr 2003 12:33:18 -0400 (EDT)

 --ELM745743854-1256-0_
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: 7bit
 
 ehrhardt at mathematik dot uni-ulm dot de writes...
 
 > Subject: Re: c++/10505: [sparc only] g++ 3.2.1 on sun won't compile obj with list ofobj as member data
 
 > Synopsis: [sparc only] g++ 3.2.1 on sun won't compile obj with list ofobj as member data
 > 
 > State-Changed-From-To: open->feedback
 > State-Changed-By: cae
 > State-Changed-When: Mon Apr 28 16:09:52 2003
 > State-Changed-Why:
 >     I can't reproduce this. Do you use gcc's <list> header? In any case
 
 Yes.
 
 >     please submit preprocessed source code, i.e. run ``g++ foo.c -save-temps''
 >     and send the foo.i file.
 >     
 >        regards  Christian
 
 Seems to be foo.ii. I thought I included it in the bug report, but here
 it is again. Thanks.
 
 
 >     
 > 
 > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10505
 
 
 -- 
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Tom Jarmolowski              _/_                   tjj at aol dot net
 America Online               /      __     _____   tjarmolow at aol dot com
 8002080660 at airmessage dot net   (__    (_)    (  )  )  Voice: (508) 875-1582
 
 
 
 --ELM745743854-1256-0_
 Content-Type: text/plain; charset=US-ASCII
 Content-Disposition: attachment; filename=foo.ii
 Content-Description: foo.ii
 Content-Transfer-Encoding: 7bit
 
 # 1 "foo.cc"
 # 1 "<built-in>"
 # 1 "<command line>"
 # 1 "foo.cc"
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 1 3
 # 65 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 3
 
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 1 3
 # 34 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception_defines.h" 1 3
 # 35 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 2 3
 
 namespace std
 {
 
   void
   __throw_bad_exception(void);
 
 
   void
   __throw_bad_alloc(void);
 
 
   void
   __throw_bad_cast(void);
 
   void
   __throw_bad_typeid(void);
 
 
   void
   __throw_logic_error(const char* __s);
 
   void
   __throw_domain_error(const char* __s);
 
   void
   __throw_invalid_argument(const char* __s);
 
   void
   __throw_length_error(const char* __s);
 
   void
   __throw_out_of_range(const char* __s);
 
   void
   __throw_runtime_error(const char* __s);
 
   void
   __throw_range_error(const char* __s);
 
   void
   __throw_overflow_error(const char* __s);
 
   void
   __throw_underflow_error(const char* __s);
 
 
   void
   __throw_ios_failure(const char* __s);
 }
 # 67 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 1 3
 # 64 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++config.h" 1 3
 # 34 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++config.h" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/os_defines.h" 1 3
 # 35 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++config.h" 2 3
 # 65 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstring" 1 3
 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstring" 3
 
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstddef" 1 3
 # 47 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstddef" 3
 
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stddef.h" 1 3 4
 # 147 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stddef.h" 3 4
 typedef int ptrdiff_t;
 # 201 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stddef.h" 3 4
 typedef unsigned int size_t;
 # 49 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstddef" 2 3
 
 namespace std
 {
   using ::ptrdiff_t;
   using ::size_t;
 }
 # 50 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstring" 2 3
 
 # 1 "/usr/include/string.h" 1 3 4
 # 16 "/usr/include/string.h" 3 4
 #pragma ident "@(#)string.h	1.22	97/12/22 SMI" 
 
 # 1 "/usr/include/sys/feature_tests.h" 1 3 4
 # 13 "/usr/include/sys/feature_tests.h" 3 4
 #pragma ident "@(#)feature_tests.h	1.17	97/12/04 SMI"
 
 # 1 "/usr/include/sys/isa_defs.h" 1 3 4
 # 9 "/usr/include/sys/isa_defs.h" 3 4
 #pragma ident "@(#)isa_defs.h	1.16	99/05/25 SMI"
 # 148 "/usr/include/sys/isa_defs.h" 3 4
 extern "C" {
 # 330 "/usr/include/sys/isa_defs.h" 3 4
 }
 # 16 "/usr/include/sys/feature_tests.h" 2 3 4
 
 
 extern "C" {
 # 175 "/usr/include/sys/feature_tests.h" 3 4
 }
 # 19 "/usr/include/string.h" 2 3 4
 
 
 extern "C" {
 # 43 "/usr/include/string.h" 3 4
 extern void *memcpy(void *, const void *, size_t);
 extern void *memmove(void *, const void *, size_t);
 extern char *strcpy(char *, const char *);
 extern char *strncpy(char *, const char *, size_t);
 
 extern char *strcat(char *, const char *);
 extern char *strncat(char *, const char *, size_t);
 
 extern int memcmp(const void *, const void *, size_t);
 extern int strcmp(const char *, const char *);
 extern int strcoll(const char *, const char *);
 extern int strncmp(const char *, const char *, size_t);
 extern size_t strxfrm(char *, const char *, size_t);
 
 extern void *memchr(const void *, int, size_t);
 extern char *strchr(const char *, int);
 extern size_t strcspn(const char *, const char *);
 extern char *strpbrk(const char *, const char *);
 extern char *strrchr(const char *, int);
 extern size_t strspn(const char *, const char *);
 extern char *strstr(const char *, const char *);
 extern char *strtok(char *, const char *);
 
 
 extern char *strtok_r(char *, const char *, char **);
 
 extern void *memset(void *, int, size_t);
 extern char *strerror(int);
 extern size_t strlen(const char *);
 
 
 
 extern void *memccpy(void *, const void *, int, size_t);
 
 
 
 
 extern char *strsignal(int);
 extern int ffs(int);
 extern int strcasecmp(const char *, const char *);
 extern int strncasecmp(const char *, const char *, size_t);
 
 
 
 
 
 extern char *strdup(const char *);
 # 146 "/usr/include/string.h" 3 4
 }
 # 52 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstring" 2 3
 # 77 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstring" 3
 namespace std
 {
   using ::memcpy;
   using ::memmove;
   using ::strcpy;
   using ::strncpy;
   using ::strcat;
   using ::strncat;
   using ::memcmp;
   using ::strcmp;
   using ::strcoll;
   using ::strncmp;
   using ::strxfrm;
   using ::strcspn;
   using ::strspn;
   using ::strtok;
   using ::memset;
   using ::strerror;
   using ::strlen;
 
   using ::memchr;
 
   inline void*
   memchr(void* __p, int __c, size_t __n)
   { return memchr(const_cast<const void*>(__p), __c, __n); }
 
   using ::strchr;
 
   inline char*
   strchr(char* __s1, int __n)
   { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
 
   using ::strpbrk;
 
   inline char*
   strpbrk(char* __s1, const char* __s2)
   { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
 
   using ::strrchr;
 
   inline char*
   strrchr(char* __s1, int __n)
   { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
 
   using ::strstr;
 
   inline char*
   strstr(char* __s1, const char* __s2)
   { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
 }
 # 66 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/climits" 1 3
 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/climits" 3
 
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/limits.h" 1 3 4
 # 11 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/limits.h" 3 4
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 1 3 4
 # 25 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4
 #pragma ident "@(#)limits.h	1.48	98/07/20 SMI" 
 # 40 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4
 # 1 "/usr/include/sys/int_limits.h" 1 3 4
 # 9 "/usr/include/sys/int_limits.h" 3 4
 #pragma ident "@(#)int_limits.h	1.5	98/01/06 SMI"
 # 47 "/usr/include/sys/int_limits.h" 3 4
 extern "C" {
 # 162 "/usr/include/sys/int_limits.h" 3 4
 }
 # 41 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 2 3 4
 
 
 
 extern "C" {
 # 282 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4
 typedef long clock_t;
 
 
 extern long _sysconf(int);
 # 307 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4
 # 1 "/usr/include/sys/unistd.h" 1 3 4
 # 25 "/usr/include/sys/unistd.h" 3 4
 #pragma ident "@(#)unistd.h	1.36	98/07/16 SMI" 
 
 
 
 
 extern "C" {
 # 264 "/usr/include/sys/unistd.h" 3 4
 }
 # 308 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 2 3 4
 # 318 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4
 extern long _sysconf(int);
 # 328 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4
 }
 # 12 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/limits.h" 2 3 4
 # 50 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/climits" 2 3
 # 67 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdlib" 1 3
 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdlib" 3
 
 
 
 
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 1 3 4
 # 25 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 3 4
 #pragma ident "@(#)stdlib.h	1.44	98/01/22 SMI" 
 
 
 
 
 
 # 1 "/usr/include/sys/wait.h" 1 3 4
 # 16 "/usr/include/sys/wait.h" 3 4
 #pragma ident "@(#)wait.h	1.21	97/04/08 SMI" 
 
 
 
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 1 3 4
 # 25 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 #pragma ident "@(#)types.h	1.63	98/04/28 SMI"
 
 
 
 
 
 
 
 # 1 "/usr/include/sys/machtypes.h" 1 3 4
 # 16 "/usr/include/sys/machtypes.h" 3 4
 #pragma ident "@(#)machtypes.h	1.12	96/08/01 SMI"
 
 
 
 
 extern "C" {
 # 33 "/usr/include/sys/machtypes.h" 3 4
 typedef struct _physadr_t { int r[1]; } *physadr_t;
 
 typedef struct _label_t { long val[2]; } label_t;
 
 
 
 typedef unsigned char lock_t;
 
 
 }
 # 34 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 2 3 4
 # 45 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 # 1 "/usr/include/sys/int_types.h" 1 3 4
 # 9 "/usr/include/sys/int_types.h" 3 4
 #pragma ident "@(#)int_types.h	1.6	97/08/20 SMI"
 # 45 "/usr/include/sys/int_types.h" 3 4
 extern "C" {
 # 62 "/usr/include/sys/int_types.h" 3 4
 typedef char int8_t;
 
 
 
 
 
 typedef short int16_t;
 typedef int int32_t;
 
 
 
 
 typedef long long int64_t;
 
 
 
 typedef unsigned char uint8_t;
 typedef unsigned short uint16_t;
 typedef unsigned int uint32_t;
 
 
 
 
 typedef unsigned long long uint64_t;
 # 94 "/usr/include/sys/int_types.h" 3 4
 typedef int64_t intmax_t;
 typedef uint64_t uintmax_t;
 # 110 "/usr/include/sys/int_types.h" 3 4
 typedef int intptr_t;
 typedef unsigned int uintptr_t;
 
 
 
 
 
 
 
 typedef char int_least8_t;
 
 
 
 
 
 typedef short int_least16_t;
 typedef int int_least32_t;
 
 
 
 
 typedef long long int_least64_t;
 
 
 
 typedef unsigned char uint_least8_t;
 typedef unsigned short uint_least16_t;
 typedef unsigned int uint_least32_t;
 
 
 
 
 typedef unsigned long long uint_least64_t;
 
 
 
 
 }
 # 46 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 2 3 4
 
 
 
 
 
 
 
 extern "C" {
 # 62 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef long long longlong_t;
 typedef unsigned long long u_longlong_t;
 # 85 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef long t_scalar_t;
 typedef unsigned long t_uscalar_t;
 
 
 
 
 
 typedef unsigned char uchar_t;
 typedef unsigned short ushort_t;
 typedef unsigned int uint_t;
 typedef unsigned long ulong_t;
 
 typedef char *caddr_t;
 typedef long daddr_t;
 typedef short cnt_t;
 
 
 typedef ulong_t paddr_t;
 # 125 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef ulong_t pfn_t;
 typedef ulong_t pgcnt_t;
 typedef long spgcnt_t;
 
 typedef uchar_t use_t;
 typedef short sysid_t;
 typedef short index_t;
 typedef void *timeout_id_t;
 typedef void *bufcall_id_t;
 # 147 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef long off_t;
 # 156 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef longlong_t off64_t;
 
 
 
 
 
 
 typedef ulong_t ino_t;
 typedef long blkcnt_t;
 typedef ulong_t fsblkcnt_t;
 typedef ulong_t fsfilcnt_t;
 # 181 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef u_longlong_t ino64_t;
 typedef longlong_t blkcnt64_t;
 typedef u_longlong_t fsblkcnt64_t;
 typedef u_longlong_t fsfilcnt64_t;
 
 
 
 
 
 
 typedef long blksize_t;
 
 
 
 typedef enum { _B_FALSE, _B_TRUE } boolean_t;
 # 208 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef int64_t pad64_t;
 typedef uint64_t upad64_t;
 # 221 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef longlong_t offset_t;
 typedef u_longlong_t u_offset_t;
 typedef u_longlong_t len_t;
 typedef longlong_t diskaddr_t;
 # 242 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef union {
         offset_t _f;
         struct {
                 int32_t _u;
                 int32_t _l;
         } _p;
 } lloff_t;
 # 262 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef union {
         diskaddr_t _f;
         struct {
                 int32_t _u;
                 int32_t _l;
         } _p;
 } lldaddr_t;
 
 
 typedef uint_t k_fltset_t;
 # 287 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef long id_t;
 
 
 
 
 
 
 typedef uint_t useconds_t;
 
 
 
 typedef long suseconds_t;
 # 308 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef ulong_t major_t;
 typedef ulong_t minor_t;
 
 
 
 
 
 typedef short pri_t;
 # 328 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef ushort_t o_mode_t;
 typedef short o_dev_t;
 typedef ushort_t o_uid_t;
 typedef o_uid_t o_gid_t;
 typedef short o_nlink_t;
 typedef short o_pid_t;
 typedef ushort_t o_ino_t;
 
 
 
 
 
 typedef int key_t;
 
 
 
 typedef ulong_t mode_t;
 
 
 
 
 
 
 
 typedef long uid_t;
 
 
 
 typedef uid_t gid_t;
 
 
 
 
 
 
 typedef unsigned int pthread_t;
 typedef unsigned int pthread_key_t;
 
 typedef struct _pthread_mutex {
         struct {
                 uint8_t __pthread_mutex_flag[4];
                 uint32_t __pthread_mutex_type;
         } __pthread_mutex_flags;
         union {
                 struct {
                         uint8_t __pthread_mutex_pad[8];
                 } __pthread_mutex_lock64;
                 upad64_t __pthread_mutex_owner64;
         } __pthread_mutex_lock;
         upad64_t __pthread_mutex_data;
 } pthread_mutex_t;
 
 typedef struct _pthread_cond {
         struct {
                 uint8_t __pthread_cond_flag[4];
                 uint32_t __pthread_cond_type;
         } __pthread_cond_flags;
         upad64_t __pthread_cond_data;
 } pthread_cond_t;
 
 
 
 
 typedef struct _pthread_rwlock {
         int32_t __pthread_rwlock_readers;
         uint16_t __pthread_rwlock_type;
         uint16_t __pthread_rwlock_magic;
         upad64_t __pthread_rwlock_pad1[3];
         upad64_t __pthread_rwlock_pad2[2];
         upad64_t __pthread_rwlock_pad3[2];
 } pthread_rwlock_t;
 
 
 
 
 typedef struct _pthread_attr {
         void *__pthread_attrp;
 } pthread_attr_t;
 
 
 
 
 
 typedef struct _pthread_mutexattr {
         void *__pthread_mutexattrp;
 } pthread_mutexattr_t;
 
 
 
 
 
 typedef struct _pthread_condattr {
         void *__pthread_condattrp;
 } pthread_condattr_t;
 
 
 
 
 typedef struct _once {
         upad64_t __pthread_once_pad[4];
 } pthread_once_t;
 
 
 
 
 
 typedef struct _pthread_rwlockattr {
         void *__pthread_rwlockattrp;
 } pthread_rwlockattr_t;
 
 typedef ulong_t dev_t;
 
 
 
 
 
 typedef ulong_t nlink_t;
 typedef long pid_t;
 # 470 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef int ssize_t;
 
 
 
 
 
 typedef long time_t;
 # 486 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef int clockid_t;
 
 
 
 
 typedef int timer_t;
 
 
 
 
 
 
 typedef unsigned char unchar;
 typedef unsigned short ushort;
 typedef unsigned int uint;
 typedef unsigned long ulong;
 # 552 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 typedef unsigned char u_char;
 typedef unsigned short u_short;
 typedef unsigned int u_int;
 typedef unsigned long u_long;
 typedef struct _quad { int val[2]; } quad_t;
 typedef quad_t quad;
 
 
 
 
 
 
 # 1 "/usr/include/sys/select.h" 1 3 4
 # 12 "/usr/include/sys/select.h" 3 4
 #pragma ident "@(#)select.h	1.16	98/04/27 SMI" 
 
 
 
 
 # 1 "/usr/include/sys/time.h" 1 3 4
 # 22 "/usr/include/sys/time.h" 3 4
 #pragma ident "@(#)time.h	2.62	98/02/04 SMI" 
 # 32 "/usr/include/sys/time.h" 3 4
 extern "C" {
 # 49 "/usr/include/sys/time.h" 3 4
 struct timeval {
         time_t tv_sec;
         suseconds_t tv_usec;
 };
 # 82 "/usr/include/sys/time.h" 3 4
 struct timezone {
         int tz_minuteswest;
         int tz_dsttime;
 };
 
 
 
 
 
 }
 # 100 "/usr/include/sys/time.h" 3 4
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 1 3 4
 # 101 "/usr/include/sys/time.h" 2 3 4
 
 
 
 extern "C" {
 # 155 "/usr/include/sys/time.h" 3 4
 struct itimerval {
         struct timeval it_interval;
         struct timeval it_value;
 };
 # 203 "/usr/include/sys/time.h" 3 4
 typedef longlong_t hrtime_t;
 # 315 "/usr/include/sys/time.h" 3 4
 int adjtime(struct timeval *, struct timeval *);
 # 326 "/usr/include/sys/time.h" 3 4
 int getitimer(int, struct itimerval *);
 int utimes(const char *, const struct timeval *);
 
 int setitimer(int, const struct itimerval *, struct itimerval *);
 # 364 "/usr/include/sys/time.h" 3 4
 int settimeofday(struct timeval *, void *);
 
 hrtime_t gethrtime(void);
 hrtime_t gethrvtime(void);
 # 384 "/usr/include/sys/time.h" 3 4
 int gettimeofday(struct timeval *, void *);
 # 405 "/usr/include/sys/time.h" 3 4
 # 1 "/usr/include/time.h" 1 3 4
 # 16 "/usr/include/time.h" 3 4
 #pragma ident "@(#)time.h	1.36	98/03/27 SMI" 
 
 
 
 
 
 extern "C" {
 # 64 "/usr/include/time.h" 3 4
 struct tm {
         int tm_sec;
         int tm_min;
         int tm_hour;
         int tm_mday;
         int tm_mon;
         int tm_year;
         int tm_wday;
         int tm_yday;
         int tm_isdst;
 };
 
 
 
 extern clock_t clock(void);
 extern double difftime(time_t, time_t);
 extern time_t mktime(struct tm *);
 extern time_t time(time_t *);
 extern char *asctime(const struct tm *);
 extern char *ctime(const time_t *);
 extern struct tm *gmtime(const time_t *);
 extern struct tm *localtime(const time_t *);
 extern size_t strftime(char *, size_t, const char *, const struct tm *);
 
 
 
 extern struct tm *gmtime_r(const time_t *, struct tm *);
 extern struct tm *localtime_r(const time_t *, struct tm *);
 
 
 
 
 
 extern char *strptime(const char *, const char *, struct tm *);
 
 
 
 
 
 # 1 "/usr/include/sys/time_impl.h" 1 3 4
 # 15 "/usr/include/sys/time_impl.h" 3 4
 #pragma ident "@(#)time_impl.h	1.3	98/02/13 SMI"
 
 
 
 
 extern "C" {
 # 36 "/usr/include/sys/time_impl.h" 3 4
 typedef struct timespec {
         time_t tv_sec;
         long tv_nsec;
 } timespec_t;
 # 60 "/usr/include/sys/time_impl.h" 3 4
 typedef struct timespec timestruc_t;
 # 79 "/usr/include/sys/time_impl.h" 3 4
 typedef struct itimerspec {
         struct timespec it_interval;
         struct timespec it_value;
 } itimerspec_t;
 # 130 "/usr/include/sys/time_impl.h" 3 4
 }
 # 104 "/usr/include/time.h" 2 3 4
 # 118 "/usr/include/time.h" 3 4
 union sigval {
         int sival_int;
         void *sival_ptr;
 };
 
 
 
 
 struct sigevent {
         int sigev_notify;
         int sigev_signo;
         union sigval sigev_value;
         void (*sigev_notify_function)(union sigval);
         pthread_attr_t *sigev_notify_attributes;
         int __sigev_pad2;
 };
 
 
 extern int clock_getres(clockid_t, struct timespec *);
 extern int clock_gettime(clockid_t, struct timespec *);
 extern int clock_settime(clockid_t, const struct timespec *);
 extern int timer_create(clockid_t, struct sigevent *, timer_t *);
 extern int timer_delete(timer_t);
 extern int timer_getoverrun(timer_t);
 extern int timer_gettime(timer_t, struct itimerspec *);
 extern int timer_settime(timer_t, int, const struct itimerspec *,
                 struct itimerspec *);
 extern int nanosleep(const struct timespec *, struct timespec *);
 
 
 
 
 extern void tzset(void);
 
 extern char *tzname[2];
 # 162 "/usr/include/time.h" 3 4
 extern long timezone;
 extern int daylight;
 # 176 "/usr/include/time.h" 3 4
 extern struct tm *getdate(const char *);
 
 
 
 
 
 
 extern int getdate_err;
 # 266 "/usr/include/time.h" 3 4
 extern char *asctime_r(const struct tm *, char *);
 extern char *ctime_r(const time_t *, char *);
 #pragma redefine_extname ctime_r __posix_ctime_r
 #pragma redefine_extname asctime_r __posix_asctime_r
 # 334 "/usr/include/time.h" 3 4
 }
 # 406 "/usr/include/sys/time.h" 2 3 4
 # 418 "/usr/include/sys/time.h" 3 4
 # 1 "/usr/include/sys/select.h" 1 3 4
 # 419 "/usr/include/sys/time.h" 2 3 4
 
 
 
 
 
 }
 # 18 "/usr/include/sys/select.h" 2 3 4
 
 
 
 extern "C" {
 # 45 "/usr/include/sys/select.h" 3 4
 typedef long fd_mask;
 
 typedef long fds_mask;
 # 73 "/usr/include/sys/select.h" 3 4
 typedef struct fd_set {
 
 
 
         long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))];
 } fd_set;
 # 97 "/usr/include/sys/select.h" 3 4
 extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
 
 
 
 
 
 
 }
 # 565 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 2 3 4
 # 581 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4
 }
 # 21 "/usr/include/sys/wait.h" 2 3 4
 
 
 
 # 1 "/usr/include/sys/resource.h" 1 3 4
 # 16 "/usr/include/sys/resource.h" 3 4
 #pragma ident "@(#)resource.h	1.25	98/06/30 SMI" 
 
 
 
 
 
 
 
 extern "C" {
 # 67 "/usr/include/sys/resource.h" 3 4
 typedef unsigned long rlim_t;
 # 102 "/usr/include/sys/resource.h" 3 4
 struct rlimit {
         rlim_t rlim_cur;
         rlim_t rlim_max;
 };
 
 
 
 
 typedef u_longlong_t rlim64_t;
 
 
 
 
 
 struct rlimit64 {
         rlim64_t rlim_cur;
         rlim64_t rlim_max;
 };
 # 143 "/usr/include/sys/resource.h" 3 4
 struct rusage {
         struct timeval ru_utime;
         struct timeval ru_stime;
         long ru_maxrss;
         long ru_ixrss;
         long ru_idrss;
         long ru_isrss;
         long ru_minflt;
         long ru_majflt;
         long ru_nswap;
         long ru_inblock;
         long ru_oublock;
         long ru_msgsnd;
         long ru_msgrcv;
         long ru_nsignals;
         long ru_nvcsw;
         long ru_nivcsw;
 };
 # 193 "/usr/include/sys/resource.h" 3 4
 extern int setrlimit(int, const struct rlimit *);
 extern int getrlimit(int, struct rlimit *);
 
 
 
 
 extern int setrlimit64(int, const struct rlimit64 *);
 extern int getrlimit64(int, struct rlimit64 *);
 
 
 extern int getpriority(int, id_t);
 extern int setpriority(int, id_t, int);
 extern int getrusage(int, struct rusage *);
 # 228 "/usr/include/sys/resource.h" 3 4
 }
 # 25 "/usr/include/sys/wait.h" 2 3 4
 # 1 "/usr/include/sys/siginfo.h" 1 3 4
 # 16 "/usr/include/sys/siginfo.h" 3 4
 #pragma ident "@(#)siginfo.h	1.54	98/03/27 SMI" 
 
 
 
 
 
 extern "C" {
 # 126 "/usr/include/sys/siginfo.h" 3 4
 # 1 "/usr/include/sys/machsig.h" 1 3 4
 # 16 "/usr/include/sys/machsig.h" 3 4
 #pragma ident "@(#)machsig.h	1.14	98/02/05 SMI"
 
 
 
 
 
 extern "C" {
 # 110 "/usr/include/sys/machsig.h" 3 4
 }
 # 127 "/usr/include/sys/siginfo.h" 2 3 4
 # 221 "/usr/include/sys/siginfo.h" 3 4
 typedef struct siginfo {
 
 
 
         int si_signo;
         int si_code;
         int si_errno;
 
 
 
         union {
 
                 int __pad[((128 / sizeof (int)) - 3)];
 
                 struct {
                         pid_t __pid;
                         union {
                                 struct {
                                         uid_t __uid;
 
 
                                         union sigval __value;
 
 
 
                                 } __kill;
                                 struct {
                                         clock_t __utime;
                                         int __status;
                                         clock_t __stime;
                                 } __cld;
                         } __pdata;
                 } __proc;
 
                 struct {
                         void *__addr;
                         int __trapno;
                         caddr_t __pc;
                 } __fault;
 
                 struct {
 
                         int __fd;
                         long __band;
                 } __file;
 
                 struct {
                         caddr_t __faddr;
 
 
                         timestruc_t __tstamp;
 
 
 
                         short __syscall;
                         char __nsysarg;
                         char __fault;
                         long __sysarg[8];
                         int __mstate[10];
                 } __prof;
 
         } __data;
 
 } siginfo_t;
 # 354 "/usr/include/sys/siginfo.h" 3 4
 typedef struct k_siginfo {
         int si_signo;
         int si_code;
         int si_errno;
 
 
 
         union {
                 struct {
                         pid_t __pid;
                         union {
                                 struct {
                                         uid_t __uid;
                                         union sigval __value;
                                 } __kill;
                                 struct {
                                         clock_t __utime;
                                         int __status;
                                         clock_t __stime;
                                 } __cld;
                         } __pdata;
                 } __proc;
 
                 struct {
                         void *__addr;
                         int __trapno;
                         caddr_t __pc;
                 } __fault;
 
                 struct {
 
                         int __fd;
                         long __band;
                 } __file;
 
                 struct {
                         caddr_t __faddr;
 
 
 
                         timestruc_t __tstamp;
 
 
 
                         short __syscall;
                         char __nsysarg;
                         char __fault;
 
 
 
                 } __prof;
 
         } __data;
 
 } k_siginfo_t;
 
 typedef struct sigqueue {
         struct sigqueue *sq_next;
         k_siginfo_t sq_info;
         void (*sq_func)(struct sigqueue *);
         void *sq_backptr;
 
 } sigqueue_t;
 # 454 "/usr/include/sys/siginfo.h" 3 4
 }
 # 26 "/usr/include/sys/wait.h" 2 3 4
 # 1 "/usr/include/sys/procset.h" 1 3 4
 # 16 "/usr/include/sys/procset.h" 3 4
 #pragma ident "@(#)procset.h	1.18	98/06/30 SMI" 
 
 
 extern "C" {
 # 40 "/usr/include/sys/procset.h" 3 4
 typedef enum
 
         idtype
 
                 {
         P_PID,
         P_PPID,
         P_PGID,
 
         P_SID,
         P_CID,
         P_UID,
         P_GID,
         P_ALL,
         P_LWPID
 } idtype_t;
 # 64 "/usr/include/sys/procset.h" 3 4
 typedef enum idop {
         POP_DIFF,
 
 
         POP_AND,
 
 
         POP_OR,
 
 
         POP_XOR
 
 
 } idop_t;
 
 
 
 
 
 
 
 typedef struct procset {
         idop_t p_op;
 
 
 
 
         idtype_t p_lidtype;
 
 
         id_t p_lid;
 
         idtype_t p_ridtype;
 
 
         id_t p_rid;
 } procset_t;
 # 129 "/usr/include/sys/procset.h" 3 4
 }
 # 27 "/usr/include/sys/wait.h" 2 3 4
 
 
 
 extern "C" {
 # 86 "/usr/include/sys/wait.h" 3 4
 extern pid_t wait(int *);
 extern pid_t waitpid(pid_t, int *, int);
 
 
 extern int waitid(idtype_t, id_t, siginfo_t *, int);
 extern pid_t wait3(int *, int, struct rusage *);
 
 
 
 
 extern pid_t wait4(pid_t, int *, int, struct rusage *);
 # 118 "/usr/include/sys/wait.h" 3 4
 }
 # 32 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 2 3 4
 
 
 
 extern "C" {
 
 
 typedef struct {
         int quot;
         int rem;
 } div_t;
 
 typedef struct {
         long quot;
         long rem;
 } ldiv_t;
 
 
 typedef struct {
         long long quot;
         long long rem;
 } lldiv_t;
 # 148 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 3 4
 extern unsigned char __ctype[];
 
 
 
 extern double atof(const char *);
 extern int atoi(const char *);
 extern long int atol(const char *);
 extern double strtod(const char *, char **);
 extern long int strtol(const char *, char **, int);
 extern unsigned long int strtoul(const char *, char **, int);
 
 extern int rand(void);
 extern void srand(unsigned int);
 
 
 extern int rand_r(unsigned int *);
 
 
 extern void *calloc(size_t, size_t);
 extern void free(void *);
 extern void *malloc(size_t);
 extern void *realloc(void *, size_t);
 
 extern void abort(void);
 extern int atexit(void (*)(void));
 extern void exit(int);
 extern void _exithandle(void);
 extern char *getenv(const char *);
 extern int system(const char *);
 
 extern void *bsearch(const void *, const void *, size_t, size_t,
         int (*)(const void *, const void *));
 extern void qsort(void *, size_t, size_t,
         int (*)(const void *, const void *));
 
 extern int abs(int);
 extern div_t div(int, int);
 extern long int labs(long);
 extern ldiv_t ldiv(long, long);
 
 extern int mbtowc(wchar_t *, const char *, size_t);
 extern int mblen(const char *, size_t);
 extern int wctomb(char *, wchar_t);
 
 extern size_t mbstowcs(wchar_t *, const char *, size_t);
 extern size_t wcstombs(char *, const wchar_t *, size_t);
 
 
 
 
 extern double drand48(void);
 extern double erand48(unsigned short *);
 extern long jrand48(unsigned short *);
 extern void lcong48(unsigned short *);
 extern long lrand48(void);
 extern long mrand48(void);
 extern long nrand48(unsigned short *);
 extern unsigned short *seed48(unsigned short *);
 extern void srand48(long);
 extern int putenv(char *);
 extern void setkey(const char *);
 # 219 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 3 4
 extern int mkstemp(char *);
 
 
 extern int mkstemp64(char *);
 
 
 
 
 
 
 extern long a64l(const char *);
 extern char *ecvt(double, int, int *, int *);
 extern char *fcvt(double, int, int *, int *);
 extern char *gcvt(double, int, char *);
 extern int getsubopt(char **, char *const *, char **);
 extern int grantpt(int);
 extern char *initstate(unsigned, char *, size_t);
 extern char *l64a(long);
 extern char *mktemp(char *);
 extern char *ptsname(int);
 extern long random(void);
 extern char *realpath(const char *, char *);
 extern char *setstate(const char *);
 extern void srandom(unsigned);
 extern int ttyslot(void);
 extern int unlockpt(int);
 extern void *valloc(size_t);
 
 
 
 
 extern int dup2(int, int);
 extern char *qecvt(long double, int, int *, int *);
 extern char *qfcvt(long double, int, int *, int *);
 extern char *qgcvt(long double, int, char *);
 extern char *getcwd(char *, size_t);
 extern const char *getexecname(void);
 extern char *getlogin(void);
 extern int getopt(int, char *const *, const char *);
 extern char *optarg;
 extern int optind, opterr, optopt;
 extern char *getpass(const char *);
 extern char *getpassphrase(const char *);
 extern int getpw(uid_t, char *);
 extern int isatty(int);
 extern void *memalign(size_t, size_t);
 extern char *ttyname(int);
 
 
 extern long long atoll(const char *);
 extern long long llabs(long long);
 extern lldiv_t lldiv(long long, long long);
 extern char *lltostr(long long, char *);
 extern long long strtoll(const char *, char **, int);
 extern unsigned long long strtoull(const char *, char **, int);
 extern char *ulltostr(unsigned long long, char *);
 # 412 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 3 4
 }
 # 53 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdlib" 2 3
 # 84 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdlib" 3
 namespace std
 {
   using ::div_t;
   using ::ldiv_t;
 
   using ::abort;
   using ::abs;
   using ::atexit;
   using ::atof;
   using ::atoi;
   using ::atol;
   using ::bsearch;
   using ::calloc;
   using ::div;
   using ::exit;
   using ::free;
   using ::getenv;
   using ::labs;
   using ::ldiv;
   using ::malloc;
   using ::mblen;
   using ::mbstowcs;
   using ::mbtowc;
   using ::qsort;
   using ::rand;
   using ::realloc;
   using ::srand;
   using ::strtod;
   using ::strtol;
   using ::strtoul;
   using ::system;
   using ::wcstombs;
   using ::wctomb;
 
   inline long
   abs(long __i) { return labs(__i); }
 
   inline ldiv_t
   div(long __i, long __j) { return ldiv(__i, __j); }
 }
 # 68 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3
 
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/new" 1 3
 # 42 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/new" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception" 1 3
 # 40 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception" 3
 extern "C++" {
 
 namespace std
 {
 
 
 
 
 
 
   class exception
   {
   public:
     exception() throw() { }
     virtual ~exception() throw();
 
 
     virtual const char* what() const throw();
   };
 
 
 
   class bad_exception : public exception
   {
   public:
     bad_exception() throw() { }
 
 
     virtual ~bad_exception() throw();
   };
 
 
   typedef void (*terminate_handler) ();
 
   typedef void (*unexpected_handler) ();
 
 
   terminate_handler set_terminate(terminate_handler) throw();
 
 
   void terminate() __attribute__ ((__noreturn__));
 
 
   unexpected_handler set_unexpected(unexpected_handler) throw();
 
 
   void unexpected() __attribute__ ((__noreturn__));
 # 98 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception" 3
   bool uncaught_exception() throw();
 }
 
 namespace __gnu_cxx
 {
 # 111 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception" 3
   void __verbose_terminate_handler ();
 }
 
 }
 # 43 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/new" 2 3
 
 extern "C++" {
 
 namespace std
 {
 
 
   class bad_alloc : public exception
   {
   public:
     bad_alloc() throw() { }
 
 
     virtual ~bad_alloc() throw();
   };
 
   struct nothrow_t { };
   extern const nothrow_t nothrow;
 
 
   typedef void (*new_handler)();
 
   new_handler set_new_handler(new_handler) throw();
 }
 # 79 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/new" 3
 void* operator new(std::size_t) throw (std::bad_alloc);
 void* operator new[](std::size_t) throw (std::bad_alloc);
 void operator delete(void*) throw();
 void operator delete[](void*) throw();
 void* operator new(std::size_t, const std::nothrow_t&) throw();
 void* operator new[](std::size_t, const std::nothrow_t&) throw();
 void operator delete(void*, const std::nothrow_t&) throw();
 void operator delete[](void*, const std::nothrow_t&) throw();
 
 
 inline void* operator new(std::size_t, void* __p) throw() { return __p; }
 inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
 
 
 inline void operator delete (void*, void*) throw() { };
 inline void operator delete[](void*, void*) throw() { };
 
 }
 # 70 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 1 3
 # 43 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 3
 
 
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stringfwd.h" 1 3
 # 43 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stringfwd.h" 3
 
 
 
 namespace std
 {
   template<typename _Alloc>
     class allocator;
 
   template<class _CharT>
     struct char_traits;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT>,
            typename _Alloc = allocator<_CharT> >
     class basic_string;
 
   template<> struct char_traits<char>;
 
   typedef basic_string<char> string;
 
 
 
 
 
 
 }
 # 46 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/fpos.h" 1 3
 # 43 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/fpos.h" 3
 
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++io.h" 1 3
 # 35 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++io.h" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdio" 1 3
 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdio" 3
 
 
 
 
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 1 3 4
 # 14 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdarg.h" 1 3 4
 # 43 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdarg.h" 3 4
 typedef __builtin_va_list __gnuc_va_list;
 # 15 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 2 3 4
 # 34 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 #pragma ident "@(#)stdio.h	1.69	98/07/13 SMI" 
 
 
 # 1 "/usr/include/sys/va_list.h" 1 3 4
 # 9 "/usr/include/sys/va_list.h" 3 4
 #pragma ident "@(#)va_list.h	1.11	97/11/22 SMI"
 # 22 "/usr/include/sys/va_list.h" 3 4
 extern "C" {
 
 
 
 typedef void *__va_list;
 
 
 
 
 
 }
 # 38 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 2 3 4
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio_tag.h" 1 3 4
 # 18 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio_tag.h" 3 4
 #pragma ident "@(#)stdio_tag.h	1.3	98/04/20 SMI"
 
 
 extern "C" {
 # 30 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio_tag.h" 3 4
 typedef struct __FILE __FILE;
 
 
 
 }
 # 39 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 2 3 4
 # 1 "/usr/include/stdio_impl.h" 1 3 4
 # 9 "/usr/include/stdio_impl.h" 3 4
 #pragma ident "@(#)stdio_impl.h	1.7	98/04/17 SMI"
 
 
 
 
 extern "C" {
 # 38 "/usr/include/stdio_impl.h" 3 4
 struct __FILE
 {
 
 
 
 
         ssize_t _cnt;
         unsigned char *_ptr;
 
         unsigned char *_base;
         unsigned char _flag;
         unsigned char _file;
         unsigned __orientation:2;
         unsigned __filler:6;
 };
 
 
 
 
 }
 # 40 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 2 3 4
 # 50 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 extern "C" {
 
 
 
 
 typedef __FILE FILE;
 # 74 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 typedef long long __longlong_t;
 # 103 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 typedef long fpos_t;
 
 
 
 
 
 
 
 typedef __longlong_t fpos64_t;
 # 132 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 typedef __va_list __not_va_list__;
 # 203 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 extern FILE __iob[20];
 # 215 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 extern unsigned char _sibuf[], _sobuf[];
 # 244 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 extern unsigned char *_bufendtab[];
 extern FILE *_lastbuf;
 # 275 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 extern int remove(const char *);
 extern int rename(const char *, const char *);
 extern FILE *tmpfile(void);
 extern char *tmpnam(char *);
 
 extern char *tmpnam_r(char *);
 
 extern int fclose(FILE *);
 extern int fflush(FILE *);
 extern FILE *fopen(const char *, const char *);
 extern FILE *freopen(const char *, const char *, FILE *);
 extern void setbuf(FILE *, char *);
 
 
 extern void setbuffer(FILE *, char *, size_t);
 extern int setlinebuf(FILE *);
 
 extern int setvbuf(FILE *, char *, int, size_t);
 
 extern int fprintf(FILE *, const char *, ...);
 
 extern int fscanf(FILE *, const char *, ...);
 
 extern int printf(const char *, ...);
 
 extern int scanf(const char *, ...);
 
 
 
 
 extern int snprintf(char *, size_t, const char *, ...);
 
 
 extern int sprintf(char *, const char *, ...);
 
 extern int sscanf(const char *, const char *, ...);
 extern int vfprintf(FILE *, const char *, __gnuc_va_list);
 extern int vprintf(const char *, __gnuc_va_list);
 
 
 
 extern int vsnprintf(char *, size_t, const char *, __gnuc_va_list);
 
 extern int vsprintf(char *, const char *, __gnuc_va_list);
 extern int fgetc(FILE *);
 extern char *fgets(char *, int, FILE *);
 extern int fputc(int, FILE *);
 extern int fputs(const char *, FILE *);
 extern int getc(FILE *);
 extern int getchar(void);
 extern char *gets(char *);
 extern int putc(int, FILE *);
 extern int putchar(int);
 extern int puts(const char *);
 extern int ungetc(int, FILE *);
 extern size_t fread(void *, size_t, size_t, FILE *);
 extern size_t fwrite(const void *, size_t, size_t, FILE *);
 extern int fgetpos(FILE *, fpos_t *);
 extern int fseek(FILE *, long, int);
 extern int fsetpos(FILE *, const fpos_t *);
 extern long ftell(FILE *);
 extern void rewind(FILE *);
 extern void clearerr(FILE *);
 extern int feof(FILE *);
 extern int ferror(FILE *);
 extern void perror(const char *);
 
 
 extern int __filbuf(FILE *);
 extern int __flsbuf(int, FILE *);
 # 353 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 extern FILE *fdopen(int, const char *);
 extern char *ctermid(char *);
 extern int fileno(FILE *);
 # 364 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 extern void flockfile(FILE *);
 extern int ftrylockfile(FILE *);
 extern void funlockfile(FILE *);
 extern int getc_unlocked(FILE *);
 extern int getchar_unlocked(void);
 extern int putc_unlocked(int, FILE *);
 extern int putchar_unlocked(int);
 # 379 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 extern FILE *popen(const char *, const char *);
 extern char *cuserid(char *);
 extern char *tempnam(const char *, const char *);
 extern int getopt(int, char *const *, const char *);
 
 
 
 extern char *optarg;
 extern int optind, opterr, optopt;
 extern int getw(FILE *);
 extern int putw(int, FILE *);
 extern int pclose(FILE *);
 
 
 
 
 
 
 
 extern int fseeko(FILE *, off_t, int);
 extern off_t ftello(FILE *);
 # 408 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 extern FILE *fopen64(const char *, const char *);
 extern FILE *freopen64(const char *, const char *, FILE *);
 extern FILE *tmpfile64(void);
 extern int fgetpos64(FILE *, fpos64_t *);
 extern int fsetpos64(FILE *, const fpos64_t *);
 extern int fseeko64(FILE *, off64_t, int);
 extern off64_t ftello64(FILE *);
 # 586 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4
 }
 # 53 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdio" 2 3
 # 97 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdio" 3
 namespace std
 {
   using ::FILE;
   using ::fpos_t;
 
   using ::clearerr;
   using ::fclose;
   using ::feof;
   using ::ferror;
   using ::fflush;
   using ::fgetc;
   using ::fgetpos;
   using ::fgets;
   using ::fopen;
   using ::fprintf;
   using ::fputc;
   using ::fputs;
   using ::fread;
   using ::freopen;
   using ::fscanf;
   using ::fseek;
   using ::fsetpos;
   using ::ftell;
   using ::fwrite;
   using ::getc;
   using ::getchar;
   using ::gets;
   using ::perror;
   using ::printf;
   using ::putc;
   using ::putchar;
   using ::puts;
   using ::remove;
   using ::rename;
   using ::rewind;
   using ::scanf;
   using ::setbuf;
   using ::setvbuf;
   using ::sprintf;
   using ::sscanf;
   using ::tmpfile;
   using ::tmpnam;
   using ::ungetc;
   using ::vfprintf;
   using ::vprintf;
   using ::vsprintf;
 }
 # 36 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++io.h" 2 3
 
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr.h" 1 3
 # 98 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr.h" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr-default.h" 1 3
 # 37 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr-default.h" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 1 3 4
 # 18 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 3 4
 #pragma ident "@(#)pthread.h	1.26	98/04/12 SMI"
 
 
 
 
 # 1 "/usr/include/sched.h" 1 3 4
 # 11 "/usr/include/sched.h" 3 4
 #pragma ident "@(#)sched.h	1.9	98/01/16 SMI"
 
 
 
 
 
 extern "C" {
 
 
 struct sched_param {
         int sched_priority;
         int sched_nicelim;
         int sched_nice;
         int sched_pad[6];
 
 
 
 };
 # 44 "/usr/include/sched.h" 3 4
 int sched_getparam(pid_t pid, struct sched_param *param);
 int sched_setparam(pid_t pid, const struct sched_param *param);
 int sched_getscheduler(pid_t pid);
 int sched_setscheduler(pid_t pid, int policy,
                 const struct sched_param *param);
 int sched_yield(void);
 int sched_get_priority_max(int policy);
 int sched_get_priority_min(int policy);
 int sched_rr_get_interval(pid_t pid, struct timespec *interval);
 # 65 "/usr/include/sched.h" 3 4
 }
 # 24 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 2 3 4
 
 
 
 extern "C" {
 # 103 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 3 4
 typedef struct _cleanup {
         uintptr_t pthread_cleanup_pad[4];
 } _cleanup_t;
 
 
 
 void __pthread_cleanup_push(void (*routine)(void *), void *args,
                                         caddr_t fp, _cleanup_t *info);
 void __pthread_cleanup_pop(int ex, _cleanup_t *info);
 caddr_t _getfp(void);
 # 137 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 3 4
 extern int pthread_attr_init(pthread_attr_t *);
 extern int pthread_attr_destroy(pthread_attr_t *);
 extern int pthread_attr_setstacksize(pthread_attr_t *, size_t);
 extern int pthread_attr_getstacksize(const pthread_attr_t *, size_t *);
 extern int pthread_attr_setstackaddr(pthread_attr_t *, void *);
 extern int pthread_attr_getstackaddr(const pthread_attr_t *, void **);
 extern int pthread_attr_setdetachstate(pthread_attr_t *, int);
 extern int pthread_attr_getdetachstate(const pthread_attr_t *, int *);
 extern int pthread_attr_setscope(pthread_attr_t *, int);
 extern int pthread_attr_getscope(const pthread_attr_t *, int *);
 extern int pthread_attr_setinheritsched(pthread_attr_t *, int);
 extern int pthread_attr_getinheritsched(const pthread_attr_t *, int *);
 extern int pthread_attr_setschedpolicy(pthread_attr_t *, int);
 extern int pthread_attr_getschedpolicy(const pthread_attr_t *, int *);
 extern int pthread_attr_setschedparam(pthread_attr_t *,
                                         const struct sched_param *);
 extern int pthread_attr_getschedparam(const pthread_attr_t *,
                                         struct sched_param *);
 extern int pthread_create(pthread_t *, const pthread_attr_t *,
                                 void * (*)(void *), void *);
 extern int pthread_once(pthread_once_t *, void (*)(void));
 extern int pthread_join(pthread_t, void **);
 extern int pthread_detach(pthread_t);
 extern void pthread_exit(void *);
 extern int pthread_cancel(pthread_t);
 extern int pthread_setschedparam(pthread_t, int, const struct sched_param *);
 extern int pthread_getschedparam(pthread_t, int *, struct sched_param *);
 extern int pthread_setcancelstate(int, int *);
 extern int pthread_setcanceltype(int, int *);
 extern void pthread_testcancel(void);
 extern int pthread_equal(pthread_t, pthread_t);
 extern int pthread_key_create(pthread_key_t *, void (*)(void *));
 extern int pthread_key_delete(pthread_key_t);
 extern int pthread_setspecific(pthread_key_t, const void *);
 extern void *pthread_getspecific(pthread_key_t);
 extern pthread_t pthread_self(void);
 
 
 
 
 extern int pthread_mutexattr_init(pthread_mutexattr_t *);
 extern int pthread_mutexattr_destroy(pthread_mutexattr_t *);
 extern int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int);
 extern int pthread_mutexattr_getpshared(const pthread_mutexattr_t *, int *);
 extern int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int);
 extern int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *, int *);
 extern int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int);
 extern int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *, int *);
 extern int pthread_mutex_init(pthread_mutex_t *, const pthread_mutexattr_t *);
 extern int pthread_mutex_destroy(pthread_mutex_t *);
 extern int pthread_mutex_lock(pthread_mutex_t *);
 extern int pthread_mutex_unlock(pthread_mutex_t *);
 extern int pthread_mutex_trylock(pthread_mutex_t *);
 extern int pthread_mutex_setprioceiling(pthread_mutex_t *, int, int *);
 extern int pthread_mutex_getprioceiling(pthread_mutex_t *, int *);
 extern int pthread_condattr_init(pthread_condattr_t *);
 extern int pthread_condattr_destroy(pthread_condattr_t *);
 extern int pthread_condattr_setpshared(pthread_condattr_t *, int);
 extern int pthread_condattr_getpshared(const pthread_condattr_t *, int *);
 extern int pthread_cond_init(pthread_cond_t *, const pthread_condattr_t *);
 extern int pthread_cond_destroy(pthread_cond_t *);
 extern int pthread_cond_broadcast(pthread_cond_t *);
 extern int pthread_cond_signal(pthread_cond_t *);
 extern int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *);
 extern int pthread_cond_timedwait(pthread_cond_t *, pthread_mutex_t *,
                                         const struct timespec *);
 extern int pthread_attr_getguardsize(const pthread_attr_t *, size_t *);
 extern int pthread_attr_setguardsize(pthread_attr_t *, size_t);
 extern int pthread_getconcurrency(void);
 extern int pthread_setconcurrency(int newval);
 extern int pthread_mutexattr_settype(pthread_mutexattr_t *, int);
 extern int pthread_mutexattr_gettype(const pthread_mutexattr_t *, int *);
 extern int pthread_rwlock_init(pthread_rwlock_t *,
                                 const pthread_rwlockattr_t *);
 extern int pthread_rwlock_destroy(pthread_rwlock_t *);
 extern int pthread_rwlock_rdlock(pthread_rwlock_t *);
 extern int pthread_rwlock_tryrdlock(pthread_rwlock_t *);
 extern int pthread_rwlock_wrlock(pthread_rwlock_t *);
 extern int pthread_rwlock_trywrlock(pthread_rwlock_t *);
 extern int pthread_rwlock_unlock(pthread_rwlock_t *);
 extern int pthread_rwlockattr_init(pthread_rwlockattr_t *);
 extern int pthread_rwlockattr_destroy(pthread_rwlockattr_t *);
 extern int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *, int *);
 extern int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int);
 # 312 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 3 4
 }
 # 38 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr-default.h" 2 3
 
 typedef pthread_key_t __gthread_key_t;
 typedef pthread_once_t __gthread_once_t;
 typedef pthread_mutex_t __gthread_mutex_t;
 
 
 
 
 
 
 #pragma weak pthread_once
 #pragma weak pthread_key_create
 #pragma weak pthread_key_delete
 #pragma weak pthread_getspecific
 #pragma weak pthread_setspecific
 #pragma weak pthread_create
 
 #pragma weak pthread_mutex_lock 
 #pragma weak pthread_mutex_trylock 
 #pragma weak pthread_mutex_unlock 
 # 80 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr-default.h" 3
 static inline int
 __gthread_active_p (void)
 {
   static void *const __gthread_active_ptr = (void *) &pthread_create;
   return __gthread_active_ptr != 0;
 }
 # 437 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr-default.h" 3
 static inline int
 __gthread_once (__gthread_once_t *once, void (*func) (void))
 {
   if (__gthread_active_p ())
     return pthread_once (once, func);
   else
     return -1;
 }
 
 static inline int
 __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))
 {
   return pthread_key_create (key, dtor);
 }
 
 static inline int
 __gthread_key_dtor (__gthread_key_t key, void *ptr)
 {
 
   if (ptr)
     return pthread_setspecific (key, 0);
   else
     return 0;
 }
 
 static inline int
 __gthread_key_delete (__gthread_key_t key)
 {
   return pthread_key_delete (key);
 }
 
 static inline void *
 __gthread_getspecific (__gthread_key_t key)
 {
   return pthread_getspecific (key);
 }
 
 static inline int
 __gthread_setspecific (__gthread_key_t key, const void *ptr)
 {
   return pthread_setspecific (key, ptr);
 }
 
 static inline int
 __gthread_mutex_lock (__gthread_mutex_t *mutex)
 {
   if (__gthread_active_p ())
     return pthread_mutex_lock (mutex);
   else
     return 0;
 }
 
 static inline int
 __gthread_mutex_trylock (__gthread_mutex_t *mutex)
 {
   if (__gthread_active_p ())
     return pthread_mutex_trylock (mutex);
   else
     return 0;
 }
 
 static inline int
 __gthread_mutex_unlock (__gthread_mutex_t *mutex)
 {
   if (__gthread_active_p ())
     return pthread_mutex_unlock (mutex);
   else
     return 0;
 }
 # 99 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr.h" 2 3
 # 38 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++io.h" 2 3
 
 namespace std
 {
 
   typedef long streamoff;
   typedef ptrdiff_t streamsize;
 
 
 
   typedef fpos_t __c_streampos;
 
   typedef __gthread_mutex_t __c_lock;
 
 
   typedef FILE __c_file;
 
 
   struct __ios_flags
   {
     typedef short __int_type;
 
     static const __int_type _S_boolalpha = 0x0001;
     static const __int_type _S_dec = 0x0002;
     static const __int_type _S_fixed = 0x0004;
     static const __int_type _S_hex = 0x0008;
     static const __int_type _S_internal = 0x0010;
     static const __int_type _S_left = 0x0020;
     static const __int_type _S_oct = 0x0040;
     static const __int_type _S_right = 0x0080;
     static const __int_type _S_scientific = 0x0100;
     static const __int_type _S_showbase = 0x0200;
     static const __int_type _S_showpoint = 0x0400;
     static const __int_type _S_showpos = 0x0800;
     static const __int_type _S_skipws = 0x1000;
     static const __int_type _S_unitbuf = 0x2000;
     static const __int_type _S_uppercase = 0x4000;
     static const __int_type _S_adjustfield = 0x0020 | 0x0080 | 0x0010;
     static const __int_type _S_basefield = 0x0002 | 0x0040 | 0x0008;
     static const __int_type _S_floatfield = 0x0100 | 0x0004;
 
 
     static const __int_type _S_badbit = 0x01;
     static const __int_type _S_eofbit = 0x02;
     static const __int_type _S_failbit = 0x04;
 
 
     static const __int_type _S_app = 0x01;
     static const __int_type _S_ate = 0x02;
     static const __int_type _S_bin = 0x04;
     static const __int_type _S_in = 0x08;
     static const __int_type _S_out = 0x10;
     static const __int_type _S_trunc = 0x20;
   };
 }
 # 45 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/fpos.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cwchar" 1 3
 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cwchar" 3
 
 
 
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/ctime" 1 3
 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/ctime" 3
 # 64 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/ctime" 3
 namespace std
 {
   using ::clock_t;
   using ::time_t;
   using ::tm;
 
   using ::clock;
   using ::difftime;
   using ::mktime;
   using ::time;
   using ::asctime;
   using ::ctime;
   using ::gmtime;
   using ::localtime;
   using ::strftime;
 }
 # 52 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cwchar" 2 3
 
 
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 1 3 4
 # 18 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4
 #pragma ident "@(#)wchar.h	1.31	98/05/04 SMI"
 
 
 
 
 # 1 "/usr/include/wchar_impl.h" 1 3 4
 # 9 "/usr/include/wchar_impl.h" 3 4
 #pragma ident "@(#)wchar_impl.h	1.2	98/02/27 SMI"
 
 
 
 
 extern "C" {
 
 
 
 typedef struct {
 
 
 
         int __filler[6];
 
 } __mbstate_t;
 
 
 
 }
 # 24 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 2 3 4
 # 33 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4
 # 1 "/usr/include/ctype.h" 1 3 4
 # 16 "/usr/include/ctype.h" 3 4
 #pragma ident "@(#)ctype.h	1.30	98/01/16 SMI" 
 
 
 
 
 extern "C" {
 # 48 "/usr/include/ctype.h" 3 4
 extern int isalnum(int);
 extern int isalpha(int);
 extern int iscntrl(int);
 extern int isdigit(int);
 extern int isgraph(int);
 extern int islower(int);
 extern int isprint(int);
 extern int ispunct(int);
 extern int isspace(int);
 extern int isupper(int);
 extern int isxdigit(int);
 extern int tolower(int);
 extern int toupper(int);
 
 
 
 
 extern int isascii(int);
 extern int toascii(int);
 extern int _tolower(int);
 extern int _toupper(int);
 
 
 
 extern unsigned char __ctype[];
 extern unsigned int *__ctype_mask;
 extern int *__trans_upper;
 extern int *__trans_lower;
 # 163 "/usr/include/ctype.h" 3 4
 }
 # 34 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 2 3 4
 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stddef.h" 1 3 4
 # 35 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 2 3 4
 
 
 
 
 
 extern "C" {
 # 61 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4
 typedef long wint_t;
 
 
 
 
 
 typedef int wctype_t;
 # 103 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4
 typedef __mbstate_t mbstate_t;
 # 113 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4
 extern int iswalpha(wint_t);
 extern int iswupper(wint_t);
 extern int iswlower(wint_t);
 extern int iswdigit(wint_t);
 extern int iswxdigit(wint_t);
 extern int iswalnum(wint_t);
 extern int iswspace(wint_t);
 extern int iswpunct(wint_t);
 extern int iswprint(wint_t);
 extern int iswgraph(wint_t);
 extern int iswcntrl(wint_t);
 extern int iswctype(wint_t, wctype_t);
 extern wint_t towlower(wint_t);
 extern wint_t towupper(wint_t);
 extern wint_t fgetwc(__FILE *);
 extern wchar_t *fgetws(wchar_t *, int, __FILE *);
 extern wint_t fputwc(wint_t, __FILE *);
 extern int fputws(const wchar_t *, __FILE *);
 extern wint_t ungetwc(wint_t, __FILE *);
 extern wint_t getwc(__FILE *);
 extern wint_t getwchar(void);
 extern wint_t putwc(wint_t, __FILE *);
 extern wint_t putwchar(wint_t);
 extern double wcstod(const wchar_t *, wchar_t **);
 extern long wcstol(const wchar_t *, wchar_t **, int);
 extern unsigned long wcstoul(const wchar_t *, wchar_t **, int);
 extern wchar_t *wcscat(wchar_t *, const wchar_t *);
 extern wchar_t *wcschr(const wchar_t *, wchar_t);
 extern int wcscmp(const wchar_t *, const wchar_t *);
 extern int wcscoll(const wchar_t *, const wchar_t *);
 extern wchar_t *wcscpy(wchar_t *, const wchar_t *);
 extern size_t wcscspn(const wchar_t *, const wchar_t *);
 extern size_t wcslen(const wchar_t *);
 extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t);
 extern int wcsncmp(const wchar_t *, const wchar_t *, size_t);
 extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t);
 extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
 extern wchar_t *wcsrchr(const wchar_t *, wchar_t);
 extern size_t wcsspn(const wchar_t *, const wchar_t *);
 extern wchar_t *wcswcs(const wchar_t *, const wchar_t *);
 extern int wcswidth(const wchar_t *, size_t);
 extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
 extern int wcwidth(const wchar_t);
 extern wctype_t wctype(const char *);
 
 
 
 
 
 
 
 extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **);
 extern size_t wcsftime(wchar_t *, size_t, const wchar_t *, const struct tm *);
 #pragma redefine_extname wcstok __wcstok_xpg5
 #pragma redefine_extname wcsftime __wcsftime_xpg5
 # 180 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4
 extern wint_t btowc(int);
 extern int fwprintf(__FILE *, const wchar_t *, ...);
 extern int fwscanf(__FILE *, const wchar_t *, ...);
 extern int fwide(__FILE *, int);
 extern int mbsinit(const mbstate_t *);
 extern size_t mbrlen(const char *, size_t, mbstate_t *);
 extern size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
 extern size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
 extern int swprintf(wchar_t *, size_t, const wchar_t *, ...);
 extern int swscanf(const wchar_t *, const wchar_t *, ...);
 extern int vfwprintf(__FILE *, const wchar_t *, __va_list);
 extern int vwprintf(const wchar_t *, __va_list);
 extern int vswprintf(wchar_t *, size_t, const wchar_t *, __va_list);
 extern size_t wcrtomb(char *, wchar_t, mbstate_t *);
 extern size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
 extern wchar_t *wcsstr(const wchar_t *, const wchar_t *);
 extern int wctob(wint_t);
 extern wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
 extern int wmemcmp(const wchar_t *, const wchar_t *, size_t);
 extern wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t);
 extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
 extern wchar_t *wmemset(wchar_t *, wchar_t, size_t);
 extern int wprintf(const wchar_t *, ...);
 extern int wscanf(const wchar_t *, ...);
 # 307 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4
 #pragma redefine_extname fgetwc __fgetwc_xpg5
 #pragma redefine_extname getwc __getwc_xpg5
 #pragma redefine_extname getwchar __getwchar_xpg5
 #pragma redefine_extname fputwc __fputwc_xpg5
 #pragma redefine_extname putwc __putwc_xpg5
 #pragma redefine_extname putwchar __putwchar_xpg5
 #pragma redefine_extname fgetws __fgetws_xpg5
 #pragma redefine_extname fputws __fputws_xpg5
 #pragma redefine_extname ungetwc __ungetwc_xpg5
 # 352 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4
 }
 # 55 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cwchar" 2 3
 # 69 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cwchar" 3
 namespace std
 {
   using ::mbstate_t;
 }
 # 46 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/fpos.h" 2 3
 
 namespace std
 {
 
 
 
   template<typename _StateT>
     class fpos
     {
     public:
 
       typedef _StateT __state_type;
 
     private:
       streamoff _M_off;
       __state_type _M_st;
 
     public:
       __state_type
       state() const { return _M_st; }
 
       void
       state(__state_type __st) { _M_st = __st; }
 
 
 
       fpos(): _M_off(streamoff()), _M_st(__state_type()) { }
 
       fpos(streamoff __off, __state_type __st = __state_type())
       : _M_off(__off), _M_st(__st) { }
 
       operator streamoff() const { return _M_off; }
 
       fpos&
       operator+=(streamoff __off) { _M_off += __off; return *this; }
 
       fpos&
       operator-=(streamoff __off) { _M_off -= __off; return *this; }
 
       fpos
       operator+(streamoff __off)
       {
         fpos __t(*this);
         __t += __off;
         return __t;
       }
 
       fpos
       operator-(streamoff __off)
       {
         fpos __t(*this);
         __t -= __off;
         return __t;
       }
 
       bool
       operator==(const fpos& __pos) const
       { return _M_off == __pos._M_off; }
 
       bool
       operator!=(const fpos& __pos) const
       { return _M_off != __pos._M_off; }
 
       streamoff
       _M_position() const { return _M_off; }
 
       void
       _M_position(streamoff __off) { _M_off = __off; }
     };
 
 
   typedef fpos<mbstate_t> streampos;
 
 
 
 }
 # 47 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 1 3
 # 34 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception_defines.h" 1 3
 # 35 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 2 3
 
 namespace std
 {
 
   void
   __throw_bad_exception(void);
 
 
   void
   __throw_bad_alloc(void);
 
 
   void
   __throw_bad_cast(void);
 
   void
   __throw_bad_typeid(void);
 
 
   void
   __throw_logic_error(const char* __s);
 
   void
   __throw_domain_error(const char* __s);
 
   void
   __throw_invalid_argument(const char* __s);
 
   void
   __throw_length_error(const char* __s);
 
   void
   __throw_out_of_range(const char* __s);
 
   void
   __throw_runtime_error(const char* __s);
 
   void
   __throw_range_error(const char* __s);
 
   void
   __throw_overflow_error(const char* __s);
 
   void
   __throw_underflow_error(const char* __s);
 
 
   void
   __throw_ios_failure(const char* __s);
 }
 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 2 3
 
 namespace std
 {
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
     class basic_ios;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
     class basic_streambuf;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
     class basic_istream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
     class basic_ostream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
     class basic_iostream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT>,
             typename _Alloc = allocator<_CharT> >
     class basic_stringbuf;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT>,
            typename _Alloc = allocator<_CharT> >
     class basic_istringstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT>,
            typename _Alloc = allocator<_CharT> >
     class basic_ostringstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT>,
            typename _Alloc = allocator<_CharT> >
     class basic_stringstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
     class basic_filebuf;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
     class basic_ifstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
     class basic_ofstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
     class basic_fstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
     class istreambuf_iterator;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
     class ostreambuf_iterator;
 
 
 
   class ios_base;
 
 
   typedef basic_ios<char> ios;
   typedef basic_streambuf<char> streambuf;
   typedef basic_istream<char> istream;
   typedef basic_ostream<char> ostream;
   typedef basic_iostream<char> iostream;
   typedef basic_stringbuf<char> stringbuf;
   typedef basic_istringstream<char> istringstream;
   typedef basic_ostringstream<char> ostringstream;
   typedef basic_stringstream<char> stringstream;
   typedef basic_filebuf<char> filebuf;
   typedef basic_ifstream<char> ifstream;
   typedef basic_ofstream<char> ofstream;
   typedef basic_fstream<char> fstream;
 # 134 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 3
 }
 # 71 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_pair.h" 1 3
 # 64 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_pair.h" 3
 namespace std
 {
 
 
 template <class _T1, class _T2>
 struct pair {
   typedef _T1 first_type;
   typedef _T2 second_type;
 
   _T1 first;
   _T2 second;
 
 
 
 
   pair() : first(), second() {}
 
 
 
 
   pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {}
 
 
   template <class _U1, class _U2>
   pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {}
 };
 
 
 template <class _T1, class _T2>
 inline bool operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
 {
   return __x.first == __y.first && __x.second == __y.second;
 }
 
 
 template <class _T1, class _T2>
 inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
 {
   return __x.first < __y.first ||
          (!(__y.first < __x.first) && __x.second < __y.second);
 }
 
 
 template <class _T1, class _T2>
 inline bool operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) {
   return !(__x == __y);
 }
 
 
 template <class _T1, class _T2>
 inline bool operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) {
   return __y < __x;
 }
 
 
 template <class _T1, class _T2>
 inline bool operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) {
   return !(__y < __x);
 }
 
 
 template <class _T1, class _T2>
 inline bool operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) {
   return !(__x < __y);
 }
 # 140 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_pair.h" 3
 template <class _T1, class _T2>
 
 
 inline pair<_T1, _T2> make_pair(_T1 __x, _T2 __y)
 
 
 
 {
   return pair<_T1, _T2>(__x, __y);
 }
 
 }
 # 72 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/type_traits.h" 1 3
 # 53 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/type_traits.h" 3
 # 90 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/type_traits.h" 3
 struct __true_type {};
 struct __false_type {};
 
 template <class _Tp>
 struct __type_traits {
    typedef __true_type this_dummy_member_must_be_first;
 # 113 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/type_traits.h" 3
    typedef __false_type has_trivial_default_constructor;
    typedef __false_type has_trivial_copy_constructor;
    typedef __false_type has_trivial_assignment_operator;
    typedef __false_type has_trivial_destructor;
    typedef __false_type is_POD_type;
 };
 
 
 
 
 template<> struct __type_traits<bool> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<char> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<signed char> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<unsigned char> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<wchar_t> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<short> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<unsigned short> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<int> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<unsigned int> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<long> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<unsigned long> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<long long> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<unsigned long long> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<float> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<double> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template<> struct __type_traits<long double> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 template <class _Tp>
 struct __type_traits<_Tp*> {
    typedef __true_type has_trivial_default_constructor;
    typedef __true_type has_trivial_copy_constructor;
    typedef __true_type has_trivial_assignment_operator;
    typedef __true_type has_trivial_destructor;
    typedef __true_type is_POD_type;
 };
 
 
 
 
 
 template <class _Tp> struct _Is_integer {
   typedef __false_type _Integral;
 };
 
 template<> struct _Is_integer<bool> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<char> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<signed char> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<unsigned char> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<wchar_t> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<short> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<unsigned short> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<int> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<unsigned int> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<long> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<unsigned long> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<long long> {
   typedef __true_type _Integral;
 };
 
 template<> struct _Is_integer<unsigned long long> {
   typedef __true_type _Integral;
 };
 
 template<typename _Tp> struct _Is_normal_iterator {
    typedef __false_type _Normal;
 };
 
 
 namespace __gnu_cxx
 {
   template<typename _Iterator, typename _Container> class __normal_iterator;
 }
 
 template<typename _Iterator, typename _Container>
 struct _Is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, _Container> > {
    typedef __true_type _Normal;
 };
 # 73 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_types.h" 1 3
 # 68 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_types.h" 3
 
 namespace std
 {
 # 80 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_types.h" 3
   struct input_iterator_tag {};
 
   struct output_iterator_tag {};
 
   struct forward_iterator_tag : public input_iterator_tag {};
 
   struct bidirectional_iterator_tag : public forward_iterator_tag {};
 
   struct random_access_iterator_tag : public bidirectional_iterator_tag {};
 # 100 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_types.h" 3
   template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
            typename _Pointer = _Tp*, typename _Reference = _Tp&>
     struct iterator {
 
       typedef _Category iterator_category;
 
       typedef _Tp value_type;
 
       typedef _Distance difference_type;
 
       typedef _Pointer pointer;
 
       typedef _Reference reference;
     };
 
 
 
 
 
 
 
   template<typename _Iterator>
     struct iterator_traits {
       typedef typename _Iterator::iterator_category iterator_category;
       typedef typename _Iterator::value_type value_type;
       typedef typename _Iterator::difference_type difference_type;
       typedef typename _Iterator::pointer pointer;
       typedef typename _Iterator::reference reference;
     };
 
   template<typename _Tp>
     struct iterator_traits<_Tp*> {
       typedef random_access_iterator_tag iterator_category;
       typedef _Tp value_type;
       typedef ptrdiff_t difference_type;
       typedef _Tp* pointer;
       typedef _Tp& reference;
     };
 
   template<typename _Tp>
     struct iterator_traits<const _Tp*> {
       typedef random_access_iterator_tag iterator_category;
       typedef _Tp value_type;
       typedef ptrdiff_t difference_type;
       typedef const _Tp* pointer;
       typedef const _Tp& reference;
     };
 
 
 
 
 
 
 
   template<typename _Iter>
     inline typename iterator_traits<_Iter>::iterator_category
     __iterator_category(const _Iter&)
     { return typename iterator_traits<_Iter>::iterator_category(); }
 
 }
 # 74 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_funcs.h" 1 3
 # 68 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_funcs.h" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/concept_check.h" 1 3
 # 39 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/concept_check.h" 3
 # 60 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/concept_check.h" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 1 3
 # 20 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 3
 
 
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/utility" 1 3
 # 65 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/utility" 3
 
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 1 3
 # 74 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 3
 namespace std
 {
   namespace rel_ops
   {
 # 90 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 3
 template <class _Tp>
 inline bool operator!=(const _Tp& __x, const _Tp& __y) {
   return !(__x == __y);
 }
 # 103 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 3
 template <class _Tp>
 inline bool operator>(const _Tp& __x, const _Tp& __y) {
   return __y < __x;
 }
 # 116 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 3
 template <class _Tp>
 inline bool operator<=(const _Tp& __x, const _Tp& __y) {
   return !(__y < __x);
 }
 # 129 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 3
 template <class _Tp>
 inline bool operator>=(const _Tp& __x, const _Tp& __y) {
   return !(__x < __y);
 }
 
   }
 }
 # 67 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/utility" 2 3
 # 23 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 2 3
 
 
 namespace __gnu_cxx
 {
 
 
 
 
 
 
 template <class _Concept>
 inline void __function_requires()
 {
   void (_Concept::*__x)() __attribute__ ((__unused__)) = &_Concept::__constraints;
 }
 # 74 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 3
 template <class _Tp1, class _Tp2>
 struct _Aux_require_same { };
 
 template <class _Tp>
 struct _Aux_require_same<_Tp,_Tp> { typedef _Tp _Type; };
 
   template <class _Tp1, class _Tp2>
   struct _SameTypeConcept
   {
     void __constraints() {
       typedef typename _Aux_require_same<_Tp1, _Tp2>::_Type _Required;
     }
   };
 
   template <class _Tp>
   struct _IntegerConcept {
     void __constraints() {
       __error_type_must_be_an_integer_type();
     }
   };
   template <> struct _IntegerConcept<short> { void __constraints() {} };
   template <> struct _IntegerConcept<unsigned short> { void __constraints(){} };
   template <> struct _IntegerConcept<int> { void __constraints() {} };
   template <> struct _IntegerConcept<unsigned int> { void __constraints() {} };
   template <> struct _IntegerConcept<long> { void __constraints() {} };
   template <> struct _IntegerConcept<unsigned long> { void __constraints() {} };
   template <> struct _IntegerConcept<long long> { void __constraints() {} };
   template <> struct _IntegerConcept<unsigned long long>
                                                 { void __constraints() {} };
 
   template <class _Tp>
   struct _SignedIntegerConcept {
     void __constraints() {
       __error_type_must_be_a_signed_integer_type();
     }
   };
   template <> struct _SignedIntegerConcept<short> { void __constraints() {} };
   template <> struct _SignedIntegerConcept<int> { void __constraints() {} };
   template <> struct _SignedIntegerConcept<long> { void __constraints() {} };
   template <> struct _SignedIntegerConcept<long long> { void __constraints(){}};
 
   template <class _Tp>
   struct _UnsignedIntegerConcept {
     void __constraints() {
       __error_type_must_be_an_unsigned_integer_type();
     }
   };
   template <> struct _UnsignedIntegerConcept<unsigned short>
     { void __constraints() {} };
   template <> struct _UnsignedIntegerConcept<unsigned int>
     { void __constraints() {} };
   template <> struct _UnsignedIntegerConcept<unsigned long>
     { void __constraints() {} };
   template <> struct _UnsignedIntegerConcept<unsigned long long>
     { void __constraints() {} };
 
 
 
 
   template <class _Tp>
   struct _DefaultConstructibleConcept
   {
     void __constraints() {
       _Tp __a __attribute__ ((__unused__));
     }
   };
 
   template <class _Tp>
   struct _AssignableConcept
   {
     void __constraints() {
       __a = __a;
       __const_constraints(__a);
     }
     void __const_constraints(const _Tp& __b) {
       __a = __b;
     }
     _Tp __a;
   };
 
   template <class _Tp>
   struct _CopyConstructibleConcept
   {
     void __constraints() {
       _Tp __a(__b);
       _Tp* __ptr __attribute__ ((__unused__)) = &__a;
       __const_constraints(__a);
     }
     void __const_constraints(const _Tp& __a) {
       _Tp __c(__a) __attribute__ ((__unused__));
       const _Tp* __ptr __attribute__ ((__unused__)) = &__a;
     }
     _Tp __b;
   };
 
 
   template <class _Tp>
   struct _SGIAssignableConcept
   {
     void __constraints() {
       _Tp __b(__a) __attribute__ ((__unused__));
       __a = __a;
       __const_constraints(__a);
     }
     void __const_constraints(const _Tp& __b) {
       _Tp __c(__b) __attribute__ ((__unused__));
       __a = __b;
     }
     _Tp __a;
   };
 
   template <class _From, class _To>
   struct _ConvertibleConcept
   {
     void __constraints() {
       _To __y __attribute__ ((__unused__)) = __x;
     }
     _From __x;
   };
 # 203 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 3
   template <class _Tp>
   void __aux_require_boolean_expr(const _Tp& __t) {
     bool __x __attribute__ ((__unused__)) = __t;
   }
 
 
   template <class _Tp>
   struct _EqualityComparableConcept
   {
     void __constraints() {
       __aux_require_boolean_expr(__a == __b);
       __aux_require_boolean_expr(__a != __b);
     }
     _Tp __a, __b;
   };
 
   template <class _Tp>
   struct _LessThanComparableConcept
   {
     void __constraints() {
       __aux_require_boolean_expr(__a < __b);
     }
     _Tp __a, __b;
   };
 
 
   template <class _Tp>
   struct _ComparableConcept
   {
     void __constraints() {
       __aux_require_boolean_expr(__a < __b);
       __aux_require_boolean_expr(__a > __b);
       __aux_require_boolean_expr(__a <= __b);
       __aux_require_boolean_expr(__a >= __b);
     }
     _Tp __a, __b;
   };
 # 263 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 3
   template <class _First, class _Second> struct _EqualOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a == __b; } _First __a; _Second __b; };
   template <class _First, class _Second> struct _NotEqualOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a != __b; } _First __a; _Second __b; };
   template <class _First, class _Second> struct _LessThanOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a < __b; } _First __a; _Second __b; };
   template <class _First, class _Second> struct _LessEqualOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a <= __b; } _First __a; _Second __b; };
   template <class _First, class _Second> struct _GreaterThanOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a > __b; } _First __a; _Second __b; };
   template <class _First, class _Second> struct _GreaterEqualOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a >= __b; } _First __a; _Second __b; };
 
   template <class _Ret, class _First, class _Second> struct _PlusOpConcept { void __constraints() { (void)__constraints_(); } _Ret __constraints_() { return __a + __b; } _First __a; _Second __b; };
   template <class _Ret, class _First, class _Second> struct _TimesOpConcept { void __constraints() { (void)__constraints_(); } _Ret __constraints_() { return __a * __b; } _First __a; _Second __b; };
   template <class _Ret, class _First, class _Second> struct _DivideOpConcept { void __constraints() { (void)__constraints_(); } _Ret __constraints_() { return __a / __b; } _First __a; _Second __b; };
   template <class _Ret, class _First, class _Second> struct _SubtractOpConcept { void __constraints() { (void)__constraints_(); } _Ret __constraints_() { return __a - __b; } _First __a; _Second __b; };
   template <class _Ret, class _First, class _Second> struct _ModOpConcept { void __constraints() { (void)__constraints_(); } _Ret __constraints_() { return __a % __b; } _First __a; _Second __b; };
 
 
 
 
 
 
 
   template <class _Func, class _Return>
   struct _GeneratorConcept
   {
     void __constraints() {
       const _Return& __r __attribute__ ((__unused__)) = __f();
     }
     _Func __f;
   };
 
 
   template <class _Func>
   struct _GeneratorConcept<_Func,void>
   {
     void __constraints() {
       __f();
     }
     _Func __f;
   };
 
   template <class _Func, class _Return, class _Arg>
   struct _UnaryFunctionConcept
   {
     void __constraints() {
       __r = __f(__arg);
     }
     _Func __f;
     _Arg __arg;
     _Return __r;
   };
 
   template <class _Func, class _Arg>
   struct _UnaryFunctionConcept<_Func, void, _Arg> {
     void __constraints() {
       __f(__arg);
     }
     _Func __f;
     _Arg __arg;
   };
 
   template <class _Func, class _Return, class _First, class _Second>
   struct _BinaryFunctionConcept
   {
     void __constraints() {
       __r = __f(__first, __second);
     }
     _Func __f;
     _First __first;
     _Second __second;
     _Return __r;
   };
 
   template <class _Func, class _First, class _Second>
   struct _BinaryFunctionConcept<_Func, void, _First, _Second>
   {
     void __constraints() {
       __f(__first, __second);
     }
     _Func __f;
     _First __first;
     _Second __second;
   };
 
   template <class _Func, class _Arg>
   struct _UnaryPredicateConcept
   {
     void __constraints() {
       __aux_require_boolean_expr(__f(__arg));
     }
     _Func __f;
     _Arg __arg;
   };
 
   template <class _Func, class _First, class _Second>
   struct _BinaryPredicateConcept
   {
     void __constraints() {
       __aux_require_boolean_expr(__f(__a, __b));
     }
     _Func __f;
     _First __a;
     _Second __b;
   };
 
 
   template <class _Func, class _First, class _Second>
   struct _Const_BinaryPredicateConcept {
     void __constraints() {
       __const_constraints(__f);
     }
     void __const_constraints(const _Func& __fun) {
       __function_requires<_BinaryPredicateConcept<_Func, _First, _Second> >();
 
       __aux_require_boolean_expr(__fun(__a, __b));
     }
     _Func __f;
     _First __a;
     _Second __b;
   };
 
 
 
 
   template <class _Tp>
   struct _TrivialIteratorConcept
   {
     void __constraints() {
       __function_requires< _DefaultConstructibleConcept<_Tp> >();
       __function_requires< _AssignableConcept<_Tp> >();
       __function_requires< _EqualityComparableConcept<_Tp> >();
 
       (void)*__i;
     }
     _Tp __i;
   };
 
   template <class _Tp>
   struct _Mutable_TrivialIteratorConcept
   {
     void __constraints() {
       __function_requires< _TrivialIteratorConcept<_Tp> >();
       *__i = *__j;
     }
     _Tp __i, __j;
   };
 
   template <class _Tp>
   struct _InputIteratorConcept
   {
     void __constraints() {
       __function_requires< _TrivialIteratorConcept<_Tp> >();
 
       typedef typename std::iterator_traits<_Tp>::difference_type _D;
 
       typedef typename std::iterator_traits<_Tp>::reference _R;
       typedef typename std::iterator_traits<_Tp>::pointer _Pt;
       typedef typename std::iterator_traits<_Tp>::iterator_category _Cat;
       __function_requires< _ConvertibleConcept<
         typename std::iterator_traits<_Tp>::iterator_category,
         std::input_iterator_tag> >();
       ++__i;
       __i++;
     }
     _Tp __i;
   };
 
   template <class _Tp, class _ValueT>
   struct _OutputIteratorConcept
   {
     void __constraints() {
       __function_requires< _AssignableConcept<_Tp> >();
       ++__i;
       __i++;
       *__i++ = __t;
     }
     _Tp __i;
     _ValueT __t;
   };
 
   template <class _Tp>
   struct _ForwardIteratorConcept
   {
     void __constraints() {
       __function_requires< _InputIteratorConcept<_Tp> >();
       __function_requires< _ConvertibleConcept<
         typename std::iterator_traits<_Tp>::iterator_category,
         std::forward_iterator_tag> >();
       typedef typename std::iterator_traits<_Tp>::reference _R;
       _R __r __attribute__ ((__unused__)) = *__i;
     }
     _Tp __i;
   };
 
   template <class _Tp>
   struct _Mutable_ForwardIteratorConcept
   {
     void __constraints() {
       __function_requires< _ForwardIteratorConcept<_Tp> >();
       *__i++ = *__i;
     }
     _Tp __i;
   };
 
   template <class _Tp>
   struct _BidirectionalIteratorConcept
   {
     void __constraints() {
       __function_requires< _ForwardIteratorConcept<_Tp> >();
       __function_requires< _ConvertibleConcept<
         typename std::iterator_traits<_Tp>::iterator_category,
         std::bidirectional_iterator_tag> >();
       --__i;
       __i--;
     }
     _Tp __i;
   };
 
   template <class _Tp>
   struct _Mutable_BidirectionalIteratorConcept
   {
     void __constraints() {
       __function_requires< _BidirectionalIteratorConcept<_Tp> >();
       __function_requires< _Mutable_ForwardIteratorConcept<_Tp> >();
       *__i-- = *__i;
     }
     _Tp __i;
   };
 
 
   template <class _Tp>
   struct _RandomAccessIteratorConcept
   {
     void __constraints() {
       __function_requires< _BidirectionalIteratorConcept<_Tp> >();
       __function_requires< _ComparableConcept<_Tp> >();
       __function_requires< _ConvertibleConcept<
         typename std::iterator_traits<_Tp>::iterator_category,
         std::random_access_iterator_tag> >();
 
       typedef typename std::iterator_traits<_Tp>::reference _R;
 
       __i += __n;
       __i = __i + __n; __i = __n + __i;
       __i -= __n;
       __i = __i - __n;
 
       __n = __i - __j;
       (void)__i[__n];
     }
     _Tp __a, __b;
     _Tp __i, __j;
     typename std::iterator_traits<_Tp>::difference_type __n;
   };
 
   template <class _Tp>
   struct _Mutable_RandomAccessIteratorConcept
   {
     void __constraints() {
       __function_requires< _RandomAccessIteratorConcept<_Tp> >();
       __function_requires< _Mutable_BidirectionalIteratorConcept<_Tp> >();
       __i[__n] = *__i;
     }
     _Tp __i;
     typename std::iterator_traits<_Tp>::difference_type __n;
   };
 
 
 
 
   template <class _Container>
   struct _ContainerConcept
   {
     typedef typename _Container::value_type _Value_type;
     typedef typename _Container::difference_type _Difference_type;
     typedef typename _Container::size_type _Size_type;
     typedef typename _Container::const_reference _Const_reference;
     typedef typename _Container::const_pointer _Const_pointer;
     typedef typename _Container::const_iterator _Const_iterator;
 
     void __constraints() {
       __function_requires< _InputIteratorConcept<_Const_iterator> >();
       __function_requires< _AssignableConcept<_Container> >();
       const _Container __c;
       __i = __c.begin();
       __i = __c.end();
       __n = __c.size();
       __n = __c.max_size();
       __b = __c.empty();
     }
     bool __b;
     _Const_iterator __i;
     _Size_type __n;
   };
 
   template <class _Container>
   struct _Mutable_ContainerConcept
   {
     typedef typename _Container::value_type _Value_type;
     typedef typename _Container::reference _Reference;
     typedef typename _Container::iterator _Iterator;
     typedef typename _Container::pointer _Pointer;
 
     void __constraints() {
       __function_requires< _ContainerConcept<_Container> >();
       __function_requires< _AssignableConcept<_Value_type> >();
       __function_requires< _InputIteratorConcept<_Iterator> >();
 
       __i = __c.begin();
       __i = __c.end();
       __c.swap(__c2);
     }
     _Iterator __i;
     _Container __c, __c2;
   };
 
   template <class _ForwardContainer>
   struct _ForwardContainerConcept
   {
     void __constraints() {
       __function_requires< _ContainerConcept<_ForwardContainer> >();
       typedef typename _ForwardContainer::const_iterator _Const_iterator;
       __function_requires< _ForwardIteratorConcept<_Const_iterator> >();
     }
   };
 
   template <class _ForwardContainer>
   struct _Mutable_ForwardContainerConcept
   {
     void __constraints() {
       __function_requires< _ForwardContainerConcept<_ForwardContainer> >();
       __function_requires< _Mutable_ContainerConcept<_ForwardContainer> >();
       typedef typename _ForwardContainer::iterator _Iterator;
       __function_requires< _Mutable_ForwardIteratorConcept<_Iterator> >();
     }
   };
 
   template <class _ReversibleContainer>
   struct _ReversibleContainerConcept
   {
     typedef typename _ReversibleContainer::const_iterator _Const_iterator;
     typedef typename _ReversibleContainer::const_reverse_iterator
       _Const_reverse_iterator;
 
     void __constraints() {
       __function_requires< _ForwardContainerConcept<_ReversibleContainer> >();
       __function_requires< _BidirectionalIteratorConcept<_Const_iterator> >();
       __function_requires<
         _BidirectionalIteratorConcept<_Const_reverse_iterator> >();
 
       const _ReversibleContainer __c;
       _Const_reverse_iterator __i = __c.rbegin();
       __i = __c.rend();
     }
   };
 
   template <class _ReversibleContainer>
   struct _Mutable_ReversibleContainerConcept
   {
     typedef typename _ReversibleContainer::iterator _Iterator;
     typedef typename _ReversibleContainer::reverse_iterator _Reverse_iterator;
 
     void __constraints() {
       __function_requires<_ReversibleContainerConcept<_ReversibleContainer> >();
       __function_requires<
         _Mutable_ForwardContainerConcept<_ReversibleContainer> >();
       __function_requires<_Mutable_BidirectionalIteratorConcept<_Iterator> >();
       __function_requires<
         _Mutable_BidirectionalIteratorConcept<_Reverse_iterator> >();
 
       _Reverse_iterator __i = __c.rbegin();
       __i = __c.rend();
     }
     _ReversibleContainer __c;
   };
 
   template <class _RandomAccessContainer>
   struct _RandomAccessContainerConcept
   {
     typedef typename _RandomAccessContainer::size_type _Size_type;
     typedef typename _RandomAccessContainer::const_reference _Const_reference;
     typedef typename _RandomAccessContainer::const_iterator _Const_iterator;
     typedef typename _RandomAccessContainer::const_reverse_iterator
       _Const_reverse_iterator;
 
     void __constraints() {
       __function_requires<
         _ReversibleContainerConcept<_RandomAccessContainer> >();
       __function_requires< _RandomAccessIteratorConcept<_Const_iterator> >();
       __function_requires<
         _RandomAccessIteratorConcept<_Const_reverse_iterator> >();
 
       const _RandomAccessContainer __c;
       _Const_reference __r __attribute__ ((__unused__)) = __c[__n];
     }
     _Size_type __n;
   };
 
   template <class _RandomAccessContainer>
   struct _Mutable_RandomAccessContainerConcept
   {
     typedef typename _RandomAccessContainer::size_type _Size_type;
     typedef typename _RandomAccessContainer::reference _Reference;
     typedef typename _RandomAccessContainer::iterator _Iterator;
     typedef typename _RandomAccessContainer::reverse_iterator _Reverse_iterator;
 
     void __constraints() {
       __function_requires<
         _RandomAccessContainerConcept<_RandomAccessContainer> >();
       __function_requires<
         _Mutable_ReversibleContainerConcept<_RandomAccessContainer> >();
       __function_requires< _Mutable_RandomAccessIteratorConcept<_Iterator> >();
       __function_requires<
         _Mutable_RandomAccessIteratorConcept<_Reverse_iterator> >();
 
       _Reference __r __attribute__ ((__unused__)) = __c[__i];
     }
     _Size_type __i;
     _RandomAccessContainer __c;
   };
 
 
   template <class _Sequence>
   struct _SequenceConcept
   {
     typedef typename _Sequence::reference _Reference;
     typedef typename _Sequence::const_reference _Const_reference;
 
     void __constraints() {
 
 
 
       __function_requires< _Mutable_ForwardContainerConcept<_Sequence> >();
       __function_requires< _DefaultConstructibleConcept<_Sequence> >();
 
       _Sequence
         __c(__n) __attribute__ ((__unused__)),
         __c2(__n, __t) __attribute__ ((__unused__)),
         __c3(__first, __last) __attribute__ ((__unused__));
 
       __c.insert(__p, __t);
       __c.insert(__p, __n, __t);
       __c.insert(__p, __first, __last);
 
       __c.erase(__p);
       __c.erase(__p, __q);
 
       _Reference __r __attribute__ ((__unused__)) = __c.front();
 
       __const_constraints(__c);
     }
     void __const_constraints(const _Sequence& __c) {
       _Const_reference __r __attribute__ ((__unused__)) = __c.front();
     }
     typename _Sequence::value_type __t;
     typename _Sequence::size_type __n;
     typename _Sequence::value_type *__first, *__last;
     typename _Sequence::iterator __p, __q;
   };
 
   template <class _FrontInsertionSequence>
   struct _FrontInsertionSequenceConcept
   {
     void __constraints() {
       __function_requires< _SequenceConcept<_FrontInsertionSequence> >();
 
       __c.push_front(__t);
       __c.pop_front();
     }
     _FrontInsertionSequence __c;
     typename _FrontInsertionSequence::value_type __t;
   };
 
   template <class _BackInsertionSequence>
   struct _BackInsertionSequenceConcept
   {
     typedef typename _BackInsertionSequence::reference _Reference;
     typedef typename _BackInsertionSequence::const_reference _Const_reference;
 
     void __constraints() {
       __function_requires< _SequenceConcept<_BackInsertionSequence> >();
 
       __c.push_back(__t);
       __c.pop_back();
       _Reference __r __attribute__ ((__unused__)) = __c.back();
     }
     void __const_constraints(const _BackInsertionSequence& __c) {
       _Const_reference __r __attribute__ ((__unused__)) = __c.back();
     };
     _BackInsertionSequence __c;
     typename _BackInsertionSequence::value_type __t;
   };
 
   template <class _AssociativeContainer>
   struct _AssociativeContainerConcept
   {
     void __constraints() {
       __function_requires< _ForwardContainerConcept<_AssociativeContainer> >();
       __function_requires<
         _DefaultConstructibleConcept<_AssociativeContainer> >();
 
       __i = __c.find(__k);
       __r = __c.equal_range(__k);
       __c.erase(__k);
       __c.erase(__i);
       __c.erase(__r.first, __r.second);
       __const_constraints(__c);
     }
     void __const_constraints(const _AssociativeContainer& __c) {
       __ci = __c.find(__k);
       __n = __c.count(__k);
       __cr = __c.equal_range(__k);
     }
     typedef typename _AssociativeContainer::iterator _Iterator;
     typedef typename _AssociativeContainer::const_iterator _Const_iterator;
 
     _AssociativeContainer __c;
     _Iterator __i;
     std::pair<_Iterator,_Iterator> __r;
     _Const_iterator __ci;
     std::pair<_Const_iterator,_Const_iterator> __cr;
     typename _AssociativeContainer::key_type __k;
     typename _AssociativeContainer::size_type __n;
   };
 
   template <class _UniqueAssociativeContainer>
   struct _UniqueAssociativeContainerConcept
   {
     void __constraints() {
       __function_requires<
         _AssociativeContainerConcept<_UniqueAssociativeContainer> >();
 
       _UniqueAssociativeContainer __c(__first, __last);
 
       __pos_flag = __c.insert(__t);
       __c.insert(__first, __last);
     }
     std::pair<typename _UniqueAssociativeContainer::iterator, bool> __pos_flag;
     typename _UniqueAssociativeContainer::value_type __t;
     typename _UniqueAssociativeContainer::value_type *__first, *__last;
   };
 
   template <class _MultipleAssociativeContainer>
   struct _MultipleAssociativeContainerConcept
   {
     void __constraints() {
       __function_requires<
         _AssociativeContainerConcept<_MultipleAssociativeContainer> >();
 
       _MultipleAssociativeContainer __c(__first, __last);
 
       __pos = __c.insert(__t);
       __c.insert(__first, __last);
 
     }
     typename _MultipleAssociativeContainer::iterator __pos __attribute__ ((__unused__));
     typename _MultipleAssociativeContainer::value_type __t;
     typename _MultipleAssociativeContainer::value_type *__first, *__last;
   };
 
   template <class _SimpleAssociativeContainer>
   struct _SimpleAssociativeContainerConcept
   {
     void __constraints() {
       __function_requires<
         _AssociativeContainerConcept<_SimpleAssociativeContainer> >();
       typedef typename _SimpleAssociativeContainer::key_type _Key_type;
       typedef typename _SimpleAssociativeContainer::value_type _Value_type;
       typedef typename _Aux_require_same<_Key_type, _Value_type>::_Type
         _Requqired;
     }
   };
 
   template <class _SimpleAssociativeContainer>
   struct _PairAssociativeContainerConcept
   {
     void __constraints() {
       __function_requires<
         _AssociativeContainerConcept<_SimpleAssociativeContainer> >();
       typedef typename _SimpleAssociativeContainer::key_type _Key_type;
       typedef typename _SimpleAssociativeContainer::value_type _Value_type;
       typedef typename _SimpleAssociativeContainer::mapped_type _Mapped_type;
       typedef std::pair<const _Key_type, _Mapped_type> _Required_value_type;
       typedef typename _Aux_require_same<_Value_type,
         _Required_value_type>::_Type _Required;
     }
   };
 
   template <class _SortedAssociativeContainer>
   struct _SortedAssociativeContainerConcept
   {
     void __constraints() {
       __function_requires<
         _AssociativeContainerConcept<_SortedAssociativeContainer> >();
       __function_requires<
         _ReversibleContainerConcept<_SortedAssociativeContainer> >();
 
       _SortedAssociativeContainer
         __c(__kc) __attribute__ ((__unused__)),
         __c2(__first, __last) __attribute__ ((__unused__)),
         __c3(__first, __last, __kc) __attribute__ ((__unused__));
 
       __p = __c.upper_bound(__k);
       __p = __c.lower_bound(__k);
       __r = __c.equal_range(__k);
 
       __c.insert(__p, __t);
     }
     void __const_constraints(const _SortedAssociativeContainer& __c) {
       __kc = __c.key_comp();
       __vc = __c.value_comp();
 
       __cp = __c.upper_bound(__k);
       __cp = __c.lower_bound(__k);
       __cr = __c.equal_range(__k);
     }
     typename _SortedAssociativeContainer::key_compare __kc;
     typename _SortedAssociativeContainer::value_compare __vc;
     typename _SortedAssociativeContainer::value_type __t;
     typename _SortedAssociativeContainer::key_type __k;
     typedef typename _SortedAssociativeContainer::iterator _Iterator;
     typedef typename _SortedAssociativeContainer::const_iterator
       _Const_iterator;
 
     _Iterator __p;
     _Const_iterator __cp;
     std::pair<_Iterator,_Iterator> __r;
     std::pair<_Const_iterator,_Const_iterator> __cr;
     typename _SortedAssociativeContainer::value_type *__first, *__last;
   };
 
 
 
 }
 # 61 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/concept_check.h" 2 3
 # 69 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_funcs.h" 2 3
 
 
 
 
 namespace std
 {
 template<typename _InputIterator>
   inline typename iterator_traits<_InputIterator>::difference_type
   __distance(_InputIterator __first, _InputIterator __last, input_iterator_tag)
   {
 
     __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIterator> >();
 
     typename iterator_traits<_InputIterator>::difference_type __n = 0;
     while (__first != __last) {
       ++__first; ++__n;
     }
     return __n;
   }
 
 template<typename _RandomAccessIterator>
   inline typename iterator_traits<_RandomAccessIterator>::difference_type
   __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
              random_access_iterator_tag)
   {
 
     __gnu_cxx::__function_requires< __gnu_cxx::_RandomAccessIteratorConcept<_RandomAccessIterator> >();
     return __last - __first;
   }
 # 111 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_funcs.h" 3
 template<typename _InputIterator>
   inline typename iterator_traits<_InputIterator>::difference_type
   distance(_InputIterator __first, _InputIterator __last)
   {
 
     return __distance(__first, __last, __iterator_category(__first));
   }
 
 template<typename _InputIter, typename _Distance>
   inline void
   __advance(_InputIter& __i, _Distance __n, input_iterator_tag)
   {
 
     __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter> >();
     while (__n--) ++__i;
   }
 
 template<typename _BidirectionalIterator, typename _Distance>
   inline void
   __advance(_BidirectionalIterator& __i, _Distance __n,
             bidirectional_iterator_tag)
   {
 
     __gnu_cxx::__function_requires< __gnu_cxx::_BidirectionalIteratorConcept<_BidirectionalIterator> >();
 
     if (__n > 0)
       while (__n--) ++__i;
     else
       while (__n++) --__i;
   }
 
 template<typename _RandomAccessIterator, typename _Distance>
   inline void
   __advance(_RandomAccessIterator& __i, _Distance __n,
             random_access_iterator_tag)
   {
 
     __gnu_cxx::__function_requires< __gnu_cxx::_RandomAccessIteratorConcept<_RandomAccessIterator> >();
     __i += __n;
   }
 # 164 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_funcs.h" 3
 template<typename _InputIterator, typename _Distance>
   inline void
   advance(_InputIterator& __i, _Distance __n)
   {
 
     __advance(__i, __n, __iterator_category(__i));
   }
 
 }
 # 75 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 1 3
 # 68 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
 namespace std
 {
 # 89 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
   template<typename _Iterator>
     class reverse_iterator
     : public iterator<typename iterator_traits<_Iterator>::iterator_category,
                       typename iterator_traits<_Iterator>::value_type,
                       typename iterator_traits<_Iterator>::difference_type,
                       typename iterator_traits<_Iterator>::pointer,
                       typename iterator_traits<_Iterator>::reference>
     {
     protected:
       _Iterator current;
 
     public:
       typedef _Iterator iterator_type;
       typedef typename iterator_traits<_Iterator>::difference_type
                                                                difference_type;
       typedef typename iterator_traits<_Iterator>::reference reference;
       typedef typename iterator_traits<_Iterator>::pointer pointer;
 
     public:
 
 
 
       reverse_iterator() { }
 
 
 
 
       explicit
       reverse_iterator(iterator_type __x) : current(__x) { }
 
 
 
 
       reverse_iterator(const reverse_iterator& __x)
       : current(__x.current) { }
 
 
 
 
 
       template<typename _Iter>
         reverse_iterator(const reverse_iterator<_Iter>& __x)
         : current(__x.base()) { }
 
 
 
 
       iterator_type
       base() const { return current; }
 
 
 
 
 
 
       reference
       operator*() const
       {
         _Iterator __tmp = current;
         return *--__tmp;
       }
 
 
 
 
 
 
       pointer
       operator->() const { return &(operator*()); }
 
 
 
 
 
 
       reverse_iterator&
       operator++()
       {
         --current;
         return *this;
       }
 
 
 
 
 
 
       reverse_iterator
       operator++(int)
       {
         reverse_iterator __tmp = *this;
         --current;
         return __tmp;
       }
 
 
 
 
 
 
       reverse_iterator&
       operator--()
       {
         ++current;
         return *this;
       }
 
 
 
 
 
 
       reverse_iterator operator--(int)
       {
         reverse_iterator __tmp = *this;
         ++current;
         return __tmp;
       }
 
 
 
 
 
 
       reverse_iterator
       operator+(difference_type __n) const
       { return reverse_iterator(current - __n); }
 
 
 
 
 
 
       reverse_iterator&
       operator+=(difference_type __n)
       {
         current -= __n;
         return *this;
       }
 
 
 
 
 
 
       reverse_iterator
       operator-(difference_type __n) const
       { return reverse_iterator(current + __n); }
 
 
 
 
 
 
       reverse_iterator&
       operator-=(difference_type __n)
       {
         current += __n;
         return *this;
       }
 
 
 
 
 
 
       reference
       operator[](difference_type __n) const { return *(*this + __n); }
     };
 # 269 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
   template<typename _Iterator>
     inline bool
     operator==(const reverse_iterator<_Iterator>& __x,
                const reverse_iterator<_Iterator>& __y)
     { return __x.base() == __y.base(); }
 
   template<typename _Iterator>
     inline bool
     operator<(const reverse_iterator<_Iterator>& __x,
               const reverse_iterator<_Iterator>& __y)
     { return __y.base() < __x.base(); }
 
   template<typename _Iterator>
     inline bool
     operator!=(const reverse_iterator<_Iterator>& __x,
                const reverse_iterator<_Iterator>& __y)
     { return !(__x == __y); }
 
   template<typename _Iterator>
     inline bool
     operator>(const reverse_iterator<_Iterator>& __x,
               const reverse_iterator<_Iterator>& __y)
     { return __y < __x; }
 
   template<typename _Iterator>
     inline bool
     operator<=(const reverse_iterator<_Iterator>& __x,
                 const reverse_iterator<_Iterator>& __y)
     { return !(__y < __x); }
 
   template<typename _Iterator>
     inline bool
     operator>=(const reverse_iterator<_Iterator>& __x,
                const reverse_iterator<_Iterator>& __y)
     { return !(__x < __y); }
 
   template<typename _Iterator>
     inline typename reverse_iterator<_Iterator>::difference_type
     operator-(const reverse_iterator<_Iterator>& __x,
               const reverse_iterator<_Iterator>& __y)
     { return __y.base() - __x.base(); }
 
   template<typename _Iterator>
     inline reverse_iterator<_Iterator>
     operator+(typename reverse_iterator<_Iterator>::difference_type __n,
               const reverse_iterator<_Iterator>& __x)
     { return reverse_iterator<_Iterator>(__x.base() - __n); }
 # 327 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
   template<typename _Container>
     class back_insert_iterator
     : public iterator<output_iterator_tag, void, void, void, void>
     {
     protected:
       _Container* container;
 
     public:
 
       typedef _Container container_type;
 
 
       explicit
       back_insert_iterator(_Container& __x) : container(&__x) { }
 # 353 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
       back_insert_iterator&
       operator=(typename _Container::const_reference __value)
       {
         container->push_back(__value);
         return *this;
       }
 
 
       back_insert_iterator&
       operator*() { return *this; }
 
 
       back_insert_iterator&
       operator++() { return *this; }
 
 
       back_insert_iterator
       operator++(int) { return *this; }
     };
 # 384 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
   template<typename _Container>
     inline back_insert_iterator<_Container>
     back_inserter(_Container& __x)
     { return back_insert_iterator<_Container>(__x); }
 # 397 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
   template<typename _Container>
     class front_insert_iterator
     : public iterator<output_iterator_tag, void, void, void, void>
     {
     protected:
       _Container* container;
 
     public:
 
       typedef _Container container_type;
 
 
       explicit front_insert_iterator(_Container& __x) : container(&__x) { }
 # 422 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
       front_insert_iterator&
       operator=(typename _Container::const_reference __value)
       {
         container->push_front(__value);
         return *this;
       }
 
 
       front_insert_iterator&
       operator*() { return *this; }
 
 
       front_insert_iterator&
       operator++() { return *this; }
 
 
       front_insert_iterator
       operator++(int) { return *this; }
     };
 # 453 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
   template<typename _Container>
     inline front_insert_iterator<_Container>
     front_inserter(_Container& __x)
     { return front_insert_iterator<_Container>(__x); }
 # 470 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
   template<typename _Container>
     class insert_iterator
     : public iterator<output_iterator_tag, void, void, void, void>
     {
     protected:
       _Container* container;
       typename _Container::iterator iter;
 
     public:
 
       typedef _Container container_type;
 
 
 
 
 
       insert_iterator(_Container& __x, typename _Container::iterator __i)
       : container(&__x), iter(__i) {}
 # 512 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
       insert_iterator&
       operator=(const typename _Container::const_reference __value)
       {
         iter = container->insert(iter, __value);
         ++iter;
         return *this;
       }
 
 
       insert_iterator&
       operator*() { return *this; }
 
 
       insert_iterator&
       operator++() { return *this; }
 
 
       insert_iterator&
       operator++(int) { return *this; }
     };
 # 544 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
   template<typename _Container, typename _Iterator>
     inline insert_iterator<_Container>
     inserter(_Container& __x, _Iterator __i)
     {
       return insert_iterator<_Container>(__x,
                                          typename _Container::iterator(__i));
     }
 }
 
 namespace __gnu_cxx
 {
 
 
 
 
 
 
 
   using std::iterator_traits;
   using std::iterator;
   template<typename _Iterator, typename _Container>
     class __normal_iterator
       : public iterator<typename iterator_traits<_Iterator>::iterator_category,
                         typename iterator_traits<_Iterator>::value_type,
                         typename iterator_traits<_Iterator>::difference_type,
                         typename iterator_traits<_Iterator>::pointer,
                         typename iterator_traits<_Iterator>::reference>
     {
     protected:
       _Iterator _M_current;
 
     public:
       typedef typename iterator_traits<_Iterator>::difference_type
                                                                difference_type;
       typedef typename iterator_traits<_Iterator>::reference reference;
       typedef typename iterator_traits<_Iterator>::pointer pointer;
 
       __normal_iterator() : _M_current(_Iterator()) { }
 
       explicit
       __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
 
 
       template<typename _Iter>
       inline __normal_iterator(const __normal_iterator<_Iter, _Container>& __i)
         : _M_current(__i.base()) { }
 
 
       reference
       operator*() const { return *_M_current; }
 
       pointer
       operator->() const { return _M_current; }
 
       __normal_iterator&
       operator++() { ++_M_current; return *this; }
 
       __normal_iterator
       operator++(int) { return __normal_iterator(_M_current++); }
 
 
       __normal_iterator&
       operator--() { --_M_current; return *this; }
 
       __normal_iterator
       operator--(int) { return __normal_iterator(_M_current--); }
 
 
       reference
       operator[](const difference_type& __n) const
       { return _M_current[__n]; }
 
       __normal_iterator&
       operator+=(const difference_type& __n)
       { _M_current += __n; return *this; }
 
       __normal_iterator
       operator+(const difference_type& __n) const
       { return __normal_iterator(_M_current + __n); }
 
       __normal_iterator&
       operator-=(const difference_type& __n)
       { _M_current -= __n; return *this; }
 
       __normal_iterator
       operator-(const difference_type& __n) const
       { return __normal_iterator(_M_current - __n); }
 
       const _Iterator&
       base() const { return _M_current; }
     };
 # 645 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3
   template<typename _IteratorL, typename _IteratorR, typename _Container>
   inline bool
   operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
              const __normal_iterator<_IteratorR, _Container>& __rhs)
   { return __lhs.base() == __rhs.base(); }
 
   template<typename _Iterator, typename _Container>
   inline bool
   operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
              const __normal_iterator<_Iterator, _Container>& __rhs)
   { return __lhs.base() == __rhs.base(); }
 
   template<typename _IteratorL, typename _IteratorR, typename _Container>
   inline bool
   operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
              const __normal_iterator<_IteratorR, _Container>& __rhs)
   { return __lhs.base() != __rhs.base(); }
 
   template<typename _Iterator, typename _Container>
   inline bool
   operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
              const __normal_iterator<_Iterator, _Container>& __rhs)
   { return __lhs.base() != __rhs.base(); }
 
 
   template<typename _IteratorL, typename _IteratorR, typename _Container>
   inline bool
   operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
             const __normal_iterator<_IteratorR, _Container>& __rhs)
   { return __lhs.base() < __rhs.base(); }
 
   template<typename _Iterator, typename _Container>
   inline bool
   operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
              const __normal_iterator<_Iterator, _Container>& __rhs)
   { return __lhs.base() < __rhs.base(); }
 
   template<typename _IteratorL, typename _IteratorR, typename _Container>
   inline bool
   operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
             const __normal_iterator<_IteratorR, _Container>& __rhs)
   { return __lhs.base() > __rhs.base(); }
 
   template<typename _Iterator, typename _Container>
   inline bool
   operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
             const __normal_iterator<_Iterator, _Container>& __rhs)
   { return __lhs.base() > __rhs.base(); }
 
   template<typename _IteratorL, typename _IteratorR, typename _Container>
   inline bool
   operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
              const __normal_iterator<_IteratorR, _Container>& __rhs)
   { return __lhs.base() <= __rhs.base(); }
 
   template<typename _Iterator, typename _Container>
   inline bool
   operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
              const __normal_iterator<_Iterator, _Container>& __rhs)
   { return __lhs.base() <= __rhs.base(); }
 
   template<typename _IteratorL, typename _IteratorR, typename _Container>
   inline bool
   operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
              const __normal_iterator<_IteratorR, _Container>& __rhs)
   { return __lhs.base() >= __rhs.base(); }
 
   template<typename _Iterator, typename _Container>
   inline bool
   operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
              const __normal_iterator<_Iterator, _Container>& __rhs)
   { return __lhs.base() >= __rhs.base(); }
 
 
 
 
 
   template<typename _IteratorL, typename _IteratorR, typename _Container>
   inline typename __normal_iterator<_IteratorL, _Container>::difference_type
   operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
              const __normal_iterator<_IteratorR, _Container>& __rhs)
   { return __lhs.base() - __rhs.base(); }
 
   template<typename _Iterator, typename _Container>
   inline __normal_iterator<_Iterator, _Container>
   operator+(typename __normal_iterator<_Iterator, _Container>::difference_type __n,
             const __normal_iterator<_Iterator, _Container>& __i)
   { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
 }
 # 76 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3
 
 
 namespace std
 {
 # 91 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _ForwardIter1, typename _ForwardIter2>
     inline void
     iter_swap(_ForwardIter1 __a, _ForwardIter2 __b)
     {
       typedef typename iterator_traits<_ForwardIter1>::value_type _ValueType1;
       typedef typename iterator_traits<_ForwardIter2>::value_type _ValueType2;
 
 
       __gnu_cxx::__function_requires< __gnu_cxx::_Mutable_ForwardIteratorConcept<_ForwardIter1> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_Mutable_ForwardIteratorConcept<_ForwardIter2> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_ConvertibleConcept<_ValueType1, _ValueType2> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_ConvertibleConcept<_ValueType2, _ValueType1> >();
 
       _ValueType1 __tmp = *__a;
       *__a = *__b;
       *__b = __tmp;
     }
 # 118 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _Tp>
     inline void
     swap(_Tp& __a, _Tp& __b)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_SGIAssignableConcept<_Tp> >();
 
       _Tp __tmp = __a;
       __a = __b;
       __b = __tmp;
     }
 # 146 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _Tp>
     inline const _Tp&
     min(const _Tp& __a, const _Tp& __b)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_LessThanComparableConcept<_Tp> >();
 
       if (__b < __a) return __b; return __a;
     }
 # 166 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _Tp>
     inline const _Tp&
     max(const _Tp& __a, const _Tp& __b)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_LessThanComparableConcept<_Tp> >();
 
       if (__a < __b) return __b; return __a;
     }
 # 186 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _Tp, typename _Compare>
     inline const _Tp&
     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
     {
 
       if (__comp(__b, __a)) return __b; return __a;
     }
 # 204 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _Tp, typename _Compare>
     inline const _Tp&
     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
     {
 
       if (__comp(__a, __b)) return __b; return __a;
     }
 # 221 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _InputIter, typename _OutputIter>
     inline _OutputIter
     __copy(_InputIter __first, _InputIter __last,
            _OutputIter __result,
            input_iterator_tag)
     {
       for ( ; __first != __last; ++__result, ++__first)
         *__result = *__first;
       return __result;
     }
 
   template<typename _RandomAccessIter, typename _OutputIter>
     inline _OutputIter
     __copy(_RandomAccessIter __first, _RandomAccessIter __last,
            _OutputIter __result,
            random_access_iterator_tag)
     {
       typedef typename iterator_traits<_RandomAccessIter>::difference_type
           _Distance;
       for (_Distance __n = __last - __first; __n > 0; --__n) {
         *__result = *__first;
         ++__first;
         ++__result;
       }
       return __result;
     }
 
   template<typename _Tp>
     inline _Tp*
     __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result)
     {
       memmove(__result, __first, sizeof(_Tp) * (__last - __first));
       return __result + (__last - __first);
     }
 
   template<typename _InputIter, typename _OutputIter>
     inline _OutputIter
     __copy_aux2(_InputIter __first, _InputIter __last,
                 _OutputIter __result, __false_type)
     { return __copy(__first, __last, __result, __iterator_category(__first)); }
 
   template<typename _InputIter, typename _OutputIter>
     inline _OutputIter
     __copy_aux2(_InputIter __first, _InputIter __last,
                 _OutputIter __result, __true_type)
     { return __copy(__first, __last, __result, __iterator_category(__first)); }
 
   template<typename _Tp>
     inline _Tp*
     __copy_aux2(_Tp* __first, _Tp* __last,
                 _Tp* __result, __true_type)
     { return __copy_trivial(__first, __last, __result); }
 
   template<typename _Tp>
     inline _Tp*
     __copy_aux2(const _Tp* __first, const _Tp* __last,
                 _Tp* __result, __true_type)
     { return __copy_trivial(__first, __last, __result); }
 
   template<typename _InputIter, typename _OutputIter>
     inline _OutputIter
     __copy_ni2(_InputIter __first, _InputIter __last,
                _OutputIter __result, __true_type)
     {
       typedef typename iterator_traits<_InputIter>::value_type
           _ValueType;
       typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator
           _Trivial;
       return _OutputIter(__copy_aux2(__first, __last,
                                      __result.base(),
                                      _Trivial()));
     }
 
   template<typename _InputIter, typename _OutputIter>
     inline _OutputIter
     __copy_ni2(_InputIter __first, _InputIter __last,
                _OutputIter __result, __false_type)
     {
       typedef typename iterator_traits<_InputIter>::value_type
           _ValueType;
       typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator
           _Trivial;
       return __copy_aux2(__first, __last,
                          __result,
                          _Trivial());
     }
 
   template<typename _InputIter, typename _OutputIter>
     inline _OutputIter
     __copy_ni1(_InputIter __first, _InputIter __last,
                _OutputIter __result, __true_type)
     {
       typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal;
       return __copy_ni2(__first.base(), __last.base(), __result, __Normal());
     }
 
   template<typename _InputIter, typename _OutputIter>
     inline _OutputIter
     __copy_ni1(_InputIter __first, _InputIter __last,
                _OutputIter __result, __false_type)
     {
       typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal;
       return __copy_ni2(__first, __last, __result, __Normal());
     }
 # 339 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _InputIter, typename _OutputIter>
     inline _OutputIter
     copy(_InputIter __first, _InputIter __last, _OutputIter __result)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_OutputIteratorConcept<_OutputIter, typename iterator_traits<_InputIter>::value_type> >();
 
 
        typedef typename _Is_normal_iterator<_InputIter>::_Normal __Normal;
        return __copy_ni1(__first, __last, __result, __Normal());
     }
 
 
 
 
   template<typename _BidirectionalIter1, typename _BidirectionalIter2>
     inline _BidirectionalIter2
     __copy_backward(_BidirectionalIter1 __first, _BidirectionalIter1 __last,
                     _BidirectionalIter2 __result,
                     bidirectional_iterator_tag)
     {
       while (__first != __last)
         *--__result = *--__last;
       return __result;
     }
 
   template<typename _RandomAccessIter, typename _BidirectionalIter>
     inline _BidirectionalIter
     __copy_backward(_RandomAccessIter __first, _RandomAccessIter __last,
                     _BidirectionalIter __result,
                     random_access_iterator_tag)
     {
       typename iterator_traits<_RandomAccessIter>::difference_type __n;
       for (__n = __last - __first; __n > 0; --__n)
         *--__result = *--__last;
       return __result;
     }
 
 
 
 
 
 
 
   template<typename _BidirectionalIter1, typename _BidirectionalIter2,
            typename _BoolType>
     struct __copy_backward_dispatch
     {
       static _BidirectionalIter2
       copy(_BidirectionalIter1 __first, _BidirectionalIter1 __last,
            _BidirectionalIter2 __result)
       {
         return __copy_backward(__first, __last,
                                __result,
                                __iterator_category(__first));
       }
     };
 
   template<typename _Tp>
     struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type>
     {
       static _Tp*
       copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
       {
         const ptrdiff_t _Num = __last - __first;
         memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
         return __result - _Num;
       }
     };
 
   template<typename _Tp>
     struct __copy_backward_dispatch<const _Tp*, _Tp*, __true_type>
     {
       static _Tp*
       copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
       {
         return __copy_backward_dispatch<_Tp*, _Tp*, __true_type>
           ::copy(__first, __last, __result);
       }
     };
 
   template<typename _BI1, typename _BI2>
     inline _BI2
     __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)
     {
       typedef typename __type_traits<typename iterator_traits<_BI2>::value_type>
                             ::has_trivial_assignment_operator _Trivial;
       return __copy_backward_dispatch<_BI1, _BI2, _Trivial>
                   ::copy(__first, __last, __result);
     }
 
   template <typename _BI1, typename _BI2>
     inline _BI2
     __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last,
                                            _BI2 __result, __true_type)
     { return _BI2(__copy_backward_aux(__first, __last, __result.base())); }
 
   template <typename _BI1, typename _BI2>
     inline _BI2
     __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last,
                                            _BI2 __result, __false_type)
     { return __copy_backward_aux(__first, __last, __result); }
 
   template <typename _BI1, typename _BI2>
     inline _BI2
     __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last,
                                           _BI2 __result, __true_type)
     {
       typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;
       return __copy_backward_output_normal_iterator(__first.base(), __last.base(),
                                                     __result, __Normal());
     }
 
   template <typename _BI1, typename _BI2>
     inline _BI2
     __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last,
                                           _BI2 __result, __false_type)
     {
       typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;
       return __copy_backward_output_normal_iterator(__first, __last, __result,
                                                     __Normal());
     }
 # 477 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template <typename _BI1, typename _BI2>
     inline _BI2
     copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_BidirectionalIteratorConcept<_BI1> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_Mutable_BidirectionalIteratorConcept<_BI2> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_ConvertibleConcept< typename iterator_traits<_BI1>::value_type, typename iterator_traits<_BI2>::value_type> >();
 
 
 
       typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal;
       return __copy_backward_input_normal_iterator(__first, __last, __result,
                                                    __Normal());
     }
 # 509 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _ForwardIter, typename _Tp>
     void
     fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __value)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_Mutable_ForwardIteratorConcept<_ForwardIter> >();
 
       for ( ; __first != __last; ++__first)
         *__first = __value;
     }
 # 531 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _OutputIter, typename _Size, typename _Tp>
     _OutputIter
     fill_n(_OutputIter __first, _Size __n, const _Tp& __value)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_OutputIteratorConcept<_OutputIter,_Tp> >();
 
       for ( ; __n > 0; --__n, ++__first)
         *__first = __value;
       return __first;
     }
 
 
 
   inline void
   fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c)
   {
     unsigned char __tmp = __c;
     memset(__first, __tmp, __last - __first);
   }
 
   inline void
   fill(signed char* __first, signed char* __last, const signed char& __c)
   {
     signed char __tmp = __c;
     memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
   }
 
   inline void
   fill(char* __first, char* __last, const char& __c)
   {
     char __tmp = __c;
     memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
   }
 
   template<typename _Size>
     inline unsigned char*
     fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)
     {
       fill(__first, __first + __n, __c);
       return __first + __n;
     }
 
   template<typename _Size>
     inline signed char*
     fill_n(char* __first, _Size __n, const signed char& __c)
     {
       fill(__first, __first + __n, __c);
       return __first + __n;
     }
 
   template<typename _Size>
     inline char*
     fill_n(char* __first, _Size __n, const char& __c)
     {
       fill(__first, __first + __n, __c);
       return __first + __n;
     }
 # 606 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _InputIter1, typename _InputIter2>
     pair<_InputIter1, _InputIter2>
     mismatch(_InputIter1 __first1, _InputIter1 __last1,
              _InputIter2 __first2)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_EqualityComparableConcept< typename iterator_traits<_InputIter1>::value_type> >();
 
       __gnu_cxx::__function_requires< __gnu_cxx::_EqualityComparableConcept< typename iterator_traits<_InputIter2>::value_type> >();
 
 
       while (__first1 != __last1 && *__first1 == *__first2) {
         ++__first1;
         ++__first2;
       }
       return pair<_InputIter1, _InputIter2>(__first1, __first2);
     }
 # 640 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _InputIter1, typename _InputIter2, typename _BinaryPredicate>
     pair<_InputIter1, _InputIter2>
     mismatch(_InputIter1 __first1, _InputIter1 __last1,
              _InputIter2 __first2,
              _BinaryPredicate __binary_pred)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >();
 
       while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) {
         ++__first1;
         ++__first2;
       }
       return pair<_InputIter1, _InputIter2>(__first1, __first2);
     }
 # 668 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _InputIter1, typename _InputIter2>
     inline bool
     equal(_InputIter1 __first1, _InputIter1 __last1,
           _InputIter2 __first2)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_EqualOpConcept< typename iterator_traits<_InputIter1>::value_type, typename iterator_traits<_InputIter2>::value_type> >();
 
 
 
       for ( ; __first1 != __last1; ++__first1, ++__first2)
         if (!(*__first1 == *__first2))
           return false;
       return true;
     }
 # 699 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _InputIter1, typename _InputIter2, typename _BinaryPredicate>
     inline bool
     equal(_InputIter1 __first1, _InputIter1 __last1,
           _InputIter2 __first2,
           _BinaryPredicate __binary_pred)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >();
 
       for ( ; __first1 != __last1; ++__first1, ++__first2)
         if (!__binary_pred(*__first1, *__first2))
           return false;
       return true;
     }
 # 732 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _InputIter1, typename _InputIter2>
     bool
     lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1,
                             _InputIter2 __first2, _InputIter2 __last2)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_LessThanComparableConcept< typename iterator_traits<_InputIter1>::value_type> >();
 
       __gnu_cxx::__function_requires< __gnu_cxx::_LessThanComparableConcept< typename iterator_traits<_InputIter2>::value_type> >();
 
 
       for ( ; __first1 != __last1 && __first2 != __last2
             ; ++__first1, ++__first2) {
         if (*__first1 < *__first2)
           return true;
         if (*__first2 < *__first1)
           return false;
       }
       return __first1 == __last1 && __first2 != __last2;
     }
 # 767 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3
   template<typename _InputIter1, typename _InputIter2, typename _Compare>
     bool
     lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1,
                             _InputIter2 __first2, _InputIter2 __last2,
                             _Compare __comp)
     {
 
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >();
       __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >();
 
       for ( ; __first1 != __last1 && __first2 != __last2
             ; ++__first1, ++__first2) {
         if (__comp(*__first1, *__first2))
           return true;
         if (__comp(*__first2, *__first1))
           return false;
       }
       return __first1 == __last1 && __first2 != __last2;
     }
 
   inline bool
   lexicographical_compare(const unsigned char* __first1, const unsigned char* __last1,
                           const unsigned char* __first2, const unsigned char* __last2)
   {
     const size_t __len1 = __last1 - __first1;
     const size_t __len2 = __last2 - __first2;
     const int __result = memcmp(__first1, __first2, min(__len1, __len2));
     return __result != 0 ? __result < 0 : __len1 < __len2;
   }
 
   inline bool
   lexicographical_compare(const char* __first1, const char* __last1,
                           const char* __first2, const char* __last2)
   {
 
     return lexicographical_compare((const signed char*) __first1,
                                    (const signed char*) __last1,
                                    (const signed char*) __first2,
                                    (const signed char*) __last2);
 
 
 
 
 
 
   }
 
 }
 # 68 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 1 3
 # 84 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cassert" 1 3
 # 47 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cassert" 3
 
 # 1 "/usr/include/assert.h" 1 3 4
 # 11 "/usr/include/assert.h" 3 4
 #pragma ident "@(#)assert.h	1.9	92/07/14 SMI" 
 
 
 extern "C" {
 
 
 
 extern void __assert(const char *, const char *, int);
 
 
 
 
 
 }
 # 49 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cassert" 2 3
 # 85 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 1 3
 # 34 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception_defines.h" 1 3
 # 35 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 2 3
 
 namespace std
 {
 
   void
   __throw_bad_exception(void);
 
 
   void
   __throw_bad_alloc(void);
 
 
   void
   __throw_bad_cast(void);
 
   void
   __throw_bad_typeid(void);
 
 
   void
   __throw_logic_error(const char* __s);
 
   void
   __throw_domain_error(const char* __s);
 
   void
   __throw_invalid_argument(const char* __s);
 
   void
   __throw_length_error(const char* __s);
 
   void
   __throw_out_of_range(const char* __s);
 
   void
   __throw_runtime_error(const char* __s);
 
   void
   __throw_range_error(const char* __s);
 
   void
   __throw_overflow_error(const char* __s);
 
   void
   __throw_underflow_error(const char* __s);
 
 
   void
   __throw_ios_failure(const char* __s);
 }
 # 86 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 1 3
 # 54 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 3
 namespace std
 {
 
 
 
 
   struct _Refcount_Base
   {
 
     typedef size_t _RC_t;
 
 
     volatile _RC_t _M_ref_count;
 
 
     __gthread_mutex_t _M_ref_count_lock;
 
     _Refcount_Base(_RC_t __n) : _M_ref_count(__n)
     {
 
       __gthread_mutex_t __tmp = {{{0}, 0}, {{{0}}}, 0};
       _M_ref_count_lock = __tmp;
 
 
 
 
 
     }
 
     void
     _M_incr()
     {
       __gthread_mutex_lock(&_M_ref_count_lock);
       ++_M_ref_count;
       __gthread_mutex_unlock(&_M_ref_count_lock);
     }
 
     _RC_t
     _M_decr()
     {
       __gthread_mutex_lock(&_M_ref_count_lock);
       volatile _RC_t __tmp = --_M_ref_count;
       __gthread_mutex_unlock(&_M_ref_count_lock);
       return __tmp;
     }
   };
 # 109 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 3
   template<int __dummy>
     struct _Swap_lock_struct
     { static __gthread_mutex_t _S_swap_lock; };
 
   template<int __dummy>
     __gthread_mutex_t
     _Swap_lock_struct<__dummy>::_S_swap_lock = {{{0}, 0}, {{{0}}}, 0};
 
 
 
   inline unsigned long
   _Atomic_swap(unsigned long * __p, unsigned long __q)
   {
     __gthread_mutex_lock(&_Swap_lock_struct<0>::_S_swap_lock);
     unsigned long __result = *__p;
     *__p = __q;
     __gthread_mutex_unlock(&_Swap_lock_struct<0>::_S_swap_lock);
     return __result;
   }
 # 151 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 3
   struct _STL_mutex_lock
   {
 
 
 
 
 
     __gthread_mutex_t _M_lock;
 
     void
     _M_initialize()
     {
 # 184 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 3
     }
 
     void
     _M_acquire_lock()
     {
 
 
 
       __gthread_mutex_lock(&_M_lock);
     }
 
     void
     _M_release_lock()
     {
 
 
 
       __gthread_mutex_unlock(&_M_lock);
     }
   };
 # 220 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 3
   struct _STL_auto_lock
   {
     _STL_mutex_lock& _M_lock;
 
     _STL_auto_lock(_STL_mutex_lock& __lock) : _M_lock(__lock)
     { _M_lock._M_acquire_lock(); }
 
     ~_STL_auto_lock() { _M_lock._M_release_lock(); }
 
   private:
     void operator=(const _STL_auto_lock&);
     _STL_auto_lock(const _STL_auto_lock&);
   };
 
 }
 # 87 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 2 3
 
 namespace std
 {
 # 98 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3
   class __new_alloc
   {
   public:
     static void*
     allocate(size_t __n)
     { return ::operator new(__n); }
 
     static void
     deallocate(void* __p, size_t)
     { ::operator delete(__p); }
   };
 # 121 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3
   template <int __inst>
     class __malloc_alloc_template
     {
     private:
       static void* _S_oom_malloc(size_t);
       static void* _S_oom_realloc(void*, size_t);
       static void (* __malloc_alloc_oom_handler)();
 
     public:
       static void*
       allocate(size_t __n)
       {
         void* __result = malloc(__n);
         if (0 == __result) __result = _S_oom_malloc(__n);
         return __result;
       }
 
       static void
       deallocate(void* __p, size_t )
       { free(__p); }
 
       static void*
       reallocate(void* __p, size_t , size_t __new_sz)
       {
         void* __result = realloc(__p, __new_sz);
         if (0 == __result) __result = _S_oom_realloc(__p, __new_sz);
         return __result;
       }
 
       static void (* __set_malloc_handler(void (*__f)()))()
       {
         void (* __old)() = __malloc_alloc_oom_handler;
         __malloc_alloc_oom_handler = __f;
         return(__old);
       }
     };
 
 
   template <int __inst>
     void (* __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() = 0;
 
   template <int __inst>
     void*
     __malloc_alloc_template<__inst>::_S_oom_malloc(size_t __n)
     {
       void (* __my_malloc_handler)();
       void* __result;
 
       for (;;)
         {
           __my_malloc_handler = __malloc_alloc_oom_handler;
           if (0 == __my_malloc_handler)
             std::__throw_bad_alloc();
           (*__my_malloc_handler)();
           __result = malloc(__n);
           if (__result)
             return(__result);
         }
     }
 
   template <int __inst>
     void*
     __malloc_alloc_template<__inst>::_S_oom_realloc(void* __p, size_t __n)
     {
       void (* __my_malloc_handler)();
       void* __result;
 
       for (;;)
         {
           __my_malloc_handler = __malloc_alloc_oom_handler;
           if (0 == __my_malloc_handler)
             std::__throw_bad_alloc();
           (*__my_malloc_handler)();
           __result = realloc(__p, __n);
           if (__result)
             return(__result);
         }
     }
 
 
 
 
 
 
   typedef __new_alloc __mem_interface;
 # 219 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3
   template<class _Tp, class _Alloc>
   class __simple_alloc
   {
   public:
     static _Tp* allocate(size_t __n)
     { return 0 == __n ? 0 : (_Tp*) _Alloc::allocate(__n * sizeof (_Tp)); }
 
     static _Tp* allocate()
     { return (_Tp*) _Alloc::allocate(sizeof (_Tp)); }
 
     static void deallocate(_Tp* __p, size_t __n)
     { if (0 != __n) _Alloc::deallocate(__p, __n * sizeof (_Tp)); }
 
     static void deallocate(_Tp* __p)
     { _Alloc::deallocate(__p, sizeof (_Tp)); }
   };
 # 251 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3
   template <class _Alloc>
   class __debug_alloc
   {
   private:
     enum {_S_extra = 8};
 
 
   public:
 
     static void* allocate(size_t __n)
     {
       char* __result = (char*)_Alloc::allocate(__n + (int) _S_extra);
       *(size_t*)__result = __n;
       return __result + (int) _S_extra;
     }
 
     static void deallocate(void* __p, size_t __n)
     {
       char* __real_p = (char*)__p - (int) _S_extra;
       (void)((*(size_t*)__real_p == __n) || (__assert("*(size_t*)__real_p == __n", "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h", 270), 0));
       _Alloc::deallocate(__real_p, __n + (int) _S_extra);
     }
 
     static void* reallocate(void* __p, size_t __old_sz, size_t __new_sz)
     {
       char* __real_p = (char*)__p - (int) _S_extra;
       (void)((*(size_t*)__real_p == __old_sz) || (__assert("*(size_t*)__real_p == __old_sz", "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h", 277), 0));
       char* __result = (char*)
         _Alloc::reallocate(__real_p, __old_sz + (int) _S_extra,
                                      __new_sz + (int) _S_extra);
       *(size_t*)__result = __new_sz;
       return __result + (int) _S_extra;
     }
   };
 # 324 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3
 template<bool __threads, int __inst>
   class __default_alloc_template
   {
   private:
     enum {_ALIGN = 8};
     enum {_MAX_BYTES = 128};
     enum {_NFREELISTS = _MAX_BYTES / _ALIGN};
 
     union _Obj
     {
       union _Obj* _M_free_list_link;
       char _M_client_data[1];
     };
 
     static _Obj* volatile _S_free_list[_NFREELISTS];
 
 
     static char* _S_start_free;
     static char* _S_end_free;
     static size_t _S_heap_size;
 
     static _STL_mutex_lock _S_node_allocator_lock;
 
     static size_t
     _S_round_up(size_t __bytes)
     { return (((__bytes) + (size_t) _ALIGN-1) & ~((size_t) _ALIGN - 1)); }
 
     static size_t
     _S_freelist_index(size_t __bytes)
     { return (((__bytes) + (size_t)_ALIGN-1)/(size_t)_ALIGN - 1); }
 
 
 
     static void*
     _S_refill(size_t __n);
 
 
 
     static char*
     _S_chunk_alloc(size_t __size, int& __nobjs);
 
 
 
     class _Lock
     {
     public:
       _Lock() { if (__threads) _S_node_allocator_lock._M_acquire_lock(); }
       ~_Lock() { if (__threads) _S_node_allocator_lock._M_release_lock(); }
     } __attribute__ ((__unused__));
     friend class _Lock;
 
   public:
 
     static void*
     allocate(size_t __n)
     {
       void* __ret = 0;
 
       if (__n > (size_t) _MAX_BYTES)
         __ret = __mem_interface::allocate(__n);
       else
         {
           _Obj* volatile* __my_free_list = _S_free_list
             + _S_freelist_index(__n);
 
 
 
           _Lock __lock_instance;
           _Obj* __restrict__ __result = *__my_free_list;
           if (__result == 0)
             __ret = _S_refill(_S_round_up(__n));
           else
             {
               *__my_free_list = __result -> _M_free_list_link;
               __ret = __result;
             }
         }
       return __ret;
     };
 
 
     static void
     deallocate(void* __p, size_t __n)
     {
       if (__n > (size_t) _MAX_BYTES)
         __mem_interface::deallocate(__p, __n);
       else
         {
           _Obj* volatile* __my_free_list
             = _S_free_list + _S_freelist_index(__n);
           _Obj* __q = (_Obj*)__p;
 
 
 
           _Lock __lock_instance;
           __q -> _M_free_list_link = *__my_free_list;
           *__my_free_list = __q;
         }
     }
 
     static void*
     reallocate(void* __p, size_t __old_sz, size_t __new_sz);
   };
 
 
   template<bool __threads, int __inst>
     inline bool
     operator==(const __default_alloc_template<__threads, __inst>&,
                const __default_alloc_template<__threads, __inst>&)
     { return true; }
 
   template<bool __threads, int __inst>
     inline bool
     operator!=(const __default_alloc_template<__threads, __inst>&,
                const __default_alloc_template<__threads, __inst>&)
     { return false; }
 
 
 
 
 
   template<bool __threads, int __inst>
     char*
     __default_alloc_template<__threads, __inst>::_S_chunk_alloc(size_t __size,
                                                                 int& __nobjs)
     {
       char* __result;
       size_t __total_bytes = __size * __nobjs;
       size_t __bytes_left = _S_end_free - _S_start_free;
 
       if (__bytes_left >= __total_bytes)
       {
         __result = _S_start_free;
         _S_start_free += __total_bytes;
         return(__result);
       }
       else if (__bytes_left >= __size)
         {
           __nobjs = (int)(__bytes_left/__size);
           __total_bytes = __size * __nobjs;
           __result = _S_start_free;
           _S_start_free += __total_bytes;
           return(__result);
         }
       else
         {
           size_t __bytes_to_get =
             2 * __total_bytes + _S_round_up(_S_heap_size >> 4);
 
           if (__bytes_left > 0)
             {
               _Obj* volatile* __my_free_list =
                 _S_free_list + _S_freelist_index(__bytes_left);
 
               ((_Obj*)_S_start_free) -> _M_free_list_link = *__my_free_list;
               *__my_free_list = (_Obj*)_S_start_free;
             }
           _S_start_free = (char*) __mem_interface::allocate(__bytes_to_get);
           if (0 == _S_start_free)
             {
               size_t __i;
               _Obj* volatile* __my_free_list;
               _Obj* __p;
 
 
 
               __i = __size;
               for (; __i <= (size_t) _MAX_BYTES; __i += (size_t) _ALIGN)
                 {
                   __my_free_list = _S_free_list + _S_freelist_index(__i);
                   __p = *__my_free_list;
                   if (0 != __p)
                     {
                       *__my_free_list = __p -> _M_free_list_link;
                       _S_start_free = (char*)__p;
                       _S_end_free = _S_start_free + __i;
                       return(_S_chunk_alloc(__size, __nobjs));
 
 
                     }
                 }
               _S_end_free = 0;
               _S_start_free = (char*)__mem_interface::allocate(__bytes_to_get);
 
 
             }
           _S_heap_size += __bytes_to_get;
           _S_end_free = _S_start_free + __bytes_to_get;
           return(_S_chunk_alloc(__size, __nobjs));
         }
     }
 
 
 
 
 
   template<bool __threads, int __inst>
     void*
     __default_alloc_template<__threads, __inst>::_S_refill(size_t __n)
     {
       int __nobjs = 20;
       char* __chunk = _S_chunk_alloc(__n, __nobjs);
       _Obj* volatile* __my_free_list;
       _Obj* __result;
       _Obj* __current_obj;
       _Obj* __next_obj;
       int __i;
 
       if (1 == __nobjs) return(__chunk);
       __my_free_list = _S_free_list + _S_freelist_index(__n);
 
 
       __result = (_Obj*)__chunk;
       *__my_free_list = __next_obj = (_Obj*)(__chunk + __n);
       for (__i = 1; ; __i++) {
         __current_obj = __next_obj;
         __next_obj = (_Obj*)((char*)__next_obj + __n);
         if (__nobjs - 1 == __i) {
           __current_obj -> _M_free_list_link = 0;
           break;
         } else {
           __current_obj -> _M_free_list_link = __next_obj;
         }
       }
       return(__result);
     }
 
 
   template<bool threads, int inst>
     void*
     __default_alloc_template<threads, inst>::reallocate(void* __p,
                                                         size_t __old_sz,
                                                         size_t __new_sz)
     {
       void* __result;
       size_t __copy_sz;
 
       if (__old_sz > (size_t) _MAX_BYTES && __new_sz > (size_t) _MAX_BYTES) {
         return(realloc(__p, __new_sz));
       }
       if (_S_round_up(__old_sz) == _S_round_up(__new_sz)) return(__p);
       __result = allocate(__new_sz);
       __copy_sz = __new_sz > __old_sz? __old_sz : __new_sz;
       memcpy(__result, __p, __copy_sz);
       deallocate(__p, __old_sz);
       return(__result);
     }
 
   template<bool __threads, int __inst>
   _STL_mutex_lock
   __default_alloc_template<__threads, __inst>::_S_node_allocator_lock
   = { {{{0}, 0}, {{{0}}}, 0} };
 
   template<bool __threads, int __inst>
   char* __default_alloc_template<__threads, __inst>::_S_start_free = 0;
 
   template<bool __threads, int __inst>
   char* __default_alloc_template<__threads, __inst>::_S_end_free = 0;
 
   template<bool __threads, int __inst>
   size_t __default_alloc_template<__threads, __inst>::_S_heap_size = 0;
 
   template<bool __threads, int __inst>
   typename __default_alloc_template<__threads, __inst>::_Obj* volatile
   __default_alloc_template<__threads, __inst>::_S_free_list[_NFREELISTS];
 
   typedef __default_alloc_template<true, 0> __alloc;
   typedef __default_alloc_template<false, 0> __single_client_alloc;
 # 613 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3
 template <class _Tp>
 class allocator
 {
   typedef __alloc _Alloc;
 public:
   typedef size_t size_type;
   typedef ptrdiff_t difference_type;
   typedef _Tp* pointer;
   typedef const _Tp* const_pointer;
   typedef _Tp& reference;
   typedef const _Tp& const_reference;
   typedef _Tp value_type;
 
   template <class _Tp1> struct rebind {
     typedef allocator<_Tp1> other;
   };
 
   allocator() throw() {}
   allocator(const allocator&) throw() {}
   template <class _Tp1> allocator(const allocator<_Tp1>&) throw() {}
   ~allocator() throw() {}
 
   pointer address(reference __x) const { return &__x; }
   const_pointer address(const_reference __x) const { return &__x; }
 
 
 
   _Tp* allocate(size_type __n, const void* = 0) {
     return __n != 0 ? static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp)))
                     : 0;
   }
 
 
   void deallocate(pointer __p, size_type __n)
     { _Alloc::deallocate(__p, __n * sizeof(_Tp)); }
 
   size_type max_size() const throw()
     { return size_t(-1) / sizeof(_Tp); }
 
   void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); }
   void destroy(pointer __p) { __p->~_Tp(); }
 };
 
 template<>
 class allocator<void> {
 public:
   typedef size_t size_type;
   typedef ptrdiff_t difference_type;
   typedef void* pointer;
   typedef const void* const_pointer;
   typedef void value_type;
 
   template <class _Tp1> struct rebind {
     typedef allocator<_Tp1> other;
   };
 };
 
 
 template <class _T1, class _T2>
 inline bool operator==(const allocator<_T1>&, const allocator<_T2>&)
 {
   return true;
 }
 
 template <class _T1, class _T2>
 inline bool operator!=(const allocator<_T1>&, const allocator<_T2>&)
 {
   return false;
 }
 # 695 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3
 template <class _Tp, class _Alloc>
 struct __allocator
 {
   _Alloc __underlying_alloc;
 
   typedef size_t size_type;
   typedef ptrdiff_t difference_type;
   typedef _Tp* pointer;
   typedef const _Tp* const_pointer;
   typedef _Tp& reference;
   typedef const _Tp& const_reference;
   typedef _Tp value_type;
 
   template <class _Tp1> struct rebind {
     typedef __allocator<_Tp1, _Alloc> other;
   };
 
   __allocator() throw() {}
   __allocator(const __allocator& __a) throw()
     : __underlying_alloc(__a.__underlying_alloc) {}
   template <class _Tp1>
   __allocator(const __allocator<_Tp1, _Alloc>& __a) throw()
     : __underlying_alloc(__a.__underlying_alloc) {}
   ~__allocator() throw() {}
 
   pointer address(reference __x) const { return &__x; }
   const_pointer address(const_reference __x) const { return &__x; }
 
 
   _Tp* allocate(size_type __n, const void* = 0) {
     return __n != 0
         ? static_cast<_Tp*>(__underlying_alloc.allocate(__n * sizeof(_Tp)))
         : 0;
   }
 
 
   void deallocate(pointer __p, size_type __n)
     { __underlying_alloc.deallocate(__p, __n * sizeof(_Tp)); }
 
   size_type max_size() const throw()
     { return size_t(-1) / sizeof(_Tp); }
 
   void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); }
   void destroy(pointer __p) { __p->~_Tp(); }
 };
 
 template <class _Alloc>
 class __allocator<void, _Alloc> {
   typedef size_t size_type;
   typedef ptrdiff_t difference_type;
   typedef void* pointer;
   typedef const void* const_pointer;
   typedef void value_type;
 
   template <class _Tp1> struct rebind {
     typedef __allocator<_Tp1, _Alloc> other;
   };
 };
 
 template <class _Tp, class _Alloc>
 inline bool operator==(const __allocator<_Tp, _Alloc>& __a1,
                        const __allocator<_Tp, _Alloc>& __a2)
 {
   return __a1.__underlying_alloc == __a2.__underlying_alloc;
 }
 
 template <class _Tp, class _Alloc>
 inline bool operator!=(const __allocator<_Tp, _Alloc>& __a1,
                        const __allocator<_Tp, _Alloc>& __a2)
 {
   return __a1.__underlying_alloc != __a2.__underlying_alloc;
 }
 
 
 
 
 
 
 
 template <int inst>
 inline bool operator==(const __malloc_alloc_template<inst>&,
                        const __malloc_alloc_template<inst>&)
 {
   return true;
 }
 
 template <int __inst>
 inline bool operator!=(const __malloc_alloc_template<__inst>&,
                        const __malloc_alloc_template<__inst>&)
 {
   return false;
 }
 
 template <class _Alloc>
 inline bool operator==(const __debug_alloc<_Alloc>&,
                        const __debug_alloc<_Alloc>&) {
   return true;
 }
 
 template <class _Alloc>
 inline bool operator!=(const __debug_alloc<_Alloc>&,
                        const __debug_alloc<_Alloc>&) {
   return false;
 }
 # 840 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3
 template <class _Tp, class _Allocator>
 struct _Alloc_traits
 {
   static const bool _S_instanceless = false;
   typedef typename _Allocator::template rebind<_Tp>::other allocator_type;
 };
 
 template <class _Tp, class _Allocator>
 const bool _Alloc_traits<_Tp, _Allocator>::_S_instanceless;
 
 
 template <class _Tp, class _Tp1>
 struct _Alloc_traits<_Tp, allocator<_Tp1> >
 {
   static const bool _S_instanceless = true;
   typedef __simple_alloc<_Tp, __alloc> _Alloc_type;
   typedef allocator<_Tp> allocator_type;
 };
 
 
 
 
 template <class _Tp, int __inst>
 struct _Alloc_traits<_Tp, __malloc_alloc_template<__inst> >
 {
   static const bool _S_instanceless = true;
   typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type;
   typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type;
 };
 
 
 template <class _Tp, bool __threads, int __inst>
 struct _Alloc_traits<_Tp, __default_alloc_template<__threads, __inst> >
 {
   static const bool _S_instanceless = true;
   typedef __simple_alloc<_Tp, __default_alloc_template<__threads, __inst> >
           _Alloc_type;
   typedef __allocator<_Tp, __default_alloc_template<__threads, __inst> >
           allocator_type;
 };
 
 
 template <class _Tp, class _Alloc>
 struct _Alloc_traits<_Tp, __debug_alloc<_Alloc> >
 {
   static const bool _S_instanceless = true;
   typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type;
   typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type;
 };
 
 
 
 
 template <class _Tp, class _Tp1, int __inst>
 struct _Alloc_traits<_Tp,
                      __allocator<_Tp1, __malloc_alloc_template<__inst> > >
 {
   static const bool _S_instanceless = true;
   typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type;
   typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type;
 };
 
 
 template <class _Tp, class _Tp1, bool __thr, int __inst>
 struct _Alloc_traits<_Tp,
                       __allocator<_Tp1,
                                   __default_alloc_template<__thr, __inst> > >
 {
   static const bool _S_instanceless = true;
   typedef __simple_alloc<_Tp, __default_alloc_template<__thr,__inst> >
           _Alloc_type;
   typedef __allocator<_Tp, __default_alloc_template<__thr,__inst> >
           allocator_type;
 };
 
 
 template <class _Tp, class _Tp1, class _Alloc>
 struct _Alloc_traits<_Tp, __allocator<_Tp1, __debug_alloc<_Alloc> > >
 {
   static const bool _S_instanceless = true;
   typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type;
   typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type;
 };
 
 
 
 
 
   extern template class allocator<char>;
   extern template class allocator<wchar_t>;
 
 
 
   extern template class __default_alloc_template<true, 0>;
 
 }
 # 69 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_construct.h" 1 3
 # 67 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_construct.h" 3
 namespace std
 {
 
 
 
 
 
 
   template <class _T1, class _T2>
     inline void
     _Construct(_T1* __p, const _T2& __value)
     { new (static_cast<void*>(__p)) _T1(__value); }
 
 
 
 
 
 
 
   template <class _T1>
     inline void
     _Construct(_T1* __p)
     { new (static_cast<void*>(__p)) _T1(); }
 # 98 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_construct.h" 3
   template <class _ForwardIterator>
     inline void
     __destroy_aux(_ForwardIterator __first, _ForwardIterator __last, __false_type)
     { for ( ; __first != __last; ++__first) _Destroy(&*__first); }
 # 112 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_construct.h" 3
   template <class _ForwardIterator>
     inline void
     __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)
     { }
 
 
 
 
 
 
   template <class _Tp>
     inline void
     _Destroy(_Tp* __pointer)
     { __pointer->~_Tp(); }
 # 134 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_construct.h" 3
   template <class _ForwardIterator>
     inline void
     _Destroy(_ForwardIterator __first, _ForwardIterator __last)
     {
       typedef typename iterator_traits<_ForwardIterator>::value_type
                        _Value_type;
       typedef typename __type_traits<_Value_type>::has_trivial_destructor
                        _Has_trivial_destructor;
 
       __destroy_aux(__first, __last, _Has_trivial_destructor());
     }
 }
 # 70 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 1 3
 # 66 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 3
 namespace std
 {
 
 
 
   template<typename _InputIter, typename _ForwardIter>
     inline _ForwardIter
     __uninitialized_copy_aux(_InputIter __first, _InputIter __last,
                              _ForwardIter __result,
                              __true_type)
     { return copy(__first, __last, __result); }
 
   template<typename _InputIter, typename _ForwardIter>
     _ForwardIter
     __uninitialized_copy_aux(_InputIter __first, _InputIter __last,
                              _ForwardIter __result,
                              __false_type)
     {
       _ForwardIter __cur = __result;
       try {
         for ( ; __first != __last; ++__first, ++__cur)
           _Construct(&*__cur, *__first);
         return __cur;
       }
       catch(...)
         {
           _Destroy(__result, __cur);
           throw;
         }
     }
 # 106 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 3
   template<typename _InputIter, typename _ForwardIter>
     inline _ForwardIter
     uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)
     {
       typedef typename iterator_traits<_ForwardIter>::value_type _ValueType;
       typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
       return __uninitialized_copy_aux(__first, __last, __result, _Is_POD());
     }
 
   inline char*
   uninitialized_copy(const char* __first, const char* __last, char* __result)
   {
     memmove(__result, __first, __last - __first);
     return __result + (__last - __first);
   }
 
   inline wchar_t*
   uninitialized_copy(const wchar_t* __first, const wchar_t* __last,
                      wchar_t* __result)
   {
     memmove(__result, __first, sizeof(wchar_t) * (__last - __first));
     return __result + (__last - __first);
   }
 
 
 
   template<typename _ForwardIter, typename _Tp>
     inline void
     __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last,
                              const _Tp& __x, __true_type)
     { fill(__first, __last, __x); }
 
   template<typename _ForwardIter, typename _Tp>
     void
     __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last,
                              const _Tp& __x, __false_type)
     {
       _ForwardIter __cur = __first;
       try {
         for ( ; __cur != __last; ++__cur)
           _Construct(&*__cur, __x);
       }
       catch(...)
         {
           _Destroy(__first, __cur);
           throw;
         }
     }
 # 164 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 3
   template<typename _ForwardIter, typename _Tp>
     inline void
     uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x)
     {
       typedef typename iterator_traits<_ForwardIter>::value_type _ValueType;
       typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
       __uninitialized_fill_aux(__first, __last, __x, _Is_POD());
     }
 
 
 
   template<typename _ForwardIter, typename _Size, typename _Tp>
     inline _ForwardIter
     __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n,
                                const _Tp& __x, __true_type)
     {
       return fill_n(__first, __n, __x);
     }
 
   template<typename _ForwardIter, typename _Size, typename _Tp>
     _ForwardIter
     __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n,
                                const _Tp& __x, __false_type)
     {
       _ForwardIter __cur = __first;
       try {
         for ( ; __n > 0; --__n, ++__cur)
           _Construct(&*__cur, __x);
         return __cur;
       }
       catch(...)
         {
           _Destroy(__first, __cur);
           throw;
         }
     }
 # 210 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 3
   template<typename _ForwardIter, typename _Size, typename _Tp>
     inline _ForwardIter
     uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x)
     {
       typedef typename iterator_traits<_ForwardIter>::value_type _ValueType;
       typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
       return __uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());
     }
 # 227 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 3
   template<typename _InputIter1, typename _InputIter2, typename _ForwardIter>
     inline _ForwardIter
     __uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1,
                               _InputIter2 __first2, _InputIter2 __last2,
                               _ForwardIter __result)
     {
       _ForwardIter __mid = uninitialized_copy(__first1, __last1, __result);
       try {
         return uninitialized_copy(__first2, __last2, __mid);
       }
       catch(...)
         {
           _Destroy(__result, __mid);
           throw;
         }
     }
 
 
 
 
   template<typename _ForwardIter, typename _Tp, typename _InputIter>
     inline _ForwardIter
     __uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid,
                               const _Tp& __x,
                               _InputIter __first, _InputIter __last)
     {
       uninitialized_fill(__result, __mid, __x);
       try {
         return uninitialized_copy(__first, __last, __mid);
       }
       catch(...)
         {
           _Destroy(__result, __mid);
           throw;
         }
     }
 
 
 
 
   template<typename _InputIter, typename _ForwardIter, typename _Tp>
     inline void
     __uninitialized_copy_fill(_InputIter __first1, _InputIter __last1,
                               _ForwardIter __first2, _ForwardIter __last2,
                               const _Tp& __x)
     {
       _ForwardIter __mid2 = uninitialized_copy(__first1, __last1, __first2);
       try {
         uninitialized_fill(__mid2, __last2, __x);
       }
       catch(...)
         {
           _Destroy(__first2, __mid2);
           throw;
         }
     }
 
 }
 # 71 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3
 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_list.h" 1 3
 # 66 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_list.h" 3
 namespace std
 {
 
   struct _List_node_base
   {
     _List_node_base* _M_next;
     _List_node_base* _M_prev;
   };
 
   template<typename _Tp>
     struct _List_node : public _List_node_base
     {
       _Tp _M_data;
     };
 
   struct _List_iterator_base
   {
     typedef size_t size_type;
     typedef ptrdiff_t difference_type;
     typedef bidirectional_iterator_tag iterator_category;
 
     _List_node_base* _M_node;
 
     _List_iterator_base(_List_node_base* __x)
     : _M_node(__x)
     { }
 
     _List_iterator_base()
     { }
 
     void
     _M_incr()
     { _M_node = _M_node->_M_next; }
 
     void
     _M_decr()
     { _M_node = _M_node->_M_prev; }
 
     bool
     operator==(const _List_iterator_base& __x) const
     { return _M_node == __x._M_node; }
 
     bool
     operator!=(const _List_iterator_base& __x) const
     { return _M_node != __x._M_node; }
   };
 
   template<typename _Tp, typename _Ref, typename _Ptr>
     struct _List_iterator : public _List_iterator_base
     {
       typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator;
       typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator;
       typedef _List_iterator<_Tp,_Ref,_Ptr> _Self;
 
       typedef _Tp value_type;
       typedef _Ptr pointer;
       typedef _Ref reference;
       typedef _List_node<_Tp> _Node;
 
       _List_iterator(_Node* __x)
       : _List_iterator_base(__x)
       { }
 
       _List_iterator()
       { }
 
       _List_iterator(const iterator& __x)
       : _List_iterator_base(__x._M_node)
       { }
 
       reference
       operator*() const
       { return ((_Node*) _M_node)->_M_data; }
 
       pointer
       operator->() const
       { return &(operator*()); }
 
       _Self&
       operator++()
       {
         this->_M_incr();
         return *this;
       }
 
       _Self
       operator++(int)
       {
         _Self __tmp = *this;
         this->_M_incr();
         return __tmp;
       }
 
       _Self&
       operator--()
       {
         this->_M_decr();
         return *this;
       }
 
       _Self
       operator--(int)
       {
         _Self __tmp = *this;
         this->_M_decr();
         return __tmp;
       }
     };
 # 185 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_list.h" 3
   template<typename _Tp, typename _Allocator, bool _IsStatic>
     class _List_alloc_base
     {
     public:
       typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type
               allocator_type;
 
       allocator_type
       get_allocator() const
       { return _Node_allocator; }
 
       _List_alloc_base(const allocator_type& __a)
       : _Node_allocator(__a)
       { }
 
     protected:
       _List_node<_Tp>*
       _M_get_node()
       { return _Node_allocator.allocate(1); }
 
       void
       _M_put_node(_List_node<_Tp>* __p)
       { _Node_allocator.deallocate(__p, 1); }
 
     protected:
       typename _Alloc_traits<_List_node<_Tp>, _Allocator>::allocator_type
                _Node_allocator;
 
       _List_node<_Tp>* _M_node;
     };
 
 
 
   template<typename _Tp, typename _Allocator>
     class _List_alloc_base<_Tp, _Allocator, true>
     {
     public:
       typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type
               allocator_type;
 
       allocator_type
       get_allocator() const
       { return allocator_type(); }
 
       _List_alloc_base(const allocator_type&)
       { }
 
     protected:
       typedef typename _Alloc_traits<_List_node<_Tp>, _Allocator>::_Alloc_type
               _Alloc_type;
 
       _List_node<_Tp>*
       _M_get_node()
       { return _Alloc_type::allocate(1); }
 
       void
       _M_put_node(_List_node<_Tp>* __p)
       { _Alloc_type::deallocate(__p, 1); }
 
     protected:
       _List_node<_Tp>* _M_node;
     };
 
   template<typename _Tp, typename _Alloc>
     class _List_base
       : public _List_alloc_base<_Tp, _Alloc,
                                 _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
     {
     public:
       typedef _List_alloc_base<_Tp, _Alloc,
                                _Alloc_traits<_Tp, _Alloc>::_S_instanceless>
               _Base;
       typedef typename _Base::allocator_type allocator_type;
 
       _List_base(const allocator_type& __a)
       : _Base(__a)
       {
         _M_node = _M_get_node();
         _M_node->_M_next = _M_node;
         _M_node->_M_prev = _M_node;
       }
 
       ~_List_base()
       {
         clear();
         _M_put_node(_M_node);
       }
 
       void clear();
     };
 # 289 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_list.h" 3
   template<typename _Tp, typename _Alloc = allocator<_Tp> >
     class list : protected _List_base<_Tp, _Alloc>
     {
 
       typedef void (__gnu_cxx::_SGIAssignableConcept <_Tp>::* _func_Tp_SGIAssignableConcept)(); template <_func_Tp_SGIAssignableConcept _Tp1> struct _concept_checking_Tp_SGIAssignableConcept { }; typedef _concept_checking_Tp_SGIAssignableConcept< &__gnu_cxx::_SGIAssignableConcept <_Tp>::__constraints> _concept_checking_typedef_Tp_SGIAssignableConcept;
 
       typedef _List_base<_Tp, _Alloc> _Base;
     protected:
       typedef void* _Void_pointer;
 
     public:
       typedef _Tp value_type;
       typedef value_type* pointer;
       typedef const value_type* const_pointer;
       typedef value_type& reference;
       typedef const value_type& const_reference;
       typedef _List_node<_Tp> _Node;
       typedef size_t size_type;
       typedef ptrdiff_t difference_type;
 
       typedef typename _Base::allocator_type allocator_type;
 
       typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator;
       typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator;
 
       typedef reverse_iterator<const_iterator> const_reverse_iterator;
       typedef reverse_iterator<iterator> reverse_iterator;
 
     protected:
       using _Base::_M_node;
       using _Base::_M_put_node;
       using _Base::_M_get_node;
 
     protected:
       _Node*
       _M_create_node(const _Tp& __x)
       {
         _Node* __p = _M_get_node();
         try {
           _Construct(&__p->_M_data, __x);
         }
         catch(...)
         {
           _M_put_node(__p);
           throw;
         }
         return __p;
       }
 
       _Node*
       _M_create_node()
       {
         _Node* __p = _M_get_node();
         try {
           _Construct(&__p->_M_data);
         }
         catch(...)
         {
           _M_put_node(__p);
           throw;
         }
         return __p;
       }
 
     public:
       allocator_type
       get_allocator() const
       { return _Base::get_allocator(); }
 
       explicit
       list(const allocator_type& __a = allocator_type())
       : _Base(__a)
       { }
 
       iterator
       begin()
       { return static_cast<_Node*>(_M_node->_M_next); }
 
       const_iterator
       begin() const
       { return static_cast<_Node*>(_M_node->_M_next); }
 
       iterator
       end()
       { return _M_node; }
 
       const_iterator
       end() const
       { return _M_node; }
 
       reverse_iterator
       rbegin()
       { return reverse_iterator(end()); }
 
       const_reverse_iterator
       rbegin() const
       { return const_reverse_iterator(end()); }
 
       reverse_iterator
       rend()
       { return reverse_iterator(begin()); }
 
       const_reverse_iterator
       rend() const
       { return const_reverse_iterator(begin()); }
 
       bool
       empty() const
       { return _M_node->_M_next == _M_node; }
 
       size_type
       size() const
       { return distance(begin(), end()); }
 
       size_type
       max_size() const
       { return size_type(-1); }
 
       reference
       front()
       { return *begin(); }
 
       const_reference
       front() const
       { return *begin(); }
 
       reference
       back()
       { return *(--end()); }
 
       const_reference
       back() const
       { return *(--end()); }
 
       void
       swap(list<_Tp, _Alloc>& __x)
       { std::swap(_M_node, __x._M_node); }
 
       iterator
       insert(iterator __position, const _Tp& __x)
       {
         _Node* __tmp = _M_create_node(__x);
         __tmp->_M_next = __position._M_node;
         __tmp->_M_prev = __position._M_node->_M_prev;
         __position._M_node->_M_prev->_M_next = __tmp;
         __position._M_node->_M_prev = __tmp;
         return __tmp;
       }
 
       iterator
       insert(iterator __position)
       { return insert(__position, _Tp()); }
 
 
       template<typename _Integer>
         void
         _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, __true_type)
         { _M_fill_insert(__pos, (size_type) __n, (_Tp) __x); }
 
       template<typename _InputIterator>
         void
         _M_insert_dispatch(iterator __pos,
                            _InputIterator __first, _InputIterator __last,
                            __false_type);
 
       template<typename _InputIterator>
         void
         insert(iterator __pos, _InputIterator __first, _InputIterator __last)
         {
           typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
           _M_insert_dispatch(__pos, __first, __last, _Integral());
         }
 
       void
       insert(iterator __pos, size_type __n, const _Tp& __x)
       { _M_fill_insert(__pos, __n, __x); }
 
       void
       _M_fill_insert(iterator __pos, size_type __n, const _Tp& __x);
 
       void
       push_front(const _Tp& __x)
       { insert(begin(), __x); }
 
       void
       push_front()
       { insert(begin()); }
 
       void
       push_back(const _Tp& __x)
       { insert(end(), __x); }
 
       void
       push_back()
       { insert(end()); }
 
       iterator
       erase(iterator __position)
       {
         _List_node_base* __next_node = __position._M_node->_M_next;
         _List_node_base* __prev_node = __position._M_node->_M_prev;
         _Node* __n = static_cast<_Node*>(__position._M_node);
         __prev_node->_M_next = __next_node;
         __next_node->_M_prev = __prev_node;
         _Destroy(&__n->_M_data);
         _M_put_node(__n);
         return iterator(static_cast<_Node*>(__next_node));
       }
 
       iterator
       erase(iterator __first, iterator __last);
 
       void
       clear()
       { _Base::clear(); }
 
       void
       resize(size_type __new_size, const _Tp& __x);
 
       void
       resize(size_type __new_size)
       { this->resize(__new_size, _Tp()); }
 
       void
       pop_front()
       { erase(begin()); }
 
       void
       pop_back()
       {
         iterator __tmp = end();
         erase(--__tmp);
       }
 
       list(size_type __n, const _Tp& __value,
            const allocator_type& __a = allocator_type())
       : _Base(__a)
       { insert(begin(), __n, __value); }
 
       explicit
       list(size_type __n)
       : _Base(allocator_type())
       { insert(begin(), __n, _Tp()); }
 
 
 
       template<typename _InputIterator>
       list(_InputIterator __first, _InputIterator __last,
            const allocator_type& __a = allocator_type())
       : _Base(__a)
       { insert(begin(), __first, __last); }
 
       list(const list<_Tp, _Alloc>& __x)
       : _Base(__x.get_allocator())
       { insert(begin(), __x.begin(), __x.end()); }
 
       ~list()
       { }
 
       list<_Tp, _Alloc>&
       operator=(const list<_Tp, _Alloc>& __x);
 
     public:
 
 
 
 
 
       void
       assign(size_type __n, const _Tp& __val)
       { _M_fill_assign(__n, __val); }
 
       void
       _M_fill_assign(size_type __n, const _Tp& __val);
 
       template<typename _InputIterator>
         void
         assign(_InputIterator __first, _InputIterator __last)
         {
           typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
           _M_assign_dispatch(__first, __last, _Integral());
         }
 
       template<typename _Integer>
         void
         _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
         { _M_fill_assign((size_type) __n, (_Tp) __val); }
 
       template<typename _InputIterator>
         void
         _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
                            __false_type);
 
     protected:
       void
       _M_transfer(iterator __position, iterator __first, iterator __last)
       {
         if (__position != __last) {
 
           __last._M_node->_M_prev->_M_next = __position._M_node;
           __first._M_node->_M_prev->_M_next = __last._M_node;
           __position._M_node->_M_prev->_M_next = __first._M_node;
 
 
           _List_node_base* __tmp = __position._M_node->_M_prev;
           __position._M_node->_M_prev = __last._M_node->_M_prev;
           __last._M_node->_M_prev = __first._M_node->_M_prev;
           __first._M_node->_M_prev = __tmp;
         }
       }
 
     public:
       void
       splice(iterator __position, list& __x)
       {
         if (!__x.empty())
           this->_M_transfer(__position, __x.begin(), __x.end());
       }
 
       void
       splice(iterator __position, list&, iterator __i)
       {
         iterator __j = __i;
         ++__j;
         if (__position == __i || __position == __j) return;
         this->_M_transfer(__position, __i, __j);
       }
 
       void
       splice(iterator __position, list&, iterator __first, iterator __last)
       {
         if (__first != __last)
           this->_M_transfer(__position, __first, __last);
       }
 
       void
       remove(const _Tp& __value);
 
       void
       unique();
 
       void
       merge(list& __x);
 
       void
       reverse();
 
       void
       sort();
 
       template<typename _Predicate>
         void
         remove_if(_Predicate);
 
       template<typename _BinaryPredicate>
         void
         unique(_BinaryPredicate);
 
       template<typename _StrictWeakOrdering>
         void
         merge(list&, _StrictWeakOrdering);
 
       template<typename _StrictWeakOrdering>
         void
         sort(_StrictWeakOrdering);
     };
 
   template<typename _Tp, typename _Alloc>
     inline bool
     operator==(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
     {
       typedef typename list<_Tp,_Alloc>::const_iterator const_iterator;
       const_iterator __end1 = __x.end();
       const_iterator __end2 = __y.end();
 
       const_iterator __i1 = __x.begin();
       const_iterator __i2 = __y.begin();
       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) {
         ++__i1;
         ++__i2;
       }
       return __i1 == __end1 && __i2 == __end2;
     }
 
   template<typename _Tp, typename _Alloc>
     inline bool
     operator<(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
     {
       return lexicographical_compare(__x.begin(), __x.end(),
                                      __y.begin(), __y.end());
     }
 
   template<typename _Tp, typename _Alloc>
     inline bool
     operator!=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
     { return !(__x == __y); }
 
   template<typename _Tp, typename _Alloc>
     inline bool
     operator>(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
     { return __y < __x; }
 
   template<typename _Tp, typename _Alloc>
     inline bool
     operator<=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
     { return !(__y < __x); }
 
   template<typename _Tp, typename _Alloc>
     inline bool
     operator>=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
     { return !(__x < __y); }
 
   template<typename _Tp, typename _Alloc>
     inline void
     swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y)
     { __x.swap(__y); }
 
 
 
   template<typename _Tp, typename _Alloc>
     void _List_base<_Tp,_Alloc>::
     clear()
     {
       _List_node<_Tp>* __cur = static_cast<_List_node<_Tp>*>(_M_node->_M_next);
       while (__cur != _M_node) {
         _List_node<_Tp>* __tmp = __cur;
         __cur = static_cast<_List_node<_Tp>*>(__cur->_M_next);
         _Destroy(&__tmp->_M_data);
         _M_put_node(__tmp);
       }
       _M_node->_M_next = _M_node;
       _M_node->_M_prev = _M_node;
     }
 
   template<typename _Tp, typename _Alloc>
     template <typename _InputIter>
       void list<_Tp, _Alloc>::
       _M_insert_dispatch(iterator __position, _InputIter __first, _InputIter __last,
                                             __false_type)
       {
         for ( ; __first != __last; ++__first)
           insert(__position, *__first);
 
       }
 
   template<typename _Tp, typename _Alloc>
     void list<_Tp, _Alloc>::
     _M_fill_insert(iterator __position, size_type __n, const _Tp& __x)
     {
       for ( ; __n > 0; --__n)
         insert(__position, __x);
     }
 
   template<typename _Tp, typename _Alloc>
     typename list<_Tp,_Alloc>::iterator list<_Tp, _Alloc>::
     erase(iterator __first, iterator __last)
     {
       while (__first != __last)
         erase(__first++);
       return __last;
     }
 
   template<typename _Tp, typename _Alloc>
     void list<_Tp, _Alloc>::
     resize(size_type __new_size, const _Tp& __x)
     {
       iterator __i = begin();
       size_type __len = 0;
       for ( ; __i != end() && __len < __new_size; ++__i, ++__len)
         ;
       if (__len == __new_size)
         erase(__i, end());
       else
         insert(end(), __new_size - __len, __x);
     }
 
   template<typename _Tp, typename _Alloc>
     list<_Tp, _Alloc>& list<_Tp, _Alloc>::
     operator=(const list<_Tp, _Alloc>& __x)
     {
       if (this != &__x) {
         iterator __first1 = begin();
         iterator __last1 = end();
         const_iterator __first2 = __x.begin();
         const_iterator __last2 = __x.end();
         while (__first1 != __last1 && __first2 != __last2)
           *__first1++ = *__first2++;
         if (__first2 == __last2)
           erase(__first1, __last1);
         else
           insert(__last1, __first2, __last2);
       }
       return *this;
     }
 
   template<typename _Tp, typename _Alloc>
     void list<_Tp, _Alloc>::
     _M_fill_assign(size_type __n, const _Tp& __val) {
       iterator __i = begin();
       for ( ; __i != end() && __n > 0; ++__i, --__n)
         *__i = __val;
       if (__n > 0)
         insert(end(), __n, __val);
       else
         erase(__i, end());
     }
 
   template<typename _Tp, typename _Alloc>
     template <typename _InputIter>
       void list<_Tp, _Alloc>::
       _M_assign_dispatch(_InputIter __first2, _InputIter __last2, __false_type)
       {
         iterator __first1 = begin();
         iterator __last1 = end();
         for ( ; __first1 != __last1 && __first2 != __last2; ++__first1, ++__first2)
           *__first1 = *__first2;
         if (__first2 == __last2)
           erase(__first1, __last1);
         else
           insert(__last1, __first2, __last2);
       }
 
   template<typename _Tp, typename _Alloc>
     void list<_Tp, _Alloc>::
     remove(const _Tp& __value)
     {
       iterator __first = begin();
       iterator __last = end();
       while (__first != __last) {
         iterator __next = __first;
         ++__next;
         if (*__first == __value) erase(__first);
         __first = __next;
       }
     }
 
   template<typename _Tp, typename _Alloc>
     void list<_Tp, _Alloc>::
     unique()
     {
       iterator __first = begin();
       iterator __last = end();
       if (__first == __last) return;
       iterator __next = __first;
       while (++__next != __last) {
         if (*__first == *__next)
           erase(__next);
         else
           __first = __next;
         __next = __first;
       }
     }
 
   template<typename _Tp, typename _Alloc>
     void list<_Tp, _Alloc>::
     merge(list<_Tp, _Alloc>& __x)
     {
       iterator __first1 = begin();
       iterator __last1 = end();
       iterator __first2 = __x.begin();
       iterator __last2 = __x.end();
       while (__first1 != __last1 && __first2 != __last2)
         if (*__first2 < *__first1) {
           iterator __next = __first2;
           _M_transfer(__first1, __first2, ++__next);
           __first2 = __next;
         }
         else
           ++__first1;
       if (__first2 != __last2) _M_transfer(__last1, __first2, __last2);
     }
 
   inline void
   __List_base_reverse(_List_node_base* __p)
   {
     _List_node_base* __tmp = __p;
     do {
       std::swap(__tmp->_M_next, __tmp->_M_prev);
       __tmp = __tmp->_M_prev;
     } while (__tmp != __p);
   }
 
   template<typename _Tp, typename _Alloc>
   inline void list<_Tp, _Alloc>::
   reverse()
   { __List_base_reverse(this->_M_node); }
 
   template<typename _Tp, typename _Alloc>
     void list<_Tp, _Alloc>::
     sort()
     {
 
       if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node) {
         list<_Tp, _Alloc> __carry;
         list<_Tp, _Alloc> __counter[64];
         int __fill = 0;
         while (!empty()) {
           __carry.splice(__carry.begin(), *this, begin());
           int __i = 0;
           while(__i < __fill && !__counter[__i].empty()) {
             __counter[__i].merge(__carry);
             __carry.swap(__counter[__i++]);
           }
           __carry.swap(__counter[__i]);
           if (__i == __fill) ++__fill;
         }
 
         for (int __i = 1; __i < __fill; ++__i)
           __counter[__i].merge(__counter[__i-1]);
         swap(__counter[__fill-1]);
       }
     }
 
   template<typename _Tp, typename _Alloc>
     template <typename _Predicate>
       void list<_Tp, _Alloc>::
       remove_if(_Predicate __pred)
       {
         iterator __first = begin();
         iterator __last = end();
         while (__first != __last) {
           iterator __next = __first;
           ++__next;
           if (__pred(*__first)) erase(__first);
           __first = __next;
         }
       }
 
   template<typename _Tp, typename _Alloc>
     template <typename _BinaryPredicate>
       void list<_Tp, _Alloc>::
       unique(_BinaryPredicate __binary_pred)
       {
         iterator __first = begin();
         iterator __last = end();
         if (__first == __last) return;
         iterator __next = __first;
         while (++__next != __last) {
           if (__binary_pred(*__first, *__next))
             erase(__next);
           else
             __first = __next;
           __next = __first;
         }
       }
 
   template<typename _Tp, typename _Alloc>
     template <typename _StrictWeakOrdering>
       void list<_Tp, _Alloc>::
       merge(list<_Tp, _Alloc>& __x, _StrictWeakOrdering __comp)
       {
         iterator __first1 = begin();
         iterator __last1 = end();
         iterator __first2 = __x.begin();
         iterator __last2 = __x.end();
         while (__first1 != __last1 && __first2 != __last2)
           if (__comp(*__first2, *__first1)) {
             iterator __next = __first2;
             _M_transfer(__first1, __first2, ++__next);
             __first2 = __next;
           }
           else
             ++__first1;
         if (__first2 != __last2) _M_transfer(__last1, __first2, __last2);
       }
 
   template<typename _Tp, typename _Alloc>
     template <typename _StrictWeakOrdering>
     void list<_Tp, _Alloc>::
     sort(_StrictWeakOrdering __comp)
     {
 
       if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node) {
         list<_Tp, _Alloc> __carry;
         list<_Tp, _Alloc> __counter[64];
         int __fill = 0;
         while (!empty()) {
           __carry.splice(__carry.begin(), *this, begin());
           int __i = 0;
           while(__i < __fill && !__counter[__i].empty()) {
             __counter[__i].merge(__carry, __comp);
             __carry.swap(__counter[__i++]);
           }
           __carry.swap(__counter[__i]);
           if (__i == __fill) ++__fill;
         }
 
         for (int __i = 1; __i < __fill; ++__i)
           __counter[__i].merge(__counter[__i-1], __comp);
         swap(__counter[__fill-1]);
       }
     }
 
 }
 # 72 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3
 # 2 "foo.cc" 2
 
 class Foo
 {
 public:
     int x;
     std::list<Foo> children;
 };
 
 --ELM745743854-1256-0_--


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]