]> git.wh0rd.org - ICEs.git/blame - 201605/ice.ii.0
initial import
[ICEs.git] / 201605 / ice.ii.0
CommitLineData
45516216 1// /usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/cc1plus -quiet -I.. -D_GNU_SOURCE t.c++ -quiet -dumpbase t.c++ -march=pentium-m -auxbase t -O2 -fomit-frame-pointer -o - -frandom-seed=0
2# 1 "t.c++"
3# 1 "<built-in>"
4# 1 "<command line>"
5# 1 "t.c++"
6# 1 "/usr/include/stdio.h" 1 3 4
7# 28 "/usr/include/stdio.h" 3 4
8# 1 "/usr/include/features.h" 1 3 4
9# 322 "/usr/include/features.h" 3 4
10# 1 "/usr/include/sys/cdefs.h" 1 3 4
11# 324 "/usr/include/sys/cdefs.h" 3 4
12# 1 "/usr/include/bits/wordsize.h" 1 3 4
13# 325 "/usr/include/sys/cdefs.h" 2 3 4
14# 323 "/usr/include/features.h" 2 3 4
15# 345 "/usr/include/features.h" 3 4
16# 1 "/usr/include/gnu/stubs.h" 1 3 4
17
18
19
20# 1 "/usr/include/bits/wordsize.h" 1 3 4
21# 5 "/usr/include/gnu/stubs.h" 2 3 4
22
23
24# 1 "/usr/include/gnu/stubs-32.h" 1 3 4
25# 8 "/usr/include/gnu/stubs.h" 2 3 4
26# 346 "/usr/include/features.h" 2 3 4
27# 29 "/usr/include/stdio.h" 2 3 4
28
29extern "C" {
30
31
32
33# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
34# 214 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 3 4
35typedef unsigned int size_t;
36# 35 "/usr/include/stdio.h" 2 3 4
37
38# 1 "/usr/include/bits/types.h" 1 3 4
39# 28 "/usr/include/bits/types.h" 3 4
40# 1 "/usr/include/bits/wordsize.h" 1 3 4
41# 29 "/usr/include/bits/types.h" 2 3 4
42
43
44# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
45# 32 "/usr/include/bits/types.h" 2 3 4
46
47
48typedef unsigned char __u_char;
49typedef unsigned short int __u_short;
50typedef unsigned int __u_int;
51typedef unsigned long int __u_long;
52
53
54typedef signed char __int8_t;
55typedef unsigned char __uint8_t;
56typedef signed short int __int16_t;
57typedef unsigned short int __uint16_t;
58typedef signed int __int32_t;
59typedef unsigned int __uint32_t;
60
61
62
63
64__extension__ typedef signed long long int __int64_t;
65__extension__ typedef unsigned long long int __uint64_t;
66
67
68
69
70
71
72
73__extension__ typedef long long int __quad_t;
74__extension__ typedef unsigned long long int __u_quad_t;
75# 134 "/usr/include/bits/types.h" 3 4
76# 1 "/usr/include/bits/typesizes.h" 1 3 4
77# 135 "/usr/include/bits/types.h" 2 3 4
78
79
80__extension__ typedef __u_quad_t __dev_t;
81__extension__ typedef unsigned int __uid_t;
82__extension__ typedef unsigned int __gid_t;
83__extension__ typedef unsigned long int __ino_t;
84__extension__ typedef __u_quad_t __ino64_t;
85__extension__ typedef unsigned int __mode_t;
86__extension__ typedef unsigned int __nlink_t;
87__extension__ typedef long int __off_t;
88__extension__ typedef __quad_t __off64_t;
89__extension__ typedef int __pid_t;
90__extension__ typedef struct { int __val[2]; } __fsid_t;
91__extension__ typedef long int __clock_t;
92__extension__ typedef unsigned long int __rlim_t;
93__extension__ typedef __u_quad_t __rlim64_t;
94__extension__ typedef unsigned int __id_t;
95__extension__ typedef long int __time_t;
96__extension__ typedef unsigned int __useconds_t;
97__extension__ typedef long int __suseconds_t;
98
99__extension__ typedef int __daddr_t;
100__extension__ typedef long int __swblk_t;
101__extension__ typedef int __key_t;
102
103
104__extension__ typedef int __clockid_t;
105
106
107__extension__ typedef void * __timer_t;
108
109
110__extension__ typedef long int __blksize_t;
111
112
113
114
115__extension__ typedef long int __blkcnt_t;
116__extension__ typedef __quad_t __blkcnt64_t;
117
118
119__extension__ typedef unsigned long int __fsblkcnt_t;
120__extension__ typedef __u_quad_t __fsblkcnt64_t;
121
122
123__extension__ typedef unsigned long int __fsfilcnt_t;
124__extension__ typedef __u_quad_t __fsfilcnt64_t;
125
126__extension__ typedef int __ssize_t;
127
128
129
130typedef __off64_t __loff_t;
131typedef __quad_t *__qaddr_t;
132typedef char *__caddr_t;
133
134
135__extension__ typedef int __intptr_t;
136
137
138__extension__ typedef unsigned int __socklen_t;
139# 37 "/usr/include/stdio.h" 2 3 4
140# 45 "/usr/include/stdio.h" 3 4
141struct _IO_FILE;
142
143
144
145typedef struct _IO_FILE FILE;
146
147
148
149
150
151# 65 "/usr/include/stdio.h" 3 4
152typedef struct _IO_FILE __FILE;
153# 75 "/usr/include/stdio.h" 3 4
154# 1 "/usr/include/libio.h" 1 3 4
155# 32 "/usr/include/libio.h" 3 4
156# 1 "/usr/include/_G_config.h" 1 3 4
157# 14 "/usr/include/_G_config.h" 3 4
158# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
159# 355 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 3 4
160typedef unsigned int wint_t;
161# 15 "/usr/include/_G_config.h" 2 3 4
162# 24 "/usr/include/_G_config.h" 3 4
163# 1 "/usr/include/wchar.h" 1 3 4
164# 48 "/usr/include/wchar.h" 3 4
165# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
166# 49 "/usr/include/wchar.h" 2 3 4
167
168# 1 "/usr/include/bits/wchar.h" 1 3 4
169# 51 "/usr/include/wchar.h" 2 3 4
170# 76 "/usr/include/wchar.h" 3 4
171typedef struct
172{
173 int __count;
174 union
175 {
176 wint_t __wch;
177 char __wchb[4];
178 } __value;
179} __mbstate_t;
180# 25 "/usr/include/_G_config.h" 2 3 4
181
182typedef struct
183{
184 __off_t __pos;
185 __mbstate_t __state;
186} _G_fpos_t;
187typedef struct
188{
189 __off64_t __pos;
190 __mbstate_t __state;
191} _G_fpos64_t;
192# 44 "/usr/include/_G_config.h" 3 4
193# 1 "/usr/include/gconv.h" 1 3 4
194# 28 "/usr/include/gconv.h" 3 4
195# 1 "/usr/include/wchar.h" 1 3 4
196# 48 "/usr/include/wchar.h" 3 4
197# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
198# 49 "/usr/include/wchar.h" 2 3 4
199# 29 "/usr/include/gconv.h" 2 3 4
200
201
202# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
203# 32 "/usr/include/gconv.h" 2 3 4
204
205
206
207
208
209enum
210{
211 __GCONV_OK = 0,
212 __GCONV_NOCONV,
213 __GCONV_NODB,
214 __GCONV_NOMEM,
215
216 __GCONV_EMPTY_INPUT,
217 __GCONV_FULL_OUTPUT,
218 __GCONV_ILLEGAL_INPUT,
219 __GCONV_INCOMPLETE_INPUT,
220
221 __GCONV_ILLEGAL_DESCRIPTOR,
222 __GCONV_INTERNAL_ERROR
223};
224
225
226
227enum
228{
229 __GCONV_IS_LAST = 0x0001,
230 __GCONV_IGNORE_ERRORS = 0x0002
231};
232
233
234
235struct __gconv_step;
236struct __gconv_step_data;
237struct __gconv_loaded_object;
238struct __gconv_trans_data;
239
240
241
242typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
243 __const unsigned char **, __const unsigned char *,
244 unsigned char **, size_t *, int, int);
245
246
247typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char);
248
249
250typedef int (*__gconv_init_fct) (struct __gconv_step *);
251typedef void (*__gconv_end_fct) (struct __gconv_step *);
252
253
254
255typedef int (*__gconv_trans_fct) (struct __gconv_step *,
256 struct __gconv_step_data *, void *,
257 __const unsigned char *,
258 __const unsigned char **,
259 __const unsigned char *, unsigned char **,
260 size_t *);
261
262
263typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
264 __const unsigned char *,
265 unsigned char *, unsigned char *);
266
267
268typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
269 size_t *);
270
271
272typedef int (*__gconv_trans_init_fct) (void **, const char *);
273typedef void (*__gconv_trans_end_fct) (void *);
274
275struct __gconv_trans_data
276{
277
278 __gconv_trans_fct __trans_fct;
279 __gconv_trans_context_fct __trans_context_fct;
280 __gconv_trans_end_fct __trans_end_fct;
281 void *__data;
282 struct __gconv_trans_data *__next;
283};
284
285
286
287struct __gconv_step
288{
289 struct __gconv_loaded_object *__shlib_handle;
290 __const char *__modname;
291
292 int __counter;
293
294 char *__from_name;
295 char *__to_name;
296
297 __gconv_fct __fct;
298 __gconv_btowc_fct __btowc_fct;
299 __gconv_init_fct __init_fct;
300 __gconv_end_fct __end_fct;
301
302
303
304 int __min_needed_from;
305 int __max_needed_from;
306 int __min_needed_to;
307 int __max_needed_to;
308
309
310 int __stateful;
311
312 void *__data;
313};
314
315
316
317struct __gconv_step_data
318{
319 unsigned char *__outbuf;
320 unsigned char *__outbufend;
321
322
323
324 int __flags;
325
326
327
328 int __invocation_counter;
329
330
331
332 int __internal_use;
333
334 __mbstate_t *__statep;
335 __mbstate_t __state;
336
337
338
339 struct __gconv_trans_data *__trans;
340};
341
342
343
344typedef struct __gconv_info
345{
346 size_t __nsteps;
347 struct __gconv_step *__steps;
348 __extension__ struct __gconv_step_data __data [];
349} *__gconv_t;
350# 45 "/usr/include/_G_config.h" 2 3 4
351typedef union
352{
353 struct __gconv_info __cd;
354 struct
355 {
356 struct __gconv_info __cd;
357 struct __gconv_step_data __data;
358 } __combined;
359} _G_iconv_t;
360
361typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
362typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
363typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
364typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
365# 33 "/usr/include/libio.h" 2 3 4
366# 53 "/usr/include/libio.h" 3 4
367# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stdarg.h" 1 3 4
368# 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stdarg.h" 3 4
369typedef __builtin_va_list __gnuc_va_list;
370# 54 "/usr/include/libio.h" 2 3 4
371# 167 "/usr/include/libio.h" 3 4
372struct _IO_jump_t; struct _IO_FILE;
373# 177 "/usr/include/libio.h" 3 4
374typedef void _IO_lock_t;
375
376
377
378
379
380struct _IO_marker {
381 struct _IO_marker *_next;
382 struct _IO_FILE *_sbuf;
383
384
385
386 int _pos;
387# 200 "/usr/include/libio.h" 3 4
388};
389
390
391enum __codecvt_result
392{
393 __codecvt_ok,
394 __codecvt_partial,
395 __codecvt_error,
396 __codecvt_noconv
397};
398# 268 "/usr/include/libio.h" 3 4
399struct _IO_FILE {
400 int _flags;
401
402
403
404
405 char* _IO_read_ptr;
406 char* _IO_read_end;
407 char* _IO_read_base;
408 char* _IO_write_base;
409 char* _IO_write_ptr;
410 char* _IO_write_end;
411 char* _IO_buf_base;
412 char* _IO_buf_end;
413
414 char *_IO_save_base;
415 char *_IO_backup_base;
416 char *_IO_save_end;
417
418 struct _IO_marker *_markers;
419
420 struct _IO_FILE *_chain;
421
422 int _fileno;
423
424
425
426 int _flags2;
427
428 __off_t _old_offset;
429
430
431
432 unsigned short _cur_column;
433 signed char _vtable_offset;
434 char _shortbuf[1];
435
436
437
438 _IO_lock_t *_lock;
439# 316 "/usr/include/libio.h" 3 4
440 __off64_t _offset;
441# 325 "/usr/include/libio.h" 3 4
442 void *__pad1;
443 void *__pad2;
444 void *__pad3;
445 void *__pad4;
446 size_t __pad5;
447
448 int _mode;
449
450 char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
451
452};
453
454
455
456
457
458struct _IO_FILE_plus;
459
460extern struct _IO_FILE_plus _IO_2_1_stdin_;
461extern struct _IO_FILE_plus _IO_2_1_stdout_;
462extern struct _IO_FILE_plus _IO_2_1_stderr_;
463# 361 "/usr/include/libio.h" 3 4
464typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
465
466
467
468
469
470
471
472typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
473 size_t __n);
474
475
476
477
478
479
480
481typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
482
483
484typedef int __io_close_fn (void *__cookie);
485
486
487
488
489typedef __io_read_fn cookie_read_function_t;
490typedef __io_write_fn cookie_write_function_t;
491typedef __io_seek_fn cookie_seek_function_t;
492typedef __io_close_fn cookie_close_function_t;
493
494
495typedef struct
496{
497 __io_read_fn *read;
498 __io_write_fn *write;
499 __io_seek_fn *seek;
500 __io_close_fn *close;
501} _IO_cookie_io_functions_t;
502typedef _IO_cookie_io_functions_t cookie_io_functions_t;
503
504struct _IO_cookie_file;
505
506
507extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
508 void *__cookie, _IO_cookie_io_functions_t __fns);
509
510
511
512
513extern "C" {
514
515
516extern int __underflow (_IO_FILE *);
517extern int __uflow (_IO_FILE *);
518extern int __overflow (_IO_FILE *, int);
519extern wint_t __wunderflow (_IO_FILE *);
520extern wint_t __wuflow (_IO_FILE *);
521extern wint_t __woverflow (_IO_FILE *, wint_t);
522# 451 "/usr/include/libio.h" 3 4
523extern int _IO_getc (_IO_FILE *__fp);
524extern int _IO_putc (int __c, _IO_FILE *__fp);
525extern int _IO_feof (_IO_FILE *__fp) throw ();
526extern int _IO_ferror (_IO_FILE *__fp) throw ();
527
528extern int _IO_peekc_locked (_IO_FILE *__fp);
529
530
531
532
533
534extern void _IO_flockfile (_IO_FILE *) throw ();
535extern void _IO_funlockfile (_IO_FILE *) throw ();
536extern int _IO_ftrylockfile (_IO_FILE *) throw ();
537# 481 "/usr/include/libio.h" 3 4
538extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
539 __gnuc_va_list, int *__restrict);
540extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
541 __gnuc_va_list);
542extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
543extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
544
545extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
546extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
547
548extern void _IO_free_backup_area (_IO_FILE *) throw ();
549# 543 "/usr/include/libio.h" 3 4
550}
551# 76 "/usr/include/stdio.h" 2 3 4
552
553
554
555
556typedef __gnuc_va_list va_list;
557# 89 "/usr/include/stdio.h" 3 4
558
559
560typedef _G_fpos_t fpos_t;
561
562
563
564
565
566typedef _G_fpos64_t fpos64_t;
567# 141 "/usr/include/stdio.h" 3 4
568# 1 "/usr/include/bits/stdio_lim.h" 1 3 4
569# 142 "/usr/include/stdio.h" 2 3 4
570
571
572
573extern struct _IO_FILE *stdin;
574extern struct _IO_FILE *stdout;
575extern struct _IO_FILE *stderr;
576
577
578
579
580
581
582
583extern int remove (__const char *__filename) throw ();
584
585extern int rename (__const char *__old, __const char *__new) throw ();
586
587
588
589
590extern int renameat (int __oldfd, __const char *__old, int __newfd,
591 __const char *__new) throw ();
592
593
594
595
596
597
598
599
600extern FILE *tmpfile (void) ;
601# 182 "/usr/include/stdio.h" 3 4
602extern FILE *tmpfile64 (void) ;
603
604
605
606extern char *tmpnam (char *__s) throw () ;
607
608
609
610
611
612extern char *tmpnam_r (char *__s) throw () ;
613# 204 "/usr/include/stdio.h" 3 4
614extern char *tempnam (__const char *__dir, __const char *__pfx)
615 throw () __attribute__ ((__malloc__)) ;
616
617
618
619
620
621
622
623
624extern int fclose (FILE *__stream);
625
626
627
628
629extern int fflush (FILE *__stream);
630
631# 229 "/usr/include/stdio.h" 3 4
632extern int fflush_unlocked (FILE *__stream);
633# 239 "/usr/include/stdio.h" 3 4
634extern int fcloseall (void);
635
636
637
638
639
640
641
642
643
644extern FILE *fopen (__const char *__restrict __filename,
645 __const char *__restrict __modes) ;
646
647
648
649
650extern FILE *freopen (__const char *__restrict __filename,
651 __const char *__restrict __modes,
652 FILE *__restrict __stream) ;
653# 272 "/usr/include/stdio.h" 3 4
654
655
656extern FILE *fopen64 (__const char *__restrict __filename,
657 __const char *__restrict __modes) ;
658extern FILE *freopen64 (__const char *__restrict __filename,
659 __const char *__restrict __modes,
660 FILE *__restrict __stream) ;
661
662
663
664
665extern FILE *fdopen (int __fd, __const char *__modes) throw () ;
666
667
668
669
670
671extern FILE *fopencookie (void *__restrict __magic_cookie,
672 __const char *__restrict __modes,
673 _IO_cookie_io_functions_t __io_funcs) throw () ;
674
675
676extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
677 throw () ;
678
679
680
681
682extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ;
683
684
685
686
687
688
689extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
690
691
692
693extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
694 int __modes, size_t __n) throw ();
695
696
697
698
699
700extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
701 size_t __size) throw ();
702
703
704extern void setlinebuf (FILE *__stream) throw ();
705
706
707
708
709
710
711
712
713extern int fprintf (FILE *__restrict __stream,
714 __const char *__restrict __format, ...);
715
716
717
718
719extern int printf (__const char *__restrict __format, ...);
720
721extern int sprintf (char *__restrict __s,
722 __const char *__restrict __format, ...) throw ();
723
724
725
726
727
728extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
729 __gnuc_va_list __arg);
730
731
732
733
734extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
735
736extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
737 __gnuc_va_list __arg) throw ();
738
739
740
741
742
743extern int snprintf (char *__restrict __s, size_t __maxlen,
744 __const char *__restrict __format, ...)
745 throw () __attribute__ ((__format__ (__printf__, 3, 4)));
746
747extern int vsnprintf (char *__restrict __s, size_t __maxlen,
748 __const char *__restrict __format, __gnuc_va_list __arg)
749 throw () __attribute__ ((__format__ (__printf__, 3, 0)));
750
751
752
753
754
755
756extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
757 __gnuc_va_list __arg)
758 throw () __attribute__ ((__format__ (__printf__, 2, 0))) ;
759extern int __asprintf (char **__restrict __ptr,
760 __const char *__restrict __fmt, ...)
761 throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
762extern int asprintf (char **__restrict __ptr,
763 __const char *__restrict __fmt, ...)
764 throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
765
766
767
768
769
770
771
772extern int vdprintf (int __fd, __const char *__restrict __fmt,
773 __gnuc_va_list __arg)
774 __attribute__ ((__format__ (__printf__, 2, 0)));
775extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
776 __attribute__ ((__format__ (__printf__, 2, 3)));
777
778
779
780
781
782
783
784
785extern int fscanf (FILE *__restrict __stream,
786 __const char *__restrict __format, ...) ;
787
788
789
790
791extern int scanf (__const char *__restrict __format, ...) ;
792
793extern int sscanf (__const char *__restrict __s,
794 __const char *__restrict __format, ...) throw ();
795
796
797
798
799
800
801
802
803extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
804 __gnuc_va_list __arg)
805 __attribute__ ((__format__ (__scanf__, 2, 0))) ;
806
807
808
809
810
811extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
812 __attribute__ ((__format__ (__scanf__, 1, 0))) ;
813
814
815extern int vsscanf (__const char *__restrict __s,
816 __const char *__restrict __format, __gnuc_va_list __arg)
817 throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
818
819
820
821
822
823
824
825
826
827extern int fgetc (FILE *__stream);
828extern int getc (FILE *__stream);
829
830
831
832
833
834extern int getchar (void);
835
836# 464 "/usr/include/stdio.h" 3 4
837extern int getc_unlocked (FILE *__stream);
838extern int getchar_unlocked (void);
839# 475 "/usr/include/stdio.h" 3 4
840extern int fgetc_unlocked (FILE *__stream);
841
842
843
844
845
846
847
848
849
850
851
852extern int fputc (int __c, FILE *__stream);
853extern int putc (int __c, FILE *__stream);
854
855
856
857
858
859extern int putchar (int __c);
860
861# 508 "/usr/include/stdio.h" 3 4
862extern int fputc_unlocked (int __c, FILE *__stream);
863
864
865
866
867
868
869
870extern int putc_unlocked (int __c, FILE *__stream);
871extern int putchar_unlocked (int __c);
872
873
874
875
876
877
878extern int getw (FILE *__stream);
879
880
881extern int putw (int __w, FILE *__stream);
882
883
884
885
886
887
888
889
890extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
891 ;
892
893
894
895
896
897
898extern char *gets (char *__s) ;
899
900# 554 "/usr/include/stdio.h" 3 4
901extern char *fgets_unlocked (char *__restrict __s, int __n,
902 FILE *__restrict __stream) ;
903# 570 "/usr/include/stdio.h" 3 4
904extern __ssize_t __getdelim (char **__restrict __lineptr,
905 size_t *__restrict __n, int __delimiter,
906 FILE *__restrict __stream) ;
907extern __ssize_t getdelim (char **__restrict __lineptr,
908 size_t *__restrict __n, int __delimiter,
909 FILE *__restrict __stream) ;
910
911
912
913
914
915
916
917extern __ssize_t getline (char **__restrict __lineptr,
918 size_t *__restrict __n,
919 FILE *__restrict __stream) ;
920
921
922
923
924
925
926
927
928extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
929
930
931
932
933
934extern int puts (__const char *__s);
935
936
937
938
939
940
941extern int ungetc (int __c, FILE *__stream);
942
943
944
945
946
947
948extern size_t fread (void *__restrict __ptr, size_t __size,
949 size_t __n, FILE *__restrict __stream) ;
950
951
952
953
954extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
955 size_t __n, FILE *__restrict __s) ;
956
957# 631 "/usr/include/stdio.h" 3 4
958extern int fputs_unlocked (__const char *__restrict __s,
959 FILE *__restrict __stream);
960# 642 "/usr/include/stdio.h" 3 4
961extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
962 size_t __n, FILE *__restrict __stream) ;
963extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
964 size_t __n, FILE *__restrict __stream) ;
965
966
967
968
969
970
971
972
973extern int fseek (FILE *__stream, long int __off, int __whence);
974
975
976
977
978extern long int ftell (FILE *__stream) ;
979
980
981
982
983extern void rewind (FILE *__stream);
984
985# 678 "/usr/include/stdio.h" 3 4
986extern int fseeko (FILE *__stream, __off_t __off, int __whence);
987
988
989
990
991extern __off_t ftello (FILE *__stream) ;
992# 697 "/usr/include/stdio.h" 3 4
993
994
995
996
997
998
999extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
1000
1001
1002
1003
1004extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
1005# 720 "/usr/include/stdio.h" 3 4
1006
1007
1008
1009extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
1010extern __off64_t ftello64 (FILE *__stream) ;
1011extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
1012extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
1013
1014
1015
1016
1017extern void clearerr (FILE *__stream) throw ();
1018
1019extern int feof (FILE *__stream) throw () ;
1020
1021extern int ferror (FILE *__stream) throw () ;
1022
1023
1024
1025
1026extern void clearerr_unlocked (FILE *__stream) throw ();
1027extern int feof_unlocked (FILE *__stream) throw () ;
1028extern int ferror_unlocked (FILE *__stream) throw () ;
1029
1030
1031
1032
1033
1034
1035
1036
1037extern void perror (__const char *__s);
1038
1039
1040
1041
1042
1043
1044# 1 "/usr/include/bits/sys_errlist.h" 1 3 4
1045# 27 "/usr/include/bits/sys_errlist.h" 3 4
1046extern int sys_nerr;
1047extern __const char *__const sys_errlist[];
1048
1049
1050extern int _sys_nerr;
1051extern __const char *__const _sys_errlist[];
1052# 759 "/usr/include/stdio.h" 2 3 4
1053
1054
1055
1056
1057extern int fileno (FILE *__stream) throw () ;
1058
1059
1060
1061
1062extern int fileno_unlocked (FILE *__stream) throw () ;
1063# 778 "/usr/include/stdio.h" 3 4
1064extern FILE *popen (__const char *__command, __const char *__modes) ;
1065
1066
1067
1068
1069
1070extern int pclose (FILE *__stream);
1071
1072
1073
1074
1075
1076extern char *ctermid (char *__s) throw ();
1077
1078
1079
1080
1081
1082extern char *cuserid (char *__s);
1083
1084
1085
1086
1087struct obstack;
1088
1089
1090extern int obstack_printf (struct obstack *__restrict __obstack,
1091 __const char *__restrict __format, ...)
1092 throw () __attribute__ ((__format__ (__printf__, 2, 3)));
1093extern int obstack_vprintf (struct obstack *__restrict __obstack,
1094 __const char *__restrict __format,
1095 __gnuc_va_list __args)
1096 throw () __attribute__ ((__format__ (__printf__, 2, 0)));
1097
1098
1099
1100
1101
1102
1103
1104extern void flockfile (FILE *__stream) throw ();
1105
1106
1107
1108extern int ftrylockfile (FILE *__stream) throw () ;
1109
1110
1111extern void funlockfile (FILE *__stream) throw ();
1112# 839 "/usr/include/stdio.h" 3 4
1113# 1 "/usr/include/bits/stdio.h" 1 3 4
1114# 33 "/usr/include/bits/stdio.h" 3 4
1115inline int
1116vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
1117{
1118 return vfprintf (stdout, __fmt, __arg);
1119}
1120
1121
1122inline int
1123getchar (void)
1124{
1125 return _IO_getc (stdin);
1126}
1127
1128
1129
1130
1131inline int
1132fgetc_unlocked (FILE *__fp)
1133{
1134 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
1135}
1136
1137
1138
1139
1140
1141inline int
1142getc_unlocked (FILE *__fp)
1143{
1144 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
1145}
1146
1147
1148inline int
1149getchar_unlocked (void)
1150{
1151 return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
1152}
1153
1154
1155
1156
1157inline int
1158putchar (int __c)
1159{
1160 return _IO_putc (__c, stdout);
1161}
1162
1163
1164
1165
1166inline int
1167fputc_unlocked (int __c, FILE *__stream)
1168{
1169 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
1170}
1171
1172
1173
1174
1175
1176inline int
1177putc_unlocked (int __c, FILE *__stream)
1178{
1179 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
1180}
1181
1182
1183inline int
1184putchar_unlocked (int __c)
1185{
1186 return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
1187}
1188
1189
1190
1191
1192
1193inline __ssize_t
1194getline (char **__lineptr, size_t *__n, FILE *__stream)
1195{
1196 return __getdelim (__lineptr, __n, '\n', __stream);
1197}
1198
1199
1200
1201
1202
1203inline int
1204feof_unlocked (FILE *__stream) throw ()
1205{
1206 return (((__stream)->_flags & 0x10) != 0);
1207}
1208
1209
1210inline int
1211ferror_unlocked (FILE *__stream) throw ()
1212{
1213 return (((__stream)->_flags & 0x20) != 0);
1214}
1215# 840 "/usr/include/stdio.h" 2 3 4
1216# 848 "/usr/include/stdio.h" 3 4
1217}
1218# 2 "t.c++" 2
1219
1220# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 1 3
1221# 63 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 3
1222
1223# 64 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 3
1224#pragma GCC visibility push(default)
1225
1226# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 1 3
1227# 64 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
1228# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++config.h" 1 3
1229# 35 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++config.h" 3
1230# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/os_defines.h" 1 3
1231# 36 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++config.h" 2 3
1232
1233
1234# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/cpu_defines.h" 1 3
1235# 39 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++config.h" 2 3
1236
1237
1238
1239
1240namespace __gnu_debug_def { }
1241
1242namespace __gnu_debug
1243{
1244 using namespace __gnu_debug_def;
1245}
1246# 65 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
1247# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 1 3
1248# 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 3
1249
1250# 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 3
1251#pragma GCC visibility push(default)
1252
1253# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstddef" 1 3
1254# 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstddef" 3
1255
1256# 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstddef" 3
1257#pragma GCC visibility push(default)
1258
1259# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
1260# 152 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 3 4
1261typedef int ptrdiff_t;
1262# 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstddef" 2 3
1263
1264namespace std
1265{
1266 using ::ptrdiff_t;
1267 using ::size_t;
1268}
1269
1270#pragma GCC visibility pop
1271# 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 2 3
1272
1273# 1 "/usr/include/string.h" 1 3 4
1274# 28 "/usr/include/string.h" 3 4
1275extern "C" {
1276
1277
1278
1279
1280# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
1281# 34 "/usr/include/string.h" 2 3 4
1282
1283
1284
1285
1286extern void *memcpy (void *__restrict __dest,
1287 __const void *__restrict __src, size_t __n)
1288 throw () __attribute__ ((__nonnull__ (1, 2)));
1289
1290
1291extern void *memmove (void *__dest, __const void *__src, size_t __n)
1292 throw () __attribute__ ((__nonnull__ (1, 2)));
1293
1294
1295
1296
1297
1298
1299extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
1300 int __c, size_t __n)
1301 throw () __attribute__ ((__nonnull__ (1, 2)));
1302
1303
1304
1305
1306
1307extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1308
1309
1310extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
1311 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1312
1313
1314extern void *memchr (__const void *__s, int __c, size_t __n)
1315 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1316
1317
1318
1319
1320
1321extern void *rawmemchr (__const void *__s, int __c)
1322 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1323
1324
1325extern void *memrchr (__const void *__s, int __c, size_t __n)
1326 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1327
1328
1329
1330
1331
1332extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
1333 throw () __attribute__ ((__nonnull__ (1, 2)));
1334
1335extern char *strncpy (char *__restrict __dest,
1336 __const char *__restrict __src, size_t __n)
1337 throw () __attribute__ ((__nonnull__ (1, 2)));
1338
1339
1340extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
1341 throw () __attribute__ ((__nonnull__ (1, 2)));
1342
1343extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
1344 size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
1345
1346
1347extern int strcmp (__const char *__s1, __const char *__s2)
1348 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1349
1350extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
1351 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1352
1353
1354extern int strcoll (__const char *__s1, __const char *__s2)
1355 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1356
1357extern size_t strxfrm (char *__restrict __dest,
1358 __const char *__restrict __src, size_t __n)
1359 throw () __attribute__ ((__nonnull__ (2)));
1360
1361
1362
1363
1364
1365
1366# 1 "/usr/include/xlocale.h" 1 3 4
1367# 28 "/usr/include/xlocale.h" 3 4
1368typedef struct __locale_struct
1369{
1370
1371 struct locale_data *__locales[13];
1372
1373
1374 const unsigned short int *__ctype_b;
1375 const int *__ctype_tolower;
1376 const int *__ctype_toupper;
1377
1378
1379 const char *__names[13];
1380} *__locale_t;
1381# 119 "/usr/include/string.h" 2 3 4
1382
1383
1384extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
1385 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
1386
1387extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
1388 __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4)));
1389
1390
1391
1392
1393extern char *strdup (__const char *__s)
1394 throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
1395
1396
1397
1398
1399
1400
1401extern char *strndup (__const char *__string, size_t __n)
1402 throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
1403# 165 "/usr/include/string.h" 3 4
1404
1405
1406extern char *strchr (__const char *__s, int __c)
1407 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1408
1409extern char *strrchr (__const char *__s, int __c)
1410 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1411
1412
1413
1414
1415
1416extern char *strchrnul (__const char *__s, int __c)
1417 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1418
1419
1420
1421
1422
1423extern size_t strcspn (__const char *__s, __const char *__reject)
1424 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1425
1426
1427extern size_t strspn (__const char *__s, __const char *__accept)
1428 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1429
1430extern char *strpbrk (__const char *__s, __const char *__accept)
1431 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1432
1433extern char *strstr (__const char *__haystack, __const char *__needle)
1434 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1435
1436
1437
1438extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
1439 throw () __attribute__ ((__nonnull__ (2)));
1440
1441
1442
1443
1444extern char *__strtok_r (char *__restrict __s,
1445 __const char *__restrict __delim,
1446 char **__restrict __save_ptr)
1447 throw () __attribute__ ((__nonnull__ (2, 3)));
1448
1449extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
1450 char **__restrict __save_ptr)
1451 throw () __attribute__ ((__nonnull__ (2, 3)));
1452
1453
1454
1455
1456extern char *strcasestr (__const char *__haystack, __const char *__needle)
1457 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1458
1459
1460
1461
1462
1463
1464extern void *memmem (__const void *__haystack, size_t __haystacklen,
1465 __const void *__needle, size_t __needlelen)
1466 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
1467
1468
1469
1470extern void *__mempcpy (void *__restrict __dest,
1471 __const void *__restrict __src, size_t __n)
1472 throw () __attribute__ ((__nonnull__ (1, 2)));
1473extern void *mempcpy (void *__restrict __dest,
1474 __const void *__restrict __src, size_t __n)
1475 throw () __attribute__ ((__nonnull__ (1, 2)));
1476
1477
1478
1479
1480
1481extern size_t strlen (__const char *__s)
1482 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1483
1484
1485
1486
1487
1488extern size_t strnlen (__const char *__string, size_t __maxlen)
1489 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1490
1491
1492
1493
1494
1495extern char *strerror (int __errnum) throw ();
1496
1497# 281 "/usr/include/string.h" 3 4
1498extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
1499 throw () __attribute__ ((__nonnull__ (2)));
1500
1501
1502
1503
1504
1505extern char *strerror_l (int __errnum, __locale_t __l) throw ();
1506
1507
1508
1509
1510
1511extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1512
1513
1514
1515extern void bcopy (__const void *__src, void *__dest, size_t __n)
1516 throw () __attribute__ ((__nonnull__ (1, 2)));
1517
1518
1519extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1520
1521
1522extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
1523 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1524
1525
1526extern char *index (__const char *__s, int __c)
1527 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1528
1529
1530extern char *rindex (__const char *__s, int __c)
1531 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1532
1533
1534
1535extern int ffs (int __i) throw () __attribute__ ((__const__));
1536
1537
1538
1539
1540extern int ffsl (long int __l) throw () __attribute__ ((__const__));
1541
1542__extension__ extern int ffsll (long long int __ll)
1543 throw () __attribute__ ((__const__));
1544
1545
1546
1547
1548extern int strcasecmp (__const char *__s1, __const char *__s2)
1549 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1550
1551
1552extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
1553 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1554
1555
1556
1557
1558
1559extern int strcasecmp_l (__const char *__s1, __const char *__s2,
1560 __locale_t __loc)
1561 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
1562
1563extern int strncasecmp_l (__const char *__s1, __const char *__s2,
1564 size_t __n, __locale_t __loc)
1565 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
1566
1567
1568
1569
1570
1571extern char *strsep (char **__restrict __stringp,
1572 __const char *__restrict __delim)
1573 throw () __attribute__ ((__nonnull__ (1, 2)));
1574
1575
1576
1577
1578extern int strverscmp (__const char *__s1, __const char *__s2)
1579 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1580
1581
1582extern char *strsignal (int __sig) throw ();
1583
1584
1585extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
1586 throw () __attribute__ ((__nonnull__ (1, 2)));
1587extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
1588 throw () __attribute__ ((__nonnull__ (1, 2)));
1589
1590
1591
1592extern char *__stpncpy (char *__restrict __dest,
1593 __const char *__restrict __src, size_t __n)
1594 throw () __attribute__ ((__nonnull__ (1, 2)));
1595extern char *stpncpy (char *__restrict __dest,
1596 __const char *__restrict __src, size_t __n)
1597 throw () __attribute__ ((__nonnull__ (1, 2)));
1598
1599
1600extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1)));
1601
1602
1603extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1604
1605
1606
1607
1608
1609
1610extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1)));
1611# 432 "/usr/include/string.h" 3 4
1612}
1613# 54 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 2 3
1614# 79 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 3
1615namespace std
1616{
1617 using ::memcpy;
1618 using ::memmove;
1619 using ::strcpy;
1620 using ::strncpy;
1621 using ::strcat;
1622 using ::strncat;
1623 using ::memcmp;
1624 using ::strcmp;
1625 using ::strcoll;
1626 using ::strncmp;
1627 using ::strxfrm;
1628 using ::strcspn;
1629 using ::strspn;
1630 using ::strtok;
1631 using ::memset;
1632 using ::strerror;
1633 using ::strlen;
1634
1635 using ::memchr;
1636
1637 inline void*
1638 memchr(void* __p, int __c, size_t __n)
1639 { return memchr(const_cast<const void*>(__p), __c, __n); }
1640
1641 using ::strchr;
1642
1643 inline char*
1644 strchr(char* __s1, int __n)
1645 { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
1646
1647 using ::strpbrk;
1648
1649 inline char*
1650 strpbrk(char* __s1, const char* __s2)
1651 { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
1652
1653 using ::strrchr;
1654
1655 inline char*
1656 strrchr(char* __s1, int __n)
1657 { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
1658
1659 using ::strstr;
1660
1661 inline char*
1662 strstr(char* __s1, const char* __s2)
1663 { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
1664}
1665
1666#pragma GCC visibility pop
1667# 66 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
1668# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/climits" 1 3
1669# 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/climits" 3
1670
1671# 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/climits" 3
1672#pragma GCC visibility push(default)
1673
1674# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 1 3 4
1675# 11 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 3 4
1676# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/syslimits.h" 1 3 4
1677
1678
1679
1680
1681
1682
1683# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 1 3 4
1684# 122 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 3 4
1685# 1 "/usr/include/limits.h" 1 3 4
1686# 145 "/usr/include/limits.h" 3 4
1687# 1 "/usr/include/bits/posix1_lim.h" 1 3 4
1688# 153 "/usr/include/bits/posix1_lim.h" 3 4
1689# 1 "/usr/include/bits/local_lim.h" 1 3 4
1690# 36 "/usr/include/bits/local_lim.h" 3 4
1691# 1 "/usr/include/linux/limits.h" 1 3 4
1692# 37 "/usr/include/bits/local_lim.h" 2 3 4
1693# 154 "/usr/include/bits/posix1_lim.h" 2 3 4
1694# 146 "/usr/include/limits.h" 2 3 4
1695
1696
1697
1698# 1 "/usr/include/bits/posix2_lim.h" 1 3 4
1699# 150 "/usr/include/limits.h" 2 3 4
1700
1701
1702
1703# 1 "/usr/include/bits/xopen_lim.h" 1 3 4
1704# 34 "/usr/include/bits/xopen_lim.h" 3 4
1705# 1 "/usr/include/bits/stdio_lim.h" 1 3 4
1706# 35 "/usr/include/bits/xopen_lim.h" 2 3 4
1707# 154 "/usr/include/limits.h" 2 3 4
1708# 123 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 2 3 4
1709# 8 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/syslimits.h" 2 3 4
1710# 12 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 2 3 4
1711# 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/climits" 2 3
1712
1713#pragma GCC visibility pop
1714# 67 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
1715# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 1 3
1716# 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
1717
1718# 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
1719#pragma GCC visibility push(default)
1720# 72 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
1721# 1 "/usr/include/stdlib.h" 1 3 4
1722# 33 "/usr/include/stdlib.h" 3 4
1723# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
1724# 34 "/usr/include/stdlib.h" 2 3 4
1725
1726extern "C" {
1727
1728
1729
1730
1731
1732
1733# 1 "/usr/include/bits/waitflags.h" 1 3 4
1734# 43 "/usr/include/stdlib.h" 2 3 4
1735# 1 "/usr/include/bits/waitstatus.h" 1 3 4
1736# 65 "/usr/include/bits/waitstatus.h" 3 4
1737# 1 "/usr/include/endian.h" 1 3 4
1738# 37 "/usr/include/endian.h" 3 4
1739# 1 "/usr/include/bits/endian.h" 1 3 4
1740# 38 "/usr/include/endian.h" 2 3 4
1741# 66 "/usr/include/bits/waitstatus.h" 2 3 4
1742
1743union wait
1744 {
1745 int w_status;
1746 struct
1747 {
1748
1749 unsigned int __w_termsig:7;
1750 unsigned int __w_coredump:1;
1751 unsigned int __w_retcode:8;
1752 unsigned int:16;
1753
1754
1755
1756
1757
1758
1759
1760 } __wait_terminated;
1761 struct
1762 {
1763
1764 unsigned int __w_stopval:8;
1765 unsigned int __w_stopsig:8;
1766 unsigned int:16;
1767
1768
1769
1770
1771
1772
1773 } __wait_stopped;
1774 };
1775# 44 "/usr/include/stdlib.h" 2 3 4
1776# 96 "/usr/include/stdlib.h" 3 4
1777
1778
1779typedef struct
1780 {
1781 int quot;
1782 int rem;
1783 } div_t;
1784
1785
1786
1787typedef struct
1788 {
1789 long int quot;
1790 long int rem;
1791 } ldiv_t;
1792
1793
1794
1795
1796
1797
1798
1799__extension__ typedef struct
1800 {
1801 long long int quot;
1802 long long int rem;
1803 } lldiv_t;
1804
1805
1806# 140 "/usr/include/stdlib.h" 3 4
1807extern size_t __ctype_get_mb_cur_max (void) throw () ;
1808
1809
1810
1811
1812extern double atof (__const char *__nptr)
1813 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1814
1815extern int atoi (__const char *__nptr)
1816 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1817
1818extern long int atol (__const char *__nptr)
1819 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1820
1821
1822
1823
1824
1825__extension__ extern long long int atoll (__const char *__nptr)
1826 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1827
1828
1829
1830
1831
1832extern double strtod (__const char *__restrict __nptr,
1833 char **__restrict __endptr)
1834 throw () __attribute__ ((__nonnull__ (1))) ;
1835
1836
1837
1838
1839
1840extern float strtof (__const char *__restrict __nptr,
1841 char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ;
1842
1843extern long double strtold (__const char *__restrict __nptr,
1844 char **__restrict __endptr)
1845 throw () __attribute__ ((__nonnull__ (1))) ;
1846
1847
1848
1849
1850
1851extern long int strtol (__const char *__restrict __nptr,
1852 char **__restrict __endptr, int __base)
1853 throw () __attribute__ ((__nonnull__ (1))) ;
1854
1855extern unsigned long int strtoul (__const char *__restrict __nptr,
1856 char **__restrict __endptr, int __base)
1857 throw () __attribute__ ((__nonnull__ (1))) ;
1858
1859
1860
1861
1862__extension__
1863extern long long int strtoq (__const char *__restrict __nptr,
1864 char **__restrict __endptr, int __base)
1865 throw () __attribute__ ((__nonnull__ (1))) ;
1866
1867__extension__
1868extern unsigned long long int strtouq (__const char *__restrict __nptr,
1869 char **__restrict __endptr, int __base)
1870 throw () __attribute__ ((__nonnull__ (1))) ;
1871
1872
1873
1874
1875
1876__extension__
1877extern long long int strtoll (__const char *__restrict __nptr,
1878 char **__restrict __endptr, int __base)
1879 throw () __attribute__ ((__nonnull__ (1))) ;
1880
1881__extension__
1882extern unsigned long long int strtoull (__const char *__restrict __nptr,
1883 char **__restrict __endptr, int __base)
1884 throw () __attribute__ ((__nonnull__ (1))) ;
1885
1886# 240 "/usr/include/stdlib.h" 3 4
1887extern long int strtol_l (__const char *__restrict __nptr,
1888 char **__restrict __endptr, int __base,
1889 __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ;
1890
1891extern unsigned long int strtoul_l (__const char *__restrict __nptr,
1892 char **__restrict __endptr,
1893 int __base, __locale_t __loc)
1894 throw () __attribute__ ((__nonnull__ (1, 4))) ;
1895
1896__extension__
1897extern long long int strtoll_l (__const char *__restrict __nptr,
1898 char **__restrict __endptr, int __base,
1899 __locale_t __loc)
1900 throw () __attribute__ ((__nonnull__ (1, 4))) ;
1901
1902__extension__
1903extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
1904 char **__restrict __endptr,
1905 int __base, __locale_t __loc)
1906 throw () __attribute__ ((__nonnull__ (1, 4))) ;
1907
1908extern double strtod_l (__const char *__restrict __nptr,
1909 char **__restrict __endptr, __locale_t __loc)
1910 throw () __attribute__ ((__nonnull__ (1, 3))) ;
1911
1912extern float strtof_l (__const char *__restrict __nptr,
1913 char **__restrict __endptr, __locale_t __loc)
1914 throw () __attribute__ ((__nonnull__ (1, 3))) ;
1915
1916extern long double strtold_l (__const char *__restrict __nptr,
1917 char **__restrict __endptr,
1918 __locale_t __loc)
1919 throw () __attribute__ ((__nonnull__ (1, 3))) ;
1920
1921
1922
1923
1924
1925
1926extern double __strtod_internal (__const char *__restrict __nptr,
1927 char **__restrict __endptr, int __group)
1928 throw () __attribute__ ((__nonnull__ (1))) ;
1929extern float __strtof_internal (__const char *__restrict __nptr,
1930 char **__restrict __endptr, int __group)
1931 throw () __attribute__ ((__nonnull__ (1))) ;
1932extern long double __strtold_internal (__const char *__restrict __nptr,
1933 char **__restrict __endptr,
1934 int __group)
1935 throw () __attribute__ ((__nonnull__ (1))) ;
1936
1937extern long int __strtol_internal (__const char *__restrict __nptr,
1938 char **__restrict __endptr,
1939 int __base, int __group)
1940 throw () __attribute__ ((__nonnull__ (1))) ;
1941
1942
1943
1944extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
1945 char **__restrict __endptr,
1946 int __base, int __group)
1947 throw () __attribute__ ((__nonnull__ (1))) ;
1948
1949
1950
1951
1952__extension__
1953extern long long int __strtoll_internal (__const char *__restrict __nptr,
1954 char **__restrict __endptr,
1955 int __base, int __group)
1956 throw () __attribute__ ((__nonnull__ (1))) ;
1957
1958
1959
1960__extension__
1961extern unsigned long long int __strtoull_internal (__const char *
1962 __restrict __nptr,
1963 char **__restrict __endptr,
1964 int __base, int __group)
1965 throw () __attribute__ ((__nonnull__ (1))) ;
1966
1967
1968
1969
1970
1971
1972
1973
1974extern __inline double
1975strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
1976{
1977 return __strtod_internal (__nptr, __endptr, 0);
1978}
1979extern __inline long int
1980strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
1981
1982{
1983 return __strtol_internal (__nptr, __endptr, __base, 0);
1984}
1985extern __inline unsigned long int
1986strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
1987
1988{
1989 return __strtoul_internal (__nptr, __endptr, __base, 0);
1990}
1991
1992
1993
1994
1995extern __inline float
1996strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
1997{
1998 return __strtof_internal (__nptr, __endptr, 0);
1999}
2000
2001extern __inline long double
2002strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
2003{
2004 return __strtold_internal (__nptr, __endptr, 0);
2005}
2006
2007
2008
2009
2010
2011__extension__ extern __inline long long int
2012strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
2013
2014{
2015 return __strtoll_internal (__nptr, __endptr, __base, 0);
2016}
2017__extension__ extern __inline unsigned long long int
2018strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
2019
2020{
2021 return __strtoull_internal (__nptr, __endptr, __base, 0);
2022}
2023
2024
2025
2026
2027__extension__ extern __inline long long int
2028strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
2029
2030{
2031 return __strtoll_internal (__nptr, __endptr, __base, 0);
2032}
2033__extension__ extern __inline unsigned long long int
2034strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) throw ()
2035
2036{
2037 return __strtoull_internal (__nptr, __endptr, __base, 0);
2038}
2039
2040
2041
2042
2043extern __inline double
2044atof (__const char *__nptr) throw ()
2045{
2046 return strtod (__nptr, (char **) __null);
2047}
2048extern __inline int
2049atoi (__const char *__nptr) throw ()
2050{
2051 return (int) strtol (__nptr, (char **) __null, 10);
2052}
2053extern __inline long int
2054atol (__const char *__nptr) throw ()
2055{
2056 return strtol (__nptr, (char **) __null, 10);
2057}
2058
2059
2060
2061
2062__extension__ extern __inline long long int
2063atoll (__const char *__nptr) throw ()
2064{
2065 return strtoll (__nptr, (char **) __null, 10);
2066}
2067
2068# 429 "/usr/include/stdlib.h" 3 4
2069extern char *l64a (long int __n) throw () ;
2070
2071
2072extern long int a64l (__const char *__s)
2073 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
2074
2075
2076
2077
2078# 1 "/usr/include/sys/types.h" 1 3 4
2079# 29 "/usr/include/sys/types.h" 3 4
2080extern "C" {
2081
2082
2083
2084
2085
2086typedef __u_char u_char;
2087typedef __u_short u_short;
2088typedef __u_int u_int;
2089typedef __u_long u_long;
2090typedef __quad_t quad_t;
2091typedef __u_quad_t u_quad_t;
2092typedef __fsid_t fsid_t;
2093
2094
2095
2096
2097typedef __loff_t loff_t;
2098
2099
2100
2101typedef __ino_t ino_t;
2102
2103
2104
2105
2106
2107
2108typedef __ino64_t ino64_t;
2109
2110
2111
2112
2113typedef __dev_t dev_t;
2114
2115
2116
2117
2118typedef __gid_t gid_t;
2119
2120
2121
2122
2123typedef __mode_t mode_t;
2124
2125
2126
2127
2128typedef __nlink_t nlink_t;
2129
2130
2131
2132
2133typedef __uid_t uid_t;
2134
2135
2136
2137
2138
2139typedef __off_t off_t;
2140
2141
2142
2143
2144
2145
2146typedef __off64_t off64_t;
2147
2148
2149
2150
2151typedef __pid_t pid_t;
2152
2153
2154
2155
2156typedef __id_t id_t;
2157
2158
2159
2160
2161typedef __ssize_t ssize_t;
2162
2163
2164
2165
2166
2167typedef __daddr_t daddr_t;
2168typedef __caddr_t caddr_t;
2169
2170
2171
2172
2173
2174typedef __key_t key_t;
2175# 133 "/usr/include/sys/types.h" 3 4
2176# 1 "/usr/include/time.h" 1 3 4
2177# 59 "/usr/include/time.h" 3 4
2178
2179
2180typedef __clock_t clock_t;
2181
2182
2183
2184# 75 "/usr/include/time.h" 3 4
2185
2186
2187typedef __time_t time_t;
2188
2189
2190
2191# 93 "/usr/include/time.h" 3 4
2192typedef __clockid_t clockid_t;
2193# 105 "/usr/include/time.h" 3 4
2194typedef __timer_t timer_t;
2195# 134 "/usr/include/sys/types.h" 2 3 4
2196
2197
2198
2199typedef __useconds_t useconds_t;
2200
2201
2202
2203typedef __suseconds_t suseconds_t;
2204
2205
2206
2207
2208
2209# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
2210# 148 "/usr/include/sys/types.h" 2 3 4
2211
2212
2213
2214typedef unsigned long int ulong;
2215typedef unsigned short int ushort;
2216typedef unsigned int uint;
2217# 195 "/usr/include/sys/types.h" 3 4
2218typedef int int8_t __attribute__ ((__mode__ (__QI__)));
2219typedef int int16_t __attribute__ ((__mode__ (__HI__)));
2220typedef int int32_t __attribute__ ((__mode__ (__SI__)));
2221typedef int int64_t __attribute__ ((__mode__ (__DI__)));
2222
2223
2224typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
2225typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
2226typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
2227typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
2228
2229typedef int register_t __attribute__ ((__mode__ (__word__)));
2230# 220 "/usr/include/sys/types.h" 3 4
2231# 1 "/usr/include/sys/select.h" 1 3 4
2232# 31 "/usr/include/sys/select.h" 3 4
2233# 1 "/usr/include/bits/select.h" 1 3 4
2234# 32 "/usr/include/sys/select.h" 2 3 4
2235
2236
2237# 1 "/usr/include/bits/sigset.h" 1 3 4
2238# 24 "/usr/include/bits/sigset.h" 3 4
2239typedef int __sig_atomic_t;
2240
2241
2242
2243
2244typedef struct
2245 {
2246 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
2247 } __sigset_t;
2248# 35 "/usr/include/sys/select.h" 2 3 4
2249
2250
2251
2252typedef __sigset_t sigset_t;
2253
2254
2255
2256
2257
2258# 1 "/usr/include/time.h" 1 3 4
2259# 121 "/usr/include/time.h" 3 4
2260struct timespec
2261 {
2262 __time_t tv_sec;
2263 long int tv_nsec;
2264 };
2265# 45 "/usr/include/sys/select.h" 2 3 4
2266
2267# 1 "/usr/include/bits/time.h" 1 3 4
2268# 69 "/usr/include/bits/time.h" 3 4
2269struct timeval
2270 {
2271 __time_t tv_sec;
2272 __suseconds_t tv_usec;
2273 };
2274# 47 "/usr/include/sys/select.h" 2 3 4
2275# 55 "/usr/include/sys/select.h" 3 4
2276typedef long int __fd_mask;
2277# 67 "/usr/include/sys/select.h" 3 4
2278typedef struct
2279 {
2280
2281
2282
2283 __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
2284
2285
2286
2287
2288
2289 } fd_set;
2290
2291
2292
2293
2294
2295
2296typedef __fd_mask fd_mask;
2297# 99 "/usr/include/sys/select.h" 3 4
2298extern "C" {
2299# 109 "/usr/include/sys/select.h" 3 4
2300extern int select (int __nfds, fd_set *__restrict __readfds,
2301 fd_set *__restrict __writefds,
2302 fd_set *__restrict __exceptfds,
2303 struct timeval *__restrict __timeout);
2304# 121 "/usr/include/sys/select.h" 3 4
2305extern int pselect (int __nfds, fd_set *__restrict __readfds,
2306 fd_set *__restrict __writefds,
2307 fd_set *__restrict __exceptfds,
2308 const struct timespec *__restrict __timeout,
2309 const __sigset_t *__restrict __sigmask);
2310
2311
2312}
2313# 221 "/usr/include/sys/types.h" 2 3 4
2314
2315
2316# 1 "/usr/include/sys/sysmacros.h" 1 3 4
2317# 30 "/usr/include/sys/sysmacros.h" 3 4
2318__extension__
2319extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
2320 throw ();
2321__extension__
2322extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
2323 throw ();
2324__extension__
2325extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
2326 unsigned int __minor)
2327 throw ();
2328
2329
2330__extension__ extern __inline unsigned int
2331gnu_dev_major (unsigned long long int __dev) throw ()
2332{
2333 return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
2334}
2335
2336__extension__ extern __inline unsigned int
2337gnu_dev_minor (unsigned long long int __dev) throw ()
2338{
2339 return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
2340}
2341
2342__extension__ extern __inline unsigned long long int
2343gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw ()
2344{
2345 return ((__minor & 0xff) | ((__major & 0xfff) << 8)
2346 | (((unsigned long long int) (__minor & ~0xff)) << 12)
2347 | (((unsigned long long int) (__major & ~0xfff)) << 32));
2348}
2349# 224 "/usr/include/sys/types.h" 2 3 4
2350
2351
2352
2353
2354typedef __blksize_t blksize_t;
2355
2356
2357
2358
2359
2360
2361typedef __blkcnt_t blkcnt_t;
2362
2363
2364
2365typedef __fsblkcnt_t fsblkcnt_t;
2366
2367
2368
2369typedef __fsfilcnt_t fsfilcnt_t;
2370# 262 "/usr/include/sys/types.h" 3 4
2371typedef __blkcnt64_t blkcnt64_t;
2372typedef __fsblkcnt64_t fsblkcnt64_t;
2373typedef __fsfilcnt64_t fsfilcnt64_t;
2374
2375
2376
2377
2378
2379# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
2380# 36 "/usr/include/bits/pthreadtypes.h" 3 4
2381typedef unsigned long int pthread_t;
2382
2383
2384typedef union
2385{
2386 char __size[36];
2387 long int __align;
2388} pthread_attr_t;
2389
2390
2391typedef struct __pthread_internal_slist
2392{
2393 struct __pthread_internal_slist *__next;
2394} __pthread_slist_t;
2395
2396
2397
2398
2399typedef union
2400{
2401 struct __pthread_mutex_s
2402 {
2403 int __lock;
2404 unsigned int __count;
2405 int __owner;
2406
2407
2408 int __kind;
2409 unsigned int __nusers;
2410 __extension__ union
2411 {
2412 int __spins;
2413 __pthread_slist_t __list;
2414 };
2415 } __data;
2416 char __size[24];
2417 long int __align;
2418} pthread_mutex_t;
2419
2420typedef union
2421{
2422 char __size[4];
2423 long int __align;
2424} pthread_mutexattr_t;
2425
2426
2427
2428
2429typedef union
2430{
2431 struct
2432 {
2433 int __lock;
2434 unsigned int __futex;
2435 __extension__ unsigned long long int __total_seq;
2436 __extension__ unsigned long long int __wakeup_seq;
2437 __extension__ unsigned long long int __woken_seq;
2438 void *__mutex;
2439 unsigned int __nwaiters;
2440 unsigned int __broadcast_seq;
2441 } __data;
2442 char __size[48];
2443 __extension__ long long int __align;
2444} pthread_cond_t;
2445
2446typedef union
2447{
2448 char __size[4];
2449 long int __align;
2450} pthread_condattr_t;
2451
2452
2453
2454typedef unsigned int pthread_key_t;
2455
2456
2457
2458typedef int pthread_once_t;
2459
2460
2461
2462
2463
2464typedef union
2465{
2466 struct
2467 {
2468 int __lock;
2469 unsigned int __nr_readers;
2470 unsigned int __readers_wakeup;
2471 unsigned int __writer_wakeup;
2472 unsigned int __nr_readers_queued;
2473 unsigned int __nr_writers_queued;
2474
2475
2476 unsigned int __flags;
2477 int __writer;
2478 } __data;
2479 char __size[32];
2480 long int __align;
2481} pthread_rwlock_t;
2482
2483typedef union
2484{
2485 char __size[8];
2486 long int __align;
2487} pthread_rwlockattr_t;
2488
2489
2490
2491
2492
2493typedef volatile int pthread_spinlock_t;
2494
2495
2496
2497
2498typedef union
2499{
2500 char __size[20];
2501 long int __align;
2502} pthread_barrier_t;
2503
2504typedef union
2505{
2506 char __size[4];
2507 int __align;
2508} pthread_barrierattr_t;
2509# 271 "/usr/include/sys/types.h" 2 3 4
2510
2511
2512}
2513# 439 "/usr/include/stdlib.h" 2 3 4
2514
2515
2516
2517
2518
2519
2520extern long int random (void) throw ();
2521
2522
2523extern void srandom (unsigned int __seed) throw ();
2524
2525
2526
2527
2528
2529extern char *initstate (unsigned int __seed, char *__statebuf,
2530 size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
2531
2532
2533
2534extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
2535
2536
2537
2538
2539
2540
2541
2542struct random_data
2543 {
2544 int32_t *fptr;
2545 int32_t *rptr;
2546 int32_t *state;
2547 int rand_type;
2548 int rand_deg;
2549 int rand_sep;
2550 int32_t *end_ptr;
2551 };
2552
2553extern int random_r (struct random_data *__restrict __buf,
2554 int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
2555
2556extern int srandom_r (unsigned int __seed, struct random_data *__buf)
2557 throw () __attribute__ ((__nonnull__ (2)));
2558
2559extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
2560 size_t __statelen,
2561 struct random_data *__restrict __buf)
2562 throw () __attribute__ ((__nonnull__ (2, 4)));
2563
2564extern int setstate_r (char *__restrict __statebuf,
2565 struct random_data *__restrict __buf)
2566 throw () __attribute__ ((__nonnull__ (1, 2)));
2567
2568
2569
2570
2571
2572
2573extern int rand (void) throw ();
2574
2575extern void srand (unsigned int __seed) throw ();
2576
2577
2578
2579
2580extern int rand_r (unsigned int *__seed) throw ();
2581
2582
2583
2584
2585
2586
2587
2588extern double drand48 (void) throw ();
2589extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
2590
2591
2592extern long int lrand48 (void) throw ();
2593extern long int nrand48 (unsigned short int __xsubi[3])
2594 throw () __attribute__ ((__nonnull__ (1)));
2595
2596
2597extern long int mrand48 (void) throw ();
2598extern long int jrand48 (unsigned short int __xsubi[3])
2599 throw () __attribute__ ((__nonnull__ (1)));
2600
2601
2602extern void srand48 (long int __seedval) throw ();
2603extern unsigned short int *seed48 (unsigned short int __seed16v[3])
2604 throw () __attribute__ ((__nonnull__ (1)));
2605extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
2606
2607
2608
2609
2610
2611struct drand48_data
2612 {
2613 unsigned short int __x[3];
2614 unsigned short int __old_x[3];
2615 unsigned short int __c;
2616 unsigned short int __init;
2617 unsigned long long int __a;
2618 };
2619
2620
2621extern int drand48_r (struct drand48_data *__restrict __buffer,
2622 double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
2623extern int erand48_r (unsigned short int __xsubi[3],
2624 struct drand48_data *__restrict __buffer,
2625 double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
2626
2627
2628extern int lrand48_r (struct drand48_data *__restrict __buffer,
2629 long int *__restrict __result)
2630 throw () __attribute__ ((__nonnull__ (1, 2)));
2631extern int nrand48_r (unsigned short int __xsubi[3],
2632 struct drand48_data *__restrict __buffer,
2633 long int *__restrict __result)
2634 throw () __attribute__ ((__nonnull__ (1, 2)));
2635
2636
2637extern int mrand48_r (struct drand48_data *__restrict __buffer,
2638 long int *__restrict __result)
2639 throw () __attribute__ ((__nonnull__ (1, 2)));
2640extern int jrand48_r (unsigned short int __xsubi[3],
2641 struct drand48_data *__restrict __buffer,
2642 long int *__restrict __result)
2643 throw () __attribute__ ((__nonnull__ (1, 2)));
2644
2645
2646extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
2647 throw () __attribute__ ((__nonnull__ (2)));
2648
2649extern int seed48_r (unsigned short int __seed16v[3],
2650 struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
2651
2652extern int lcong48_r (unsigned short int __param[7],
2653 struct drand48_data *__buffer)
2654 throw () __attribute__ ((__nonnull__ (1, 2)));
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
2665
2666extern void *calloc (size_t __nmemb, size_t __size)
2667 throw () __attribute__ ((__malloc__)) ;
2668
2669
2670
2671
2672
2673
2674
2675extern void *realloc (void *__ptr, size_t __size)
2676 throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
2677
2678extern void free (void *__ptr) throw ();
2679
2680
2681
2682
2683extern void cfree (void *__ptr) throw ();
2684
2685
2686
2687# 1 "/usr/include/alloca.h" 1 3 4
2688# 25 "/usr/include/alloca.h" 3 4
2689# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
2690# 26 "/usr/include/alloca.h" 2 3 4
2691
2692extern "C" {
2693
2694
2695
2696
2697
2698extern void *alloca (size_t __size) throw ();
2699
2700
2701
2702
2703
2704}
2705# 613 "/usr/include/stdlib.h" 2 3 4
2706
2707
2708
2709
2710extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
2711
2712
2713
2714
2715extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
2716 throw () __attribute__ ((__nonnull__ (1))) ;
2717
2718
2719
2720
2721extern void abort (void) throw () __attribute__ ((__noreturn__));
2722
2723
2724
2725extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
2726
2727
2728
2729
2730
2731extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
2732 throw () __attribute__ ((__nonnull__ (1)));
2733
2734
2735
2736
2737
2738
2739extern void exit (int __status) throw () __attribute__ ((__noreturn__));
2740
2741
2742
2743
2744
2745
2746extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
2747
2748
2749
2750
2751
2752
2753extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
2754
2755
2756
2757
2758extern char *__secure_getenv (__const char *__name)
2759 throw () __attribute__ ((__nonnull__ (1))) ;
2760
2761
2762
2763
2764
2765extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
2766
2767
2768
2769
2770
2771extern int setenv (__const char *__name, __const char *__value, int __replace)
2772 throw () __attribute__ ((__nonnull__ (2)));
2773
2774
2775extern int unsetenv (__const char *__name) throw ();
2776
2777
2778
2779
2780
2781
2782extern int clearenv (void) throw ();
2783# 698 "/usr/include/stdlib.h" 3 4
2784extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
2785# 709 "/usr/include/stdlib.h" 3 4
2786extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
2787# 719 "/usr/include/stdlib.h" 3 4
2788extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
2789# 729 "/usr/include/stdlib.h" 3 4
2790extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
2791
2792
2793
2794
2795
2796
2797
2798
2799extern int system (__const char *__command) ;
2800
2801
2802
2803
2804
2805
2806extern char *canonicalize_file_name (__const char *__name)
2807 throw () __attribute__ ((__nonnull__ (1))) ;
2808# 755 "/usr/include/stdlib.h" 3 4
2809extern char *realpath (__const char *__restrict __name,
2810 char *__restrict __resolved) throw () ;
2811
2812
2813
2814
2815
2816
2817typedef int (*__compar_fn_t) (__const void *, __const void *);
2818
2819
2820typedef __compar_fn_t comparison_fn_t;
2821
2822
2823
2824
2825
2826
2827extern void *bsearch (__const void *__key, __const void *__base,
2828 size_t __nmemb, size_t __size, __compar_fn_t __compar)
2829 __attribute__ ((__nonnull__ (1, 2, 5))) ;
2830
2831
2832
2833extern void qsort (void *__base, size_t __nmemb, size_t __size,
2834 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
2835
2836
2837
2838extern int abs (int __x) throw () __attribute__ ((__const__)) ;
2839extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
2840
2841
2842
2843__extension__ extern long long int llabs (long long int __x)
2844 throw () __attribute__ ((__const__)) ;
2845
2846
2847
2848
2849
2850
2851
2852extern div_t div (int __numer, int __denom)
2853 throw () __attribute__ ((__const__)) ;
2854extern ldiv_t ldiv (long int __numer, long int __denom)
2855 throw () __attribute__ ((__const__)) ;
2856
2857
2858
2859
2860__extension__ extern lldiv_t lldiv (long long int __numer,
2861 long long int __denom)
2862 throw () __attribute__ ((__const__)) ;
2863
2864# 820 "/usr/include/stdlib.h" 3 4
2865extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
2866 int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
2867
2868
2869
2870
2871extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
2872 int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
2873
2874
2875
2876
2877extern char *gcvt (double __value, int __ndigit, char *__buf)
2878 throw () __attribute__ ((__nonnull__ (3))) ;
2879
2880
2881
2882
2883extern char *qecvt (long double __value, int __ndigit,
2884 int *__restrict __decpt, int *__restrict __sign)
2885 throw () __attribute__ ((__nonnull__ (3, 4))) ;
2886extern char *qfcvt (long double __value, int __ndigit,
2887 int *__restrict __decpt, int *__restrict __sign)
2888 throw () __attribute__ ((__nonnull__ (3, 4))) ;
2889extern char *qgcvt (long double __value, int __ndigit, char *__buf)
2890 throw () __attribute__ ((__nonnull__ (3))) ;
2891
2892
2893
2894
2895extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
2896 int *__restrict __sign, char *__restrict __buf,
2897 size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2898extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
2899 int *__restrict __sign, char *__restrict __buf,
2900 size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2901
2902extern int qecvt_r (long double __value, int __ndigit,
2903 int *__restrict __decpt, int *__restrict __sign,
2904 char *__restrict __buf, size_t __len)
2905 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2906extern int qfcvt_r (long double __value, int __ndigit,
2907 int *__restrict __decpt, int *__restrict __sign,
2908 char *__restrict __buf, size_t __len)
2909 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2910
2911
2912
2913
2914
2915
2916
2917extern int mblen (__const char *__s, size_t __n) throw () ;
2918
2919
2920extern int mbtowc (wchar_t *__restrict __pwc,
2921 __const char *__restrict __s, size_t __n) throw () ;
2922
2923
2924extern int wctomb (char *__s, wchar_t __wchar) throw () ;
2925
2926
2927
2928extern size_t mbstowcs (wchar_t *__restrict __pwcs,
2929 __const char *__restrict __s, size_t __n) throw ();
2930
2931extern size_t wcstombs (char *__restrict __s,
2932 __const wchar_t *__restrict __pwcs, size_t __n)
2933 throw ();
2934
2935
2936
2937
2938
2939
2940
2941
2942extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))) ;
2943# 908 "/usr/include/stdlib.h" 3 4
2944extern int getsubopt (char **__restrict __optionp,
2945 char *__const *__restrict __tokens,
2946 char **__restrict __valuep)
2947 throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
2948
2949
2950
2951
2952
2953extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1)));
2954
2955
2956
2957
2958
2959
2960
2961extern int posix_openpt (int __oflag) ;
2962
2963
2964
2965
2966
2967
2968
2969extern int grantpt (int __fd) throw ();
2970
2971
2972
2973extern int unlockpt (int __fd) throw ();
2974
2975
2976
2977
2978extern char *ptsname (int __fd) throw () ;
2979
2980
2981
2982
2983
2984
2985extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
2986 throw () __attribute__ ((__nonnull__ (2)));
2987
2988
2989extern int getpt (void);
2990
2991
2992
2993
2994
2995
2996extern int getloadavg (double __loadavg[], int __nelem)
2997 throw () __attribute__ ((__nonnull__ (1)));
2998# 976 "/usr/include/stdlib.h" 3 4
2999}
3000# 73 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 2 3
3001# 104 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
3002namespace std
3003{
3004 using ::div_t;
3005 using ::ldiv_t;
3006
3007 using ::abort;
3008 using ::abs;
3009 using ::atexit;
3010 using ::atof;
3011 using ::atoi;
3012 using ::atol;
3013 using ::bsearch;
3014 using ::calloc;
3015 using ::div;
3016 using ::exit;
3017 using ::free;
3018 using ::getenv;
3019 using ::labs;
3020 using ::ldiv;
3021 using ::malloc;
3022
3023 using ::mblen;
3024 using ::mbstowcs;
3025 using ::mbtowc;
3026
3027 using ::qsort;
3028 using ::rand;
3029 using ::realloc;
3030 using ::srand;
3031 using ::strtod;
3032 using ::strtol;
3033 using ::strtoul;
3034 using ::system;
3035
3036 using ::wcstombs;
3037 using ::wctomb;
3038
3039
3040 inline long
3041 abs(long __i) { return labs(__i); }
3042
3043 inline ldiv_t
3044 div(long __i, long __j) { return ldiv(__i, __j); }
3045}
3046# 160 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
3047namespace __gnu_cxx
3048{
3049
3050 using ::lldiv_t;
3051
3052
3053
3054
3055
3056 using ::_Exit;
3057
3058
3059 inline long long
3060 abs(long long __x) { return __x >= 0 ? __x : -__x; }
3061
3062
3063 using ::llabs;
3064
3065 inline lldiv_t
3066 div(long long __n, long long __d)
3067 { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
3068
3069 using ::lldiv;
3070# 193 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
3071 using ::atoll;
3072 using ::strtoll;
3073 using ::strtoull;
3074
3075 using ::strtof;
3076 using ::strtold;
3077}
3078
3079namespace std
3080{
3081
3082 using ::__gnu_cxx::lldiv_t;
3083
3084 using ::__gnu_cxx::_Exit;
3085 using ::__gnu_cxx::abs;
3086
3087 using ::__gnu_cxx::llabs;
3088 using ::__gnu_cxx::div;
3089 using ::__gnu_cxx::lldiv;
3090
3091 using ::__gnu_cxx::atoll;
3092 using ::__gnu_cxx::strtof;
3093 using ::__gnu_cxx::strtoll;
3094 using ::__gnu_cxx::strtoull;
3095 using ::__gnu_cxx::strtold;
3096}
3097
3098
3099
3100
3101
3102#pragma GCC visibility pop
3103# 68 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
3104
3105# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 1 3
3106# 42 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 3
3107
3108# 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 3
3109#pragma GCC visibility push(default)
3110
3111
3112# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 1 3
3113# 39 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 3
3114
3115# 40 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 3
3116
3117
3118# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 1 3
3119# 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3120
3121# 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3122#pragma GCC visibility push(default)
3123# 99 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3124namespace std
3125{
3126 using ::FILE;
3127 using ::fpos_t;
3128
3129 using ::clearerr;
3130 using ::fclose;
3131 using ::feof;
3132 using ::ferror;
3133 using ::fflush;
3134 using ::fgetc;
3135 using ::fgetpos;
3136 using ::fgets;
3137 using ::fopen;
3138 using ::fprintf;
3139 using ::fputc;
3140 using ::fputs;
3141 using ::fread;
3142 using ::freopen;
3143 using ::fscanf;
3144 using ::fseek;
3145 using ::fsetpos;
3146 using ::ftell;
3147 using ::fwrite;
3148 using ::getc;
3149 using ::getchar;
3150 using ::gets;
3151 using ::perror;
3152 using ::printf;
3153 using ::putc;
3154 using ::putchar;
3155 using ::puts;
3156 using ::remove;
3157 using ::rename;
3158 using ::rewind;
3159 using ::scanf;
3160 using ::setbuf;
3161 using ::setvbuf;
3162 using ::sprintf;
3163 using ::sscanf;
3164 using ::tmpfile;
3165 using ::tmpnam;
3166 using ::ungetc;
3167 using ::vfprintf;
3168 using ::vprintf;
3169 using ::vsprintf;
3170}
3171# 155 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3172namespace __gnu_cxx
3173{
3174# 170 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3175 using ::snprintf;
3176 using ::vfscanf;
3177 using ::vscanf;
3178 using ::vsnprintf;
3179 using ::vsscanf;
3180
3181}
3182
3183namespace std
3184{
3185 using __gnu_cxx::snprintf;
3186 using __gnu_cxx::vfscanf;
3187 using __gnu_cxx::vscanf;
3188 using __gnu_cxx::vsnprintf;
3189 using __gnu_cxx::vsscanf;
3190}
3191
3192
3193#pragma GCC visibility pop
3194# 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 2 3
3195# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/clocale" 1 3
3196# 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/clocale" 3
3197
3198# 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/clocale" 3
3199#pragma GCC visibility push(default)
3200
3201# 1 "/usr/include/locale.h" 1 3 4
3202# 29 "/usr/include/locale.h" 3 4
3203# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
3204# 30 "/usr/include/locale.h" 2 3 4
3205# 1 "/usr/include/bits/locale.h" 1 3 4
3206# 27 "/usr/include/bits/locale.h" 3 4
3207enum
3208{
3209 __LC_CTYPE = 0,
3210 __LC_NUMERIC = 1,
3211 __LC_TIME = 2,
3212 __LC_COLLATE = 3,
3213 __LC_MONETARY = 4,
3214 __LC_MESSAGES = 5,
3215 __LC_ALL = 6,
3216 __LC_PAPER = 7,
3217 __LC_NAME = 8,
3218 __LC_ADDRESS = 9,
3219 __LC_TELEPHONE = 10,
3220 __LC_MEASUREMENT = 11,
3221 __LC_IDENTIFICATION = 12
3222};
3223# 31 "/usr/include/locale.h" 2 3 4
3224
3225extern "C" {
3226# 51 "/usr/include/locale.h" 3 4
3227
3228
3229
3230struct lconv
3231{
3232
3233
3234 char *decimal_point;
3235 char *thousands_sep;
3236
3237
3238
3239
3240
3241 char *grouping;
3242
3243
3244
3245
3246
3247 char *int_curr_symbol;
3248 char *currency_symbol;
3249 char *mon_decimal_point;
3250 char *mon_thousands_sep;
3251 char *mon_grouping;
3252 char *positive_sign;
3253 char *negative_sign;
3254 char int_frac_digits;
3255 char frac_digits;
3256
3257 char p_cs_precedes;
3258
3259 char p_sep_by_space;
3260
3261 char n_cs_precedes;
3262
3263 char n_sep_by_space;
3264
3265
3266
3267
3268
3269
3270 char p_sign_posn;
3271 char n_sign_posn;
3272
3273
3274 char int_p_cs_precedes;
3275
3276 char int_p_sep_by_space;
3277
3278 char int_n_cs_precedes;
3279
3280 char int_n_sep_by_space;
3281
3282
3283
3284
3285
3286
3287 char int_p_sign_posn;
3288 char int_n_sign_posn;
3289# 121 "/usr/include/locale.h" 3 4
3290};
3291
3292
3293
3294extern char *setlocale (int __category, __const char *__locale) throw ();
3295
3296
3297extern struct lconv *localeconv (void) throw ();
3298
3299
3300# 148 "/usr/include/locale.h" 3 4
3301typedef __locale_t locale_t;
3302
3303
3304
3305
3306
3307extern __locale_t newlocale (int __category_mask, __const char *__locale,
3308 __locale_t __base) throw ();
3309# 189 "/usr/include/locale.h" 3 4
3310extern __locale_t duplocale (__locale_t __dataset) throw ();
3311
3312
3313
3314extern void freelocale (__locale_t __dataset) throw ();
3315
3316
3317
3318
3319
3320
3321extern __locale_t uselocale (__locale_t __dataset) throw ();
3322
3323
3324
3325
3326
3327
3328
3329}
3330# 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/clocale" 2 3
3331
3332
3333
3334
3335
3336namespace std
3337{
3338 using ::lconv;
3339 using ::setlocale;
3340 using ::localeconv;
3341}
3342
3343#pragma GCC visibility pop
3344# 44 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 2 3
3345# 1 "/usr/include/langinfo.h" 1 3 4
3346# 24 "/usr/include/langinfo.h" 3 4
3347# 1 "/usr/include/nl_types.h" 1 3 4
3348# 31 "/usr/include/nl_types.h" 3 4
3349extern "C" {
3350
3351
3352typedef void *nl_catd;
3353
3354
3355typedef int nl_item;
3356
3357
3358
3359
3360
3361extern nl_catd catopen (__const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1)));
3362
3363
3364
3365extern char *catgets (nl_catd __catalog, int __set, int __number,
3366 __const char *__string) throw () __attribute__ ((__nonnull__ (1)));
3367
3368
3369extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1)));
3370
3371}
3372# 25 "/usr/include/langinfo.h" 2 3 4
3373
3374# 1 "/usr/include/bits/locale.h" 1 3 4
3375# 27 "/usr/include/langinfo.h" 2 3 4
3376
3377
3378extern "C" {
3379# 42 "/usr/include/langinfo.h" 3 4
3380enum
3381{
3382
3383
3384
3385 ABDAY_1 = (((__LC_TIME) << 16) | (0)),
3386
3387 ABDAY_2,
3388
3389 ABDAY_3,
3390
3391 ABDAY_4,
3392
3393 ABDAY_5,
3394
3395 ABDAY_6,
3396
3397 ABDAY_7,
3398
3399
3400
3401 DAY_1,
3402
3403 DAY_2,
3404
3405 DAY_3,
3406
3407 DAY_4,
3408
3409 DAY_5,
3410
3411 DAY_6,
3412
3413 DAY_7,
3414
3415
3416
3417 ABMON_1,
3418
3419 ABMON_2,
3420
3421 ABMON_3,
3422
3423 ABMON_4,
3424
3425 ABMON_5,
3426
3427 ABMON_6,
3428
3429 ABMON_7,
3430
3431 ABMON_8,
3432
3433 ABMON_9,
3434
3435 ABMON_10,
3436
3437 ABMON_11,
3438
3439 ABMON_12,
3440
3441
3442
3443 MON_1,
3444
3445 MON_2,
3446
3447 MON_3,
3448
3449 MON_4,
3450
3451 MON_5,
3452
3453 MON_6,
3454
3455 MON_7,
3456
3457 MON_8,
3458
3459 MON_9,
3460
3461 MON_10,
3462
3463 MON_11,
3464
3465 MON_12,
3466
3467
3468 AM_STR,
3469
3470 PM_STR,
3471
3472
3473 D_T_FMT,
3474
3475 D_FMT,
3476
3477 T_FMT,
3478
3479 T_FMT_AMPM,
3480
3481
3482 ERA,
3483
3484 __ERA_YEAR,
3485
3486
3487
3488 ERA_D_FMT,
3489
3490 ALT_DIGITS,
3491
3492 ERA_D_T_FMT,
3493
3494 ERA_T_FMT,
3495
3496
3497 _NL_TIME_ERA_NUM_ENTRIES,
3498 _NL_TIME_ERA_ENTRIES,
3499
3500 _NL_WABDAY_1,
3501 _NL_WABDAY_2,
3502 _NL_WABDAY_3,
3503 _NL_WABDAY_4,
3504 _NL_WABDAY_5,
3505 _NL_WABDAY_6,
3506 _NL_WABDAY_7,
3507
3508
3509 _NL_WDAY_1,
3510 _NL_WDAY_2,
3511 _NL_WDAY_3,
3512 _NL_WDAY_4,
3513 _NL_WDAY_5,
3514 _NL_WDAY_6,
3515 _NL_WDAY_7,
3516
3517
3518 _NL_WABMON_1,
3519 _NL_WABMON_2,
3520 _NL_WABMON_3,
3521 _NL_WABMON_4,
3522 _NL_WABMON_5,
3523 _NL_WABMON_6,
3524 _NL_WABMON_7,
3525 _NL_WABMON_8,
3526 _NL_WABMON_9,
3527 _NL_WABMON_10,
3528 _NL_WABMON_11,
3529 _NL_WABMON_12,
3530
3531
3532 _NL_WMON_1,
3533 _NL_WMON_2,
3534 _NL_WMON_3,
3535 _NL_WMON_4,
3536 _NL_WMON_5,
3537 _NL_WMON_6,
3538 _NL_WMON_7,
3539 _NL_WMON_8,
3540 _NL_WMON_9,
3541 _NL_WMON_10,
3542 _NL_WMON_11,
3543 _NL_WMON_12,
3544
3545 _NL_WAM_STR,
3546 _NL_WPM_STR,
3547
3548 _NL_WD_T_FMT,
3549 _NL_WD_FMT,
3550 _NL_WT_FMT,
3551 _NL_WT_FMT_AMPM,
3552
3553 _NL_WERA_YEAR,
3554 _NL_WERA_D_FMT,
3555 _NL_WALT_DIGITS,
3556 _NL_WERA_D_T_FMT,
3557 _NL_WERA_T_FMT,
3558
3559 _NL_TIME_WEEK_NDAYS,
3560 _NL_TIME_WEEK_1STDAY,
3561 _NL_TIME_WEEK_1STWEEK,
3562 _NL_TIME_FIRST_WEEKDAY,
3563 _NL_TIME_FIRST_WORKDAY,
3564 _NL_TIME_CAL_DIRECTION,
3565 _NL_TIME_TIMEZONE,
3566
3567 _DATE_FMT,
3568
3569 _NL_W_DATE_FMT,
3570
3571 _NL_TIME_CODESET,
3572
3573 _NL_NUM_LC_TIME,
3574
3575
3576
3577
3578 _NL_COLLATE_NRULES = (((__LC_COLLATE) << 16) | (0)),
3579 _NL_COLLATE_RULESETS,
3580 _NL_COLLATE_TABLEMB,
3581 _NL_COLLATE_WEIGHTMB,
3582 _NL_COLLATE_EXTRAMB,
3583 _NL_COLLATE_INDIRECTMB,
3584 _NL_COLLATE_GAP1,
3585 _NL_COLLATE_GAP2,
3586 _NL_COLLATE_GAP3,
3587 _NL_COLLATE_TABLEWC,
3588 _NL_COLLATE_WEIGHTWC,
3589 _NL_COLLATE_EXTRAWC,
3590 _NL_COLLATE_INDIRECTWC,
3591 _NL_COLLATE_SYMB_HASH_SIZEMB,
3592 _NL_COLLATE_SYMB_TABLEMB,
3593 _NL_COLLATE_SYMB_EXTRAMB,
3594 _NL_COLLATE_COLLSEQMB,
3595 _NL_COLLATE_COLLSEQWC,
3596 _NL_COLLATE_CODESET,
3597 _NL_NUM_LC_COLLATE,
3598
3599
3600
3601
3602 _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)),
3603 _NL_CTYPE_TOUPPER,
3604 _NL_CTYPE_GAP1,
3605 _NL_CTYPE_TOLOWER,
3606 _NL_CTYPE_GAP2,
3607 _NL_CTYPE_CLASS32,
3608 _NL_CTYPE_GAP3,
3609 _NL_CTYPE_GAP4,
3610 _NL_CTYPE_GAP5,
3611 _NL_CTYPE_GAP6,
3612 _NL_CTYPE_CLASS_NAMES,
3613 _NL_CTYPE_MAP_NAMES,
3614 _NL_CTYPE_WIDTH,
3615 _NL_CTYPE_MB_CUR_MAX,
3616 _NL_CTYPE_CODESET_NAME,
3617 CODESET = _NL_CTYPE_CODESET_NAME,
3618
3619 _NL_CTYPE_TOUPPER32,
3620 _NL_CTYPE_TOLOWER32,
3621 _NL_CTYPE_CLASS_OFFSET,
3622 _NL_CTYPE_MAP_OFFSET,
3623 _NL_CTYPE_INDIGITS_MB_LEN,
3624 _NL_CTYPE_INDIGITS0_MB,
3625 _NL_CTYPE_INDIGITS1_MB,
3626 _NL_CTYPE_INDIGITS2_MB,
3627 _NL_CTYPE_INDIGITS3_MB,
3628 _NL_CTYPE_INDIGITS4_MB,
3629 _NL_CTYPE_INDIGITS5_MB,
3630 _NL_CTYPE_INDIGITS6_MB,
3631 _NL_CTYPE_INDIGITS7_MB,
3632 _NL_CTYPE_INDIGITS8_MB,
3633 _NL_CTYPE_INDIGITS9_MB,
3634 _NL_CTYPE_INDIGITS_WC_LEN,
3635 _NL_CTYPE_INDIGITS0_WC,
3636 _NL_CTYPE_INDIGITS1_WC,
3637 _NL_CTYPE_INDIGITS2_WC,
3638 _NL_CTYPE_INDIGITS3_WC,
3639 _NL_CTYPE_INDIGITS4_WC,
3640 _NL_CTYPE_INDIGITS5_WC,
3641 _NL_CTYPE_INDIGITS6_WC,
3642 _NL_CTYPE_INDIGITS7_WC,
3643 _NL_CTYPE_INDIGITS8_WC,
3644 _NL_CTYPE_INDIGITS9_WC,
3645 _NL_CTYPE_OUTDIGIT0_MB,
3646 _NL_CTYPE_OUTDIGIT1_MB,
3647 _NL_CTYPE_OUTDIGIT2_MB,
3648 _NL_CTYPE_OUTDIGIT3_MB,
3649 _NL_CTYPE_OUTDIGIT4_MB,
3650 _NL_CTYPE_OUTDIGIT5_MB,
3651 _NL_CTYPE_OUTDIGIT6_MB,
3652 _NL_CTYPE_OUTDIGIT7_MB,
3653 _NL_CTYPE_OUTDIGIT8_MB,
3654 _NL_CTYPE_OUTDIGIT9_MB,
3655 _NL_CTYPE_OUTDIGIT0_WC,
3656 _NL_CTYPE_OUTDIGIT1_WC,
3657 _NL_CTYPE_OUTDIGIT2_WC,
3658 _NL_CTYPE_OUTDIGIT3_WC,
3659 _NL_CTYPE_OUTDIGIT4_WC,
3660 _NL_CTYPE_OUTDIGIT5_WC,
3661 _NL_CTYPE_OUTDIGIT6_WC,
3662 _NL_CTYPE_OUTDIGIT7_WC,
3663 _NL_CTYPE_OUTDIGIT8_WC,
3664 _NL_CTYPE_OUTDIGIT9_WC,
3665 _NL_CTYPE_TRANSLIT_TAB_SIZE,
3666 _NL_CTYPE_TRANSLIT_FROM_IDX,
3667 _NL_CTYPE_TRANSLIT_FROM_TBL,
3668 _NL_CTYPE_TRANSLIT_TO_IDX,
3669 _NL_CTYPE_TRANSLIT_TO_TBL,
3670 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
3671 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
3672 _NL_CTYPE_TRANSLIT_IGNORE_LEN,
3673 _NL_CTYPE_TRANSLIT_IGNORE,
3674 _NL_CTYPE_MAP_TO_NONASCII,
3675 _NL_CTYPE_EXTRA_MAP_1,
3676 _NL_CTYPE_EXTRA_MAP_2,
3677 _NL_CTYPE_EXTRA_MAP_3,
3678 _NL_CTYPE_EXTRA_MAP_4,
3679 _NL_CTYPE_EXTRA_MAP_5,
3680 _NL_CTYPE_EXTRA_MAP_6,
3681 _NL_CTYPE_EXTRA_MAP_7,
3682 _NL_CTYPE_EXTRA_MAP_8,
3683 _NL_CTYPE_EXTRA_MAP_9,
3684 _NL_CTYPE_EXTRA_MAP_10,
3685 _NL_CTYPE_EXTRA_MAP_11,
3686 _NL_CTYPE_EXTRA_MAP_12,
3687 _NL_CTYPE_EXTRA_MAP_13,
3688 _NL_CTYPE_EXTRA_MAP_14,
3689 _NL_NUM_LC_CTYPE,
3690
3691
3692
3693
3694 __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)),
3695
3696
3697
3698 __CURRENCY_SYMBOL,
3699
3700
3701
3702 __MON_DECIMAL_POINT,
3703
3704
3705
3706 __MON_THOUSANDS_SEP,
3707
3708
3709
3710 __MON_GROUPING,
3711
3712
3713
3714 __POSITIVE_SIGN,
3715
3716
3717
3718 __NEGATIVE_SIGN,
3719
3720
3721
3722 __INT_FRAC_DIGITS,
3723
3724
3725
3726 __FRAC_DIGITS,
3727
3728
3729
3730 __P_CS_PRECEDES,
3731
3732
3733
3734 __P_SEP_BY_SPACE,
3735
3736
3737
3738 __N_CS_PRECEDES,
3739
3740
3741
3742 __N_SEP_BY_SPACE,
3743
3744
3745
3746 __P_SIGN_POSN,
3747
3748
3749
3750 __N_SIGN_POSN,
3751
3752
3753
3754 _NL_MONETARY_CRNCYSTR,
3755
3756 __INT_P_CS_PRECEDES,
3757
3758
3759
3760 __INT_P_SEP_BY_SPACE,
3761
3762
3763
3764 __INT_N_CS_PRECEDES,
3765
3766
3767
3768 __INT_N_SEP_BY_SPACE,
3769
3770
3771
3772 __INT_P_SIGN_POSN,
3773
3774
3775
3776 __INT_N_SIGN_POSN,
3777
3778
3779
3780 _NL_MONETARY_DUO_INT_CURR_SYMBOL,
3781 _NL_MONETARY_DUO_CURRENCY_SYMBOL,
3782 _NL_MONETARY_DUO_INT_FRAC_DIGITS,
3783 _NL_MONETARY_DUO_FRAC_DIGITS,
3784 _NL_MONETARY_DUO_P_CS_PRECEDES,
3785 _NL_MONETARY_DUO_P_SEP_BY_SPACE,
3786 _NL_MONETARY_DUO_N_CS_PRECEDES,
3787 _NL_MONETARY_DUO_N_SEP_BY_SPACE,
3788 _NL_MONETARY_DUO_INT_P_CS_PRECEDES,
3789 _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE,
3790 _NL_MONETARY_DUO_INT_N_CS_PRECEDES,
3791 _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE,
3792 _NL_MONETARY_DUO_P_SIGN_POSN,
3793 _NL_MONETARY_DUO_N_SIGN_POSN,
3794 _NL_MONETARY_DUO_INT_P_SIGN_POSN,
3795 _NL_MONETARY_DUO_INT_N_SIGN_POSN,
3796 _NL_MONETARY_UNO_VALID_FROM,
3797 _NL_MONETARY_UNO_VALID_TO,
3798 _NL_MONETARY_DUO_VALID_FROM,
3799 _NL_MONETARY_DUO_VALID_TO,
3800 _NL_MONETARY_CONVERSION_RATE,
3801 _NL_MONETARY_DECIMAL_POINT_WC,
3802 _NL_MONETARY_THOUSANDS_SEP_WC,
3803 _NL_MONETARY_CODESET,
3804 _NL_NUM_LC_MONETARY,
3805
3806
3807
3808 __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)),
3809
3810
3811
3812 RADIXCHAR = __DECIMAL_POINT,
3813
3814 __THOUSANDS_SEP,
3815
3816
3817
3818 THOUSEP = __THOUSANDS_SEP,
3819
3820 __GROUPING,
3821
3822
3823
3824 _NL_NUMERIC_DECIMAL_POINT_WC,
3825 _NL_NUMERIC_THOUSANDS_SEP_WC,
3826 _NL_NUMERIC_CODESET,
3827 _NL_NUM_LC_NUMERIC,
3828
3829 __YESEXPR = (((__LC_MESSAGES) << 16) | (0)),
3830
3831 __NOEXPR,
3832
3833 __YESSTR,
3834
3835
3836
3837 __NOSTR,
3838
3839
3840
3841 _NL_MESSAGES_CODESET,
3842 _NL_NUM_LC_MESSAGES,
3843
3844 _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)),
3845 _NL_PAPER_WIDTH,
3846 _NL_PAPER_CODESET,
3847 _NL_NUM_LC_PAPER,
3848
3849 _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)),
3850 _NL_NAME_NAME_GEN,
3851 _NL_NAME_NAME_MR,
3852 _NL_NAME_NAME_MRS,
3853 _NL_NAME_NAME_MISS,
3854 _NL_NAME_NAME_MS,
3855 _NL_NAME_CODESET,
3856 _NL_NUM_LC_NAME,
3857
3858 _NL_ADDRESS_POSTAL_FMT = (((__LC_ADDRESS) << 16) | (0)),
3859 _NL_ADDRESS_COUNTRY_NAME,
3860 _NL_ADDRESS_COUNTRY_POST,
3861 _NL_ADDRESS_COUNTRY_AB2,
3862 _NL_ADDRESS_COUNTRY_AB3,
3863 _NL_ADDRESS_COUNTRY_CAR,
3864 _NL_ADDRESS_COUNTRY_NUM,
3865 _NL_ADDRESS_COUNTRY_ISBN,
3866 _NL_ADDRESS_LANG_NAME,
3867 _NL_ADDRESS_LANG_AB,
3868 _NL_ADDRESS_LANG_TERM,
3869 _NL_ADDRESS_LANG_LIB,
3870 _NL_ADDRESS_CODESET,
3871 _NL_NUM_LC_ADDRESS,
3872
3873 _NL_TELEPHONE_TEL_INT_FMT = (((__LC_TELEPHONE) << 16) | (0)),
3874 _NL_TELEPHONE_TEL_DOM_FMT,
3875 _NL_TELEPHONE_INT_SELECT,
3876 _NL_TELEPHONE_INT_PREFIX,
3877 _NL_TELEPHONE_CODESET,
3878 _NL_NUM_LC_TELEPHONE,
3879
3880 _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)),
3881 _NL_MEASUREMENT_CODESET,
3882 _NL_NUM_LC_MEASUREMENT,
3883
3884 _NL_IDENTIFICATION_TITLE = (((__LC_IDENTIFICATION) << 16) | (0)),
3885 _NL_IDENTIFICATION_SOURCE,
3886 _NL_IDENTIFICATION_ADDRESS,
3887 _NL_IDENTIFICATION_CONTACT,
3888 _NL_IDENTIFICATION_EMAIL,
3889 _NL_IDENTIFICATION_TEL,
3890 _NL_IDENTIFICATION_FAX,
3891 _NL_IDENTIFICATION_LANGUAGE,
3892 _NL_IDENTIFICATION_TERRITORY,
3893 _NL_IDENTIFICATION_AUDIENCE,
3894 _NL_IDENTIFICATION_APPLICATION,
3895 _NL_IDENTIFICATION_ABBREVIATION,
3896 _NL_IDENTIFICATION_REVISION,
3897 _NL_IDENTIFICATION_DATE,
3898 _NL_IDENTIFICATION_CATEGORY,
3899 _NL_IDENTIFICATION_CODESET,
3900 _NL_NUM_LC_IDENTIFICATION,
3901
3902
3903 _NL_NUM
3904};
3905# 582 "/usr/include/langinfo.h" 3 4
3906extern char *nl_langinfo (nl_item __item) throw ();
3907# 593 "/usr/include/langinfo.h" 3 4
3908extern char *nl_langinfo_l (nl_item __item, __locale_t l);
3909
3910
3911}
3912# 45 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 2 3
3913# 1 "/usr/include/iconv.h" 1 3 4
3914# 24 "/usr/include/iconv.h" 3 4
3915# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
3916# 25 "/usr/include/iconv.h" 2 3 4
3917
3918
3919extern "C" {
3920
3921
3922typedef void *iconv_t;
3923
3924
3925
3926
3927
3928
3929
3930extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
3931
3932
3933
3934
3935extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
3936 size_t *__restrict __inbytesleft,
3937 char **__restrict __outbuf,
3938 size_t *__restrict __outbytesleft);
3939
3940
3941
3942
3943
3944extern int iconv_close (iconv_t __cd);
3945
3946}
3947# 46 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 2 3
3948# 1 "/usr/include/libintl.h" 1 3 4
3949# 35 "/usr/include/libintl.h" 3 4
3950extern "C" {
3951
3952
3953
3954
3955extern char *gettext (__const char *__msgid)
3956 throw () __attribute__ ((__format_arg__ (1)));
3957
3958
3959
3960extern char *dgettext (__const char *__domainname, __const char *__msgid)
3961 throw () __attribute__ ((__format_arg__ (2)));
3962extern char *__dgettext (__const char *__domainname, __const char *__msgid)
3963 throw () __attribute__ ((__format_arg__ (2)));
3964
3965
3966
3967extern char *dcgettext (__const char *__domainname,
3968 __const char *__msgid, int __category)
3969 throw () __attribute__ ((__format_arg__ (2)));
3970extern char *__dcgettext (__const char *__domainname,
3971 __const char *__msgid, int __category)
3972 throw () __attribute__ ((__format_arg__ (2)));
3973
3974
3975
3976
3977extern char *ngettext (__const char *__msgid1, __const char *__msgid2,
3978 unsigned long int __n)
3979 throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2)));
3980
3981
3982
3983extern char *dngettext (__const char *__domainname, __const char *__msgid1,
3984 __const char *__msgid2, unsigned long int __n)
3985 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
3986
3987
3988
3989extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
3990 __const char *__msgid2, unsigned long int __n,
3991 int __category)
3992 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
3993
3994
3995
3996
3997
3998extern char *textdomain (__const char *__domainname) throw ();
3999
4000
4001
4002extern char *bindtextdomain (__const char *__domainname,
4003 __const char *__dirname) throw ();
4004
4005
4006
4007extern char *bind_textdomain_codeset (__const char *__domainname,
4008 __const char *__codeset) throw ();
4009# 122 "/usr/include/libintl.h" 3 4
4010}
4011# 47 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 2 3
4012
4013
4014
4015
4016
4017
4018namespace __gnu_cxx
4019{
4020 extern "C" __typeof(uselocale) __uselocale;
4021}
4022
4023
4024namespace std
4025{
4026 typedef __locale_t __c_locale;
4027
4028
4029
4030
4031
4032 template<typename _Tv>
4033 int
4034 __convert_from_v(char* __out,
4035 const int __size __attribute__ ((__unused__)),
4036 const char* __fmt,
4037
4038 _Tv __v, const __c_locale& __cloc, int __prec)
4039 {
4040 __c_locale __old = __gnu_cxx::__uselocale(__cloc);
4041# 86 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 3
4042 const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
4043
4044
4045
4046
4047
4048 __gnu_cxx::__uselocale(__old);
4049
4050
4051
4052
4053 return __ret;
4054 }
4055}
4056# 47 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
4057# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++io.h" 1 3
4058# 38 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++io.h" 3
4059# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr.h" 1 3
4060# 33 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr.h" 3
4061#pragma GCC visibility push(default)
4062# 114 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr.h" 3
4063# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 1 3
4064# 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
4065# 1 "/usr/include/pthread.h" 1 3 4
4066# 24 "/usr/include/pthread.h" 3 4
4067# 1 "/usr/include/sched.h" 1 3 4
4068# 29 "/usr/include/sched.h" 3 4
4069# 1 "/usr/include/time.h" 1 3 4
4070# 30 "/usr/include/sched.h" 2 3 4
4071
4072
4073# 1 "/usr/include/bits/sched.h" 1 3 4
4074# 66 "/usr/include/bits/sched.h" 3 4
4075struct sched_param
4076 {
4077 int __sched_priority;
4078 };
4079
4080extern "C" {
4081
4082
4083
4084extern int clone (int (*__fn) (void *__arg), void *__child_stack,
4085 int __flags, void *__arg, ...) throw ();
4086
4087
4088extern int unshare (int __flags) throw ();
4089
4090
4091extern int sched_getcpu (void) throw ();
4092
4093
4094}
4095
4096
4097
4098
4099
4100
4101
4102struct __sched_param
4103 {
4104 int __sched_priority;
4105 };
4106# 108 "/usr/include/bits/sched.h" 3 4
4107typedef unsigned long int __cpu_mask;
4108
4109
4110
4111
4112
4113
4114typedef struct
4115{
4116 __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
4117} cpu_set_t;
4118# 134 "/usr/include/bits/sched.h" 3 4
4119extern int __sched_cpucount (size_t __setsize, cpu_set_t *__setp) throw ();
4120# 33 "/usr/include/sched.h" 2 3 4
4121
4122
4123
4124
4125extern "C" {
4126
4127
4128extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
4129 throw ();
4130
4131
4132extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
4133
4134
4135extern int sched_setscheduler (__pid_t __pid, int __policy,
4136 __const struct sched_param *__param) throw ();
4137
4138
4139extern int sched_getscheduler (__pid_t __pid) throw ();
4140
4141
4142extern int sched_yield (void) throw ();
4143
4144
4145extern int sched_get_priority_max (int __algorithm) throw ();
4146
4147
4148extern int sched_get_priority_min (int __algorithm) throw ();
4149
4150
4151extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw ();
4152# 77 "/usr/include/sched.h" 3 4
4153extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
4154 __const cpu_set_t *__cpuset) throw ();
4155
4156
4157extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
4158 cpu_set_t *__cpuset) throw ();
4159
4160
4161}
4162# 25 "/usr/include/pthread.h" 2 3 4
4163# 1 "/usr/include/time.h" 1 3 4
4164# 31 "/usr/include/time.h" 3 4
4165extern "C" {
4166
4167
4168
4169
4170
4171
4172
4173# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
4174# 40 "/usr/include/time.h" 2 3 4
4175
4176
4177
4178# 1 "/usr/include/bits/time.h" 1 3 4
4179# 44 "/usr/include/time.h" 2 3 4
4180# 132 "/usr/include/time.h" 3 4
4181
4182
4183struct tm
4184{
4185 int tm_sec;
4186 int tm_min;
4187 int tm_hour;
4188 int tm_mday;
4189 int tm_mon;
4190 int tm_year;
4191 int tm_wday;
4192 int tm_yday;
4193 int tm_isdst;
4194
4195
4196 long int tm_gmtoff;
4197 __const char *tm_zone;
4198
4199
4200
4201
4202};
4203
4204
4205
4206
4207
4208
4209
4210
4211struct itimerspec
4212 {
4213 struct timespec it_interval;
4214 struct timespec it_value;
4215 };
4216
4217
4218struct sigevent;
4219# 181 "/usr/include/time.h" 3 4
4220
4221
4222
4223extern clock_t clock (void) throw ();
4224
4225
4226extern time_t time (time_t *__timer) throw ();
4227
4228
4229extern double difftime (time_t __time1, time_t __time0)
4230 throw () __attribute__ ((__const__));
4231
4232
4233extern time_t mktime (struct tm *__tp) throw ();
4234
4235
4236
4237
4238
4239extern size_t strftime (char *__restrict __s, size_t __maxsize,
4240 __const char *__restrict __format,
4241 __const struct tm *__restrict __tp) throw ();
4242
4243
4244
4245
4246
4247extern char *strptime (__const char *__restrict __s,
4248 __const char *__restrict __fmt, struct tm *__tp)
4249 throw ();
4250
4251
4252
4253
4254
4255
4256
4257extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
4258 __const char *__restrict __format,
4259 __const struct tm *__restrict __tp,
4260 __locale_t __loc) throw ();
4261
4262extern char *strptime_l (__const char *__restrict __s,
4263 __const char *__restrict __fmt, struct tm *__tp,
4264 __locale_t __loc) throw ();
4265
4266
4267
4268
4269
4270
4271extern struct tm *gmtime (__const time_t *__timer) throw ();
4272
4273
4274
4275extern struct tm *localtime (__const time_t *__timer) throw ();
4276
4277
4278
4279
4280
4281extern struct tm *gmtime_r (__const time_t *__restrict __timer,
4282 struct tm *__restrict __tp) throw ();
4283
4284
4285
4286extern struct tm *localtime_r (__const time_t *__restrict __timer,
4287 struct tm *__restrict __tp) throw ();
4288
4289
4290
4291
4292
4293extern char *asctime (__const struct tm *__tp) throw ();
4294
4295
4296extern char *ctime (__const time_t *__timer) throw ();
4297
4298
4299
4300
4301
4302
4303
4304extern char *asctime_r (__const struct tm *__restrict __tp,
4305 char *__restrict __buf) throw ();
4306
4307
4308extern char *ctime_r (__const time_t *__restrict __timer,
4309 char *__restrict __buf) throw ();
4310
4311
4312
4313
4314extern char *__tzname[2];
4315extern int __daylight;
4316extern long int __timezone;
4317
4318
4319
4320
4321extern char *tzname[2];
4322
4323
4324
4325extern void tzset (void) throw ();
4326
4327
4328
4329extern int daylight;
4330extern long int timezone;
4331
4332
4333
4334
4335
4336extern int stime (__const time_t *__when) throw ();
4337# 312 "/usr/include/time.h" 3 4
4338extern time_t timegm (struct tm *__tp) throw ();
4339
4340
4341extern time_t timelocal (struct tm *__tp) throw ();
4342
4343
4344extern int dysize (int __year) throw () __attribute__ ((__const__));
4345# 327 "/usr/include/time.h" 3 4
4346extern int nanosleep (__const struct timespec *__requested_time,
4347 struct timespec *__remaining);
4348
4349
4350
4351extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
4352
4353
4354extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
4355
4356
4357extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
4358 throw ();
4359
4360
4361
4362
4363
4364
4365extern int clock_nanosleep (clockid_t __clock_id, int __flags,
4366 __const struct timespec *__req,
4367 struct timespec *__rem);
4368
4369
4370extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
4371
4372
4373
4374
4375extern int timer_create (clockid_t __clock_id,
4376 struct sigevent *__restrict __evp,
4377 timer_t *__restrict __timerid) throw ();
4378
4379
4380extern int timer_delete (timer_t __timerid) throw ();
4381
4382
4383extern int timer_settime (timer_t __timerid, int __flags,
4384 __const struct itimerspec *__restrict __value,
4385 struct itimerspec *__restrict __ovalue) throw ();
4386
4387
4388extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
4389 throw ();
4390
4391
4392extern int timer_getoverrun (timer_t __timerid) throw ();
4393# 389 "/usr/include/time.h" 3 4
4394extern int getdate_err;
4395# 398 "/usr/include/time.h" 3 4
4396extern struct tm *getdate (__const char *__string);
4397# 412 "/usr/include/time.h" 3 4
4398extern int getdate_r (__const char *__restrict __string,
4399 struct tm *__restrict __resbufp);
4400
4401
4402}
4403# 26 "/usr/include/pthread.h" 2 3 4
4404
4405
4406# 1 "/usr/include/signal.h" 1 3 4
4407# 31 "/usr/include/signal.h" 3 4
4408extern "C" {
4409
4410# 1 "/usr/include/bits/sigset.h" 1 3 4
4411# 34 "/usr/include/signal.h" 2 3 4
4412# 400 "/usr/include/signal.h" 3 4
4413}
4414# 29 "/usr/include/pthread.h" 2 3 4
4415
4416# 1 "/usr/include/bits/setjmp.h" 1 3 4
4417# 29 "/usr/include/bits/setjmp.h" 3 4
4418typedef int __jmp_buf[6];
4419# 31 "/usr/include/pthread.h" 2 3 4
4420# 1 "/usr/include/bits/wordsize.h" 1 3 4
4421# 32 "/usr/include/pthread.h" 2 3 4
4422
4423
4424
4425enum
4426{
4427 PTHREAD_CREATE_JOINABLE,
4428
4429 PTHREAD_CREATE_DETACHED
4430
4431};
4432
4433
4434
4435enum
4436{
4437 PTHREAD_MUTEX_TIMED_NP,
4438 PTHREAD_MUTEX_RECURSIVE_NP,
4439 PTHREAD_MUTEX_ERRORCHECK_NP,
4440 PTHREAD_MUTEX_ADAPTIVE_NP
4441
4442 ,
4443 PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
4444 PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
4445 PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
4446 PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
4447
4448
4449
4450 , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
4451
4452};
4453
4454
4455
4456
4457enum
4458{
4459 PTHREAD_MUTEX_STALLED_NP,
4460 PTHREAD_MUTEX_ROBUST_NP
4461};
4462
4463
4464
4465
4466
4467enum
4468{
4469 PTHREAD_PRIO_NONE,
4470 PTHREAD_PRIO_INHERIT,
4471 PTHREAD_PRIO_PROTECT
4472};
4473# 114 "/usr/include/pthread.h" 3 4
4474enum
4475{
4476 PTHREAD_RWLOCK_PREFER_READER_NP,
4477 PTHREAD_RWLOCK_PREFER_WRITER_NP,
4478 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
4479 PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
4480};
4481# 144 "/usr/include/pthread.h" 3 4
4482enum
4483{
4484 PTHREAD_INHERIT_SCHED,
4485
4486 PTHREAD_EXPLICIT_SCHED
4487
4488};
4489
4490
4491
4492enum
4493{
4494 PTHREAD_SCOPE_SYSTEM,
4495
4496 PTHREAD_SCOPE_PROCESS
4497
4498};
4499
4500
4501
4502enum
4503{
4504 PTHREAD_PROCESS_PRIVATE,
4505
4506 PTHREAD_PROCESS_SHARED
4507
4508};
4509# 179 "/usr/include/pthread.h" 3 4
4510struct _pthread_cleanup_buffer
4511{
4512 void (*__routine) (void *);
4513 void *__arg;
4514 int __canceltype;
4515 struct _pthread_cleanup_buffer *__prev;
4516};
4517
4518
4519enum
4520{
4521 PTHREAD_CANCEL_ENABLE,
4522
4523 PTHREAD_CANCEL_DISABLE
4524
4525};
4526enum
4527{
4528 PTHREAD_CANCEL_DEFERRED,
4529
4530 PTHREAD_CANCEL_ASYNCHRONOUS
4531
4532};
4533# 217 "/usr/include/pthread.h" 3 4
4534extern "C" {
4535
4536
4537
4538
4539extern int pthread_create (pthread_t *__restrict __newthread,
4540 __const pthread_attr_t *__restrict __attr,
4541 void *(*__start_routine) (void *),
4542 void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3)));
4543
4544
4545
4546
4547
4548extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
4549
4550
4551
4552
4553
4554
4555
4556extern int pthread_join (pthread_t __th, void **__thread_return);
4557
4558
4559
4560
4561extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw ();
4562
4563
4564
4565
4566
4567
4568
4569extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
4570 __const struct timespec *__abstime);
4571
4572
4573
4574
4575
4576
4577extern int pthread_detach (pthread_t __th) throw ();
4578
4579
4580
4581extern pthread_t pthread_self (void) throw () __attribute__ ((__const__));
4582
4583
4584extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ();
4585
4586
4587
4588
4589
4590
4591
4592extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1)));
4593
4594
4595extern int pthread_attr_destroy (pthread_attr_t *__attr)
4596 throw () __attribute__ ((__nonnull__ (1)));
4597
4598
4599extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
4600 int *__detachstate)
4601 throw () __attribute__ ((__nonnull__ (1, 2)));
4602
4603
4604extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
4605 int __detachstate)
4606 throw () __attribute__ ((__nonnull__ (1)));
4607
4608
4609
4610extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
4611 size_t *__guardsize)
4612 throw () __attribute__ ((__nonnull__ (1, 2)));
4613
4614
4615extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
4616 size_t __guardsize)
4617 throw () __attribute__ ((__nonnull__ (1)));
4618
4619
4620
4621extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
4622 __attr,
4623 struct sched_param *__restrict __param)
4624 throw () __attribute__ ((__nonnull__ (1, 2)));
4625
4626
4627extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
4628 __const struct sched_param *__restrict
4629 __param) throw () __attribute__ ((__nonnull__ (1, 2)));
4630
4631
4632extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
4633 __attr, int *__restrict __policy)
4634 throw () __attribute__ ((__nonnull__ (1, 2)));
4635
4636
4637extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
4638 throw () __attribute__ ((__nonnull__ (1)));
4639
4640
4641extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
4642 __attr, int *__restrict __inherit)
4643 throw () __attribute__ ((__nonnull__ (1, 2)));
4644
4645
4646extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
4647 int __inherit)
4648 throw () __attribute__ ((__nonnull__ (1)));
4649
4650
4651
4652extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
4653 int *__restrict __scope)
4654 throw () __attribute__ ((__nonnull__ (1, 2)));
4655
4656
4657extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
4658 throw () __attribute__ ((__nonnull__ (1)));
4659
4660
4661extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
4662 __attr, void **__restrict __stackaddr)
4663 throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
4664
4665
4666
4667
4668
4669extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
4670 void *__stackaddr)
4671 throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
4672
4673
4674extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
4675 __attr, size_t *__restrict __stacksize)
4676 throw () __attribute__ ((__nonnull__ (1, 2)));
4677
4678
4679
4680
4681extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
4682 size_t __stacksize)
4683 throw () __attribute__ ((__nonnull__ (1)));
4684
4685
4686
4687extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
4688 void **__restrict __stackaddr,
4689 size_t *__restrict __stacksize)
4690 throw () __attribute__ ((__nonnull__ (1, 2, 3)));
4691
4692
4693
4694
4695extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
4696 size_t __stacksize) throw () __attribute__ ((__nonnull__ (1)));
4697
4698
4699
4700
4701
4702extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
4703 size_t __cpusetsize,
4704 __const cpu_set_t *__cpuset)
4705 throw () __attribute__ ((__nonnull__ (1, 3)));
4706
4707
4708
4709extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
4710 size_t __cpusetsize,
4711 cpu_set_t *__cpuset)
4712 throw () __attribute__ ((__nonnull__ (1, 3)));
4713
4714
4715
4716
4717
4718extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
4719 throw () __attribute__ ((__nonnull__ (2)));
4720
4721
4722
4723
4724
4725
4726
4727extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
4728 __const struct sched_param *__param)
4729 throw () __attribute__ ((__nonnull__ (3)));
4730
4731
4732extern int pthread_getschedparam (pthread_t __target_thread,
4733 int *__restrict __policy,
4734 struct sched_param *__restrict __param)
4735 throw () __attribute__ ((__nonnull__ (2, 3)));
4736
4737
4738extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
4739 throw ();
4740
4741
4742
4743
4744extern int pthread_getconcurrency (void) throw ();
4745
4746
4747extern int pthread_setconcurrency (int __level) throw ();
4748
4749
4750
4751
4752
4753
4754
4755extern int pthread_yield (void) throw ();
4756
4757
4758
4759
4760extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
4761 __const cpu_set_t *__cpuset)
4762 throw () __attribute__ ((__nonnull__ (3)));
4763
4764
4765extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
4766 cpu_set_t *__cpuset)
4767 throw () __attribute__ ((__nonnull__ (3)));
4768# 463 "/usr/include/pthread.h" 3 4
4769extern int pthread_once (pthread_once_t *__once_control,
4770 void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
4771# 475 "/usr/include/pthread.h" 3 4
4772extern int pthread_setcancelstate (int __state, int *__oldstate);
4773
4774
4775
4776extern int pthread_setcanceltype (int __type, int *__oldtype);
4777
4778
4779extern int pthread_cancel (pthread_t __th);
4780
4781
4782
4783
4784extern void pthread_testcancel (void);
4785
4786
4787
4788
4789typedef struct
4790{
4791 struct
4792 {
4793 __jmp_buf __cancel_jmp_buf;
4794 int __mask_was_saved;
4795 } __cancel_jmp_buf[1];
4796 void *__pad[4];
4797} __pthread_unwind_buf_t __attribute__ ((__aligned__));
4798# 509 "/usr/include/pthread.h" 3 4
4799struct __pthread_cleanup_frame
4800{
4801 void (*__cancel_routine) (void *);
4802 void *__cancel_arg;
4803 int __do_it;
4804 int __cancel_type;
4805};
4806
4807
4808
4809
4810class __pthread_cleanup_class
4811{
4812 void (*__cancel_routine) (void *);
4813 void *__cancel_arg;
4814 int __do_it;
4815 int __cancel_type;
4816
4817 public:
4818 __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
4819 : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
4820 ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
4821 void __setdoit (int __newval) { __do_it = __newval; }
4822 void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
4823 &__cancel_type); }
4824 void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
4825};
4826# 709 "/usr/include/pthread.h" 3 4
4827struct __jmp_buf_tag;
4828extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw ();
4829
4830
4831
4832
4833
4834extern int pthread_mutex_init (pthread_mutex_t *__mutex,
4835 __const pthread_mutexattr_t *__mutexattr)
4836 throw () __attribute__ ((__nonnull__ (1)));
4837
4838
4839extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
4840 throw () __attribute__ ((__nonnull__ (1)));
4841
4842
4843extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
4844 throw () __attribute__ ((__nonnull__ (1)));
4845
4846
4847extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
4848 throw () __attribute__ ((__nonnull__ (1)));
4849
4850
4851
4852extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
4853 __const struct timespec *__restrict
4854 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
4855
4856
4857
4858extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
4859 throw () __attribute__ ((__nonnull__ (1)));
4860
4861
4862
4863
4864extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
4865 __restrict __mutex,
4866 int *__restrict __prioceiling)
4867 throw () __attribute__ ((__nonnull__ (1, 2)));
4868
4869
4870
4871extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
4872 int __prioceiling,
4873 int *__restrict __old_ceiling)
4874 throw () __attribute__ ((__nonnull__ (1, 3)));
4875
4876
4877
4878
4879
4880extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
4881 throw () __attribute__ ((__nonnull__ (1)));
4882
4883
4884
4885
4886
4887
4888
4889extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
4890 throw () __attribute__ ((__nonnull__ (1)));
4891
4892
4893extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
4894 throw () __attribute__ ((__nonnull__ (1)));
4895
4896
4897extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
4898 __restrict __attr,
4899 int *__restrict __pshared)
4900 throw () __attribute__ ((__nonnull__ (1, 2)));
4901
4902
4903extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
4904 int __pshared)
4905 throw () __attribute__ ((__nonnull__ (1)));
4906
4907
4908
4909extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
4910 __attr, int *__restrict __kind)
4911 throw () __attribute__ ((__nonnull__ (1, 2)));
4912
4913
4914
4915
4916extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
4917 throw () __attribute__ ((__nonnull__ (1)));
4918
4919
4920extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
4921 __restrict __attr,
4922 int *__restrict __protocol)
4923 throw () __attribute__ ((__nonnull__ (1, 2)));
4924
4925
4926
4927extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
4928 int __protocol)
4929 throw () __attribute__ ((__nonnull__ (1)));
4930
4931
4932extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
4933 __restrict __attr,
4934 int *__restrict __prioceiling)
4935 throw () __attribute__ ((__nonnull__ (1, 2)));
4936
4937
4938extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
4939 int __prioceiling)
4940 throw () __attribute__ ((__nonnull__ (1)));
4941
4942
4943
4944
4945extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
4946 int *__robustness)
4947 throw () __attribute__ ((__nonnull__ (1, 2)));
4948
4949
4950extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
4951 int __robustness)
4952 throw () __attribute__ ((__nonnull__ (1)));
4953# 843 "/usr/include/pthread.h" 3 4
4954extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
4955 __const pthread_rwlockattr_t *__restrict
4956 __attr) throw () __attribute__ ((__nonnull__ (1)));
4957
4958
4959extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
4960 throw () __attribute__ ((__nonnull__ (1)));
4961
4962
4963extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
4964 throw () __attribute__ ((__nonnull__ (1)));
4965
4966
4967extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
4968 throw () __attribute__ ((__nonnull__ (1)));
4969
4970
4971
4972extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
4973 __const struct timespec *__restrict
4974 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
4975
4976
4977
4978extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
4979 throw () __attribute__ ((__nonnull__ (1)));
4980
4981
4982extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
4983 throw () __attribute__ ((__nonnull__ (1)));
4984
4985
4986
4987extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
4988 __const struct timespec *__restrict
4989 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
4990
4991
4992
4993extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
4994 throw () __attribute__ ((__nonnull__ (1)));
4995
4996
4997
4998
4999
5000extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
5001 throw () __attribute__ ((__nonnull__ (1)));
5002
5003
5004extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
5005 throw () __attribute__ ((__nonnull__ (1)));
5006
5007
5008extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
5009 __restrict __attr,
5010 int *__restrict __pshared)
5011 throw () __attribute__ ((__nonnull__ (1, 2)));
5012
5013
5014extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
5015 int __pshared)
5016 throw () __attribute__ ((__nonnull__ (1)));
5017
5018
5019extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
5020 __restrict __attr,
5021 int *__restrict __pref)
5022 throw () __attribute__ ((__nonnull__ (1, 2)));
5023
5024
5025extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
5026 int __pref) throw () __attribute__ ((__nonnull__ (1)));
5027
5028
5029
5030
5031
5032
5033
5034extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
5035 __const pthread_condattr_t *__restrict
5036 __cond_attr) throw () __attribute__ ((__nonnull__ (1)));
5037
5038
5039extern int pthread_cond_destroy (pthread_cond_t *__cond)
5040 throw () __attribute__ ((__nonnull__ (1)));
5041
5042
5043extern int pthread_cond_signal (pthread_cond_t *__cond)
5044 throw () __attribute__ ((__nonnull__ (1)));
5045
5046
5047extern int pthread_cond_broadcast (pthread_cond_t *__cond)
5048 throw () __attribute__ ((__nonnull__ (1)));
5049
5050
5051
5052
5053
5054
5055extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
5056 pthread_mutex_t *__restrict __mutex)
5057 __attribute__ ((__nonnull__ (1, 2)));
5058# 955 "/usr/include/pthread.h" 3 4
5059extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
5060 pthread_mutex_t *__restrict __mutex,
5061 __const struct timespec *__restrict
5062 __abstime) __attribute__ ((__nonnull__ (1, 2, 3)));
5063
5064
5065
5066
5067extern int pthread_condattr_init (pthread_condattr_t *__attr)
5068 throw () __attribute__ ((__nonnull__ (1)));
5069
5070
5071extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
5072 throw () __attribute__ ((__nonnull__ (1)));
5073
5074
5075extern int pthread_condattr_getpshared (__const pthread_condattr_t *
5076 __restrict __attr,
5077 int *__restrict __pshared)
5078 throw () __attribute__ ((__nonnull__ (1, 2)));
5079
5080
5081extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
5082 int __pshared) throw () __attribute__ ((__nonnull__ (1)));
5083
5084
5085
5086extern int pthread_condattr_getclock (__const pthread_condattr_t *
5087 __restrict __attr,
5088 __clockid_t *__restrict __clock_id)
5089 throw () __attribute__ ((__nonnull__ (1, 2)));
5090
5091
5092extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
5093 __clockid_t __clock_id)
5094 throw () __attribute__ ((__nonnull__ (1)));
5095# 999 "/usr/include/pthread.h" 3 4
5096extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
5097 throw () __attribute__ ((__nonnull__ (1)));
5098
5099
5100extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
5101 throw () __attribute__ ((__nonnull__ (1)));
5102
5103
5104extern int pthread_spin_lock (pthread_spinlock_t *__lock)
5105 throw () __attribute__ ((__nonnull__ (1)));
5106
5107
5108extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
5109 throw () __attribute__ ((__nonnull__ (1)));
5110
5111
5112extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
5113 throw () __attribute__ ((__nonnull__ (1)));
5114
5115
5116
5117
5118
5119
5120extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
5121 __const pthread_barrierattr_t *__restrict
5122 __attr, unsigned int __count)
5123 throw () __attribute__ ((__nonnull__ (1)));
5124
5125
5126extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
5127 throw () __attribute__ ((__nonnull__ (1)));
5128
5129
5130extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
5131 throw () __attribute__ ((__nonnull__ (1)));
5132
5133
5134
5135extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
5136 throw () __attribute__ ((__nonnull__ (1)));
5137
5138
5139extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
5140 throw () __attribute__ ((__nonnull__ (1)));
5141
5142
5143extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
5144 __restrict __attr,
5145 int *__restrict __pshared)
5146 throw () __attribute__ ((__nonnull__ (1, 2)));
5147
5148
5149extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
5150 int __pshared)
5151 throw () __attribute__ ((__nonnull__ (1)));
5152# 1066 "/usr/include/pthread.h" 3 4
5153extern int pthread_key_create (pthread_key_t *__key,
5154 void (*__destr_function) (void *))
5155 throw () __attribute__ ((__nonnull__ (1)));
5156
5157
5158extern int pthread_key_delete (pthread_key_t __key) throw ();
5159
5160
5161extern void *pthread_getspecific (pthread_key_t __key) throw ();
5162
5163
5164extern int pthread_setspecific (pthread_key_t __key,
5165 __const void *__pointer) throw () ;
5166
5167
5168
5169
5170extern int pthread_getcpuclockid (pthread_t __thread_id,
5171 __clockid_t *__clock_id)
5172 throw () __attribute__ ((__nonnull__ (2)));
5173# 1100 "/usr/include/pthread.h" 3 4
5174extern int pthread_atfork (void (*__prepare) (void),
5175 void (*__parent) (void),
5176 void (*__child) (void)) throw ();
5177
5178
5179
5180
5181extern __inline int
5182pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ()
5183{
5184 return __thread1 == __thread2;
5185}
5186
5187
5188}
5189# 44 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 2 3
5190# 1 "/usr/include/unistd.h" 1 3 4
5191# 28 "/usr/include/unistd.h" 3 4
5192extern "C" {
5193# 173 "/usr/include/unistd.h" 3 4
5194# 1 "/usr/include/bits/posix_opt.h" 1 3 4
5195# 174 "/usr/include/unistd.h" 2 3 4
5196
5197
5198
5199# 1 "/usr/include/bits/environments.h" 1 3 4
5200# 178 "/usr/include/unistd.h" 2 3 4
5201# 197 "/usr/include/unistd.h" 3 4
5202# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
5203# 198 "/usr/include/unistd.h" 2 3 4
5204# 238 "/usr/include/unistd.h" 3 4
5205typedef __intptr_t intptr_t;
5206
5207
5208
5209
5210
5211
5212typedef __socklen_t socklen_t;
5213# 258 "/usr/include/unistd.h" 3 4
5214extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1)));
5215
5216
5217
5218
5219extern int euidaccess (__const char *__name, int __type)
5220 throw () __attribute__ ((__nonnull__ (1)));
5221
5222
5223extern int eaccess (__const char *__name, int __type)
5224 throw () __attribute__ ((__nonnull__ (1)));
5225
5226
5227
5228
5229
5230
5231extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
5232 throw () __attribute__ ((__nonnull__ (2))) ;
5233# 301 "/usr/include/unistd.h" 3 4
5234extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();
5235# 312 "/usr/include/unistd.h" 3 4
5236extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
5237 throw ();
5238
5239
5240
5241
5242
5243
5244extern int close (int __fd);
5245
5246
5247
5248
5249
5250
5251extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
5252
5253
5254
5255
5256
5257extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
5258# 343 "/usr/include/unistd.h" 3 4
5259extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
5260 __off_t __offset) ;
5261
5262
5263
5264
5265
5266
5267extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
5268 __off_t __offset) ;
5269# 371 "/usr/include/unistd.h" 3 4
5270extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
5271 __off64_t __offset) ;
5272
5273
5274extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
5275 __off64_t __offset) ;
5276
5277
5278
5279
5280
5281
5282
5283extern int pipe (int __pipedes[2]) throw () ;
5284# 393 "/usr/include/unistd.h" 3 4
5285extern unsigned int alarm (unsigned int __seconds) throw ();
5286# 405 "/usr/include/unistd.h" 3 4
5287extern unsigned int sleep (unsigned int __seconds);
5288
5289
5290
5291
5292
5293
5294extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
5295 throw ();
5296
5297
5298
5299
5300
5301
5302extern int usleep (__useconds_t __useconds);
5303# 429 "/usr/include/unistd.h" 3 4
5304extern int pause (void);
5305
5306
5307
5308extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
5309 throw () __attribute__ ((__nonnull__ (1))) ;
5310
5311
5312
5313extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ;
5314
5315
5316
5317
5318extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
5319 throw () __attribute__ ((__nonnull__ (1))) ;
5320
5321
5322
5323
5324
5325
5326extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
5327 __gid_t __group, int __flag)
5328 throw () __attribute__ ((__nonnull__ (2))) ;
5329
5330
5331
5332extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
5333
5334
5335
5336extern int fchdir (int __fd) throw () ;
5337# 471 "/usr/include/unistd.h" 3 4
5338extern char *getcwd (char *__buf, size_t __size) throw () ;
5339
5340
5341
5342
5343
5344extern char *get_current_dir_name (void) throw ();
5345
5346
5347
5348
5349
5350
5351extern char *getwd (char *__buf)
5352 throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
5353
5354
5355
5356
5357extern int dup (int __fd) throw () ;
5358
5359
5360extern int dup2 (int __fd, int __fd2) throw ();
5361
5362
5363extern char **__environ;
5364
5365extern char **environ;
5366
5367
5368
5369
5370
5371extern int execve (__const char *__path, char *__const __argv[],
5372 char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1)));
5373
5374
5375
5376
5377extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
5378 throw ();
5379
5380
5381
5382
5383extern int execv (__const char *__path, char *__const __argv[])
5384 throw () __attribute__ ((__nonnull__ (1)));
5385
5386
5387
5388extern int execle (__const char *__path, __const char *__arg, ...)
5389 throw () __attribute__ ((__nonnull__ (1)));
5390
5391
5392
5393extern int execl (__const char *__path, __const char *__arg, ...)
5394 throw () __attribute__ ((__nonnull__ (1)));
5395
5396
5397
5398extern int execvp (__const char *__file, char *__const __argv[])
5399 throw () __attribute__ ((__nonnull__ (1)));
5400
5401
5402
5403
5404extern int execlp (__const char *__file, __const char *__arg, ...)
5405 throw () __attribute__ ((__nonnull__ (1)));
5406
5407
5408
5409
5410extern int nice (int __inc) throw () ;
5411
5412
5413
5414
5415extern void _exit (int __status) __attribute__ ((__noreturn__));
5416
5417
5418
5419
5420
5421# 1 "/usr/include/bits/confname.h" 1 3 4
5422# 26 "/usr/include/bits/confname.h" 3 4
5423enum
5424 {
5425 _PC_LINK_MAX,
5426
5427 _PC_MAX_CANON,
5428
5429 _PC_MAX_INPUT,
5430
5431 _PC_NAME_MAX,
5432
5433 _PC_PATH_MAX,
5434
5435 _PC_PIPE_BUF,
5436
5437 _PC_CHOWN_RESTRICTED,
5438
5439 _PC_NO_TRUNC,
5440
5441 _PC_VDISABLE,
5442
5443 _PC_SYNC_IO,
5444
5445 _PC_ASYNC_IO,
5446
5447 _PC_PRIO_IO,
5448
5449 _PC_SOCK_MAXBUF,
5450
5451 _PC_FILESIZEBITS,
5452
5453 _PC_REC_INCR_XFER_SIZE,
5454
5455 _PC_REC_MAX_XFER_SIZE,
5456
5457 _PC_REC_MIN_XFER_SIZE,
5458
5459 _PC_REC_XFER_ALIGN,
5460
5461 _PC_ALLOC_SIZE_MIN,
5462
5463 _PC_SYMLINK_MAX,
5464
5465 _PC_2_SYMLINKS
5466
5467 };
5468
5469
5470enum
5471 {
5472 _SC_ARG_MAX,
5473
5474 _SC_CHILD_MAX,
5475
5476 _SC_CLK_TCK,
5477
5478 _SC_NGROUPS_MAX,
5479
5480 _SC_OPEN_MAX,
5481
5482 _SC_STREAM_MAX,
5483
5484 _SC_TZNAME_MAX,
5485
5486 _SC_JOB_CONTROL,
5487
5488 _SC_SAVED_IDS,
5489
5490 _SC_REALTIME_SIGNALS,
5491
5492 _SC_PRIORITY_SCHEDULING,
5493
5494 _SC_TIMERS,
5495
5496 _SC_ASYNCHRONOUS_IO,
5497
5498 _SC_PRIORITIZED_IO,
5499
5500 _SC_SYNCHRONIZED_IO,
5501
5502 _SC_FSYNC,
5503
5504 _SC_MAPPED_FILES,
5505
5506 _SC_MEMLOCK,
5507
5508 _SC_MEMLOCK_RANGE,
5509
5510 _SC_MEMORY_PROTECTION,
5511
5512 _SC_MESSAGE_PASSING,
5513
5514 _SC_SEMAPHORES,
5515
5516 _SC_SHARED_MEMORY_OBJECTS,
5517
5518 _SC_AIO_LISTIO_MAX,
5519
5520 _SC_AIO_MAX,
5521
5522 _SC_AIO_PRIO_DELTA_MAX,
5523
5524 _SC_DELAYTIMER_MAX,
5525
5526 _SC_MQ_OPEN_MAX,
5527
5528 _SC_MQ_PRIO_MAX,
5529
5530 _SC_VERSION,
5531
5532 _SC_PAGESIZE,
5533
5534
5535 _SC_RTSIG_MAX,
5536
5537 _SC_SEM_NSEMS_MAX,
5538
5539 _SC_SEM_VALUE_MAX,
5540
5541 _SC_SIGQUEUE_MAX,
5542
5543 _SC_TIMER_MAX,
5544
5545
5546
5547
5548 _SC_BC_BASE_MAX,
5549
5550 _SC_BC_DIM_MAX,
5551
5552 _SC_BC_SCALE_MAX,
5553
5554 _SC_BC_STRING_MAX,
5555
5556 _SC_COLL_WEIGHTS_MAX,
5557
5558 _SC_EQUIV_CLASS_MAX,
5559
5560 _SC_EXPR_NEST_MAX,
5561
5562 _SC_LINE_MAX,
5563
5564 _SC_RE_DUP_MAX,
5565
5566 _SC_CHARCLASS_NAME_MAX,
5567
5568
5569 _SC_2_VERSION,
5570
5571 _SC_2_C_BIND,
5572
5573 _SC_2_C_DEV,
5574
5575 _SC_2_FORT_DEV,
5576
5577 _SC_2_FORT_RUN,
5578
5579 _SC_2_SW_DEV,
5580
5581 _SC_2_LOCALEDEF,
5582
5583
5584 _SC_PII,
5585
5586 _SC_PII_XTI,
5587
5588 _SC_PII_SOCKET,
5589
5590 _SC_PII_INTERNET,
5591
5592 _SC_PII_OSI,
5593
5594 _SC_POLL,
5595
5596 _SC_SELECT,
5597
5598 _SC_UIO_MAXIOV,
5599
5600 _SC_IOV_MAX = _SC_UIO_MAXIOV,
5601
5602 _SC_PII_INTERNET_STREAM,
5603
5604 _SC_PII_INTERNET_DGRAM,
5605
5606 _SC_PII_OSI_COTS,
5607
5608 _SC_PII_OSI_CLTS,
5609
5610 _SC_PII_OSI_M,
5611
5612 _SC_T_IOV_MAX,
5613
5614
5615
5616 _SC_THREADS,
5617
5618 _SC_THREAD_SAFE_FUNCTIONS,
5619
5620 _SC_GETGR_R_SIZE_MAX,
5621
5622 _SC_GETPW_R_SIZE_MAX,
5623
5624 _SC_LOGIN_NAME_MAX,
5625
5626 _SC_TTY_NAME_MAX,
5627
5628 _SC_THREAD_DESTRUCTOR_ITERATIONS,
5629
5630 _SC_THREAD_KEYS_MAX,
5631
5632 _SC_THREAD_STACK_MIN,
5633
5634 _SC_THREAD_THREADS_MAX,
5635
5636 _SC_THREAD_ATTR_STACKADDR,
5637
5638 _SC_THREAD_ATTR_STACKSIZE,
5639
5640 _SC_THREAD_PRIORITY_SCHEDULING,
5641
5642 _SC_THREAD_PRIO_INHERIT,
5643
5644 _SC_THREAD_PRIO_PROTECT,
5645
5646 _SC_THREAD_PROCESS_SHARED,
5647
5648
5649 _SC_NPROCESSORS_CONF,
5650
5651 _SC_NPROCESSORS_ONLN,
5652
5653 _SC_PHYS_PAGES,
5654
5655 _SC_AVPHYS_PAGES,
5656
5657 _SC_ATEXIT_MAX,
5658
5659 _SC_PASS_MAX,
5660
5661
5662 _SC_XOPEN_VERSION,
5663
5664 _SC_XOPEN_XCU_VERSION,
5665
5666 _SC_XOPEN_UNIX,
5667
5668 _SC_XOPEN_CRYPT,
5669
5670 _SC_XOPEN_ENH_I18N,
5671
5672 _SC_XOPEN_SHM,
5673
5674
5675 _SC_2_CHAR_TERM,
5676
5677 _SC_2_C_VERSION,
5678
5679 _SC_2_UPE,
5680
5681
5682 _SC_XOPEN_XPG2,
5683
5684 _SC_XOPEN_XPG3,
5685
5686 _SC_XOPEN_XPG4,
5687
5688
5689 _SC_CHAR_BIT,
5690
5691 _SC_CHAR_MAX,
5692
5693 _SC_CHAR_MIN,
5694
5695 _SC_INT_MAX,
5696
5697 _SC_INT_MIN,
5698
5699 _SC_LONG_BIT,
5700
5701 _SC_WORD_BIT,
5702
5703 _SC_MB_LEN_MAX,
5704
5705 _SC_NZERO,
5706
5707 _SC_SSIZE_MAX,
5708
5709 _SC_SCHAR_MAX,
5710
5711 _SC_SCHAR_MIN,
5712
5713 _SC_SHRT_MAX,
5714
5715 _SC_SHRT_MIN,
5716
5717 _SC_UCHAR_MAX,
5718
5719 _SC_UINT_MAX,
5720
5721 _SC_ULONG_MAX,
5722
5723 _SC_USHRT_MAX,
5724
5725
5726 _SC_NL_ARGMAX,
5727
5728 _SC_NL_LANGMAX,
5729
5730 _SC_NL_MSGMAX,
5731
5732 _SC_NL_NMAX,
5733
5734 _SC_NL_SETMAX,
5735
5736 _SC_NL_TEXTMAX,
5737
5738
5739 _SC_XBS5_ILP32_OFF32,
5740
5741 _SC_XBS5_ILP32_OFFBIG,
5742
5743 _SC_XBS5_LP64_OFF64,
5744
5745 _SC_XBS5_LPBIG_OFFBIG,
5746
5747
5748 _SC_XOPEN_LEGACY,
5749
5750 _SC_XOPEN_REALTIME,
5751
5752 _SC_XOPEN_REALTIME_THREADS,
5753
5754
5755 _SC_ADVISORY_INFO,
5756
5757 _SC_BARRIERS,
5758
5759 _SC_BASE,
5760
5761 _SC_C_LANG_SUPPORT,
5762
5763 _SC_C_LANG_SUPPORT_R,
5764
5765 _SC_CLOCK_SELECTION,
5766
5767 _SC_CPUTIME,
5768
5769 _SC_THREAD_CPUTIME,
5770
5771 _SC_DEVICE_IO,
5772
5773 _SC_DEVICE_SPECIFIC,
5774
5775 _SC_DEVICE_SPECIFIC_R,
5776
5777 _SC_FD_MGMT,
5778
5779 _SC_FIFO,
5780
5781 _SC_PIPE,
5782
5783 _SC_FILE_ATTRIBUTES,
5784
5785 _SC_FILE_LOCKING,
5786
5787 _SC_FILE_SYSTEM,
5788
5789 _SC_MONOTONIC_CLOCK,
5790
5791 _SC_MULTI_PROCESS,
5792
5793 _SC_SINGLE_PROCESS,
5794
5795 _SC_NETWORKING,
5796
5797 _SC_READER_WRITER_LOCKS,
5798
5799 _SC_SPIN_LOCKS,
5800
5801 _SC_REGEXP,
5802
5803 _SC_REGEX_VERSION,
5804
5805 _SC_SHELL,
5806
5807 _SC_SIGNALS,
5808
5809 _SC_SPAWN,
5810
5811 _SC_SPORADIC_SERVER,
5812
5813 _SC_THREAD_SPORADIC_SERVER,
5814
5815 _SC_SYSTEM_DATABASE,
5816
5817 _SC_SYSTEM_DATABASE_R,
5818
5819 _SC_TIMEOUTS,
5820
5821 _SC_TYPED_MEMORY_OBJECTS,
5822
5823 _SC_USER_GROUPS,
5824
5825 _SC_USER_GROUPS_R,
5826
5827 _SC_2_PBS,
5828
5829 _SC_2_PBS_ACCOUNTING,
5830
5831 _SC_2_PBS_LOCATE,
5832
5833 _SC_2_PBS_MESSAGE,
5834
5835 _SC_2_PBS_TRACK,
5836
5837 _SC_SYMLOOP_MAX,
5838
5839 _SC_STREAMS,
5840
5841 _SC_2_PBS_CHECKPOINT,
5842
5843
5844 _SC_V6_ILP32_OFF32,
5845
5846 _SC_V6_ILP32_OFFBIG,
5847
5848 _SC_V6_LP64_OFF64,
5849
5850 _SC_V6_LPBIG_OFFBIG,
5851
5852
5853 _SC_HOST_NAME_MAX,
5854
5855 _SC_TRACE,
5856
5857 _SC_TRACE_EVENT_FILTER,
5858
5859 _SC_TRACE_INHERIT,
5860
5861 _SC_TRACE_LOG,
5862
5863
5864 _SC_LEVEL1_ICACHE_SIZE,
5865
5866 _SC_LEVEL1_ICACHE_ASSOC,
5867
5868 _SC_LEVEL1_ICACHE_LINESIZE,
5869
5870 _SC_LEVEL1_DCACHE_SIZE,
5871
5872 _SC_LEVEL1_DCACHE_ASSOC,
5873
5874 _SC_LEVEL1_DCACHE_LINESIZE,
5875
5876 _SC_LEVEL2_CACHE_SIZE,
5877
5878 _SC_LEVEL2_CACHE_ASSOC,
5879
5880 _SC_LEVEL2_CACHE_LINESIZE,
5881
5882 _SC_LEVEL3_CACHE_SIZE,
5883
5884 _SC_LEVEL3_CACHE_ASSOC,
5885
5886 _SC_LEVEL3_CACHE_LINESIZE,
5887
5888 _SC_LEVEL4_CACHE_SIZE,
5889
5890 _SC_LEVEL4_CACHE_ASSOC,
5891
5892 _SC_LEVEL4_CACHE_LINESIZE,
5893
5894
5895
5896 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
5897
5898 _SC_RAW_SOCKETS
5899
5900 };
5901
5902
5903enum
5904 {
5905 _CS_PATH,
5906
5907
5908 _CS_V6_WIDTH_RESTRICTED_ENVS,
5909
5910
5911 _CS_GNU_LIBC_VERSION,
5912
5913 _CS_GNU_LIBPTHREAD_VERSION,
5914
5915
5916 _CS_LFS_CFLAGS = 1000,
5917
5918 _CS_LFS_LDFLAGS,
5919
5920 _CS_LFS_LIBS,
5921
5922 _CS_LFS_LINTFLAGS,
5923
5924 _CS_LFS64_CFLAGS,
5925
5926 _CS_LFS64_LDFLAGS,
5927
5928 _CS_LFS64_LIBS,
5929
5930 _CS_LFS64_LINTFLAGS,
5931
5932
5933 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
5934
5935 _CS_XBS5_ILP32_OFF32_LDFLAGS,
5936
5937 _CS_XBS5_ILP32_OFF32_LIBS,
5938
5939 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
5940
5941 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
5942
5943 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
5944
5945 _CS_XBS5_ILP32_OFFBIG_LIBS,
5946
5947 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
5948
5949 _CS_XBS5_LP64_OFF64_CFLAGS,
5950
5951 _CS_XBS5_LP64_OFF64_LDFLAGS,
5952
5953 _CS_XBS5_LP64_OFF64_LIBS,
5954
5955 _CS_XBS5_LP64_OFF64_LINTFLAGS,
5956
5957 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
5958
5959 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
5960
5961 _CS_XBS5_LPBIG_OFFBIG_LIBS,
5962
5963 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
5964
5965
5966 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
5967
5968 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
5969
5970 _CS_POSIX_V6_ILP32_OFF32_LIBS,
5971
5972 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
5973
5974 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
5975
5976 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
5977
5978 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
5979
5980 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
5981
5982 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
5983
5984 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
5985
5986 _CS_POSIX_V6_LP64_OFF64_LIBS,
5987
5988 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
5989
5990 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
5991
5992 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
5993
5994 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
5995
5996 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
5997
5998 };
5999# 555 "/usr/include/unistd.h" 2 3 4
6000
6001
6002extern long int pathconf (__const char *__path, int __name)
6003 throw () __attribute__ ((__nonnull__ (1)));
6004
6005
6006extern long int fpathconf (int __fd, int __name) throw ();
6007
6008
6009extern long int sysconf (int __name) throw ();
6010
6011
6012
6013extern size_t confstr (int __name, char *__buf, size_t __len) throw ();
6014
6015
6016
6017
6018extern __pid_t getpid (void) throw ();
6019
6020
6021extern __pid_t getppid (void) throw ();
6022
6023
6024
6025
6026extern __pid_t getpgrp (void) throw ();
6027# 591 "/usr/include/unistd.h" 3 4
6028extern __pid_t __getpgid (__pid_t __pid) throw ();
6029
6030extern __pid_t getpgid (__pid_t __pid) throw ();
6031
6032
6033
6034
6035
6036
6037extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();
6038# 617 "/usr/include/unistd.h" 3 4
6039extern int setpgrp (void) throw ();
6040# 634 "/usr/include/unistd.h" 3 4
6041extern __pid_t setsid (void) throw ();
6042
6043
6044
6045extern __pid_t getsid (__pid_t __pid) throw ();
6046
6047
6048
6049extern __uid_t getuid (void) throw ();
6050
6051
6052extern __uid_t geteuid (void) throw ();
6053
6054
6055extern __gid_t getgid (void) throw ();
6056
6057
6058extern __gid_t getegid (void) throw ();
6059
6060
6061
6062
6063extern int getgroups (int __size, __gid_t __list[]) throw () ;
6064
6065
6066
6067extern int group_member (__gid_t __gid) throw ();
6068
6069
6070
6071
6072
6073
6074extern int setuid (__uid_t __uid) throw ();
6075
6076
6077
6078
6079extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();
6080
6081
6082
6083
6084extern int seteuid (__uid_t __uid) throw ();
6085
6086
6087
6088
6089
6090
6091extern int setgid (__gid_t __gid) throw ();
6092
6093
6094
6095
6096extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();
6097
6098
6099
6100
6101extern int setegid (__gid_t __gid) throw ();
6102
6103
6104
6105
6106
6107extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
6108 throw ();
6109
6110
6111
6112extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
6113 throw ();
6114
6115
6116
6117extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
6118 throw ();
6119
6120
6121
6122extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
6123 throw ();
6124
6125
6126
6127
6128
6129
6130extern __pid_t fork (void) throw ();
6131
6132
6133
6134
6135
6136
6137extern __pid_t vfork (void) throw ();
6138
6139
6140
6141
6142
6143extern char *ttyname (int __fd) throw ();
6144
6145
6146
6147extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
6148 throw () __attribute__ ((__nonnull__ (2))) ;
6149
6150
6151
6152extern int isatty (int __fd) throw ();
6153
6154
6155
6156
6157
6158extern int ttyslot (void) throw ();
6159
6160
6161
6162
6163extern int link (__const char *__from, __const char *__to)
6164 throw () __attribute__ ((__nonnull__ (1, 2))) ;
6165
6166
6167
6168
6169extern int linkat (int __fromfd, __const char *__from, int __tofd,
6170 __const char *__to, int __flags)
6171 throw () __attribute__ ((__nonnull__ (2, 4))) ;
6172
6173
6174
6175
6176extern int symlink (__const char *__from, __const char *__to)
6177 throw () __attribute__ ((__nonnull__ (1, 2))) ;
6178
6179
6180
6181
6182extern ssize_t readlink (__const char *__restrict __path,
6183 char *__restrict __buf, size_t __len)
6184 throw () __attribute__ ((__nonnull__ (1, 2))) ;
6185
6186
6187
6188
6189extern int symlinkat (__const char *__from, int __tofd,
6190 __const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) ;
6191
6192
6193extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
6194 char *__restrict __buf, size_t __len)
6195 throw () __attribute__ ((__nonnull__ (2, 3))) ;
6196
6197
6198
6199extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
6200
6201
6202
6203extern int unlinkat (int __fd, __const char *__name, int __flag)
6204 throw () __attribute__ ((__nonnull__ (2)));
6205
6206
6207
6208extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
6209
6210
6211
6212extern __pid_t tcgetpgrp (int __fd) throw ();
6213
6214
6215extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();
6216
6217
6218
6219
6220
6221
6222extern char *getlogin (void);
6223
6224
6225
6226
6227
6228
6229
6230extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
6231
6232
6233
6234
6235extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
6236# 837 "/usr/include/unistd.h" 3 4
6237# 1 "/usr/include/getopt.h" 1 3 4
6238# 50 "/usr/include/getopt.h" 3 4
6239extern "C" {
6240# 59 "/usr/include/getopt.h" 3 4
6241extern char *optarg;
6242# 73 "/usr/include/getopt.h" 3 4
6243extern int optind;
6244
6245
6246
6247
6248extern int opterr;
6249
6250
6251
6252extern int optopt;
6253# 152 "/usr/include/getopt.h" 3 4
6254extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
6255 throw ();
6256# 171 "/usr/include/getopt.h" 3 4
6257}
6258# 838 "/usr/include/unistd.h" 2 3 4
6259
6260
6261
6262
6263
6264
6265
6266extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1)));
6267
6268
6269
6270
6271
6272
6273extern int sethostname (__const char *__name, size_t __len)
6274 throw () __attribute__ ((__nonnull__ (1))) ;
6275
6276
6277
6278extern int sethostid (long int __id) throw () ;
6279
6280
6281
6282
6283
6284extern int getdomainname (char *__name, size_t __len)
6285 throw () __attribute__ ((__nonnull__ (1))) ;
6286extern int setdomainname (__const char *__name, size_t __len)
6287 throw () __attribute__ ((__nonnull__ (1))) ;
6288
6289
6290
6291
6292
6293extern int vhangup (void) throw ();
6294
6295
6296extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))) ;
6297
6298
6299
6300
6301
6302
6303
6304extern int profil (unsigned short int *__sample_buffer, size_t __size,
6305 size_t __offset, unsigned int __scale)
6306 throw () __attribute__ ((__nonnull__ (1)));
6307
6308
6309
6310
6311
6312extern int acct (__const char *__name) throw ();
6313
6314
6315
6316extern char *getusershell (void) throw ();
6317extern void endusershell (void) throw ();
6318extern void setusershell (void) throw ();
6319
6320
6321
6322
6323
6324extern int daemon (int __nochdir, int __noclose) throw () ;
6325
6326
6327
6328
6329
6330
6331extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
6332
6333
6334
6335extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
6336# 923 "/usr/include/unistd.h" 3 4
6337extern int fsync (int __fd);
6338
6339
6340
6341
6342
6343
6344extern long int gethostid (void);
6345
6346
6347extern void sync (void) throw ();
6348
6349
6350
6351
6352extern int getpagesize (void) throw () __attribute__ ((__const__));
6353
6354
6355
6356
6357extern int getdtablesize (void) throw ();
6358
6359
6360
6361
6362extern int truncate (__const char *__file, __off_t __length)
6363 throw () __attribute__ ((__nonnull__ (1))) ;
6364# 960 "/usr/include/unistd.h" 3 4
6365extern int truncate64 (__const char *__file, __off64_t __length)
6366 throw () __attribute__ ((__nonnull__ (1))) ;
6367# 970 "/usr/include/unistd.h" 3 4
6368extern int ftruncate (int __fd, __off_t __length) throw () ;
6369# 980 "/usr/include/unistd.h" 3 4
6370extern int ftruncate64 (int __fd, __off64_t __length) throw () ;
6371# 990 "/usr/include/unistd.h" 3 4
6372extern int brk (void *__addr) throw () ;
6373
6374
6375
6376
6377
6378extern void *sbrk (intptr_t __delta) throw ();
6379# 1011 "/usr/include/unistd.h" 3 4
6380extern long int syscall (long int __sysno, ...) throw ();
6381# 1034 "/usr/include/unistd.h" 3 4
6382extern int lockf (int __fd, int __cmd, __off_t __len) ;
6383# 1044 "/usr/include/unistd.h" 3 4
6384extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
6385# 1065 "/usr/include/unistd.h" 3 4
6386extern int fdatasync (int __fildes);
6387
6388
6389
6390
6391
6392
6393
6394extern char *crypt (__const char *__key, __const char *__salt)
6395 throw () __attribute__ ((__nonnull__ (1, 2)));
6396
6397
6398
6399extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1)));
6400
6401
6402
6403
6404
6405
6406extern void swab (__const void *__restrict __from, void *__restrict __to,
6407 ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
6408
6409
6410
6411
6412
6413
6414
6415extern char *ctermid (char *__s) throw ();
6416# 1103 "/usr/include/unistd.h" 3 4
6417}
6418# 45 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 2 3
6419
6420typedef pthread_key_t __gthread_key_t;
6421typedef pthread_once_t __gthread_once_t;
6422typedef pthread_mutex_t __gthread_mutex_t;
6423typedef pthread_mutex_t __gthread_recursive_mutex_t;
6424# 88 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
6425extern __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
6426extern __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
6427extern __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
6428extern __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
6429extern __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel")));
6430extern __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
6431extern __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
6432extern __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
6433extern __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
6434
6435
6436extern __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
6437extern __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
6438extern __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
6439extern __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
6440extern __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
6441# 145 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
6442static inline int
6443__gthread_active_p (void)
6444{
6445 static void *const __gthread_active_ptr
6446 = __extension__ (void *) &__gthrw_pthread_cancel;
6447 return __gthread_active_ptr != 0;
6448}
6449# 512 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
6450static inline int
6451__gthread_once (__gthread_once_t *once, void (*func) (void))
6452{
6453 if (__gthread_active_p ())
6454 return __gthrw_pthread_once (once, func);
6455 else
6456 return -1;
6457}
6458
6459static inline int
6460__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))
6461{
6462 return __gthrw_pthread_key_create (key, dtor);
6463}
6464
6465static inline int
6466__gthread_key_delete (__gthread_key_t key)
6467{
6468 return __gthrw_pthread_key_delete (key);
6469}
6470
6471static inline void *
6472__gthread_getspecific (__gthread_key_t key)
6473{
6474 return __gthrw_pthread_getspecific (key);
6475}
6476
6477static inline int
6478__gthread_setspecific (__gthread_key_t key, const void *ptr)
6479{
6480 return __gthrw_pthread_setspecific (key, ptr);
6481}
6482
6483static inline int
6484__gthread_mutex_lock (__gthread_mutex_t *mutex)
6485{
6486 if (__gthread_active_p ())
6487 return __gthrw_pthread_mutex_lock (mutex);
6488 else
6489 return 0;
6490}
6491
6492static inline int
6493__gthread_mutex_trylock (__gthread_mutex_t *mutex)
6494{
6495 if (__gthread_active_p ())
6496 return __gthrw_pthread_mutex_trylock (mutex);
6497 else
6498 return 0;
6499}
6500
6501static inline int
6502__gthread_mutex_unlock (__gthread_mutex_t *mutex)
6503{
6504 if (__gthread_active_p ())
6505 return __gthrw_pthread_mutex_unlock (mutex);
6506 else
6507 return 0;
6508}
6509# 594 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
6510static inline int
6511__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
6512{
6513 return __gthread_mutex_lock (mutex);
6514}
6515
6516static inline int
6517__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
6518{
6519 return __gthread_mutex_trylock (mutex);
6520}
6521
6522static inline int
6523__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
6524{
6525 return __gthread_mutex_unlock (mutex);
6526}
6527# 115 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr.h" 2 3
6528
6529
6530
6531
6532
6533
6534
6535#pragma GCC visibility pop
6536# 39 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++io.h" 2 3
6537
6538namespace std
6539{
6540 typedef __gthread_mutex_t __c_lock;
6541
6542
6543 typedef FILE __c_file;
6544}
6545# 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
6546# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cctype" 1 3
6547# 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cctype" 3
6548
6549# 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cctype" 3
6550#pragma GCC visibility push(default)
6551
6552
6553# 1 "/usr/include/ctype.h" 1 3 4
6554# 30 "/usr/include/ctype.h" 3 4
6555extern "C" {
6556# 48 "/usr/include/ctype.h" 3 4
6557enum
6558{
6559 _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
6560 _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
6561 _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
6562 _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
6563 _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
6564 _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
6565 _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
6566 _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
6567 _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
6568 _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
6569 _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
6570 _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
6571};
6572# 81 "/usr/include/ctype.h" 3 4
6573extern __const unsigned short int **__ctype_b_loc (void)
6574 __attribute__ ((__const));
6575extern __const __int32_t **__ctype_tolower_loc (void)
6576 __attribute__ ((__const));
6577extern __const __int32_t **__ctype_toupper_loc (void)
6578 __attribute__ ((__const));
6579# 96 "/usr/include/ctype.h" 3 4
6580
6581
6582
6583
6584
6585
6586extern int isalnum (int) throw ();
6587extern int isalpha (int) throw ();
6588extern int iscntrl (int) throw ();
6589extern int isdigit (int) throw ();
6590extern int islower (int) throw ();
6591extern int isgraph (int) throw ();
6592extern int isprint (int) throw ();
6593extern int ispunct (int) throw ();
6594extern int isspace (int) throw ();
6595extern int isupper (int) throw ();
6596extern int isxdigit (int) throw ();
6597
6598
6599
6600extern int tolower (int __c) throw ();
6601
6602
6603extern int toupper (int __c) throw ();
6604
6605
6606
6607
6608
6609
6610
6611
6612extern int isblank (int) throw ();
6613
6614
6615
6616
6617
6618
6619extern int isctype (int __c, int __mask) throw ();
6620
6621
6622
6623
6624
6625
6626extern int isascii (int __c) throw ();
6627
6628
6629
6630extern int toascii (int __c) throw ();
6631
6632
6633
6634extern int _toupper (int) throw ();
6635extern int _tolower (int) throw ();
6636# 247 "/usr/include/ctype.h" 3 4
6637extern int isalnum_l (int, __locale_t) throw ();
6638extern int isalpha_l (int, __locale_t) throw ();
6639extern int iscntrl_l (int, __locale_t) throw ();
6640extern int isdigit_l (int, __locale_t) throw ();
6641extern int islower_l (int, __locale_t) throw ();
6642extern int isgraph_l (int, __locale_t) throw ();
6643extern int isprint_l (int, __locale_t) throw ();
6644extern int ispunct_l (int, __locale_t) throw ();
6645extern int isspace_l (int, __locale_t) throw ();
6646extern int isupper_l (int, __locale_t) throw ();
6647extern int isxdigit_l (int, __locale_t) throw ();
6648
6649extern int isblank_l (int, __locale_t) throw ();
6650
6651
6652
6653extern int __tolower_l (int __c, __locale_t __l) throw ();
6654extern int tolower_l (int __c, __locale_t __l) throw ();
6655
6656
6657extern int __toupper_l (int __c, __locale_t __l) throw ();
6658extern int toupper_l (int __c, __locale_t __l) throw ();
6659# 323 "/usr/include/ctype.h" 3 4
6660}
6661# 53 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cctype" 2 3
6662# 69 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cctype" 3
6663namespace std
6664{
6665 using ::isalnum;
6666 using ::isalpha;
6667 using ::iscntrl;
6668 using ::isdigit;
6669 using ::isgraph;
6670 using ::islower;
6671 using ::isprint;
6672 using ::ispunct;
6673 using ::isspace;
6674 using ::isupper;
6675 using ::isxdigit;
6676 using ::tolower;
6677 using ::toupper;
6678}
6679
6680#pragma GCC visibility pop
6681# 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
6682# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stringfwd.h" 1 3
6683# 42 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stringfwd.h" 3
6684
6685# 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stringfwd.h" 3
6686
6687
6688
6689namespace std
6690{
6691 template<typename _Alloc>
6692 class allocator;
6693
6694 template<class _CharT>
6695 struct char_traits;
6696
6697 template<typename _CharT, typename _Traits = char_traits<_CharT>,
6698 typename _Alloc = allocator<_CharT> >
6699 class basic_string;
6700
6701 template<> struct char_traits<char>;
6702
6703 typedef basic_string<char> string;
6704
6705
6706 template<> struct char_traits<wchar_t>;
6707
6708 typedef basic_string<wchar_t> wstring;
6709
6710}
6711# 50 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
6712# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 1 3
6713# 44 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
6714
6715# 45 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
6716
6717# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 1 3
6718# 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
6719
6720# 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
6721#pragma GCC visibility push(default)
6722
6723
6724
6725# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ctime" 1 3
6726# 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ctime" 3
6727
6728# 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ctime" 3
6729#pragma GCC visibility push(default)
6730# 66 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ctime" 3
6731namespace std
6732{
6733 using ::clock_t;
6734 using ::time_t;
6735 using ::tm;
6736
6737 using ::clock;
6738 using ::difftime;
6739 using ::mktime;
6740 using ::time;
6741 using ::asctime;
6742 using ::ctime;
6743 using ::gmtime;
6744 using ::localtime;
6745 using ::strftime;
6746}
6747
6748#pragma GCC visibility pop
6749# 54 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 2 3
6750
6751
6752# 1 "/usr/include/wchar.h" 1 3 4
6753# 40 "/usr/include/wchar.h" 3 4
6754# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stdarg.h" 1 3 4
6755# 41 "/usr/include/wchar.h" 2 3 4
6756
6757
6758
6759
6760
6761
6762
6763# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
6764# 49 "/usr/include/wchar.h" 2 3 4
6765# 93 "/usr/include/wchar.h" 3 4
6766
6767
6768typedef __mbstate_t mbstate_t;
6769
6770
6771
6772# 118 "/usr/include/wchar.h" 3 4
6773extern "C" {
6774
6775
6776
6777
6778struct tm;
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788extern wchar_t *wcscpy (wchar_t *__restrict __dest,
6789 __const wchar_t *__restrict __src) throw ();
6790
6791extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
6792 __const wchar_t *__restrict __src, size_t __n)
6793 throw ();
6794
6795
6796extern wchar_t *wcscat (wchar_t *__restrict __dest,
6797 __const wchar_t *__restrict __src) throw ();
6798
6799extern wchar_t *wcsncat (wchar_t *__restrict __dest,
6800 __const wchar_t *__restrict __src, size_t __n)
6801 throw ();
6802
6803
6804extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
6805 throw () __attribute__ ((__pure__));
6806
6807extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
6808 throw () __attribute__ ((__pure__));
6809
6810
6811
6812
6813extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
6814
6815
6816extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
6817 size_t __n) throw ();
6818
6819
6820
6821
6822
6823extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
6824 __locale_t __loc) throw ();
6825
6826extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
6827 size_t __n, __locale_t __loc) throw ();
6828
6829
6830
6831
6832
6833extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
6834
6835
6836
6837extern size_t wcsxfrm (wchar_t *__restrict __s1,
6838 __const wchar_t *__restrict __s2, size_t __n) throw ();
6839
6840
6841
6842
6843
6844
6845
6846
6847extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,
6848 __locale_t __loc) throw ();
6849
6850
6851
6852
6853extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
6854 size_t __n, __locale_t __loc) throw ();
6855
6856
6857extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__));
6858
6859
6860
6861
6862extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
6863 throw () __attribute__ ((__pure__));
6864
6865extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
6866 throw () __attribute__ ((__pure__));
6867
6868
6869
6870
6871
6872extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
6873 throw () __attribute__ ((__pure__));
6874
6875
6876
6877
6878
6879extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
6880 throw () __attribute__ ((__pure__));
6881
6882
6883extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
6884 throw () __attribute__ ((__pure__));
6885
6886extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
6887 throw () __attribute__ ((__pure__));
6888
6889extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
6890 throw () __attribute__ ((__pure__));
6891
6892
6893extern wchar_t *wcstok (wchar_t *__restrict __s,
6894 __const wchar_t *__restrict __delim,
6895 wchar_t **__restrict __ptr) throw ();
6896
6897
6898extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__));
6899
6900
6901
6902
6903extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
6904 throw () __attribute__ ((__pure__));
6905
6906
6907
6908
6909extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
6910 throw () __attribute__ ((__pure__));
6911
6912
6913
6914
6915
6916extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)
6917 throw () __attribute__ ((__pure__));
6918
6919
6920extern int wmemcmp (__const wchar_t *__restrict __s1,
6921 __const wchar_t *__restrict __s2, size_t __n)
6922 throw () __attribute__ ((__pure__));
6923
6924
6925extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
6926 __const wchar_t *__restrict __s2, size_t __n) throw ();
6927
6928
6929
6930extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)
6931 throw ();
6932
6933
6934extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
6935
6936
6937
6938
6939
6940extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
6941 __const wchar_t *__restrict __s2, size_t __n)
6942 throw ();
6943
6944
6945
6946
6947
6948
6949extern wint_t btowc (int __c) throw ();
6950
6951
6952
6953extern int wctob (wint_t __c) throw ();
6954
6955
6956
6957extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__));
6958
6959
6960
6961extern size_t mbrtowc (wchar_t *__restrict __pwc,
6962 __const char *__restrict __s, size_t __n,
6963 mbstate_t *__p) throw ();
6964
6965
6966extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
6967 mbstate_t *__restrict __ps) throw ();
6968
6969
6970extern size_t __mbrlen (__const char *__restrict __s, size_t __n,
6971 mbstate_t *__restrict __ps) throw ();
6972extern size_t mbrlen (__const char *__restrict __s, size_t __n,
6973 mbstate_t *__restrict __ps) throw ();
6974
6975# 341 "/usr/include/wchar.h" 3 4
6976extern __inline size_t
6977mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw ()
6978
6979{ return (__ps != __null
6980 ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); }
6981
6982
6983
6984
6985
6986extern size_t mbsrtowcs (wchar_t *__restrict __dst,
6987 __const char **__restrict __src, size_t __len,
6988 mbstate_t *__restrict __ps) throw ();
6989
6990
6991
6992extern size_t wcsrtombs (char *__restrict __dst,
6993 __const wchar_t **__restrict __src, size_t __len,
6994 mbstate_t *__restrict __ps) throw ();
6995
6996
6997
6998
6999
7000
7001extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
7002 __const char **__restrict __src, size_t __nmc,
7003 size_t __len, mbstate_t *__restrict __ps) throw ();
7004
7005
7006
7007extern size_t wcsnrtombs (char *__restrict __dst,
7008 __const wchar_t **__restrict __src,
7009 size_t __nwc, size_t __len,
7010 mbstate_t *__restrict __ps) throw ();
7011
7012
7013
7014
7015
7016
7017extern int wcwidth (wchar_t __c) throw ();
7018
7019
7020
7021extern int wcswidth (__const wchar_t *__s, size_t __n) throw ();
7022
7023
7024
7025
7026
7027
7028extern double wcstod (__const wchar_t *__restrict __nptr,
7029 wchar_t **__restrict __endptr) throw ();
7030
7031
7032
7033extern float wcstof (__const wchar_t *__restrict __nptr,
7034 wchar_t **__restrict __endptr) throw ();
7035extern long double wcstold (__const wchar_t *__restrict __nptr,
7036 wchar_t **__restrict __endptr) throw ();
7037
7038
7039
7040
7041
7042extern long int wcstol (__const wchar_t *__restrict __nptr,
7043 wchar_t **__restrict __endptr, int __base) throw ();
7044
7045
7046
7047extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,
7048 wchar_t **__restrict __endptr, int __base)
7049 throw ();
7050
7051
7052
7053
7054__extension__
7055extern long long int wcstoll (__const wchar_t *__restrict __nptr,
7056 wchar_t **__restrict __endptr, int __base)
7057 throw ();
7058
7059
7060
7061__extension__
7062extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr,
7063 wchar_t **__restrict __endptr,
7064 int __base) throw ();
7065
7066
7067
7068
7069
7070
7071__extension__
7072extern long long int wcstoq (__const wchar_t *__restrict __nptr,
7073 wchar_t **__restrict __endptr, int __base)
7074 throw ();
7075
7076
7077
7078__extension__
7079extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr,
7080 wchar_t **__restrict __endptr,
7081 int __base) throw ();
7082# 467 "/usr/include/wchar.h" 3 4
7083extern long int wcstol_l (__const wchar_t *__restrict __nptr,
7084 wchar_t **__restrict __endptr, int __base,
7085 __locale_t __loc) throw ();
7086
7087extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr,
7088 wchar_t **__restrict __endptr,
7089 int __base, __locale_t __loc) throw ();
7090
7091__extension__
7092extern long long int wcstoll_l (__const wchar_t *__restrict __nptr,
7093 wchar_t **__restrict __endptr,
7094 int __base, __locale_t __loc) throw ();
7095
7096__extension__
7097extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr,
7098 wchar_t **__restrict __endptr,
7099 int __base, __locale_t __loc)
7100 throw ();
7101
7102extern double wcstod_l (__const wchar_t *__restrict __nptr,
7103 wchar_t **__restrict __endptr, __locale_t __loc)
7104 throw ();
7105
7106extern float wcstof_l (__const wchar_t *__restrict __nptr,
7107 wchar_t **__restrict __endptr, __locale_t __loc)
7108 throw ();
7109
7110extern long double wcstold_l (__const wchar_t *__restrict __nptr,
7111 wchar_t **__restrict __endptr,
7112 __locale_t __loc) throw ();
7113
7114
7115
7116
7117
7118extern double __wcstod_internal (__const wchar_t *__restrict __nptr,
7119 wchar_t **__restrict __endptr, int __group)
7120 throw ();
7121extern float __wcstof_internal (__const wchar_t *__restrict __nptr,
7122 wchar_t **__restrict __endptr, int __group)
7123 throw ();
7124extern long double __wcstold_internal (__const wchar_t *__restrict __nptr,
7125 wchar_t **__restrict __endptr,
7126 int __group) throw ();
7127
7128
7129
7130extern long int __wcstol_internal (__const wchar_t *__restrict __nptr,
7131 wchar_t **__restrict __endptr,
7132 int __base, int __group) throw ();
7133
7134
7135
7136
7137extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict __npt,
7138 wchar_t **__restrict __endptr,
7139 int __base, int __group) throw ();
7140
7141
7142
7143
7144__extension__
7145extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr,
7146 wchar_t **__restrict __endptr,
7147 int __base, int __group) throw ();
7148
7149
7150
7151
7152__extension__
7153extern unsigned long long int __wcstoull_internal (__const wchar_t *
7154 __restrict __nptr,
7155 wchar_t **
7156 __restrict __endptr,
7157 int __base,
7158 int __group) throw ();
7159
7160
7161
7162
7163
7164
7165
7166
7167extern __inline double
7168wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
7169
7170{ return __wcstod_internal (__nptr, __endptr, 0); }
7171extern __inline long int
7172wcstol (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
7173
7174{ return __wcstol_internal (__nptr, __endptr, __base, 0); }
7175extern __inline unsigned long int
7176wcstoul (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
7177
7178{ return __wcstoul_internal (__nptr, __endptr, __base, 0); }
7179
7180
7181
7182extern __inline float
7183wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
7184
7185{ return __wcstof_internal (__nptr, __endptr, 0); }
7186
7187extern __inline long double
7188wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
7189
7190{ return __wcstold_internal (__nptr, __endptr, 0); }
7191
7192__extension__
7193extern __inline long long int
7194wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
7195
7196{ return __wcstoll_internal (__nptr, __endptr, __base, 0); }
7197__extension__
7198extern __inline unsigned long long int
7199wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
7200
7201{ return __wcstoull_internal (__nptr, __endptr, __base, 0); }
7202
7203
7204
7205
7206
7207
7208
7209extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw ();
7210
7211
7212
7213extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
7214 throw ();
7215# 607 "/usr/include/wchar.h" 3 4
7216extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw ();
7217
7218
7219
7220
7221
7222
7223extern int fwide (__FILE *__fp, int __mode) throw ();
7224
7225
7226
7227
7228
7229
7230extern int fwprintf (__FILE *__restrict __stream,
7231 __const wchar_t *__restrict __format, ...)
7232 ;
7233
7234
7235
7236
7237extern int wprintf (__const wchar_t *__restrict __format, ...)
7238 ;
7239
7240extern int swprintf (wchar_t *__restrict __s, size_t __n,
7241 __const wchar_t *__restrict __format, ...)
7242 throw () ;
7243
7244
7245
7246
7247
7248extern int vfwprintf (__FILE *__restrict __s,
7249 __const wchar_t *__restrict __format,
7250 __gnuc_va_list __arg)
7251 ;
7252
7253
7254
7255
7256extern int vwprintf (__const wchar_t *__restrict __format,
7257 __gnuc_va_list __arg)
7258 ;
7259
7260
7261extern int vswprintf (wchar_t *__restrict __s, size_t __n,
7262 __const wchar_t *__restrict __format,
7263 __gnuc_va_list __arg)
7264 throw () ;
7265
7266
7267
7268
7269
7270
7271extern int fwscanf (__FILE *__restrict __stream,
7272 __const wchar_t *__restrict __format, ...)
7273 ;
7274
7275
7276
7277
7278extern int wscanf (__const wchar_t *__restrict __format, ...)
7279 ;
7280
7281extern int swscanf (__const wchar_t *__restrict __s,
7282 __const wchar_t *__restrict __format, ...)
7283 throw () ;
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295extern int vfwscanf (__FILE *__restrict __s,
7296 __const wchar_t *__restrict __format,
7297 __gnuc_va_list __arg)
7298 ;
7299
7300
7301
7302
7303extern int vwscanf (__const wchar_t *__restrict __format,
7304 __gnuc_va_list __arg)
7305 ;
7306
7307extern int vswscanf (__const wchar_t *__restrict __s,
7308 __const wchar_t *__restrict __format,
7309 __gnuc_va_list __arg)
7310 throw () ;
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321extern wint_t fgetwc (__FILE *__stream);
7322extern wint_t getwc (__FILE *__stream);
7323
7324
7325
7326
7327
7328extern wint_t getwchar (void);
7329
7330
7331
7332
7333
7334
7335extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
7336extern wint_t putwc (wchar_t __wc, __FILE *__stream);
7337
7338
7339
7340
7341
7342extern wint_t putwchar (wchar_t __wc);
7343
7344
7345
7346
7347
7348
7349
7350extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
7351 __FILE *__restrict __stream);
7352
7353
7354
7355
7356
7357extern int fputws (__const wchar_t *__restrict __ws,
7358 __FILE *__restrict __stream);
7359
7360
7361
7362
7363
7364
7365extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
7366
7367# 768 "/usr/include/wchar.h" 3 4
7368extern wint_t getwc_unlocked (__FILE *__stream);
7369extern wint_t getwchar_unlocked (void);
7370
7371
7372
7373
7374
7375
7376
7377extern wint_t fgetwc_unlocked (__FILE *__stream);
7378
7379
7380
7381
7382
7383
7384
7385extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
7386# 794 "/usr/include/wchar.h" 3 4
7387extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
7388extern wint_t putwchar_unlocked (wchar_t __wc);
7389# 804 "/usr/include/wchar.h" 3 4
7390extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
7391 __FILE *__restrict __stream);
7392
7393
7394
7395
7396
7397
7398
7399extern int fputws_unlocked (__const wchar_t *__restrict __ws,
7400 __FILE *__restrict __stream);
7401
7402
7403
7404
7405
7406
7407
7408extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
7409 __const wchar_t *__restrict __format,
7410 __const struct tm *__restrict __tp) throw ();
7411
7412
7413
7414
7415
7416
7417
7418extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
7419 __const wchar_t *__restrict __format,
7420 __const struct tm *__restrict __tp,
7421 __locale_t __loc) throw ();
7422# 858 "/usr/include/wchar.h" 3 4
7423}
7424# 57 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 2 3
7425# 71 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
7426namespace std
7427{
7428 using ::mbstate_t;
7429}
7430# 143 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
7431namespace std
7432{
7433 using ::wint_t;
7434
7435 using ::btowc;
7436 using ::fgetwc;
7437 using ::fgetws;
7438 using ::fputwc;
7439 using ::fputws;
7440 using ::fwide;
7441 using ::fwprintf;
7442 using ::fwscanf;
7443 using ::getwc;
7444 using ::getwchar;
7445 using ::mbrlen;
7446 using ::mbrtowc;
7447 using ::mbsinit;
7448 using ::mbsrtowcs;
7449 using ::putwc;
7450 using ::putwchar;
7451 using ::swprintf;
7452 using ::swscanf;
7453 using ::ungetwc;
7454 using ::vfwprintf;
7455
7456 using ::vfwscanf;
7457
7458 using ::vswprintf;
7459
7460 using ::vswscanf;
7461
7462 using ::vwprintf;
7463
7464 using ::vwscanf;
7465
7466 using ::wcrtomb;
7467 using ::wcscat;
7468 using ::wcscmp;
7469 using ::wcscoll;
7470 using ::wcscpy;
7471 using ::wcscspn;
7472
7473
7474
7475 using ::wcslen;
7476 using ::wcsncat;
7477 using ::wcsncmp;
7478 using ::wcsncpy;
7479 using ::wcsrtombs;
7480 using ::wcsspn;
7481 using ::wcstod;
7482
7483 using ::wcstof;
7484
7485 using ::wcstok;
7486 using ::wcstol;
7487 using ::wcstoul;
7488 using ::wcsxfrm;
7489 using ::wctob;
7490 using ::wmemcmp;
7491 using ::wmemcpy;
7492 using ::wmemmove;
7493 using ::wmemset;
7494 using ::wprintf;
7495 using ::wscanf;
7496
7497 using ::wcschr;
7498
7499 inline wchar_t*
7500 wcschr(wchar_t* __p, wchar_t __c)
7501 { return wcschr(const_cast<const wchar_t*>(__p), __c); }
7502
7503 using ::wcspbrk;
7504
7505 inline wchar_t*
7506 wcspbrk(wchar_t* __s1, const wchar_t* __s2)
7507 { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
7508
7509 using ::wcsrchr;
7510
7511 inline wchar_t*
7512 wcsrchr(wchar_t* __p, wchar_t __c)
7513 { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
7514
7515 using ::wcsstr;
7516
7517 inline wchar_t*
7518 wcsstr(wchar_t* __s1, const wchar_t* __s2)
7519 { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
7520
7521 using ::wmemchr;
7522
7523 inline wchar_t*
7524 wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
7525 { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
7526}
7527
7528
7529
7530
7531
7532
7533
7534namespace __gnu_cxx
7535{
7536
7537
7538
7539
7540
7541 using ::wcstold;
7542# 262 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
7543 using ::wcstoll;
7544 using ::wcstoull;
7545
7546}
7547
7548namespace std
7549{
7550 using __gnu_cxx::wcstold;
7551 using __gnu_cxx::wcstoll;
7552 using __gnu_cxx::wcstoull;
7553}
7554
7555
7556
7557
7558#pragma GCC visibility pop
7559# 47 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 2 3
7560
7561
7562# 1 "/usr/include/stdint.h" 1 3 4
7563# 28 "/usr/include/stdint.h" 3 4
7564# 1 "/usr/include/bits/wordsize.h" 1 3 4
7565# 29 "/usr/include/stdint.h" 2 3 4
7566# 49 "/usr/include/stdint.h" 3 4
7567typedef unsigned char uint8_t;
7568typedef unsigned short int uint16_t;
7569
7570typedef unsigned int uint32_t;
7571
7572
7573
7574
7575
7576__extension__
7577typedef unsigned long long int uint64_t;
7578
7579
7580
7581
7582
7583
7584typedef signed char int_least8_t;
7585typedef short int int_least16_t;
7586typedef int int_least32_t;
7587
7588
7589
7590__extension__
7591typedef long long int int_least64_t;
7592
7593
7594
7595typedef unsigned char uint_least8_t;
7596typedef unsigned short int uint_least16_t;
7597typedef unsigned int uint_least32_t;
7598
7599
7600
7601__extension__
7602typedef unsigned long long int uint_least64_t;
7603
7604
7605
7606
7607
7608
7609typedef signed char int_fast8_t;
7610
7611
7612
7613
7614
7615typedef int int_fast16_t;
7616typedef int int_fast32_t;
7617__extension__
7618typedef long long int int_fast64_t;
7619
7620
7621
7622typedef unsigned char uint_fast8_t;
7623
7624
7625
7626
7627
7628typedef unsigned int uint_fast16_t;
7629typedef unsigned int uint_fast32_t;
7630__extension__
7631typedef unsigned long long int uint_fast64_t;
7632# 129 "/usr/include/stdint.h" 3 4
7633typedef unsigned int uintptr_t;
7634# 138 "/usr/include/stdint.h" 3 4
7635__extension__
7636typedef long long int intmax_t;
7637__extension__
7638typedef unsigned long long int uintmax_t;
7639# 50 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 2 3
7640
7641
7642namespace std
7643{
7644# 72 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
7645 typedef int64_t streamoff;
7646
7647
7648
7649
7650
7651 typedef ptrdiff_t streamsize;
7652
7653 template<typename _StateT>
7654 class fpos;
7655# 94 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
7656 template<typename _StateT>
7657 class fpos
7658 {
7659 private:
7660 streamoff _M_off;
7661 _StateT _M_state;
7662
7663 public:
7664
7665
7666
7667
7668 fpos()
7669 : _M_off(0), _M_state() { }
7670# 116 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
7671 fpos(streamoff __off)
7672 : _M_off(__off), _M_state() { }
7673
7674
7675 operator streamoff() const { return _M_off; }
7676
7677
7678 void
7679 state(_StateT __st)
7680 { _M_state = __st; }
7681
7682
7683 _StateT
7684 state() const
7685 { return _M_state; }
7686
7687
7688
7689
7690
7691
7692 bool
7693 operator==(const fpos& __other) const
7694 { return _M_off == __other._M_off; }
7695
7696
7697 bool
7698 operator!=(const fpos& __other) const
7699 { return _M_off != __other._M_off; }
7700
7701
7702
7703
7704
7705 fpos&
7706 operator+=(streamoff __off)
7707 {
7708 _M_off += __off;
7709 return *this;
7710 }
7711
7712
7713
7714
7715
7716 fpos&
7717 operator-=(streamoff __off)
7718 {
7719 _M_off -= __off;
7720 return *this;
7721 }
7722
7723
7724
7725
7726
7727
7728
7729 fpos
7730 operator+(streamoff __off) const
7731 {
7732 fpos __pos(*this);
7733 __pos += __off;
7734 return __pos;
7735 }
7736
7737
7738
7739
7740
7741
7742
7743 fpos
7744 operator-(streamoff __off) const
7745 {
7746 fpos __pos(*this);
7747 __pos -= __off;
7748 return __pos;
7749 }
7750
7751
7752
7753
7754
7755
7756 streamoff
7757 operator-(const fpos& __other) const
7758 { return _M_off - __other._M_off; }
7759 };
7760
7761
7762
7763
7764
7765 typedef fpos<mbstate_t> streampos;
7766
7767 typedef fpos<mbstate_t> wstreampos;
7768}
7769# 51 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
7770# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/functexcept.h" 1 3
7771# 41 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/functexcept.h" 3
7772# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception_defines.h" 1 3
7773# 42 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/functexcept.h" 2 3
7774
7775namespace std
7776{
7777
7778 void
7779 __throw_bad_exception(void) __attribute__((__noreturn__));
7780
7781
7782 void
7783 __throw_bad_alloc(void) __attribute__((__noreturn__));
7784
7785
7786 void
7787 __throw_bad_cast(void) __attribute__((__noreturn__));
7788
7789 void
7790 __throw_bad_typeid(void) __attribute__((__noreturn__));
7791
7792
7793 void
7794 __throw_logic_error(const char*) __attribute__((__noreturn__));
7795
7796 void
7797 __throw_domain_error(const char*) __attribute__((__noreturn__));
7798
7799 void
7800 __throw_invalid_argument(const char*) __attribute__((__noreturn__));
7801
7802 void
7803 __throw_length_error(const char*) __attribute__((__noreturn__));
7804
7805 void
7806 __throw_out_of_range(const char*) __attribute__((__noreturn__));
7807
7808 void
7809 __throw_runtime_error(const char*) __attribute__((__noreturn__));
7810
7811 void
7812 __throw_range_error(const char*) __attribute__((__noreturn__));
7813
7814 void
7815 __throw_overflow_error(const char*) __attribute__((__noreturn__));
7816
7817 void
7818 __throw_underflow_error(const char*) __attribute__((__noreturn__));
7819
7820
7821 void
7822 __throw_ios_failure(const char*) __attribute__((__noreturn__));
7823}
7824# 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
7825
7826namespace std
7827{
7828 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7829 class basic_ios;
7830
7831 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7832 class basic_streambuf;
7833
7834 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7835 class basic_istream;
7836
7837 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7838 class basic_ostream;
7839
7840 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7841 class basic_iostream;
7842
7843 template<typename _CharT, typename _Traits = char_traits<_CharT>,
7844 typename _Alloc = allocator<_CharT> >
7845 class basic_stringbuf;
7846
7847 template<typename _CharT, typename _Traits = char_traits<_CharT>,
7848 typename _Alloc = allocator<_CharT> >
7849 class basic_istringstream;
7850
7851 template<typename _CharT, typename _Traits = char_traits<_CharT>,
7852 typename _Alloc = allocator<_CharT> >
7853 class basic_ostringstream;
7854
7855 template<typename _CharT, typename _Traits = char_traits<_CharT>,
7856 typename _Alloc = allocator<_CharT> >
7857 class basic_stringstream;
7858
7859 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7860 class basic_filebuf;
7861
7862 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7863 class basic_ifstream;
7864
7865 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7866 class basic_ofstream;
7867
7868 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7869 class basic_fstream;
7870
7871 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7872 class istreambuf_iterator;
7873
7874 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7875 class ostreambuf_iterator;
7876
7877
7878
7879 class ios_base;
7880# 136 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 3
7881 typedef basic_ios<char> ios;
7882 typedef basic_streambuf<char> streambuf;
7883 typedef basic_istream<char> istream;
7884 typedef basic_ostream<char> ostream;
7885 typedef basic_iostream<char> iostream;
7886 typedef basic_stringbuf<char> stringbuf;
7887 typedef basic_istringstream<char> istringstream;
7888 typedef basic_ostringstream<char> ostringstream;
7889 typedef basic_stringstream<char> stringstream;
7890 typedef basic_filebuf<char> filebuf;
7891 typedef basic_ifstream<char> ifstream;
7892 typedef basic_ofstream<char> ofstream;
7893 typedef basic_fstream<char> fstream;
7894
7895
7896 typedef basic_ios<wchar_t> wios;
7897 typedef basic_streambuf<wchar_t> wstreambuf;
7898 typedef basic_istream<wchar_t> wistream;
7899 typedef basic_ostream<wchar_t> wostream;
7900 typedef basic_iostream<wchar_t> wiostream;
7901 typedef basic_stringbuf<wchar_t> wstringbuf;
7902 typedef basic_istringstream<wchar_t> wistringstream;
7903 typedef basic_ostringstream<wchar_t> wostringstream;
7904 typedef basic_stringstream<wchar_t> wstringstream;
7905 typedef basic_filebuf<wchar_t> wfilebuf;
7906 typedef basic_ifstream<wchar_t> wifstream;
7907 typedef basic_ofstream<wchar_t> wofstream;
7908 typedef basic_fstream<wchar_t> wfstream;
7909
7910
7911}
7912
7913#pragma GCC visibility pop
7914# 70 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
7915# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_pair.h" 1 3
7916# 64 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_pair.h" 3
7917namespace std
7918{
7919
7920 template<class _T1, class _T2>
7921 struct pair
7922 {
7923 typedef _T1 first_type;
7924 typedef _T2 second_type;
7925
7926 _T1 first;
7927 _T2 second;
7928
7929
7930
7931
7932
7933 pair()
7934 : first(), second() { }
7935
7936
7937 pair(const _T1& __a, const _T2& __b)
7938 : first(__a), second(__b) { }
7939
7940
7941 template<class _U1, class _U2>
7942 pair(const pair<_U1, _U2>& __p)
7943 : first(__p.first), second(__p.second) { }
7944 };
7945
7946
7947 template<class _T1, class _T2>
7948 inline bool
7949 operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7950 { return __x.first == __y.first && __x.second == __y.second; }
7951
7952
7953 template<class _T1, class _T2>
7954 inline bool
7955 operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7956 { return __x.first < __y.first
7957 || (!(__y.first < __x.first) && __x.second < __y.second); }
7958
7959
7960 template<class _T1, class _T2>
7961 inline bool
7962 operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7963 { return !(__x == __y); }
7964
7965
7966 template<class _T1, class _T2>
7967 inline bool
7968 operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7969 { return __y < __x; }
7970
7971
7972 template<class _T1, class _T2>
7973 inline bool
7974 operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7975 { return !(__y < __x); }
7976
7977
7978 template<class _T1, class _T2>
7979 inline bool
7980 operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7981 { return !(__x < __y); }
7982# 142 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_pair.h" 3
7983 template<class _T1, class _T2>
7984 inline pair<_T1, _T2>
7985 make_pair(_T1 __x, _T2 __y)
7986 { return pair<_T1, _T2>(__x, __y); }
7987}
7988# 71 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
7989# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/cpp_type_traits.h" 1 3
7990# 41 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/cpp_type_traits.h" 3
7991
7992# 42 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/cpp_type_traits.h" 3
7993# 75 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/cpp_type_traits.h" 3
7994namespace __gnu_internal
7995{
7996 typedef char __one;
7997 typedef char __two[2];
7998
7999 template<typename _Tp>
8000 __one __test_type(int _Tp::*);
8001 template<typename _Tp>
8002 __two& __test_type(...);
8003}
8004
8005
8006namespace __gnu_cxx
8007{
8008 template<typename _Iterator, typename _Container>
8009 class __normal_iterator;
8010}
8011
8012struct __true_type { };
8013struct __false_type { };
8014
8015namespace std
8016{
8017 template<bool>
8018 struct __truth_type
8019 { typedef __false_type __type; };
8020
8021 template<>
8022 struct __truth_type<true>
8023 { typedef __true_type __type; };
8024
8025
8026
8027 template<class _Sp, class _Tp>
8028 struct __traitor
8029 {
8030 enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
8031 typedef typename __truth_type<__value>::__type __type;
8032 };
8033
8034
8035 template<typename, typename>
8036 struct __are_same
8037 {
8038 enum { __value = 0 };
8039 typedef __false_type __type;
8040 };
8041
8042 template<typename _Tp>
8043 struct __are_same<_Tp, _Tp>
8044 {
8045 enum { __value = 1 };
8046 typedef __true_type __type;
8047 };
8048
8049
8050 template<typename, bool>
8051 struct __enable_if
8052 {
8053 };
8054
8055 template<typename _Tp>
8056 struct __enable_if<_Tp, true>
8057 {
8058 typedef _Tp __type;
8059 };
8060
8061
8062 template<typename _Tp>
8063 struct __is_void
8064 {
8065 enum { __value = 0 };
8066 typedef __false_type __type;
8067 };
8068
8069 template<>
8070 struct __is_void<void>
8071 {
8072 enum { __value = 1 };
8073 typedef __true_type __type;
8074 };
8075
8076
8077
8078
8079 template<typename _Tp>
8080 struct __is_integer
8081 {
8082 enum { __value = 0 };
8083 typedef __false_type __type;
8084 };
8085
8086
8087
8088
8089 template<>
8090 struct __is_integer<bool>
8091 {
8092 enum { __value = 1 };
8093 typedef __true_type __type;
8094 };
8095
8096 template<>
8097 struct __is_integer<char>
8098 {
8099 enum { __value = 1 };
8100 typedef __true_type __type;
8101 };
8102
8103 template<>
8104 struct __is_integer<signed char>
8105 {
8106 enum { __value = 1 };
8107 typedef __true_type __type;
8108 };
8109
8110 template<>
8111 struct __is_integer<unsigned char>
8112 {
8113 enum { __value = 1 };
8114 typedef __true_type __type;
8115 };
8116
8117
8118 template<>
8119 struct __is_integer<wchar_t>
8120 {
8121 enum { __value = 1 };
8122 typedef __true_type __type;
8123 };
8124
8125
8126 template<>
8127 struct __is_integer<short>
8128 {
8129 enum { __value = 1 };
8130 typedef __true_type __type;
8131 };
8132
8133 template<>
8134 struct __is_integer<unsigned short>
8135 {
8136 enum { __value = 1 };
8137 typedef __true_type __type;
8138 };
8139
8140 template<>
8141 struct __is_integer<int>
8142 {
8143 enum { __value = 1 };
8144 typedef __true_type __type;
8145 };
8146
8147 template<>
8148 struct __is_integer<unsigned int>
8149 {
8150 enum { __value = 1 };
8151 typedef __true_type __type;
8152 };
8153
8154 template<>
8155 struct __is_integer<long>
8156 {
8157 enum { __value = 1 };
8158 typedef __true_type __type;
8159 };
8160
8161 template<>
8162 struct __is_integer<unsigned long>
8163 {
8164 enum { __value = 1 };
8165 typedef __true_type __type;
8166 };
8167
8168 template<>
8169 struct __is_integer<long long>
8170 {
8171 enum { __value = 1 };
8172 typedef __true_type __type;
8173 };
8174
8175 template<>
8176 struct __is_integer<unsigned long long>
8177 {
8178 enum { __value = 1 };
8179 typedef __true_type __type;
8180 };
8181
8182
8183
8184
8185 template<typename _Tp>
8186 struct __is_floating
8187 {
8188 enum { __value = 0 };
8189 typedef __false_type __type;
8190 };
8191
8192
8193 template<>
8194 struct __is_floating<float>
8195 {
8196 enum { __value = 1 };
8197 typedef __true_type __type;
8198 };
8199
8200 template<>
8201 struct __is_floating<double>
8202 {
8203 enum { __value = 1 };
8204 typedef __true_type __type;
8205 };
8206
8207 template<>
8208 struct __is_floating<long double>
8209 {
8210 enum { __value = 1 };
8211 typedef __true_type __type;
8212 };
8213
8214
8215
8216
8217 template<typename _Tp>
8218 struct __is_pointer
8219 {
8220 enum { __value = 0 };
8221 typedef __false_type __type;
8222 };
8223
8224 template<typename _Tp>
8225 struct __is_pointer<_Tp*>
8226 {
8227 enum { __value = 1 };
8228 typedef __true_type __type;
8229 };
8230
8231
8232
8233
8234 template<typename _Tp>
8235 struct __is_normal_iterator
8236 {
8237 enum { __value = 0 };
8238 typedef __false_type __type;
8239 };
8240
8241 template<typename _Iterator, typename _Container>
8242 struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
8243 _Container> >
8244 {
8245 enum { __value = 1 };
8246 typedef __true_type __type;
8247 };
8248
8249
8250
8251
8252 template<typename _Tp>
8253 struct __is_arithmetic
8254 : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
8255 { };
8256
8257
8258
8259
8260 template<typename _Tp>
8261 struct __is_fundamental
8262 : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> >
8263 { };
8264
8265
8266
8267
8268 template<typename _Tp>
8269 struct __is_scalar
8270 : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
8271 { };
8272
8273
8274
8275
8276 template<typename _Tp>
8277 struct __is_pod
8278 {
8279 enum
8280 {
8281 __value = (sizeof(__gnu_internal::__test_type<_Tp>(0))
8282 != sizeof(__gnu_internal::__one))
8283 };
8284 };
8285
8286
8287
8288
8289 template<typename _Tp>
8290 struct __is_empty
8291 {
8292 private:
8293 template<typename>
8294 struct __first { };
8295 template<typename _Up>
8296 struct __second
8297 : public _Up { };
8298
8299 public:
8300 enum
8301 {
8302 __value = sizeof(__first<_Tp>) == sizeof(__second<_Tp>)
8303 };
8304 };
8305
8306}
8307# 72 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
8308# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_types.h" 1 3
8309# 67 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
8310
8311# 68 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
8312
8313namespace std
8314{
8315# 80 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
8316 struct input_iterator_tag {};
8317
8318 struct output_iterator_tag {};
8319
8320 struct forward_iterator_tag : public input_iterator_tag {};
8321
8322
8323 struct bidirectional_iterator_tag : public forward_iterator_tag {};
8324
8325
8326 struct random_access_iterator_tag : public bidirectional_iterator_tag {};
8327# 104 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
8328 template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
8329 typename _Pointer = _Tp*, typename _Reference = _Tp&>
8330 struct iterator
8331 {
8332
8333 typedef _Category iterator_category;
8334
8335 typedef _Tp value_type;
8336
8337 typedef _Distance difference_type;
8338
8339 typedef _Pointer pointer;
8340
8341 typedef _Reference reference;
8342 };
8343
8344
8345
8346
8347
8348
8349
8350 template<typename _Iterator>
8351 struct iterator_traits
8352 {
8353 typedef typename _Iterator::iterator_category iterator_category;
8354 typedef typename _Iterator::value_type value_type;
8355 typedef typename _Iterator::difference_type difference_type;
8356 typedef typename _Iterator::pointer pointer;
8357 typedef typename _Iterator::reference reference;
8358 };
8359
8360 template<typename _Tp>
8361 struct iterator_traits<_Tp*>
8362 {
8363 typedef random_access_iterator_tag iterator_category;
8364 typedef _Tp value_type;
8365 typedef ptrdiff_t difference_type;
8366 typedef _Tp* pointer;
8367 typedef _Tp& reference;
8368 };
8369
8370 template<typename _Tp>
8371 struct iterator_traits<const _Tp*>
8372 {
8373 typedef random_access_iterator_tag iterator_category;
8374 typedef _Tp value_type;
8375 typedef ptrdiff_t difference_type;
8376 typedef const _Tp* pointer;
8377 typedef const _Tp& reference;
8378 };
8379
8380
8381
8382
8383
8384
8385
8386 template<typename _Iter>
8387 inline typename iterator_traits<_Iter>::iterator_category
8388 __iterator_category(const _Iter&)
8389 { return typename iterator_traits<_Iter>::iterator_category(); }
8390
8391}
8392# 73 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
8393# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 1 3
8394# 67 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8395
8396# 68 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8397# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/concept_check.h" 1 3
8398# 38 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/concept_check.h" 3
8399
8400# 39 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/concept_check.h" 3
8401# 69 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 2 3
8402
8403namespace std
8404{
8405 template<typename _InputIterator>
8406 inline typename iterator_traits<_InputIterator>::difference_type
8407 __distance(_InputIterator __first, _InputIterator __last,
8408 input_iterator_tag)
8409 {
8410
8411
8412
8413 typename iterator_traits<_InputIterator>::difference_type __n = 0;
8414 while (__first != __last)
8415 {
8416 ++__first;
8417 ++__n;
8418 }
8419 return __n;
8420 }
8421
8422 template<typename _RandomAccessIterator>
8423 inline typename iterator_traits<_RandomAccessIterator>::difference_type
8424 __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
8425 random_access_iterator_tag)
8426 {
8427
8428
8429
8430 return __last - __first;
8431 }
8432# 112 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8433 template<typename _InputIterator>
8434 inline typename iterator_traits<_InputIterator>::difference_type
8435 distance(_InputIterator __first, _InputIterator __last)
8436 {
8437
8438 return std::__distance(__first, __last,
8439 std::__iterator_category(__first));
8440 }
8441
8442 template<typename _InputIterator, typename _Distance>
8443 inline void
8444 __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
8445 {
8446
8447
8448 while (__n--)
8449 ++__i;
8450 }
8451
8452 template<typename _BidirectionalIterator, typename _Distance>
8453 inline void
8454 __advance(_BidirectionalIterator& __i, _Distance __n,
8455 bidirectional_iterator_tag)
8456 {
8457
8458
8459
8460 if (__n > 0)
8461 while (__n--)
8462 ++__i;
8463 else
8464 while (__n++)
8465 --__i;
8466 }
8467
8468 template<typename _RandomAccessIterator, typename _Distance>
8469 inline void
8470 __advance(_RandomAccessIterator& __i, _Distance __n,
8471 random_access_iterator_tag)
8472 {
8473
8474
8475
8476 __i += __n;
8477 }
8478# 170 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8479 template<typename _InputIterator, typename _Distance>
8480 inline void
8481 advance(_InputIterator& __i, _Distance __n)
8482 {
8483
8484 std::__advance(__i, __n, std::__iterator_category(__i));
8485 }
8486}
8487# 74 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
8488# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 1 3
8489# 70 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8490namespace std
8491{
8492# 91 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8493 template<typename _Iterator>
8494 class reverse_iterator
8495 : public iterator<typename iterator_traits<_Iterator>::iterator_category,
8496 typename iterator_traits<_Iterator>::value_type,
8497 typename iterator_traits<_Iterator>::difference_type,
8498 typename iterator_traits<_Iterator>::pointer,
8499 typename iterator_traits<_Iterator>::reference>
8500 {
8501 protected:
8502 _Iterator current;
8503
8504 public:
8505 typedef _Iterator iterator_type;
8506 typedef typename iterator_traits<_Iterator>::difference_type
8507 difference_type;
8508 typedef typename iterator_traits<_Iterator>::reference reference;
8509 typedef typename iterator_traits<_Iterator>::pointer pointer;
8510
8511 public:
8512
8513
8514
8515
8516
8517
8518 reverse_iterator() : current() { }
8519
8520
8521
8522
8523 explicit
8524 reverse_iterator(iterator_type __x) : current(__x) { }
8525
8526
8527
8528
8529 reverse_iterator(const reverse_iterator& __x)
8530 : current(__x.current) { }
8531
8532
8533
8534
8535
8536 template<typename _Iter>
8537 reverse_iterator(const reverse_iterator<_Iter>& __x)
8538 : current(__x.base()) { }
8539
8540
8541
8542
8543 iterator_type
8544 base() const
8545 { return current; }
8546
8547
8548
8549
8550
8551
8552 reference
8553 operator*() const
8554 {
8555 _Iterator __tmp = current;
8556 return *--__tmp;
8557 }
8558
8559
8560
8561
8562
8563
8564 pointer
8565 operator->() const
8566 { return &(operator*()); }
8567
8568
8569
8570
8571
8572
8573 reverse_iterator&
8574 operator++()
8575 {
8576 --current;
8577 return *this;
8578 }
8579
8580
8581
8582
8583
8584
8585 reverse_iterator
8586 operator++(int)
8587 {
8588 reverse_iterator __tmp = *this;
8589 --current;
8590 return __tmp;
8591 }
8592
8593
8594
8595
8596
8597
8598 reverse_iterator&
8599 operator--()
8600 {
8601 ++current;
8602 return *this;
8603 }
8604
8605
8606
8607
8608
8609
8610 reverse_iterator
8611 operator--(int)
8612 {
8613 reverse_iterator __tmp = *this;
8614 ++current;
8615 return __tmp;
8616 }
8617
8618
8619
8620
8621
8622
8623 reverse_iterator
8624 operator+(difference_type __n) const
8625 { return reverse_iterator(current - __n); }
8626
8627
8628
8629
8630
8631
8632 reverse_iterator&
8633 operator+=(difference_type __n)
8634 {
8635 current -= __n;
8636 return *this;
8637 }
8638
8639
8640
8641
8642
8643
8644 reverse_iterator
8645 operator-(difference_type __n) const
8646 { return reverse_iterator(current + __n); }
8647
8648
8649
8650
8651
8652
8653 reverse_iterator&
8654 operator-=(difference_type __n)
8655 {
8656 current += __n;
8657 return *this;
8658 }
8659
8660
8661
8662
8663
8664
8665 reference
8666 operator[](difference_type __n) const
8667 { return *(*this + __n); }
8668 };
8669# 278 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8670 template<typename _Iterator>
8671 inline bool
8672 operator==(const reverse_iterator<_Iterator>& __x,
8673 const reverse_iterator<_Iterator>& __y)
8674 { return __x.base() == __y.base(); }
8675
8676 template<typename _Iterator>
8677 inline bool
8678 operator<(const reverse_iterator<_Iterator>& __x,
8679 const reverse_iterator<_Iterator>& __y)
8680 { return __y.base() < __x.base(); }
8681
8682 template<typename _Iterator>
8683 inline bool
8684 operator!=(const reverse_iterator<_Iterator>& __x,
8685 const reverse_iterator<_Iterator>& __y)
8686 { return !(__x == __y); }
8687
8688 template<typename _Iterator>
8689 inline bool
8690 operator>(const reverse_iterator<_Iterator>& __x,
8691 const reverse_iterator<_Iterator>& __y)
8692 { return __y < __x; }
8693
8694 template<typename _Iterator>
8695 inline bool
8696 operator<=(const reverse_iterator<_Iterator>& __x,
8697 const reverse_iterator<_Iterator>& __y)
8698 { return !(__y < __x); }
8699
8700 template<typename _Iterator>
8701 inline bool
8702 operator>=(const reverse_iterator<_Iterator>& __x,
8703 const reverse_iterator<_Iterator>& __y)
8704 { return !(__x < __y); }
8705
8706 template<typename _Iterator>
8707 inline typename reverse_iterator<_Iterator>::difference_type
8708 operator-(const reverse_iterator<_Iterator>& __x,
8709 const reverse_iterator<_Iterator>& __y)
8710 { return __y.base() - __x.base(); }
8711
8712 template<typename _Iterator>
8713 inline reverse_iterator<_Iterator>
8714 operator+(typename reverse_iterator<_Iterator>::difference_type __n,
8715 const reverse_iterator<_Iterator>& __x)
8716 { return reverse_iterator<_Iterator>(__x.base() - __n); }
8717
8718
8719
8720 template<typename _IteratorL, typename _IteratorR>
8721 inline bool
8722 operator==(const reverse_iterator<_IteratorL>& __x,
8723 const reverse_iterator<_IteratorR>& __y)
8724 { return __x.base() == __y.base(); }
8725
8726 template<typename _IteratorL, typename _IteratorR>
8727 inline bool
8728 operator<(const reverse_iterator<_IteratorL>& __x,
8729 const reverse_iterator<_IteratorR>& __y)
8730 { return __y.base() < __x.base(); }
8731
8732 template<typename _IteratorL, typename _IteratorR>
8733 inline bool
8734 operator!=(const reverse_iterator<_IteratorL>& __x,
8735 const reverse_iterator<_IteratorR>& __y)
8736 { return !(__x == __y); }
8737
8738 template<typename _IteratorL, typename _IteratorR>
8739 inline bool
8740 operator>(const reverse_iterator<_IteratorL>& __x,
8741 const reverse_iterator<_IteratorR>& __y)
8742 { return __y < __x; }
8743
8744 template<typename _IteratorL, typename _IteratorR>
8745 inline bool
8746 operator<=(const reverse_iterator<_IteratorL>& __x,
8747 const reverse_iterator<_IteratorR>& __y)
8748 { return !(__y < __x); }
8749
8750 template<typename _IteratorL, typename _IteratorR>
8751 inline bool
8752 operator>=(const reverse_iterator<_IteratorL>& __x,
8753 const reverse_iterator<_IteratorR>& __y)
8754 { return !(__x < __y); }
8755
8756 template<typename _IteratorL, typename _IteratorR>
8757 inline typename reverse_iterator<_IteratorL>::difference_type
8758 operator-(const reverse_iterator<_IteratorL>& __x,
8759 const reverse_iterator<_IteratorR>& __y)
8760 { return __y.base() - __x.base(); }
8761# 382 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8762 template<typename _Container>
8763 class back_insert_iterator
8764 : public iterator<output_iterator_tag, void, void, void, void>
8765 {
8766 protected:
8767 _Container* container;
8768
8769 public:
8770
8771 typedef _Container container_type;
8772
8773
8774 explicit
8775 back_insert_iterator(_Container& __x) : container(&__x) { }
8776# 408 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8777 back_insert_iterator&
8778 operator=(typename _Container::const_reference __value)
8779 {
8780 container->push_back(__value);
8781 return *this;
8782 }
8783
8784
8785 back_insert_iterator&
8786 operator*()
8787 { return *this; }
8788
8789
8790 back_insert_iterator&
8791 operator++()
8792 { return *this; }
8793
8794
8795 back_insert_iterator
8796 operator++(int)
8797 { return *this; }
8798 };
8799# 442 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8800 template<typename _Container>
8801 inline back_insert_iterator<_Container>
8802 back_inserter(_Container& __x)
8803 { return back_insert_iterator<_Container>(__x); }
8804# 457 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8805 template<typename _Container>
8806 class front_insert_iterator
8807 : public iterator<output_iterator_tag, void, void, void, void>
8808 {
8809 protected:
8810 _Container* container;
8811
8812 public:
8813
8814 typedef _Container container_type;
8815
8816
8817 explicit front_insert_iterator(_Container& __x) : container(&__x) { }
8818# 482 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8819 front_insert_iterator&
8820 operator=(typename _Container::const_reference __value)
8821 {
8822 container->push_front(__value);
8823 return *this;
8824 }
8825
8826
8827 front_insert_iterator&
8828 operator*()
8829 { return *this; }
8830
8831
8832 front_insert_iterator&
8833 operator++()
8834 { return *this; }
8835
8836
8837 front_insert_iterator
8838 operator++(int)
8839 { return *this; }
8840 };
8841# 516 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8842 template<typename _Container>
8843 inline front_insert_iterator<_Container>
8844 front_inserter(_Container& __x)
8845 { return front_insert_iterator<_Container>(__x); }
8846# 535 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8847 template<typename _Container>
8848 class insert_iterator
8849 : public iterator<output_iterator_tag, void, void, void, void>
8850 {
8851 protected:
8852 _Container* container;
8853 typename _Container::iterator iter;
8854
8855 public:
8856
8857 typedef _Container container_type;
8858
8859
8860
8861
8862
8863 insert_iterator(_Container& __x, typename _Container::iterator __i)
8864 : container(&__x), iter(__i) {}
8865# 577 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8866 insert_iterator&
8867 operator=(const typename _Container::const_reference __value)
8868 {
8869 iter = container->insert(iter, __value);
8870 ++iter;
8871 return *this;
8872 }
8873
8874
8875 insert_iterator&
8876 operator*()
8877 { return *this; }
8878
8879
8880 insert_iterator&
8881 operator++()
8882 { return *this; }
8883
8884
8885 insert_iterator&
8886 operator++(int)
8887 { return *this; }
8888 };
8889# 612 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8890 template<typename _Container, typename _Iterator>
8891 inline insert_iterator<_Container>
8892 inserter(_Container& __x, _Iterator __i)
8893 {
8894 return insert_iterator<_Container>(__x,
8895 typename _Container::iterator(__i));
8896 }
8897}
8898
8899namespace __gnu_cxx
8900{
8901
8902
8903
8904
8905
8906
8907
8908 using std::iterator_traits;
8909 using std::iterator;
8910 template<typename _Iterator, typename _Container>
8911 class __normal_iterator
8912 {
8913 protected:
8914 _Iterator _M_current;
8915
8916 public:
8917 typedef typename iterator_traits<_Iterator>::iterator_category
8918 iterator_category;
8919 typedef typename iterator_traits<_Iterator>::value_type value_type;
8920 typedef typename iterator_traits<_Iterator>::difference_type
8921 difference_type;
8922 typedef typename iterator_traits<_Iterator>::reference reference;
8923 typedef typename iterator_traits<_Iterator>::pointer pointer;
8924
8925 __normal_iterator() : _M_current(_Iterator()) { }
8926
8927 explicit
8928 __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
8929
8930
8931 template<typename _Iter>
8932 __normal_iterator(const __normal_iterator<_Iter,
8933 typename std::__enable_if<_Container,
8934 (std::__are_same<_Iter,
8935 typename _Container::pointer>::__value)
8936 >::__type>& __i)
8937 : _M_current(__i.base()) { }
8938
8939
8940 reference
8941 operator*() const
8942 { return *_M_current; }
8943
8944 pointer
8945 operator->() const
8946 { return _M_current; }
8947
8948 __normal_iterator&
8949 operator++()
8950 {
8951 ++_M_current;
8952 return *this;
8953 }
8954
8955 __normal_iterator
8956 operator++(int)
8957 { return __normal_iterator(_M_current++); }
8958
8959
8960 __normal_iterator&
8961 operator--()
8962 {
8963 --_M_current;
8964 return *this;
8965 }
8966
8967 __normal_iterator
8968 operator--(int)
8969 { return __normal_iterator(_M_current--); }
8970
8971
8972 reference
8973 operator[](const difference_type& __n) const
8974 { return _M_current[__n]; }
8975
8976 __normal_iterator&
8977 operator+=(const difference_type& __n)
8978 { _M_current += __n; return *this; }
8979
8980 __normal_iterator
8981 operator+(const difference_type& __n) const
8982 { return __normal_iterator(_M_current + __n); }
8983
8984 __normal_iterator&
8985 operator-=(const difference_type& __n)
8986 { _M_current -= __n; return *this; }
8987
8988 __normal_iterator
8989 operator-(const difference_type& __n) const
8990 { return __normal_iterator(_M_current - __n); }
8991
8992 const _Iterator&
8993 base() const
8994 { return _M_current; }
8995 };
8996# 728 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8997 template<typename _IteratorL, typename _IteratorR, typename _Container>
8998 inline bool
8999 operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
9000 const __normal_iterator<_IteratorR, _Container>& __rhs)
9001 { return __lhs.base() == __rhs.base(); }
9002
9003 template<typename _Iterator, typename _Container>
9004 inline bool
9005 operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
9006 const __normal_iterator<_Iterator, _Container>& __rhs)
9007 { return __lhs.base() == __rhs.base(); }
9008
9009 template<typename _IteratorL, typename _IteratorR, typename _Container>
9010 inline bool
9011 operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9012 const __normal_iterator<_IteratorR, _Container>& __rhs)
9013 { return __lhs.base() != __rhs.base(); }
9014
9015 template<typename _Iterator, typename _Container>
9016 inline bool
9017 operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
9018 const __normal_iterator<_Iterator, _Container>& __rhs)
9019 { return __lhs.base() != __rhs.base(); }
9020
9021
9022 template<typename _IteratorL, typename _IteratorR, typename _Container>
9023 inline bool
9024 operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
9025 const __normal_iterator<_IteratorR, _Container>& __rhs)
9026 { return __lhs.base() < __rhs.base(); }
9027
9028 template<typename _Iterator, typename _Container>
9029 inline bool
9030 operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
9031 const __normal_iterator<_Iterator, _Container>& __rhs)
9032 { return __lhs.base() < __rhs.base(); }
9033
9034 template<typename _IteratorL, typename _IteratorR, typename _Container>
9035 inline bool
9036 operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
9037 const __normal_iterator<_IteratorR, _Container>& __rhs)
9038 { return __lhs.base() > __rhs.base(); }
9039
9040 template<typename _Iterator, typename _Container>
9041 inline bool
9042 operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
9043 const __normal_iterator<_Iterator, _Container>& __rhs)
9044 { return __lhs.base() > __rhs.base(); }
9045
9046 template<typename _IteratorL, typename _IteratorR, typename _Container>
9047 inline bool
9048 operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9049 const __normal_iterator<_IteratorR, _Container>& __rhs)
9050 { return __lhs.base() <= __rhs.base(); }
9051
9052 template<typename _Iterator, typename _Container>
9053 inline bool
9054 operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
9055 const __normal_iterator<_Iterator, _Container>& __rhs)
9056 { return __lhs.base() <= __rhs.base(); }
9057
9058 template<typename _IteratorL, typename _IteratorR, typename _Container>
9059 inline bool
9060 operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9061 const __normal_iterator<_IteratorR, _Container>& __rhs)
9062 { return __lhs.base() >= __rhs.base(); }
9063
9064 template<typename _Iterator, typename _Container>
9065 inline bool
9066 operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
9067 const __normal_iterator<_Iterator, _Container>& __rhs)
9068 { return __lhs.base() >= __rhs.base(); }
9069
9070
9071
9072
9073
9074 template<typename _IteratorL, typename _IteratorR, typename _Container>
9075 inline typename __normal_iterator<_IteratorL, _Container>::difference_type
9076 operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
9077 const __normal_iterator<_IteratorR, _Container>& __rhs)
9078 { return __lhs.base() - __rhs.base(); }
9079
9080 template<typename _Iterator, typename _Container>
9081 inline __normal_iterator<_Iterator, _Container>
9082 operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
9083 __n, const __normal_iterator<_Iterator, _Container>& __i)
9084 { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
9085}
9086# 75 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
9087
9088# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/debug/debug.h" 1 3
9089# 77 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
9090
9091namespace std
9092{
9093# 90 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9094 template<typename _Tp>
9095 inline void
9096 swap(_Tp& __a, _Tp& __b)
9097 {
9098
9099
9100
9101 _Tp __tmp = __a;
9102 __a = __b;
9103 __b = __tmp;
9104 }
9105
9106
9107
9108
9109 template<bool _BoolType>
9110 struct __iter_swap
9111 {
9112 template<typename _ForwardIterator1, typename _ForwardIterator2>
9113 static void
9114 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
9115 {
9116 typedef typename iterator_traits<_ForwardIterator1>::value_type
9117 _ValueType1;
9118 _ValueType1 __tmp = *__a;
9119 *__a = *__b;
9120 *__b = __tmp;
9121 }
9122 };
9123
9124 template<>
9125 struct __iter_swap<true>
9126 {
9127 template<typename _ForwardIterator1, typename _ForwardIterator2>
9128 static void
9129 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
9130 {
9131 swap(*__a, *__b);
9132 }
9133 };
9134# 140 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9135 template<typename _ForwardIterator1, typename _ForwardIterator2>
9136 inline void
9137 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
9138 {
9139 typedef typename iterator_traits<_ForwardIterator1>::value_type
9140 _ValueType1;
9141 typedef typename iterator_traits<_ForwardIterator2>::value_type
9142 _ValueType2;
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154 typedef typename iterator_traits<_ForwardIterator1>::reference
9155 _ReferenceType1;
9156 typedef typename iterator_traits<_ForwardIterator2>::reference
9157 _ReferenceType2;
9158 std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value &&
9159 __are_same<_ValueType1 &, _ReferenceType1>::__value &&
9160 __are_same<_ValueType2 &, _ReferenceType2>::__value>::
9161 iter_swap(__a, __b);
9162 }
9163# 182 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9164 template<typename _Tp>
9165 inline const _Tp&
9166 min(const _Tp& __a, const _Tp& __b)
9167 {
9168
9169
9170
9171 if (__b < __a)
9172 return __b;
9173 return __a;
9174 }
9175# 204 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9176 template<typename _Tp>
9177 inline const _Tp&
9178 max(const _Tp& __a, const _Tp& __b)
9179 {
9180
9181
9182
9183 if (__a < __b)
9184 return __b;
9185 return __a;
9186 }
9187# 226 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9188 template<typename _Tp, typename _Compare>
9189 inline const _Tp&
9190 min(const _Tp& __a, const _Tp& __b, _Compare __comp)
9191 {
9192
9193 if (__comp(__b, __a))
9194 return __b;
9195 return __a;
9196 }
9197# 246 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9198 template<typename _Tp, typename _Compare>
9199 inline const _Tp&
9200 max(const _Tp& __a, const _Tp& __b, _Compare __comp)
9201 {
9202
9203 if (__comp(__a, __b))
9204 return __b;
9205 return __a;
9206 }
9207
9208
9209
9210
9211
9212
9213
9214 template<bool, typename>
9215 struct __copy
9216 {
9217 template<typename _II, typename _OI>
9218 static _OI
9219 copy(_II __first, _II __last, _OI __result)
9220 {
9221 for (; __first != __last; ++__result, ++__first)
9222 *__result = *__first;
9223 return __result;
9224 }
9225 };
9226
9227 template<bool _BoolType>
9228 struct __copy<_BoolType, random_access_iterator_tag>
9229 {
9230 template<typename _II, typename _OI>
9231 static _OI
9232 copy(_II __first, _II __last, _OI __result)
9233 {
9234 typedef typename iterator_traits<_II>::difference_type _Distance;
9235 for(_Distance __n = __last - __first; __n > 0; --__n)
9236 {
9237 *__result = *__first;
9238 ++__first;
9239 ++__result;
9240 }
9241 return __result;
9242 }
9243 };
9244
9245 template<>
9246 struct __copy<true, random_access_iterator_tag>
9247 {
9248 template<typename _Tp>
9249 static _Tp*
9250 copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
9251 {
9252 std::memmove(__result, __first, sizeof(_Tp) * (__last - __first));
9253 return __result + (__last - __first);
9254 }
9255 };
9256
9257 template<typename _II, typename _OI>
9258 inline _OI
9259 __copy_aux(_II __first, _II __last, _OI __result)
9260 {
9261 typedef typename iterator_traits<_II>::value_type _ValueTypeI;
9262 typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
9263 typedef typename iterator_traits<_II>::iterator_category _Category;
9264 const bool __simple = (__is_scalar<_ValueTypeI>::__value
9265 && __is_pointer<_II>::__value
9266 && __is_pointer<_OI>::__value
9267 && __are_same<_ValueTypeI, _ValueTypeO>::__value);
9268
9269 return std::__copy<__simple, _Category>::copy(__first, __last, __result);
9270 }
9271
9272 template<bool, bool>
9273 struct __copy_normal
9274 {
9275 template<typename _II, typename _OI>
9276 static _OI
9277 copy_n(_II __first, _II __last, _OI __result)
9278 { return std::__copy_aux(__first, __last, __result); }
9279 };
9280
9281 template<>
9282 struct __copy_normal<true, false>
9283 {
9284 template<typename _II, typename _OI>
9285 static _OI
9286 copy_n(_II __first, _II __last, _OI __result)
9287 { return std::__copy_aux(__first.base(), __last.base(), __result); }
9288 };
9289
9290 template<>
9291 struct __copy_normal<false, true>
9292 {
9293 template<typename _II, typename _OI>
9294 static _OI
9295 copy_n(_II __first, _II __last, _OI __result)
9296 { return _OI(std::__copy_aux(__first, __last, __result.base())); }
9297 };
9298
9299 template<>
9300 struct __copy_normal<true, true>
9301 {
9302 template<typename _II, typename _OI>
9303 static _OI
9304 copy_n(_II __first, _II __last, _OI __result)
9305 { return _OI(std::__copy_aux(__first.base(), __last.base(),
9306 __result.base())); }
9307 };
9308# 373 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9309 template<typename _InputIterator, typename _OutputIterator>
9310 inline _OutputIterator
9311 copy(_InputIterator __first, _InputIterator __last,
9312 _OutputIterator __result)
9313 {
9314
9315
9316
9317
9318 ;
9319
9320 const bool __in = __is_normal_iterator<_InputIterator>::__value;
9321 const bool __out = __is_normal_iterator<_OutputIterator>::__value;
9322 return std::__copy_normal<__in, __out>::copy_n(__first, __last,
9323 __result);
9324 }
9325
9326 template<bool, typename>
9327 struct __copy_backward
9328 {
9329 template<typename _BI1, typename _BI2>
9330 static _BI2
9331 copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
9332 {
9333 while (__first != __last)
9334 *--__result = *--__last;
9335 return __result;
9336 }
9337 };
9338
9339 template<bool _BoolType>
9340 struct __copy_backward<_BoolType, random_access_iterator_tag>
9341 {
9342 template<typename _BI1, typename _BI2>
9343 static _BI2
9344 copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
9345 {
9346 typename iterator_traits<_BI1>::difference_type __n;
9347 for (__n = __last - __first; __n > 0; --__n)
9348 *--__result = *--__last;
9349 return __result;
9350 }
9351 };
9352
9353 template<>
9354 struct __copy_backward<true, random_access_iterator_tag>
9355 {
9356 template<typename _Tp>
9357 static _Tp*
9358 copy_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
9359 {
9360 const ptrdiff_t _Num = __last - __first;
9361 std::memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
9362 return __result - _Num;
9363 }
9364 };
9365
9366 template<typename _BI1, typename _BI2>
9367 inline _BI2
9368 __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)
9369 {
9370 typedef typename iterator_traits<_BI1>::value_type _ValueType1;
9371 typedef typename iterator_traits<_BI2>::value_type _ValueType2;
9372 typedef typename iterator_traits<_BI1>::iterator_category _Category;
9373 const bool __simple = (__is_scalar<_ValueType1>::__value
9374 && __is_pointer<_BI1>::__value
9375 && __is_pointer<_BI2>::__value
9376 && __are_same<_ValueType1, _ValueType2>::__value);
9377
9378 return std::__copy_backward<__simple, _Category>::copy_b(__first, __last,
9379 __result);
9380 }
9381
9382 template<bool, bool>
9383 struct __copy_backward_normal
9384 {
9385 template<typename _BI1, typename _BI2>
9386 static _BI2
9387 copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
9388 { return std::__copy_backward_aux(__first, __last, __result); }
9389 };
9390
9391 template<>
9392 struct __copy_backward_normal<true, false>
9393 {
9394 template<typename _BI1, typename _BI2>
9395 static _BI2
9396 copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
9397 { return std::__copy_backward_aux(__first.base(), __last.base(),
9398 __result); }
9399 };
9400
9401 template<>
9402 struct __copy_backward_normal<false, true>
9403 {
9404 template<typename _BI1, typename _BI2>
9405 static _BI2
9406 copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
9407 { return _BI2(std::__copy_backward_aux(__first, __last,
9408 __result.base())); }
9409 };
9410
9411 template<>
9412 struct __copy_backward_normal<true, true>
9413 {
9414 template<typename _BI1, typename _BI2>
9415 static _BI2
9416 copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
9417 { return _BI2(std::__copy_backward_aux(__first.base(), __last.base(),
9418 __result.base())); }
9419 };
9420# 502 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9421 template <typename _BI1, typename _BI2>
9422 inline _BI2
9423 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
9424 {
9425
9426
9427
9428
9429
9430
9431 ;
9432
9433 const bool __bi1 = __is_normal_iterator<_BI1>::__value;
9434 const bool __bi2 = __is_normal_iterator<_BI2>::__value;
9435 return std::__copy_backward_normal<__bi1, __bi2>::copy_b_n(__first, __last,
9436 __result);
9437 }
9438
9439 template<bool>
9440 struct __fill
9441 {
9442 template<typename _ForwardIterator, typename _Tp>
9443 static void
9444 fill(_ForwardIterator __first, _ForwardIterator __last,
9445 const _Tp& __value)
9446 {
9447 for (; __first != __last; ++__first)
9448 *__first = __value;
9449 }
9450 };
9451
9452 template<>
9453 struct __fill<true>
9454 {
9455 template<typename _ForwardIterator, typename _Tp>
9456 static void
9457 fill(_ForwardIterator __first, _ForwardIterator __last,
9458 const _Tp& __value)
9459 {
9460 const _Tp __tmp = __value;
9461 for (; __first != __last; ++__first)
9462 *__first = __tmp;
9463 }
9464 };
9465# 558 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9466 template<typename _ForwardIterator, typename _Tp>
9467 void
9468 fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
9469 {
9470
9471
9472
9473 ;
9474
9475 const bool __scalar = __is_scalar<_Tp>::__value;
9476 std::__fill<__scalar>::fill(__first, __last, __value);
9477 }
9478
9479
9480 inline void
9481 fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c)
9482 {
9483 ;
9484 const unsigned char __tmp = __c;
9485 std::memset(__first, __tmp, __last - __first);
9486 }
9487
9488 inline void
9489 fill(signed char* __first, signed char* __last, const signed char& __c)
9490 {
9491 ;
9492 const signed char __tmp = __c;
9493 std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
9494 }
9495
9496 inline void
9497 fill(char* __first, char* __last, const char& __c)
9498 {
9499 ;
9500 const char __tmp = __c;
9501 std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
9502 }
9503
9504 template<bool>
9505 struct __fill_n
9506 {
9507 template<typename _OutputIterator, typename _Size, typename _Tp>
9508 static _OutputIterator
9509 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
9510 {
9511 for (; __n > 0; --__n, ++__first)
9512 *__first = __value;
9513 return __first;
9514 }
9515 };
9516
9517 template<>
9518 struct __fill_n<true>
9519 {
9520 template<typename _OutputIterator, typename _Size, typename _Tp>
9521 static _OutputIterator
9522 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
9523 {
9524 const _Tp __tmp = __value;
9525 for (; __n > 0; --__n, ++__first)
9526 *__first = __tmp;
9527 return __first;
9528 }
9529 };
9530# 634 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9531 template<typename _OutputIterator, typename _Size, typename _Tp>
9532 _OutputIterator
9533 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
9534 {
9535
9536
9537
9538 const bool __scalar = __is_scalar<_Tp>::__value;
9539 return std::__fill_n<__scalar>::fill_n(__first, __n, __value);
9540 }
9541
9542 template<typename _Size>
9543 inline unsigned char*
9544 fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)
9545 {
9546 std::fill(__first, __first + __n, __c);
9547 return __first + __n;
9548 }
9549
9550 template<typename _Size>
9551 inline signed char*
9552 fill_n(char* __first, _Size __n, const signed char& __c)
9553 {
9554 std::fill(__first, __first + __n, __c);
9555 return __first + __n;
9556 }
9557
9558 template<typename _Size>
9559 inline char*
9560 fill_n(char* __first, _Size __n, const char& __c)
9561 {
9562 std::fill(__first, __first + __n, __c);
9563 return __first + __n;
9564 }
9565# 681 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9566 template<typename _InputIterator1, typename _InputIterator2>
9567 pair<_InputIterator1, _InputIterator2>
9568 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
9569 _InputIterator2 __first2)
9570 {
9571
9572
9573
9574
9575
9576
9577 ;
9578
9579 while (__first1 != __last1 && *__first1 == *__first2)
9580 {
9581 ++__first1;
9582 ++__first2;
9583 }
9584 return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
9585 }
9586# 716 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9587 template<typename _InputIterator1, typename _InputIterator2,
9588 typename _BinaryPredicate>
9589 pair<_InputIterator1, _InputIterator2>
9590 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
9591 _InputIterator2 __first2, _BinaryPredicate __binary_pred)
9592 {
9593
9594
9595
9596 ;
9597
9598 while (__first1 != __last1 && __binary_pred(*__first1, *__first2))
9599 {
9600 ++__first1;
9601 ++__first2;
9602 }
9603 return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
9604 }
9605# 746 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9606 template<typename _InputIterator1, typename _InputIterator2>
9607 inline bool
9608 equal(_InputIterator1 __first1, _InputIterator1 __last1,
9609 _InputIterator2 __first2)
9610 {
9611
9612
9613
9614
9615
9616
9617 ;
9618
9619 for (; __first1 != __last1; ++__first1, ++__first2)
9620 if (!(*__first1 == *__first2))
9621 return false;
9622 return true;
9623 }
9624# 778 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9625 template<typename _InputIterator1, typename _InputIterator2,
9626 typename _BinaryPredicate>
9627 inline bool
9628 equal(_InputIterator1 __first1, _InputIterator1 __last1,
9629 _InputIterator2 __first2,
9630 _BinaryPredicate __binary_pred)
9631 {
9632
9633
9634
9635 ;
9636
9637 for (; __first1 != __last1; ++__first1, ++__first2)
9638 if (!__binary_pred(*__first1, *__first2))
9639 return false;
9640 return true;
9641 }
9642# 810 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9643 template<typename _InputIterator1, typename _InputIterator2>
9644 bool
9645 lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
9646 _InputIterator2 __first2, _InputIterator2 __last2)
9647 {
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657 ;
9658 ;
9659
9660 for (; __first1 != __last1 && __first2 != __last2;
9661 ++__first1, ++__first2)
9662 {
9663 if (*__first1 < *__first2)
9664 return true;
9665 if (*__first2 < *__first1)
9666 return false;
9667 }
9668 return __first1 == __last1 && __first2 != __last2;
9669 }
9670# 850 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9671 template<typename _InputIterator1, typename _InputIterator2,
9672 typename _Compare>
9673 bool
9674 lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
9675 _InputIterator2 __first2, _InputIterator2 __last2,
9676 _Compare __comp)
9677 {
9678
9679
9680
9681 ;
9682 ;
9683
9684 for (; __first1 != __last1 && __first2 != __last2;
9685 ++__first1, ++__first2)
9686 {
9687 if (__comp(*__first1, *__first2))
9688 return true;
9689 if (__comp(*__first2, *__first1))
9690 return false;
9691 }
9692 return __first1 == __last1 && __first2 != __last2;
9693 }
9694
9695 inline bool
9696 lexicographical_compare(const unsigned char* __first1,
9697 const unsigned char* __last1,
9698 const unsigned char* __first2,
9699 const unsigned char* __last2)
9700 {
9701 ;
9702 ;
9703
9704 const size_t __len1 = __last1 - __first1;
9705 const size_t __len2 = __last2 - __first2;
9706 const int __result = std::memcmp(__first1, __first2,
9707 std::min(__len1, __len2));
9708 return __result != 0 ? __result < 0 : __len1 < __len2;
9709 }
9710
9711 inline bool
9712 lexicographical_compare(const char* __first1, const char* __last1,
9713 const char* __first2, const char* __last2)
9714 {
9715 ;
9716 ;
9717
9718
9719 return std::lexicographical_compare((const signed char*) __first1,
9720 (const signed char*) __last1,
9721 (const signed char*) __first2,
9722 (const signed char*) __last2);
9723
9724
9725
9726
9727
9728
9729 }
9730
9731}
9732# 67 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 2 3
9733# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 1 3
9734# 65 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9735# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/new" 1 3
9736# 42 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/new" 3
9737# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 1 3
9738# 40 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 3
9739#pragma GCC visibility push(default)
9740
9741extern "C++" {
9742
9743namespace std
9744{
9745# 54 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 3
9746 class exception
9747 {
9748 public:
9749 exception() throw() { }
9750 virtual ~exception() throw();
9751
9752
9753 virtual const char* what() const throw();
9754 };
9755
9756
9757
9758 class bad_exception : public exception
9759 {
9760 public:
9761 bad_exception() throw() { }
9762
9763
9764 virtual ~bad_exception() throw();
9765 };
9766
9767
9768 typedef void (*terminate_handler) ();
9769
9770 typedef void (*unexpected_handler) ();
9771
9772
9773 terminate_handler set_terminate(terminate_handler) throw();
9774
9775
9776 void terminate() __attribute__ ((__noreturn__));
9777
9778
9779 unexpected_handler set_unexpected(unexpected_handler) throw();
9780
9781
9782 void unexpected() __attribute__ ((__noreturn__));
9783# 102 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 3
9784 bool uncaught_exception() throw();
9785}
9786
9787namespace __gnu_cxx
9788{
9789# 117 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 3
9790 void __verbose_terminate_handler ();
9791}
9792
9793}
9794
9795#pragma GCC visibility pop
9796# 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/new" 2 3
9797
9798#pragma GCC visibility push(default)
9799
9800extern "C++" {
9801
9802namespace std
9803{
9804
9805
9806
9807
9808
9809 class bad_alloc : public exception
9810 {
9811 public:
9812 bad_alloc() throw() { }
9813
9814
9815 virtual ~bad_alloc() throw();
9816 };
9817
9818 struct nothrow_t { };
9819 extern const nothrow_t nothrow;
9820
9821
9822 typedef void (*new_handler)();
9823
9824 new_handler set_new_handler(new_handler) throw();
9825}
9826# 84 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/new" 3
9827void* operator new(std::size_t) throw (std::bad_alloc);
9828void* operator new[](std::size_t) throw (std::bad_alloc);
9829void operator delete(void*) throw();
9830void operator delete[](void*) throw();
9831void* operator new(std::size_t, const std::nothrow_t&) throw();
9832void* operator new[](std::size_t, const std::nothrow_t&) throw();
9833void operator delete(void*, const std::nothrow_t&) throw();
9834void operator delete[](void*, const std::nothrow_t&) throw();
9835
9836
9837inline void* operator new(std::size_t, void* __p) throw() { return __p; }
9838inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
9839
9840
9841inline void operator delete (void*, void*) throw() { }
9842inline void operator delete[](void*, void*) throw() { }
9843
9844}
9845
9846#pragma GCC visibility pop
9847# 66 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 2 3
9848
9849namespace std
9850{
9851
9852
9853
9854
9855
9856
9857 template<typename _T1, typename _T2>
9858 inline void
9859 _Construct(_T1* __p, const _T2& __value)
9860 {
9861
9862
9863 ::new(static_cast<void*>(__p)) _T1(__value);
9864 }
9865
9866
9867
9868
9869
9870
9871
9872 template<typename _T1>
9873 inline void
9874 _Construct(_T1* __p)
9875 {
9876
9877
9878 ::new(static_cast<void*>(__p)) _T1();
9879 }
9880
9881
9882
9883
9884
9885
9886 template<typename _Tp>
9887 inline void
9888 _Destroy(_Tp* __pointer)
9889 { __pointer->~_Tp(); }
9890# 116 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9891 template<typename _ForwardIterator>
9892 inline void
9893 __destroy_aux(_ForwardIterator __first, _ForwardIterator __last,
9894 __false_type)
9895 {
9896 for (; __first != __last; ++__first)
9897 std::_Destroy(&*__first);
9898 }
9899# 134 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9900 template<typename _ForwardIterator>
9901 inline void
9902 __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)
9903 { }
9904# 146 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9905 template<typename _ForwardIterator>
9906 inline void
9907 _Destroy(_ForwardIterator __first, _ForwardIterator __last)
9908 {
9909 typedef typename iterator_traits<_ForwardIterator>::value_type
9910 _Value_type;
9911 typedef typename std::__is_scalar<_Value_type>::__type
9912 _Has_trivial_destructor;
9913
9914 std::__destroy_aux(__first, __last, _Has_trivial_destructor());
9915 }
9916# 166 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9917 template <typename _Tp> class allocator;
9918
9919 template<typename _ForwardIterator, typename _Allocator>
9920 void
9921 _Destroy(_ForwardIterator __first, _ForwardIterator __last,
9922 _Allocator __alloc)
9923 {
9924 for (; __first != __last; ++__first)
9925 __alloc.destroy(&*__first);
9926 }
9927
9928 template<typename _ForwardIterator, typename _Tp>
9929 inline void
9930 _Destroy(_ForwardIterator __first, _ForwardIterator __last,
9931 allocator<_Tp>)
9932 {
9933 _Destroy(__first, __last);
9934 }
9935
9936
9937}
9938# 68 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 2 3
9939# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 1 3
9940# 66 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 3
9941namespace std
9942{
9943
9944 template<typename _InputIterator, typename _ForwardIterator>
9945 inline _ForwardIterator
9946 __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
9947 _ForwardIterator __result,
9948 __true_type)
9949 { return std::copy(__first, __last, __result); }
9950
9951 template<typename _InputIterator, typename _ForwardIterator>
9952 inline _ForwardIterator
9953 __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
9954 _ForwardIterator __result,
9955 __false_type)
9956 {
9957 _ForwardIterator __cur = __result;
9958 try
9959 {
9960 for (; __first != __last; ++__first, ++__cur)
9961 std::_Construct(&*__cur, *__first);
9962 return __cur;
9963 }
9964 catch(...)
9965 {
9966 std::_Destroy(__result, __cur);
9967 throw;
9968 }
9969 }
9970# 105 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 3
9971 template<typename _InputIterator, typename _ForwardIterator>
9972 inline _ForwardIterator
9973 uninitialized_copy(_InputIterator __first, _InputIterator __last,
9974 _ForwardIterator __result)
9975 {
9976 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
9977 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
9978 return std::__uninitialized_copy_aux(__first, __last, __result,
9979 _Is_POD());
9980 }
9981
9982 inline char*
9983 uninitialized_copy(const char* __first, const char* __last, char* __result)
9984 {
9985 std::memmove(__result, __first, __last - __first);
9986 return __result + (__last - __first);
9987 }
9988
9989 inline wchar_t*
9990 uninitialized_copy(const wchar_t* __first, const wchar_t* __last,
9991 wchar_t* __result)
9992 {
9993 std::memmove(__result, __first, sizeof(wchar_t) * (__last - __first));
9994 return __result + (__last - __first);
9995 }
9996
9997
9998
9999 template<typename _ForwardIterator, typename _Tp>
10000 inline void
10001 __uninitialized_fill_aux(_ForwardIterator __first,
10002 _ForwardIterator __last,
10003 const _Tp& __x, __true_type)
10004 { std::fill(__first, __last, __x); }
10005
10006 template<typename _ForwardIterator, typename _Tp>
10007 void
10008 __uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last,
10009 const _Tp& __x, __false_type)
10010 {
10011 _ForwardIterator __cur = __first;
10012 try
10013 {
10014 for (; __cur != __last; ++__cur)
10015 std::_Construct(&*__cur, __x);
10016 }
10017 catch(...)
10018 {
10019 std::_Destroy(__first, __cur);
10020 throw;
10021 }
10022 }
10023# 167 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 3
10024 template<typename _ForwardIterator, typename _Tp>
10025 inline void
10026 uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
10027 const _Tp& __x)
10028 {
10029 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
10030 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
10031 std::__uninitialized_fill_aux(__first, __last, __x, _Is_POD());
10032 }
10033
10034
10035
10036 template<typename _ForwardIterator, typename _Size, typename _Tp>
10037 inline void
10038 __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
10039 const _Tp& __x, __true_type)
10040 { std::fill_n(__first, __n, __x); }
10041
10042 template<typename _ForwardIterator, typename _Size, typename _Tp>
10043 void
10044 __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
10045 const _Tp& __x, __false_type)
10046 {
10047 _ForwardIterator __cur = __first;
10048 try
10049 {
10050 for (; __n > 0; --__n, ++__cur)
10051 std::_Construct(&*__cur, __x);
10052 }
10053 catch(...)
10054 {
10055 std::_Destroy(__first, __cur);
10056 throw;
10057 }
10058 }
10059# 212 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 3
10060 template<typename _ForwardIterator, typename _Size, typename _Tp>
10061 inline void
10062 uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
10063 {
10064 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
10065 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
10066 std::__uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());
10067 }
10068
10069
10070
10071
10072
10073
10074
10075 template<typename _InputIterator, typename _ForwardIterator,
10076 typename _Allocator>
10077 _ForwardIterator
10078 __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
10079 _ForwardIterator __result,
10080 _Allocator __alloc)
10081 {
10082 _ForwardIterator __cur = __result;
10083 try
10084 {
10085 for (; __first != __last; ++__first, ++__cur)
10086 __alloc.construct(&*__cur, *__first);
10087 return __cur;
10088 }
10089 catch(...)
10090 {
10091 std::_Destroy(__result, __cur, __alloc);
10092 throw;
10093 }
10094 }
10095
10096 template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
10097 inline _ForwardIterator
10098 __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
10099 _ForwardIterator __result,
10100 allocator<_Tp>)
10101 {
10102 return std::uninitialized_copy(__first, __last, __result);
10103 }
10104
10105 template<typename _ForwardIterator, typename _Tp, typename _Allocator>
10106 void
10107 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
10108 const _Tp& __x, _Allocator __alloc)
10109 {
10110 _ForwardIterator __cur = __first;
10111 try
10112 {
10113 for (; __cur != __last; ++__cur)
10114 __alloc.construct(&*__cur, __x);
10115 }
10116 catch(...)
10117 {
10118 std::_Destroy(__first, __cur, __alloc);
10119 throw;
10120 }
10121 }
10122
10123 template<typename _ForwardIterator, typename _Tp, typename _Tp2>
10124 inline void
10125 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
10126 const _Tp& __x, allocator<_Tp2>)
10127 {
10128 std::uninitialized_fill(__first, __last, __x);
10129 }
10130
10131 template<typename _ForwardIterator, typename _Size, typename _Tp,
10132 typename _Allocator>
10133 void
10134 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
10135 const _Tp& __x,
10136 _Allocator __alloc)
10137 {
10138 _ForwardIterator __cur = __first;
10139 try
10140 {
10141 for (; __n > 0; --__n, ++__cur)
10142 __alloc.construct(&*__cur, __x);
10143 }
10144 catch(...)
10145 {
10146 std::_Destroy(__first, __cur, __alloc);
10147 throw;
10148 }
10149 }
10150
10151 template<typename _ForwardIterator, typename _Size, typename _Tp,
10152 typename _Tp2>
10153 void
10154 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
10155 const _Tp& __x,
10156 allocator<_Tp2>)
10157 {
10158 std::uninitialized_fill_n(__first, __n, __x);
10159 }
10160# 323 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 3
10161 template<typename _InputIterator1, typename _InputIterator2,
10162 typename _ForwardIterator, typename _Allocator>
10163 inline _ForwardIterator
10164 __uninitialized_copy_copy(_InputIterator1 __first1,
10165 _InputIterator1 __last1,
10166 _InputIterator2 __first2,
10167 _InputIterator2 __last2,
10168 _ForwardIterator __result,
10169 _Allocator __alloc)
10170 {
10171 _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
10172 __result,
10173 __alloc);
10174 try
10175 {
10176 return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
10177 }
10178 catch(...)
10179 {
10180 std::_Destroy(__result, __mid, __alloc);
10181 throw;
10182 }
10183 }
10184
10185
10186
10187
10188 template<typename _ForwardIterator, typename _Tp, typename _InputIterator,
10189 typename _Allocator>
10190 inline _ForwardIterator
10191 __uninitialized_fill_copy(_ForwardIterator __result, _ForwardIterator __mid,
10192 const _Tp& __x, _InputIterator __first,
10193 _InputIterator __last,
10194 _Allocator __alloc)
10195 {
10196 std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
10197 try
10198 {
10199 return std::__uninitialized_copy_a(__first, __last, __mid, __alloc);
10200 }
10201 catch(...)
10202 {
10203 std::_Destroy(__result, __mid, __alloc);
10204 throw;
10205 }
10206 }
10207
10208
10209
10210
10211 template<typename _InputIterator, typename _ForwardIterator, typename _Tp,
10212 typename _Allocator>
10213 inline void
10214 __uninitialized_copy_fill(_InputIterator __first1, _InputIterator __last1,
10215 _ForwardIterator __first2,
10216 _ForwardIterator __last2, const _Tp& __x,
10217 _Allocator __alloc)
10218 {
10219 _ForwardIterator __mid2 = std::__uninitialized_copy_a(__first1, __last1,
10220 __first2,
10221 __alloc);
10222 try
10223 {
10224 std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
10225 }
10226 catch(...)
10227 {
10228 std::_Destroy(__first2, __mid2, __alloc);
10229 throw;
10230 }
10231 }
10232
10233}
10234# 69 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 2 3
10235# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 1 3
10236# 65 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
10237# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 1 3
10238# 65 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10239namespace std
10240{
10241
10242
10243
10244 template<typename _RandomAccessIterator, typename _Distance>
10245 bool
10246 __is_heap(_RandomAccessIterator __first, _Distance __n)
10247 {
10248 _Distance __parent = 0;
10249 for (_Distance __child = 1; __child < __n; ++__child)
10250 {
10251 if (__first[__parent] < __first[__child])
10252 return false;
10253 if ((__child & 1) == 0)
10254 ++__parent;
10255 }
10256 return true;
10257 }
10258
10259 template<typename _RandomAccessIterator, typename _Distance,
10260 typename _StrictWeakOrdering>
10261 bool
10262 __is_heap(_RandomAccessIterator __first, _StrictWeakOrdering __comp,
10263 _Distance __n)
10264 {
10265 _Distance __parent = 0;
10266 for (_Distance __child = 1; __child < __n; ++__child)
10267 {
10268 if (__comp(__first[__parent], __first[__child]))
10269 return false;
10270 if ((__child & 1) == 0)
10271 ++__parent;
10272 }
10273 return true;
10274 }
10275
10276 template<typename _RandomAccessIterator>
10277 bool
10278 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10279 { return std::__is_heap(__first, std::distance(__first, __last)); }
10280
10281 template<typename _RandomAccessIterator, typename _StrictWeakOrdering>
10282 bool
10283 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10284 _StrictWeakOrdering __comp)
10285 { return std::__is_heap(__first, __comp, std::distance(__first, __last)); }
10286
10287
10288
10289 template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
10290 void
10291 __push_heap(_RandomAccessIterator __first,
10292 _Distance __holeIndex, _Distance __topIndex, _Tp __value)
10293 {
10294 _Distance __parent = (__holeIndex - 1) / 2;
10295 while (__holeIndex > __topIndex && *(__first + __parent) < __value)
10296 {
10297 *(__first + __holeIndex) = *(__first + __parent);
10298 __holeIndex = __parent;
10299 __parent = (__holeIndex - 1) / 2;
10300 }
10301 *(__first + __holeIndex) = __value;
10302 }
10303# 139 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10304 template<typename _RandomAccessIterator>
10305 inline void
10306 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10307 {
10308 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10309 _ValueType;
10310 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10311 _DistanceType;
10312
10313
10314
10315
10316
10317 ;
10318
10319
10320 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
10321 _DistanceType(0), _ValueType(*(__last - 1)));
10322 }
10323
10324 template<typename _RandomAccessIterator, typename _Distance, typename _Tp,
10325 typename _Compare>
10326 void
10327 __push_heap(_RandomAccessIterator __first, _Distance __holeIndex,
10328 _Distance __topIndex, _Tp __value, _Compare __comp)
10329 {
10330 _Distance __parent = (__holeIndex - 1) / 2;
10331 while (__holeIndex > __topIndex
10332 && __comp(*(__first + __parent), __value))
10333 {
10334 *(__first + __holeIndex) = *(__first + __parent);
10335 __holeIndex = __parent;
10336 __parent = (__holeIndex - 1) / 2;
10337 }
10338 *(__first + __holeIndex) = __value;
10339 }
10340# 187 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10341 template<typename _RandomAccessIterator, typename _Compare>
10342 inline void
10343 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10344 _Compare __comp)
10345 {
10346 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10347 _ValueType;
10348 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10349 _DistanceType;
10350
10351
10352
10353
10354 ;
10355 ;
10356
10357 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
10358 _DistanceType(0), _ValueType(*(__last - 1)), __comp);
10359 }
10360
10361 template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
10362 void
10363 __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
10364 _Distance __len, _Tp __value)
10365 {
10366 const _Distance __topIndex = __holeIndex;
10367 _Distance __secondChild = 2 * __holeIndex + 2;
10368 while (__secondChild < __len)
10369 {
10370 if (*(__first + __secondChild) < *(__first + (__secondChild - 1)))
10371 __secondChild--;
10372 *(__first + __holeIndex) = *(__first + __secondChild);
10373 __holeIndex = __secondChild;
10374 __secondChild = 2 * (__secondChild + 1);
10375 }
10376 if (__secondChild == __len)
10377 {
10378 *(__first + __holeIndex) = *(__first + (__secondChild - 1));
10379 __holeIndex = __secondChild - 1;
10380 }
10381 std::__push_heap(__first, __holeIndex, __topIndex, __value);
10382 }
10383
10384 template<typename _RandomAccessIterator, typename _Tp>
10385 inline void
10386 __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10387 _RandomAccessIterator __result, _Tp __value)
10388 {
10389 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10390 _Distance;
10391 *__result = *__first;
10392 std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
10393 __value);
10394 }
10395# 251 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10396 template<typename _RandomAccessIterator>
10397 inline void
10398 pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10399 {
10400 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10401 _ValueType;
10402
10403
10404
10405
10406
10407 ;
10408 ;
10409
10410 std::__pop_heap(__first, __last - 1, __last - 1,
10411 _ValueType(*(__last - 1)));
10412 }
10413
10414 template<typename _RandomAccessIterator, typename _Distance,
10415 typename _Tp, typename _Compare>
10416 void
10417 __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
10418 _Distance __len, _Tp __value, _Compare __comp)
10419 {
10420 const _Distance __topIndex = __holeIndex;
10421 _Distance __secondChild = 2 * __holeIndex + 2;
10422 while (__secondChild < __len)
10423 {
10424 if (__comp(*(__first + __secondChild),
10425 *(__first + (__secondChild - 1))))
10426 __secondChild--;
10427 *(__first + __holeIndex) = *(__first + __secondChild);
10428 __holeIndex = __secondChild;
10429 __secondChild = 2 * (__secondChild + 1);
10430 }
10431 if (__secondChild == __len)
10432 {
10433 *(__first + __holeIndex) = *(__first + (__secondChild - 1));
10434 __holeIndex = __secondChild - 1;
10435 }
10436 std::__push_heap(__first, __holeIndex, __topIndex, __value, __comp);
10437 }
10438
10439 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
10440 inline void
10441 __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10442 _RandomAccessIterator __result, _Tp __value, _Compare __comp)
10443 {
10444 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10445 _Distance;
10446 *__result = *__first;
10447 std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
10448 __value, __comp);
10449 }
10450# 317 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10451 template<typename _RandomAccessIterator, typename _Compare>
10452 inline void
10453 pop_heap(_RandomAccessIterator __first,
10454 _RandomAccessIterator __last, _Compare __comp)
10455 {
10456
10457
10458
10459 ;
10460 ;
10461
10462 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10463 _ValueType;
10464 std::__pop_heap(__first, __last - 1, __last - 1,
10465 _ValueType(*(__last - 1)), __comp);
10466 }
10467# 342 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10468 template<typename _RandomAccessIterator>
10469 void
10470 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10471 {
10472 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10473 _ValueType;
10474 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10475 _DistanceType;
10476
10477
10478
10479
10480
10481 ;
10482
10483 if (__last - __first < 2)
10484 return;
10485
10486 const _DistanceType __len = __last - __first;
10487 _DistanceType __parent = (__len - 2) / 2;
10488 while (true)
10489 {
10490 std::__adjust_heap(__first, __parent, __len,
10491 _ValueType(*(__first + __parent)));
10492 if (__parent == 0)
10493 return;
10494 __parent--;
10495 }
10496 }
10497# 382 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10498 template<typename _RandomAccessIterator, typename _Compare>
10499 inline void
10500 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10501 _Compare __comp)
10502 {
10503 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10504 _ValueType;
10505 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10506 _DistanceType;
10507
10508
10509
10510
10511 ;
10512
10513 if (__last - __first < 2)
10514 return;
10515
10516 const _DistanceType __len = __last - __first;
10517 _DistanceType __parent = (__len - 2) / 2;
10518 while (true)
10519 {
10520 std::__adjust_heap(__first, __parent, __len,
10521 _ValueType(*(__first + __parent)), __comp);
10522 if (__parent == 0)
10523 return;
10524 __parent--;
10525 }
10526 }
10527# 420 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10528 template<typename _RandomAccessIterator>
10529 void
10530 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10531 {
10532
10533
10534
10535
10536
10537 ;
10538
10539
10540 while (__last - __first > 1)
10541 std::pop_heap(__first, __last--);
10542 }
10543# 446 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10544 template<typename _RandomAccessIterator, typename _Compare>
10545 void
10546 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10547 _Compare __comp)
10548 {
10549
10550
10551
10552 ;
10553 ;
10554
10555 while (__last - __first > 1)
10556 std::pop_heap(__first, __last--, __comp);
10557 }
10558
10559}
10560# 66 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 2 3
10561# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_tempbuf.h" 1 3
10562# 64 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_tempbuf.h" 3
10563# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 1 3
10564# 51 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
10565
10566# 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
10567#pragma GCC visibility push(default)
10568
10569
10570# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/allocator.h" 1 3
10571# 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/allocator.h" 3
10572# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++allocator.h" 1 3
10573# 34 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++allocator.h" 3
10574# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ext/new_allocator.h" 1 3
10575# 37 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ext/new_allocator.h" 3
10576#pragma GCC visibility push(default)
10577
10578
10579
10580
10581namespace __gnu_cxx
10582{
10583
10584
10585
10586
10587
10588
10589
10590 template<typename _Tp>
10591 class new_allocator
10592 {
10593 public:
10594 typedef size_t size_type;
10595 typedef ptrdiff_t difference_type;
10596 typedef _Tp* pointer;
10597 typedef const _Tp* const_pointer;
10598 typedef _Tp& reference;
10599 typedef const _Tp& const_reference;
10600 typedef _Tp value_type;
10601
10602 template<typename _Tp1>
10603 struct rebind
10604 { typedef new_allocator<_Tp1> other; };
10605
10606 new_allocator() throw() { }
10607
10608 new_allocator(const new_allocator&) throw() { }
10609
10610 template<typename _Tp1>
10611 new_allocator(const new_allocator<_Tp1>&) throw() { }
10612
10613 ~new_allocator() throw() { }
10614
10615 pointer
10616 address(reference __x) const { return &__x; }
10617
10618 const_pointer
10619 address(const_reference __x) const { return &__x; }
10620
10621
10622
10623 pointer
10624 allocate(size_type __n, const void* = 0)
10625 {
10626 if (__builtin_expect(__n > this->max_size(), false))
10627 std::__throw_bad_alloc();
10628
10629 return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
10630 }
10631
10632
10633 void
10634 deallocate(pointer __p, size_type)
10635 { ::operator delete(__p); }
10636
10637 size_type
10638 max_size() const throw()
10639 { return size_t(-1) / sizeof(_Tp); }
10640
10641
10642
10643 void
10644 construct(pointer __p, const _Tp& __val)
10645 { ::new(__p) _Tp(__val); }
10646
10647 void
10648 destroy(pointer __p) { __p->~_Tp(); }
10649 };
10650
10651 template<typename _Tp>
10652 inline bool
10653 operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
10654 { return true; }
10655
10656 template<typename _Tp>
10657 inline bool
10658 operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
10659 { return false; }
10660}
10661
10662#pragma GCC visibility pop
10663# 35 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++allocator.h" 2 3
10664# 53 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/allocator.h" 2 3
10665
10666namespace std
10667{
10668 template<typename _Tp>
10669 class allocator;
10670
10671
10672 template<>
10673 class allocator<void>
10674 {
10675 public:
10676 typedef size_t size_type;
10677 typedef ptrdiff_t difference_type;
10678 typedef void* pointer;
10679 typedef const void* const_pointer;
10680 typedef void value_type;
10681
10682 template<typename _Tp1>
10683 struct rebind
10684 { typedef allocator<_Tp1> other; };
10685 };
10686
10687
10688
10689
10690
10691
10692
10693 template<typename _Tp>
10694 class allocator: public __gnu_cxx::new_allocator<_Tp>
10695 {
10696 public:
10697 typedef size_t size_type;
10698 typedef ptrdiff_t difference_type;
10699 typedef _Tp* pointer;
10700 typedef const _Tp* const_pointer;
10701 typedef _Tp& reference;
10702 typedef const _Tp& const_reference;
10703 typedef _Tp value_type;
10704
10705 template<typename _Tp1>
10706 struct rebind
10707 { typedef allocator<_Tp1> other; };
10708
10709 allocator() throw() { }
10710
10711 allocator(const allocator& __a) throw()
10712 : __gnu_cxx::new_allocator<_Tp>(__a) { }
10713
10714 template<typename _Tp1>
10715 allocator(const allocator<_Tp1>&) throw() { }
10716
10717 ~allocator() throw() { }
10718
10719
10720 };
10721
10722 template<typename _T1, typename _T2>
10723 inline bool
10724 operator==(const allocator<_T1>&, const allocator<_T2>&)
10725 { return true; }
10726
10727 template<typename _T1, typename _T2>
10728 inline bool
10729 operator!=(const allocator<_T1>&, const allocator<_T2>&)
10730 { return false; }
10731
10732
10733
10734
10735
10736 extern template class allocator<char>;
10737 extern template class allocator<wchar_t>;
10738
10739
10740
10741
10742}
10743# 56 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 2 3
10744
10745
10746
10747# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_raw_storage_iter.h" 1 3
10748# 64 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_raw_storage_iter.h" 3
10749namespace std
10750{
10751
10752
10753
10754
10755 template <class _ForwardIterator, class _Tp>
10756 class raw_storage_iterator
10757 : public iterator<output_iterator_tag, void, void, void, void>
10758 {
10759 protected:
10760 _ForwardIterator _M_iter;
10761
10762 public:
10763 explicit
10764 raw_storage_iterator(_ForwardIterator __x)
10765 : _M_iter(__x) {}
10766
10767 raw_storage_iterator&
10768 operator*() { return *this; }
10769
10770 raw_storage_iterator&
10771 operator=(const _Tp& __element)
10772 {
10773 std::_Construct(&*_M_iter, __element);
10774 return *this;
10775 }
10776
10777 raw_storage_iterator<_ForwardIterator, _Tp>&
10778 operator++()
10779 {
10780 ++_M_iter;
10781 return *this;
10782 }
10783
10784 raw_storage_iterator<_ForwardIterator, _Tp>
10785 operator++(int)
10786 {
10787 raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this;
10788 ++_M_iter;
10789 return __tmp;
10790 }
10791 };
10792}
10793# 60 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 2 3
10794
10795# 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 1 3
10796# 46 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 3
10797
10798# 47 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 3
10799#pragma GCC visibility push(default)
10800# 151 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 3
10801namespace std
10802{
10803
10804
10805
10806
10807
10808 enum float_round_style
10809 {
10810 round_indeterminate = -1,
10811 round_toward_zero = 0,
10812 round_to_nearest = 1,
10813 round_toward_infinity = 2,
10814 round_toward_neg_infinity = 3
10815 };
10816
10817
10818
10819
10820
10821
10822
10823 enum float_denorm_style
10824 {
10825
10826 denorm_indeterminate = -1,
10827
10828 denorm_absent = 0,
10829
10830 denorm_present = 1
10831 };
10832# 193 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 3
10833 struct __numeric_limits_base
10834 {
10835
10836
10837 static const bool is_specialized = false;
10838
10839
10840
10841
10842 static const int digits = 0;
10843
10844 static const int digits10 = 0;
10845
10846 static const bool is_signed = false;
10847
10848
10849
10850
10851
10852 static const bool is_integer = false;
10853
10854
10855
10856
10857 static const bool is_exact = false;
10858
10859
10860 static const int radix = 0;
10861
10862
10863
10864 static const int min_exponent = 0;
10865
10866
10867 static const int min_exponent10 = 0;
10868
10869
10870
10871 static const int max_exponent = 0;
10872
10873
10874 static const int max_exponent10 = 0;
10875
10876
10877 static const bool has_infinity = false;
10878
10879
10880 static const bool has_quiet_NaN = false;
10881
10882
10883 static const bool has_signaling_NaN = false;
10884
10885 static const float_denorm_style has_denorm = denorm_absent;
10886
10887
10888 static const bool has_denorm_loss = false;
10889
10890
10891
10892 static const bool is_iec559 = false;
10893
10894
10895
10896 static const bool is_bounded = false;
10897
10898
10899
10900
10901 static const bool is_modulo = false;
10902
10903
10904 static const bool traps = false;
10905
10906 static const bool tinyness_before = false;
10907
10908
10909
10910 static const float_round_style round_style = round_toward_zero;
10911 };
10912# 286 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 3
10913 template<typename _Tp>
10914 struct numeric_limits : public __numeric_limits_base
10915 {
10916
10917
10918 static _Tp min() throw() { return static_cast<_Tp>(0); }
10919
10920 static _Tp max() throw() { return static_cast<_Tp>(0); }
10921
10922
10923 static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
10924
10925 static _Tp round_error() throw() { return static_cast<_Tp>(0); }
10926
10927 static _Tp infinity() throw() { return static_cast<_Tp>(0); }
10928
10929 static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }
10930
10931
10932 static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }
10933
10934
10935
10936 static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }
10937 };
10938
10939
10940
10941
10942
10943 template<>
10944 struct numeric_limits<bool>
10945 {
10946 static const bool is_specialized = true;
10947
10948 static bool min() throw()
10949 { return false; }
10950 static bool max() throw()
10951 { return true; }
10952
10953 static const int digits = 1;
10954 static const int digits10 = 0;
10955 static const bool is_signed = false;
10956 static const bool is_integer = true;
10957 static const bool is_exact = true;
10958 static const int radix = 2;
10959 static bool epsilon() throw()
10960 { return false; }
10961 static bool round_error() throw()
10962 { return false; }
10963
10964 static const int min_exponent = 0;
10965 static const int min_exponent10 = 0;
10966 static const int max_exponent = 0;
10967 static const int max_exponent10 = 0;
10968
10969 static const bool has_infinity = false;
10970 static const bool has_quiet_NaN = false;
10971 static const bool has_signaling_NaN = false;
10972 static const float_denorm_style has_denorm = denorm_absent;
10973 static const bool has_denorm_loss = false;
10974
10975 static bool infinity() throw()
10976 { return false; }
10977 static bool quiet_NaN() throw()
10978 { return false; }
10979 static bool signaling_NaN() throw()
10980 { return false; }
10981 static bool denorm_min() throw()
10982 { return false; }
10983
10984 static const bool is_iec559 = false;
10985 static const bool is_bounded = true;
10986 static const bool is_modulo = false;
10987
10988
10989
10990
10991 static const bool traps = true;
10992 static const bool tinyness_before = false;
10993 static const float_round_style round_style = round_toward_zero;
10994 };
10995
10996
10997 template<>
10998 struct numeric_limits<char>
10999 {
11000 static const bool is_specialized = true;
11001
11002 static char min() throw()
11003 { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); }
11004 static char max() throw()
11005 { return (((char)(-1) < 0) ? ((char)1 << (sizeof(char) * 8 - ((char)(-1) < 0))) - 1 : ~(char)0); }
11006
11007 static const int digits = (sizeof(char) * 8 - ((char)(-1) < 0));
11008 static const int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136);
11009 static const bool is_signed = ((char)(-1) < 0);
11010 static const bool is_integer = true;
11011 static const bool is_exact = true;
11012 static const int radix = 2;
11013 static char epsilon() throw()
11014 { return 0; }
11015 static char round_error() throw()
11016 { return 0; }
11017
11018 static const int min_exponent = 0;
11019 static const int min_exponent10 = 0;
11020 static const int max_exponent = 0;
11021 static const int max_exponent10 = 0;
11022
11023 static const bool has_infinity = false;
11024 static const bool has_quiet_NaN = false;
11025 static const bool has_signaling_NaN = false;
11026 static const float_denorm_style has_denorm = denorm_absent;
11027 static const bool has_denorm_loss = false;
11028
11029 static char infinity() throw()
11030 { return char(); }
11031 static char quiet_NaN() throw()
11032 { return char(); }
11033 static char signaling_NaN() throw()
11034 { return char(); }
11035 static char denorm_min() throw()
11036 { return static_cast<char>(0); }
11037
11038 static const bool is_iec559 = false;
11039 static const bool is_bounded = true;
11040 static const bool is_modulo = true;
11041
11042 static const bool traps = true;
11043 static const bool tinyness_before = false;
11044 static const float_round_style round_style = round_toward_zero;
11045 };
11046
11047
11048 template<>
11049 struct numeric_limits<signed char>
11050 {
11051 static const bool is_specialized = true;
11052
11053 static signed char min() throw()
11054 { return -127 - 1; }
11055 static signed char max() throw()
11056 { return 127; }
11057
11058 static const int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0));
11059 static const int digits10 = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136);
11060 static const bool is_signed = true;
11061 static const bool is_integer = true;
11062 static const bool is_exact = true;
11063 static const int radix = 2;
11064 static signed char epsilon() throw()
11065 { return 0; }
11066 static signed char round_error() throw()
11067 { return 0; }
11068
11069 static const int min_exponent = 0;
11070 static const int min_exponent10 = 0;
11071 static const int max_exponent = 0;
11072 static const int max_exponent10 = 0;
11073
11074 static const bool has_infinity = false;
11075 static const bool has_quiet_NaN = false;
11076 static const bool has_signaling_NaN = false;
11077 static const float_denorm_style has_denorm = denorm_absent;
11078 static const bool has_denorm_loss = false;
11079
11080 static signed char infinity() throw()
11081 { return static_cast<signed char>(0); }
11082 static signed char quiet_NaN() throw()
11083 { return static_cast<signed char>(0); }
11084 static signed char signaling_NaN() throw()
11085 { return static_cast<signed char>(0); }
11086 static signed char denorm_min() throw()
11087 { return static_cast<signed char>(0); }
11088
11089 static const bool is_iec559 = false;
11090 static const bool is_bounded = true;
11091 static const bool is_modulo = true;
11092
11093 static const bool traps = true;
11094 static const bool tinyness_before = false;
11095 static const float_round_style round_style = round_toward_zero;
11096 };
11097
11098
11099 template<>
11100 struct numeric_limits<unsigned char>
11101 {
11102 static const bool is_specialized = true;
11103
11104 static unsigned char min() throw()
11105 { return 0; }
11106 static unsigned char max() throw()
11107 { return 127 * 2U + 1; }
11108
11109 static const int digits = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0));
11110 static const int digits10 = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136);
11111 static const bool is_signed = false;
11112 static const bool is_integer = true;
11113 static const bool is_exact = true;
11114 static const int radix = 2;
11115 static unsigned char epsilon() throw()
11116 { return 0; }
11117 static unsigned char round_error() throw()
11118 { return 0; }
11119
11120 static const int min_exponent = 0;
11121 static const int min_exponent10 = 0;
11122 static const int max_exponent = 0;
11123 static const int max_exponent10 = 0;
11124
11125 static const bool has_infinity = false;
11126 static const bool has_quiet_NaN = false;
11127 static const bool has_signaling_NaN = false;
11128 static const float_denorm_style has_denorm = denorm_absent;
11129 static const bool has_denorm_loss = false;
11130
11131 static unsigned char infinity() throw()
11132 { return static_cast<unsigned char>(0); }
11133 static unsigned char quiet_NaN() throw()
11134 { return static_cast<unsigned char>(0); }
11135 static unsigned char signaling_NaN() throw()
11136 { return static_cast<unsigned char>(0); }
11137 static unsigned char denorm_min() throw()
11138 { return static_cast<unsigned char>(0); }
11139
11140 static const bool is_iec559 = false;
11141 static const bool is_bounded = true;
11142 static const bool is_modulo = true;
11143
11144 static const bool traps = true;
11145 static const bool tinyness_before = false;
11146 static const float_round_style round_style = round_toward_zero;
11147 };
11148
11149
11150 template<>
11151 struct numeric_limits<wchar_t>
11152 {
11153 static const bool is_specialized = true;
11154
11155 static wchar_t min() throw()
11156 { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); }
11157 static wchar_t max() throw()
11158 { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); }
11159
11160 static const int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0));
11161 static const int digits10 = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136);
11162 static const bool is_signed = ((wchar_t)(-1) < 0);
11163 static const bool is_integer = true;
11164 static const bool is_exact = true;
11165 static const int radix = 2;
11166 static wchar_t epsilon() throw()
11167 { return 0; }
11168 static wchar_t round_error() throw()
11169 { return 0; }
11170
11171 static const int min_exponent = 0;
11172 static const int min_exponent10 = 0;
11173 static const int max_exponent = 0;
11174 static const int max_exponent10 = 0;
11175
11176 static const bool has_infinity = false;
11177 static const bool has_quiet_NaN = false;
11178 static const bool has_signaling_NaN = false;
11179 static const float_denorm_style has_denorm = denorm_absent;
11180 static const bool has_denorm_loss = false;
11181
11182 static wchar_t infinity() throw()
11183 { return wchar_t(); }
11184 static wchar_t quiet_NaN() throw()
11185 { return wchar_t(); }
11186 static wchar_t signaling_NaN() throw()
11187 { return wchar_t(); }
11188 static wchar_t denorm_min() throw()
11189 { return wchar_t(); }
11190
11191 static const bool is_iec559 = false;
11192 static const bool is_bounded = true;
11193 static const bool is_modulo = true;
11194
11195 static const bool traps = true;
11196 static const bool tinyness_before = false;
11197 static const float_round_style round_style = round_toward_zero;
11198 };
11199
11200
11201 template<>
11202 struct numeric_limits<short>
11203 {
11204 static const bool is_specialized = true;
11205
11206 static short min() throw()
11207 { return -32767 - 1; }
11208 static short max() throw()
11209 { return 32767; }
11210
11211 static const int digits = (sizeof(short) * 8 - ((short)(-1) < 0));
11212 static const int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136);
11213 static const bool is_signed = true;
11214 static const bool is_integer = true;
11215 static const bool is_exact = true;
11216 static const int radix = 2;
11217 static short epsilon() throw()
11218 { return 0; }
11219 static short round_error() throw()
11220 { return 0; }
11221
11222 static const int min_exponent = 0;
11223 static const int min_exponent10 = 0;
11224 static const int max_exponent = 0;
11225 static const int max_exponent10 = 0;
11226
11227 static const bool has_infinity = false;
11228 static const bool has_quiet_NaN = false;
11229 static const bool has_signaling_NaN = false;
11230 static const float_denorm_style has_denorm = denorm_absent;
11231 static const bool has_denorm_loss = false;
11232
11233 static short infinity() throw()
11234 { return short(); }
11235 static short quiet_NaN() throw()
11236 { return short(); }
11237 static short signaling_NaN() throw()
11238 { return short(); }
11239 static short denorm_min() throw()
11240 { return short(); }
11241
11242 static const bool is_iec559 = false;
11243 static const bool is_bounded = true;
11244 static const bool is_modulo = true;
11245
11246 static const bool traps = true;
11247 static const bool tinyness_before = false;
11248 static const float_round_style round_style = round_toward_zero;
11249 };
11250
11251
11252 template<>
11253 struct numeric_limits<unsigned short>
11254 {
11255 static const bool is_specialized = true;
11256
11257 static unsigned short min() throw()
11258 { return 0; }
11259 static unsigned short max() throw()
11260 { return 32767 * 2U + 1; }
11261
11262 static const int digits = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0));
11263 static const int digits10 = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136);
11264 static const bool is_signed = false;
11265 static const bool is_integer = true;
11266 static const bool is_exact = true;
11267 static const int radix = 2;
11268 static unsigned short epsilon() throw()
11269 { return 0; }
11270 static unsigned short round_error() throw()
11271 { return 0; }
11272
11273 static const int min_exponent = 0;
11274 static const int min_exponent10 = 0;
11275 static const int max_exponent = 0;
11276 static const int max_exponent10 = 0;
11277
11278 static const bool has_infinity = false;
11279 static const bool has_quiet_NaN = false;
11280 static const bool has_signaling_NaN = false;
11281 static const float_denorm_style has_denorm = denorm_absent;
11282 static const bool has_denorm_loss = false;
11283
11284 static unsigned short infinity() throw()
11285 { return static_cast<unsigned short>(0); }
11286 static unsigned short quiet_NaN() throw()
11287 { return static_cast<unsigned short>(0); }
11288 static unsigned short signaling_NaN() throw()
11289 { return static_cast<unsigned short>(0); }
11290 static unsigned short denorm_min() throw()
11291 { return static_cast<unsigned short>(0); }
11292
11293 static const bool is_iec559 = false;
11294 static const bool is_bounded = true;
11295 static const bool is_modulo = true;
11296
11297 static const bool traps = true;
11298 static const bool tinyness_before = false;
11299 static const float_round_style round_style = round_toward_zero;
11300 };
11301
11302
11303 template<>
11304 struct numeric_limits<int>
11305 {
11306 static const bool is_specialized = true;
11307
11308 static int min() throw()
11309 { return -2147483647 - 1; }
11310 static int max() throw()
11311 { return 2147483647; }
11312
11313 static const int digits = (sizeof(int) * 8 - ((int)(-1) < 0));
11314 static const int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136);
11315 static const bool is_signed = true;
11316 static const bool is_integer = true;
11317 static const bool is_exact = true;
11318 static const int radix = 2;
11319 static int epsilon() throw()
11320 { return 0; }
11321 static int round_error() throw()
11322 { return 0; }
11323
11324 static const int min_exponent = 0;
11325 static const int min_exponent10 = 0;
11326 static const int max_exponent = 0;
11327 static const int max_exponent10 = 0;
11328
11329 static const bool has_infinity = false;
11330 static const bool has_quiet_NaN = false;
11331 static const bool has_signaling_NaN = false;
11332 static const float_denorm_style has_denorm = denorm_absent;
11333 static const bool has_denorm_loss = false;
11334
11335 static int infinity() throw()
11336 { return static_cast<int>(0); }
11337 static int quiet_NaN() throw()
11338 { return static_cast<int>(0); }
11339 static int signaling_NaN() throw()
11340 { return static_cast<int>(0); }
11341 static int denorm_min() throw()
11342 { return static_cast<int>(0); }
11343
11344 static const bool is_iec559 = false;
11345 static const bool is_bounded = true;
11346 static const bool is_modulo = true;
11347
11348 static const bool traps = true;
11349 static const bool tinyness_before = false;
11350 static const float_round_style round_style = round_toward_zero;
11351 };
11352
11353
11354 template<>
11355 struct numeric_limits<unsigned int>
11356 {
11357 static const bool is_specialized = true;
11358
11359 static unsigned int min() throw()
11360 { return 0; }
11361 static unsigned int max() throw()
11362 { return 2147483647 * 2U + 1; }
11363
11364 static const int digits = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0));
11365 static const int digits10 = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136);
11366 static const bool is_signed = false;
11367 static const bool is_integer = true;
11368 static const bool is_exact = true;
11369 static const int radix = 2;
11370 static unsigned int epsilon() throw()
11371 { return 0; }
11372 static unsigned int round_error() throw()
11373 { return 0; }
11374
11375 static const int min_exponent = 0;
11376 static const int min_exponent10 = 0;
11377 static const int max_exponent = 0;
11378 static const int max_exponent10 = 0;
11379
11380 static const bool has_infinity = false;
11381 static const bool has_quiet_NaN = false;
11382 static const bool has_signaling_NaN = false;
11383 static const float_denorm_style has_denorm = denorm_absent;
11384 static const bool has_denorm_loss = false;
11385
11386 static unsigned int infinity() throw()
11387 { return static_cast<unsigned int>(0); }
11388 static unsigned int quiet_NaN() throw()
11389 { return static_cast<unsigned int>(0); }
11390 static unsigned int signaling_NaN() throw()
11391 { return static_cast<unsigned int>(0); }
11392 static unsigned int denorm_min() throw()
11393 { return static_cast<unsigned int>(0); }
11394
11395 static const bool is_iec559 = false;
11396 static const bool is_bounded = true;
11397 static const bool is_modulo = true;
11398
11399 static const bool traps = true;
11400 static const bool tinyness_before = false;
11401 static const float_round_style round_style = round_toward_zero;
11402 };
11403
11404
11405 template<>
11406 struct numeric_limits<long>
11407 {
11408 static const bool is_specialized = true;
11409
11410 static long min() throw()
11411 { return -2147483647L - 1; }
11412 static long max() throw()
11413 { return 2147483647L; }
11414
11415 static const int digits = (sizeof(long) * 8 - ((long)(-1) < 0));
11416 static const int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136);
11417 static const bool is_signed = true;
11418 static const bool is_integer = true;
11419 static const bool is_exact = true;
11420 static const int radix = 2;
11421 static long epsilon() throw()
11422 { return 0; }
11423 static long round_error() throw()
11424 { return 0; }
11425
11426 static const int min_exponent = 0;
11427 static const int min_exponent10 = 0;
11428 static const int max_exponent = 0;
11429 static const int max_exponent10 = 0;
11430
11431 static const bool has_infinity = false;
11432 static const bool has_quiet_NaN = false;
11433 static const bool has_signaling_NaN = false;
11434 static const float_denorm_style has_denorm = denorm_absent;
11435 static const bool has_denorm_loss = false;
11436
11437 static long infinity() throw()
11438 { return static_cast<long>(0); }
11439 static long quiet_NaN() throw()
11440 { return static_cast<long>(0); }
11441 static long signaling_NaN() throw()
11442 { return static_cast<long>(0); }
11443 static long denorm_min() throw()
11444 { return static_cast<long>(0); }
11445
11446 static const bool is_iec559 = false;
11447 static const bool is_bounded = true;
11448 static const bool is_modulo = true;
11449
11450 static const bool traps = true;
11451 static const bool tinyness_before = false;
11452 static const float_round_style round_style = round_toward_zero;
11453 };
11454
11455
11456 template<>
11457 struct numeric_limits<unsigned long>
11458 {
11459 static const bool is_specialized = true;
11460
11461 static unsigned long min() throw()
11462 { return 0; }
11463 static unsigned long max() throw()
11464 { return 2147483647L * 2UL + 1; }
11465
11466 static const int digits = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0));
11467 static const int digits10 = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136);
11468 static const bool is_signed = false;
11469 static const bool is_integer = true;
11470 static const bool is_exact = true;
11471 static const int radix = 2;
11472 static unsigned long epsilon() throw()
11473 { return 0; }
11474 static unsigned long round_error() throw()
11475 { return 0; }
11476
11477 static const int min_exponent = 0;
11478 static const int min_exponent10 = 0;
11479 static const int max_exponent = 0;
11480 static const int max_exponent10 = 0;
11481
11482 static const bool has_infinity = false;
11483 static const bool has_quiet_NaN = false;
11484 static const bool has_signaling_NaN = false;
11485 static const float_denorm_style has_denorm = denorm_absent;
11486 static const bool has_denorm_loss = false;
11487
11488 static unsigned long infinity() throw()
11489 { return static_cast<unsigned long>(0); }
11490 static unsigned long quiet_NaN() throw()
11491 { return static_cast<unsigned long>(0); }
11492 static unsigned long signaling_NaN() throw()
11493 { return static_cast<unsigned long>(0); }
11494 static unsigned long denorm_min() throw()
11495 { return static_cast<unsigned long>(0); }
11496
11497 static const bool is_iec559 = false;
11498 static const bool is_bounded = true;
11499 static const bool is_modulo = true;
11500
11501 static const bool traps = true;
11502 static const bool tinyness_before = false;
11503 static const float_round_style round_style = round_toward_zero;
11504 };
11505
11506
11507 template<>
11508 struct numeric_limits<long long>
11509 {
11510 static const bool is_specialized = true;
11511
11512 static long long min() throw()
11513 { return -9223372036854775807LL - 1; }
11514 static long long max() throw()
11515 { return 9223372036854775807LL; }
11516
11517 static const int digits = (sizeof(long long) * 8 - ((long long)(-1) < 0));
11518 static const int digits10 = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136);
11519 static const bool is_signed = true;
11520 static const bool is_integer = true;
11521 static const bool is_exact = true;
11522 static const int radix = 2;
11523 static long long epsilon() throw()
11524 { return 0; }
11525 static long long round_error() throw()
11526 { return 0; }
11527
11528 static const int min_exponent = 0;
11529 static const int min_exponent10 = 0;
11530 static const int max_exponent = 0;
11531 static const int max_exponent10 = 0;
11532
11533 static const bool has_infinity = false;
11534 static const bool has_quiet_NaN = false;
11535 static const bool has_signaling_NaN = false;
11536 static const float_denorm_style has_denorm = denorm_absent;
11537 static const bool has_denorm_loss = false;
11538
11539 static long long infinity() throw()
11540 { return static_cast<long long>(0); }
11541 static long long quiet_NaN() throw()
11542 { return static_cast<long long>(0); }
11543 static long long signaling_NaN() throw()
11544 { return static_cast<long long>(0); }
11545 static long long denorm_min() throw()
11546 { return static_cast<long long>(0); }
11547
11548 static const bool is_iec559 = false;
11549 static const bool is_bounded = true;
11550 static const bool is_modulo = true;
11551
11552 static const bool traps = true;
11553 static const bool tinyness_before = false;
11554 static const float_round_style round_style = round_toward_zero;
11555 };
11556
11557
11558 template<>
11559 struct numeric_limits<unsigned long long>
11560 {
11561 static const bool is_specialized = true;
11562
11563 static unsigned long long min() throw()
11564 { return 0; }
11565 static unsigned long long max() throw()
11566 { return 9223372036854775807LL * 2ULL + 1; }
11567
11568 static const int digits = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0));
11569 static const int digits10 = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136);
11570 static const bool is_signed = false;
11571 static const bool is_integer = true;
11572 static const bool is_exact = true;
11573 static const int radix = 2;
11574 static unsigned long long epsilon() throw()
11575 { return 0; }
11576 static unsigned long long round_error() throw()
11577 { return 0; }
11578
11579 static const int min_exponent = 0;
11580 static const int min_exponent10 = 0;
11581 static const int max_exponent = 0;
11582 static const int max_exponent10 = 0;
11583
11584 static const bool has_infinity = false;
11585 static const bool has_quiet_NaN = false;
11586 static const bool has_signaling_NaN = false;
11587 static const float_denorm_style has_denorm = denorm_absent;
11588 static const bool has_denorm_loss = false;
11589
11590 static unsigned long long infinity() throw()
11591 { return static_cast<unsigned long long>(0); }
11592 static unsigned long long quiet_NaN() throw()
11593 { return static_cast<unsigned long long>(0); }
11594 static unsigned long long signaling_NaN() throw()
11595 { return static_cast<unsigned long long>(0); }
11596 static unsigned long long denorm_min() throw()
11597 { return static_cast<unsigned long long>(0); }
11598
11599 static const bool is_iec559 = false;
11600 static const bool is_bounded = true;
11601 static const bool is_modulo = true;
11602
11603 static const bool traps = true;
11604 static const bool tinyness_before = false;
11605 static const float_round_style round_style = round_toward_zero;
11606 };
11607
11608
11609 template<>
11610 struct numeric_limits<float>
11611 {
11612 static const bool is_specialized = true;
11613
11614 static float min() throw()
11615 { return 1.17549435e-38F; }
11616 static float max() throw()
11617 { return 3.40282347e+38F; }
11618
11619 static const int digits = 24;
11620 static const int digits10 = 6;
11621 static const bool is_signed = true;
11622 static const bool is_integer = false;
11623 static const bool is_exact = false;
11624 static const int radix = 2;
11625 static float epsilon() throw()
11626 { return 1.19209290e-7F; }
11627 static float round_error() throw()
11628 { return 0.5F; }
11629
11630 static const int min_exponent = (-125);
11631 static const int min_exponent10 = (-37);
11632 static const int max_exponent = 128;
11633 static const int max_exponent10 = 38;
11634
11635 static const bool has_infinity = 1;
11636 static const bool has_quiet_NaN = 1;
11637 static const bool has_signaling_NaN = has_quiet_NaN;
11638 static const float_denorm_style has_denorm
11639 = bool(1.40129846e-45F) ? denorm_present : denorm_absent;
11640 static const bool has_denorm_loss = false;
11641
11642 static float infinity() throw()
11643 { return __builtin_huge_valf (); }
11644 static float quiet_NaN() throw()
11645 { return __builtin_nanf (""); }
11646 static float signaling_NaN() throw()
11647 { return __builtin_nansf (""); }
11648 static float denorm_min() throw()
11649 { return 1.40129846e-45F; }
11650
11651 static const bool is_iec559
11652 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11653 static const bool is_bounded = true;
11654 static const bool is_modulo = false;
11655
11656 static const bool traps = false;
11657 static const bool tinyness_before = false;
11658 static const float_round_style round_style = round_to_nearest;
11659 };
11660
11661
11662
11663
11664
11665
11666 template<>
11667 struct numeric_limits<double>
11668 {
11669 static const bool is_specialized = true;
11670
11671 static double min() throw()
11672 { return 2.2250738585072014e-308; }
11673 static double max() throw()
11674 { return 1.7976931348623157e+308; }
11675
11676 static const int digits = 53;
11677 static const int digits10 = 15;
11678 static const bool is_signed = true;
11679 static const bool is_integer = false;
11680 static const bool is_exact = false;
11681 static const int radix = 2;
11682 static double epsilon() throw()
11683 { return 2.2204460492503131e-16; }
11684 static double round_error() throw()
11685 { return 0.5; }
11686
11687 static const int min_exponent = (-1021);
11688 static const int min_exponent10 = (-307);
11689 static const int max_exponent = 1024;
11690 static const int max_exponent10 = 308;
11691
11692 static const bool has_infinity = 1;
11693 static const bool has_quiet_NaN = 1;
11694 static const bool has_signaling_NaN = has_quiet_NaN;
11695 static const float_denorm_style has_denorm
11696 = bool(4.9406564584124654e-324) ? denorm_present : denorm_absent;
11697 static const bool has_denorm_loss = false;
11698
11699 static double infinity() throw()
11700 { return __builtin_huge_val(); }
11701 static double quiet_NaN() throw()
11702 { return __builtin_nan (""); }
11703 static double signaling_NaN() throw()
11704 { return __builtin_nans (""); }
11705 static double denorm_min() throw()
11706 { return 4.9406564584124654e-324; }
11707
11708 static const bool is_iec559
11709 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11710 static const bool is_bounded = true;
11711 static const bool is_modulo = false;
11712
11713 static const bool traps = false;
11714 static const bool tinyness_before = false;
11715 static const float_round_style round_style = round_to_nearest;
11716 };
11717
11718
11719
11720
11721
11722
11723 template<>
11724 struct numeric_limits<long double>
11725 {
11726 static const bool is_specialized = true;
11727
11728 static long double min() throw()
11729 { return 3.36210314311209350626e-4932L; }
11730 static long double max() throw()
11731 { return 1.18973149535723176502e+4932L; }
11732
11733 static const int digits = 64;
11734 static const int digits10 = 18;
11735 static const bool is_signed = true;
11736 static const bool is_integer = false;
11737 static const bool is_exact = false;
11738 static const int radix = 2;
11739 static long double epsilon() throw()
11740 { return 1.08420217248550443401e-19L; }
11741 static long double round_error() throw()
11742 { return 0.5L; }
11743
11744 static const int min_exponent = (-16381);
11745 static const int min_exponent10 = (-4931);
11746 static const int max_exponent = 16384;
11747 static const int max_exponent10 = 4932;
11748
11749 static const bool has_infinity = 1;
11750 static const bool has_quiet_NaN = 1;
11751 static const bool has_signaling_NaN = has_quiet_NaN;
11752 static const float_denorm_style has_denorm
11753 = bool(3.64519953188247460253e-4951L) ? denorm_present : denorm_absent;
11754 static const bool has_denorm_loss
11755 = false;
11756
11757 static long double infinity() throw()
11758 { return __builtin_huge_vall (); }
11759 static long double quiet_NaN() throw()
11760 { return __builtin_nanl (""); }
11761 static long double signaling_NaN() throw()
11762 { return __builtin_nansl (""); }
11763 static long double denorm_min() throw()
11764 { return 3.64519953188247460253e-4951L; }
11765
11766 static const bool is_iec559
11767 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11768 static const bool is_bounded = true;
11769 static const bool is_modulo = false;
11770
11771 static const bool traps = false;
11772 static const bool tinyness_before = false;
11773 static const float_round_style round_style = round_to_nearest;
11774 };
11775
11776
11777
11778
11779
11780}
11781
11782
11783
11784
11785
11786
11787
11788#pragma GCC visibility pop
11789# 62 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 2 3
11790
11791namespace std
11792{
11793# 73 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11794 template<typename _Tp>
11795 pair<_Tp*, ptrdiff_t>
11796 __get_temporary_buffer(ptrdiff_t __len, _Tp*)
11797 {
11798 const ptrdiff_t __max = numeric_limits<ptrdiff_t>::max() / sizeof(_Tp);
11799 if (__len > __max)
11800 __len = __max;
11801
11802 while (__len > 0)
11803 {
11804 _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
11805 nothrow));
11806 if (__tmp != 0)
11807 return pair<_Tp*, ptrdiff_t>(__tmp, __len);
11808 __len /= 2;
11809 }
11810 return pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
11811 }
11812# 109 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11813 template<typename _Tp>
11814 inline pair<_Tp*, ptrdiff_t>
11815 get_temporary_buffer(ptrdiff_t __len)
11816 { return std::__get_temporary_buffer(__len, static_cast<_Tp*>(0)); }
11817# 121 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11818 template<typename _Tp>
11819 void
11820 return_temporary_buffer(_Tp* __p)
11821 { ::operator delete(__p, nothrow); }
11822# 133 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11823 template<typename _Tp1>
11824 struct auto_ptr_ref
11825 {
11826 _Tp1* _M_ptr;
11827
11828 explicit
11829 auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
11830 };
11831# 174 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11832 template<typename _Tp>
11833 class auto_ptr
11834 {
11835 private:
11836 _Tp* _M_ptr;
11837
11838 public:
11839
11840 typedef _Tp element_type;
11841
11842
11843
11844
11845
11846
11847
11848 explicit
11849 auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { }
11850# 200 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11851 auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { }
11852# 212 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11853 template<typename _Tp1>
11854 auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { }
11855# 223 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11856 auto_ptr&
11857 operator=(auto_ptr& __a) throw()
11858 {
11859 reset(__a.release());
11860 return *this;
11861 }
11862# 240 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11863 template<typename _Tp1>
11864 auto_ptr&
11865 operator=(auto_ptr<_Tp1>& __a) throw()
11866 {
11867 reset(__a.release());
11868 return *this;
11869 }
11870# 260 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11871 ~auto_ptr() { delete _M_ptr; }
11872# 270 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11873 element_type&
11874 operator*() const throw()
11875 {
11876 ;
11877 return *_M_ptr;
11878 }
11879
11880
11881
11882
11883
11884
11885
11886 element_type*
11887 operator->() const throw()
11888 {
11889 ;
11890 return _M_ptr;
11891 }
11892# 300 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11893 element_type*
11894 get() const throw() { return _M_ptr; }
11895# 314 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11896 element_type*
11897 release() throw()
11898 {
11899 element_type* __tmp = _M_ptr;
11900 _M_ptr = 0;
11901 return __tmp;
11902 }
11903# 329 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11904 void
11905 reset(element_type* __p = 0) throw()
11906 {
11907 if (__p != _M_ptr)
11908 {
11909 delete _M_ptr;
11910 _M_ptr = __p;
11911 }
11912 }
11913# 350 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11914 auto_ptr(auto_ptr_ref<element_type> __ref) throw()
11915 : _M_ptr(__ref._M_ptr) { }
11916
11917 auto_ptr&
11918 operator=(auto_ptr_ref<element_type> __ref) throw()
11919 {
11920 if (__ref._M_ptr != this->get())
11921 {
11922 delete _M_ptr;
11923 _M_ptr = __ref._M_ptr;
11924 }
11925 return *this;
11926 }
11927
11928 template<typename _Tp1>
11929 operator auto_ptr_ref<_Tp1>() throw()
11930 { return auto_ptr_ref<_Tp1>(this->release()); }
11931
11932 template<typename _Tp1>
11933 operator auto_ptr<_Tp1>() throw()
11934 { return auto_ptr<_Tp1>(this->release()); }
11935 };
11936}
11937
11938#pragma GCC visibility pop
11939# 65 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_tempbuf.h" 2 3
11940
11941namespace std
11942{
11943
11944
11945
11946
11947
11948
11949
11950 template<typename _ForwardIterator, typename _Tp>
11951 class _Temporary_buffer
11952 {
11953
11954
11955
11956 public:
11957 typedef _Tp value_type;
11958 typedef value_type* pointer;
11959 typedef pointer iterator;
11960 typedef ptrdiff_t size_type;
11961
11962 protected:
11963 size_type _M_original_len;
11964 size_type _M_len;
11965 pointer _M_buffer;
11966
11967 void
11968 _M_initialize_buffer(const _Tp&, __true_type) { }
11969
11970 void
11971 _M_initialize_buffer(const _Tp& val, __false_type)
11972 { std::uninitialized_fill_n(_M_buffer, _M_len, val); }
11973
11974 public:
11975
11976 size_type
11977 size() const
11978 { return _M_len; }
11979
11980
11981 size_type
11982 requested_size() const
11983 { return _M_original_len; }
11984
11985
11986 iterator
11987 begin()
11988 { return _M_buffer; }
11989
11990
11991 iterator
11992 end()
11993 { return _M_buffer + _M_len; }
11994
11995
11996
11997
11998
11999 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
12000
12001 ~_Temporary_buffer()
12002 {
12003 std::_Destroy(_M_buffer, _M_buffer + _M_len);
12004 std::return_temporary_buffer(_M_buffer);
12005 }
12006
12007 private:
12008
12009 _Temporary_buffer(const _Temporary_buffer&);
12010
12011 void
12012 operator=(const _Temporary_buffer&);
12013 };
12014
12015
12016 template<typename _ForwardIterator, typename _Tp>
12017 _Temporary_buffer<_ForwardIterator, _Tp>::
12018 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
12019 : _M_original_len(std::distance(__first, __last)),
12020 _M_len(0), _M_buffer(0)
12021 {
12022
12023 typedef typename std::__is_scalar<_Tp>::__type _Trivial;
12024
12025 try
12026 {
12027 pair<pointer, size_type> __p(get_temporary_buffer<
12028 value_type>(_M_original_len));
12029 _M_buffer = __p.first;
12030 _M_len = __p.second;
12031 if (_M_len > 0)
12032 _M_initialize_buffer(*__first, _Trivial());
12033 }
12034 catch(...)
12035 {
12036 std::return_temporary_buffer(_M_buffer);
12037 _M_buffer = 0;
12038 _M_len = 0;
12039 throw;
12040 }
12041 }
12042}
12043# 67 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 2 3
12044
12045
12046
12047
12048namespace std
12049{
12050# 85 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12051 template<typename _Tp>
12052 inline const _Tp&
12053 __median(const _Tp& __a, const _Tp& __b, const _Tp& __c)
12054 {
12055
12056
12057 if (__a < __b)
12058 if (__b < __c)
12059 return __b;
12060 else if (__a < __c)
12061 return __c;
12062 else
12063 return __a;
12064 else if (__a < __c)
12065 return __a;
12066 else if (__b < __c)
12067 return __c;
12068 else
12069 return __b;
12070 }
12071# 119 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12072 template<typename _Tp, typename _Compare>
12073 inline const _Tp&
12074 __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp)
12075 {
12076
12077
12078 if (__comp(__a, __b))
12079 if (__comp(__b, __c))
12080 return __b;
12081 else if (__comp(__a, __c))
12082 return __c;
12083 else
12084 return __a;
12085 else if (__comp(__a, __c))
12086 return __a;
12087 else if (__comp(__b, __c))
12088 return __c;
12089 else
12090 return __b;
12091 }
12092# 151 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12093 template<typename _InputIterator, typename _Function>
12094 _Function
12095 for_each(_InputIterator __first, _InputIterator __last, _Function __f)
12096 {
12097
12098
12099 ;
12100 for ( ; __first != __last; ++__first)
12101 __f(*__first);
12102 return __f;
12103 }
12104
12105
12106
12107
12108
12109
12110 template<typename _InputIterator, typename _Tp>
12111 inline _InputIterator
12112 __find(_InputIterator __first, _InputIterator __last,
12113 const _Tp& __val, input_iterator_tag)
12114 {
12115 while (__first != __last && !(*__first == __val))
12116 ++__first;
12117 return __first;
12118 }
12119
12120
12121
12122
12123
12124
12125 template<typename _InputIterator, typename _Predicate>
12126 inline _InputIterator
12127 __find_if(_InputIterator __first, _InputIterator __last,
12128 _Predicate __pred, input_iterator_tag)
12129 {
12130 while (__first != __last && !__pred(*__first))
12131 ++__first;
12132 return __first;
12133 }
12134
12135
12136
12137
12138
12139
12140 template<typename _RandomAccessIterator, typename _Tp>
12141 _RandomAccessIterator
12142 __find(_RandomAccessIterator __first, _RandomAccessIterator __last,
12143 const _Tp& __val, random_access_iterator_tag)
12144 {
12145 typename iterator_traits<_RandomAccessIterator>::difference_type
12146 __trip_count = (__last - __first) >> 2;
12147
12148 for ( ; __trip_count > 0 ; --__trip_count)
12149 {
12150 if (*__first == __val)
12151 return __first;
12152 ++__first;
12153
12154 if (*__first == __val)
12155 return __first;
12156 ++__first;
12157
12158 if (*__first == __val)
12159 return __first;
12160 ++__first;
12161
12162 if (*__first == __val)
12163 return __first;
12164 ++__first;
12165 }
12166
12167 switch (__last - __first)
12168 {
12169 case 3:
12170 if (*__first == __val)
12171 return __first;
12172 ++__first;
12173 case 2:
12174 if (*__first == __val)
12175 return __first;
12176 ++__first;
12177 case 1:
12178 if (*__first == __val)
12179 return __first;
12180 ++__first;
12181 case 0:
12182 default:
12183 return __last;
12184 }
12185 }
12186
12187
12188
12189
12190
12191
12192 template<typename _RandomAccessIterator, typename _Predicate>
12193 _RandomAccessIterator
12194 __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last,
12195 _Predicate __pred, random_access_iterator_tag)
12196 {
12197 typename iterator_traits<_RandomAccessIterator>::difference_type
12198 __trip_count = (__last - __first) >> 2;
12199
12200 for ( ; __trip_count > 0 ; --__trip_count)
12201 {
12202 if (__pred(*__first))
12203 return __first;
12204 ++__first;
12205
12206 if (__pred(*__first))
12207 return __first;
12208 ++__first;
12209
12210 if (__pred(*__first))
12211 return __first;
12212 ++__first;
12213
12214 if (__pred(*__first))
12215 return __first;
12216 ++__first;
12217 }
12218
12219 switch (__last - __first)
12220 {
12221 case 3:
12222 if (__pred(*__first))
12223 return __first;
12224 ++__first;
12225 case 2:
12226 if (__pred(*__first))
12227 return __first;
12228 ++__first;
12229 case 1:
12230 if (__pred(*__first))
12231 return __first;
12232 ++__first;
12233 case 0:
12234 default:
12235 return __last;
12236 }
12237 }
12238# 305 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12239 template<typename _InputIterator, typename _Tp>
12240 inline _InputIterator
12241 find(_InputIterator __first, _InputIterator __last,
12242 const _Tp& __val)
12243 {
12244
12245
12246
12247
12248 ;
12249 return std::__find(__first, __last, __val,
12250 std::__iterator_category(__first));
12251 }
12252# 327 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12253 template<typename _InputIterator, typename _Predicate>
12254 inline _InputIterator
12255 find_if(_InputIterator __first, _InputIterator __last,
12256 _Predicate __pred)
12257 {
12258
12259
12260
12261
12262 ;
12263 return std::__find_if(__first, __last, __pred,
12264 std::__iterator_category(__first));
12265 }
12266# 349 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12267 template<typename _ForwardIterator>
12268 _ForwardIterator
12269 adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
12270 {
12271
12272
12273
12274
12275 ;
12276 if (__first == __last)
12277 return __last;
12278 _ForwardIterator __next = __first;
12279 while(++__next != __last)
12280 {
12281 if (*__first == *__next)
12282 return __first;
12283 __first = __next;
12284 }
12285 return __last;
12286 }
12287# 380 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12288 template<typename _ForwardIterator, typename _BinaryPredicate>
12289 _ForwardIterator
12290 adjacent_find(_ForwardIterator __first, _ForwardIterator __last,
12291 _BinaryPredicate __binary_pred)
12292 {
12293
12294
12295
12296
12297
12298 ;
12299 if (__first == __last)
12300 return __last;
12301 _ForwardIterator __next = __first;
12302 while(++__next != __last)
12303 {
12304 if (__binary_pred(*__first, *__next))
12305 return __first;
12306 __first = __next;
12307 }
12308 return __last;
12309 }
12310# 411 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12311 template<typename _InputIterator, typename _Tp>
12312 typename iterator_traits<_InputIterator>::difference_type
12313 count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
12314 {
12315
12316
12317
12318
12319 ;
12320 typename iterator_traits<_InputIterator>::difference_type __n = 0;
12321 for ( ; __first != __last; ++__first)
12322 if (*__first == __value)
12323 ++__n;
12324 return __n;
12325 }
12326# 435 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12327 template<typename _InputIterator, typename _Predicate>
12328 typename iterator_traits<_InputIterator>::difference_type
12329 count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)
12330 {
12331
12332
12333
12334
12335 ;
12336 typename iterator_traits<_InputIterator>::difference_type __n = 0;
12337 for ( ; __first != __last; ++__first)
12338 if (__pred(*__first))
12339 ++__n;
12340 return __n;
12341 }
12342# 474 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12343 template<typename _ForwardIterator1, typename _ForwardIterator2>
12344 _ForwardIterator1
12345 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
12346 _ForwardIterator2 __first2, _ForwardIterator2 __last2)
12347 {
12348
12349
12350
12351
12352
12353
12354 ;
12355 ;
12356
12357 if (__first1 == __last1 || __first2 == __last2)
12358 return __first1;
12359
12360
12361 _ForwardIterator2 __tmp(__first2);
12362 ++__tmp;
12363 if (__tmp == __last2)
12364 return std::find(__first1, __last1, *__first2);
12365
12366
12367 _ForwardIterator2 __p1, __p;
12368 __p1 = __first2; ++__p1;
12369 _ForwardIterator1 __current = __first1;
12370
12371 while (__first1 != __last1)
12372 {
12373 __first1 = std::find(__first1, __last1, *__first2);
12374 if (__first1 == __last1)
12375 return __last1;
12376
12377 __p = __p1;
12378 __current = __first1;
12379 if (++__current == __last1)
12380 return __last1;
12381
12382 while (*__current == *__p)
12383 {
12384 if (++__p == __last2)
12385 return __first1;
12386 if (++__current == __last1)
12387 return __last1;
12388 }
12389 ++__first1;
12390 }
12391 return __first1;
12392 }
12393# 545 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12394 template<typename _ForwardIterator1, typename _ForwardIterator2,
12395 typename _BinaryPredicate>
12396 _ForwardIterator1
12397 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
12398 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
12399 _BinaryPredicate __predicate)
12400 {
12401
12402
12403
12404
12405
12406
12407 ;
12408 ;
12409
12410
12411 if (__first1 == __last1 || __first2 == __last2)
12412 return __first1;
12413
12414
12415 _ForwardIterator2 __tmp(__first2);
12416 ++__tmp;
12417 if (__tmp == __last2)
12418 {
12419 while (__first1 != __last1 && !__predicate(*__first1, *__first2))
12420 ++__first1;
12421 return __first1;
12422 }
12423
12424
12425 _ForwardIterator2 __p1, __p;
12426 __p1 = __first2; ++__p1;
12427 _ForwardIterator1 __current = __first1;
12428
12429 while (__first1 != __last1)
12430 {
12431 while (__first1 != __last1)
12432 {
12433 if (__predicate(*__first1, *__first2))
12434 break;
12435 ++__first1;
12436 }
12437 while (__first1 != __last1 && !__predicate(*__first1, *__first2))
12438 ++__first1;
12439 if (__first1 == __last1)
12440 return __last1;
12441
12442 __p = __p1;
12443 __current = __first1;
12444 if (++__current == __last1)
12445 return __last1;
12446
12447 while (__predicate(*__current, *__p))
12448 {
12449 if (++__p == __last2)
12450 return __first1;
12451 if (++__current == __last1)
12452 return __last1;
12453 }
12454 ++__first1;
12455 }
12456 return __first1;
12457 }
12458# 617 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12459 template<typename _ForwardIterator, typename _Integer, typename _Tp>
12460 _ForwardIterator
12461 __search_n(_ForwardIterator __first, _ForwardIterator __last,
12462 _Integer __count, const _Tp& __val,
12463 std::forward_iterator_tag)
12464 {
12465 __first = std::find(__first, __last, __val);
12466 while (__first != __last)
12467 {
12468 typename iterator_traits<_ForwardIterator>::difference_type
12469 __n = __count;
12470 _ForwardIterator __i = __first;
12471 ++__i;
12472 while (__i != __last && __n != 1 && *__i == __val)
12473 {
12474 ++__i;
12475 --__n;
12476 }
12477 if (__n == 1)
12478 return __first;
12479 if (__i == __last)
12480 return __last;
12481 __first = std::find(++__i, __last, __val);
12482 }
12483 return __last;
12484 }
12485# 651 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12486 template<typename _RandomAccessIter, typename _Integer, typename _Tp>
12487 _RandomAccessIter
12488 __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
12489 _Integer __count, const _Tp& __val,
12490 std::random_access_iterator_tag)
12491 {
12492
12493 typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
12494 _DistanceType;
12495
12496 _DistanceType __tailSize = __last - __first;
12497 const _DistanceType __pattSize = __count;
12498
12499 if (__tailSize < __pattSize)
12500 return __last;
12501
12502 const _DistanceType __skipOffset = __pattSize - 1;
12503 _RandomAccessIter __lookAhead = __first + __skipOffset;
12504 __tailSize -= __pattSize;
12505
12506 while (1)
12507 {
12508
12509
12510 while (!(*__lookAhead == __val))
12511 {
12512 if (__tailSize < __pattSize)
12513 return __last;
12514 __lookAhead += __pattSize;
12515 __tailSize -= __pattSize;
12516 }
12517 _DistanceType __remainder = __skipOffset;
12518 for (_RandomAccessIter __backTrack = __lookAhead - 1;
12519 *__backTrack == __val; --__backTrack)
12520 {
12521 if (--__remainder == 0)
12522 return (__lookAhead - __skipOffset);
12523 }
12524 if (__remainder > __tailSize)
12525 return __last;
12526 __lookAhead += __remainder;
12527 __tailSize -= __remainder;
12528 }
12529 }
12530# 709 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12531 template<typename _ForwardIterator, typename _Integer, typename _Tp>
12532 _ForwardIterator
12533 search_n(_ForwardIterator __first, _ForwardIterator __last,
12534 _Integer __count, const _Tp& __val)
12535 {
12536
12537
12538
12539
12540 ;
12541
12542 if (__count <= 0)
12543 return __first;
12544 if (__count == 1)
12545 return std::find(__first, __last, __val);
12546 return std::__search_n(__first, __last, __count, __val,
12547 std::__iterator_category(__first));
12548 }
12549# 736 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12550 template<typename _ForwardIterator, typename _Integer, typename _Tp,
12551 typename _BinaryPredicate>
12552 _ForwardIterator
12553 __search_n(_ForwardIterator __first, _ForwardIterator __last,
12554 _Integer __count, const _Tp& __val,
12555 _BinaryPredicate __binary_pred, std::forward_iterator_tag)
12556 {
12557 while (__first != __last && !__binary_pred(*__first, __val))
12558 ++__first;
12559
12560 while (__first != __last)
12561 {
12562 typename iterator_traits<_ForwardIterator>::difference_type
12563 __n = __count;
12564 _ForwardIterator __i = __first;
12565 ++__i;
12566 while (__i != __last && __n != 1 && __binary_pred(*__i, __val))
12567 {
12568 ++__i;
12569 --__n;
12570 }
12571 if (__n == 1)
12572 return __first;
12573 if (__i == __last)
12574 return __last;
12575 __first = ++__i;
12576 while (__first != __last && !__binary_pred(*__first, __val))
12577 ++__first;
12578 }
12579 return __last;
12580 }
12581# 776 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12582 template<typename _RandomAccessIter, typename _Integer, typename _Tp,
12583 typename _BinaryPredicate>
12584 _RandomAccessIter
12585 __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
12586 _Integer __count, const _Tp& __val,
12587 _BinaryPredicate __binary_pred, std::random_access_iterator_tag)
12588 {
12589
12590 typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
12591 _DistanceType;
12592
12593 _DistanceType __tailSize = __last - __first;
12594 const _DistanceType __pattSize = __count;
12595
12596 if (__tailSize < __pattSize)
12597 return __last;
12598
12599 const _DistanceType __skipOffset = __pattSize - 1;
12600 _RandomAccessIter __lookAhead = __first + __skipOffset;
12601 __tailSize -= __pattSize;
12602
12603 while (1)
12604 {
12605
12606
12607 while (!__binary_pred(*__lookAhead, __val))
12608 {
12609 if (__tailSize < __pattSize)
12610 return __last;
12611 __lookAhead += __pattSize;
12612 __tailSize -= __pattSize;
12613 }
12614 _DistanceType __remainder = __skipOffset;
12615 for (_RandomAccessIter __backTrack = __lookAhead - 1;
12616 __binary_pred(*__backTrack, __val); --__backTrack)
12617 {
12618 if (--__remainder == 0)
12619 return (__lookAhead - __skipOffset);
12620 }
12621 if (__remainder > __tailSize)
12622 return __last;
12623 __lookAhead += __remainder;
12624 __tailSize -= __remainder;
12625 }
12626 }
12627# 837 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12628 template<typename _ForwardIterator, typename _Integer, typename _Tp,
12629 typename _BinaryPredicate>
12630 _ForwardIterator
12631 search_n(_ForwardIterator __first, _ForwardIterator __last,
12632 _Integer __count, const _Tp& __val,
12633 _BinaryPredicate __binary_pred)
12634 {
12635
12636
12637
12638
12639 ;
12640
12641 if (__count <= 0)
12642 return __first;
12643 if (__count == 1)
12644 {
12645 while (__first != __last && !__binary_pred(*__first, __val))
12646 ++__first;
12647 return __first;
12648 }
12649 return std::__search_n(__first, __last, __count, __val, __binary_pred,
12650 std::__iterator_category(__first));
12651 }
12652# 873 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12653 template<typename _ForwardIterator1, typename _ForwardIterator2>
12654 _ForwardIterator2
12655 swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
12656 _ForwardIterator2 __first2)
12657 {
12658
12659
12660
12661
12662
12663
12664
12665
12666
12667
12668
12669 ;
12670
12671 for ( ; __first1 != __last1; ++__first1, ++__first2)
12672 std::iter_swap(__first1, __first2);
12673 return __first2;
12674 }
12675# 911 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12676 template<typename _InputIterator, typename _OutputIterator,
12677 typename _UnaryOperation>
12678 _OutputIterator
12679 transform(_InputIterator __first, _InputIterator __last,
12680 _OutputIterator __result, _UnaryOperation __unary_op)
12681 {
12682
12683
12684
12685
12686
12687 ;
12688
12689 for ( ; __first != __last; ++__first, ++__result)
12690 *__result = __unary_op(*__first);
12691 return __result;
12692 }
12693# 946 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12694 template<typename _InputIterator1, typename _InputIterator2,
12695 typename _OutputIterator, typename _BinaryOperation>
12696 _OutputIterator
12697 transform(_InputIterator1 __first1, _InputIterator1 __last1,
12698 _InputIterator2 __first2, _OutputIterator __result,
12699 _BinaryOperation __binary_op)
12700 {
12701
12702
12703
12704
12705
12706
12707 ;
12708
12709 for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
12710 *__result = __binary_op(*__first1, *__first2);
12711 return __result;
12712 }
12713# 978 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12714 template<typename _ForwardIterator, typename _Tp>
12715 void
12716 replace(_ForwardIterator __first, _ForwardIterator __last,
12717 const _Tp& __old_value, const _Tp& __new_value)
12718 {
12719
12720
12721
12722
12723
12724
12725
12726 ;
12727
12728 for ( ; __first != __last; ++__first)
12729 if (*__first == __old_value)
12730 *__first = __new_value;
12731 }
12732# 1009 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12733 template<typename _ForwardIterator, typename _Predicate, typename _Tp>
12734 void
12735 replace_if(_ForwardIterator __first, _ForwardIterator __last,
12736 _Predicate __pred, const _Tp& __new_value)
12737 {
12738
12739
12740
12741
12742
12743
12744
12745 ;
12746
12747 for ( ; __first != __last; ++__first)
12748 if (__pred(*__first))
12749 *__first = __new_value;
12750 }
12751# 1042 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12752 template<typename _InputIterator, typename _OutputIterator, typename _Tp>
12753 _OutputIterator
12754 replace_copy(_InputIterator __first, _InputIterator __last,
12755 _OutputIterator __result,
12756 const _Tp& __old_value, const _Tp& __new_value)
12757 {
12758
12759
12760
12761
12762
12763
12764 ;
12765
12766 for ( ; __first != __last; ++__first, ++__result)
12767 if (*__first == __old_value)
12768 *__result = __new_value;
12769 else
12770 *__result = *__first;
12771 return __result;
12772 }
12773# 1078 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12774 template<typename _InputIterator, typename _OutputIterator,
12775 typename _Predicate, typename _Tp>
12776 _OutputIterator
12777 replace_copy_if(_InputIterator __first, _InputIterator __last,
12778 _OutputIterator __result,
12779 _Predicate __pred, const _Tp& __new_value)
12780 {
12781
12782
12783
12784
12785
12786
12787 ;
12788
12789 for ( ; __first != __last; ++__first, ++__result)
12790 if (__pred(*__first))
12791 *__result = __new_value;
12792 else
12793 *__result = *__first;
12794 return __result;
12795 }
12796# 1112 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12797 template<typename _ForwardIterator, typename _Generator>
12798 void
12799 generate(_ForwardIterator __first, _ForwardIterator __last,
12800 _Generator __gen)
12801 {
12802
12803
12804
12805
12806 ;
12807
12808 for ( ; __first != __last; ++__first)
12809 *__first = __gen();
12810 }
12811# 1138 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12812 template<typename _OutputIterator, typename _Size, typename _Generator>
12813 _OutputIterator
12814 generate_n(_OutputIterator __first, _Size __n, _Generator __gen)
12815 {
12816
12817
12818
12819
12820
12821 for ( ; __n > 0; --__n, ++__first)
12822 *__first = __gen();
12823 return __first;
12824 }
12825# 1165 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12826 template<typename _InputIterator, typename _OutputIterator, typename _Tp>
12827 _OutputIterator
12828 remove_copy(_InputIterator __first, _InputIterator __last,
12829 _OutputIterator __result, const _Tp& __value)
12830 {
12831
12832
12833
12834
12835
12836
12837 ;
12838
12839 for ( ; __first != __last; ++__first)
12840 if (!(*__first == __value))
12841 {
12842 *__result = *__first;
12843 ++__result;
12844 }
12845 return __result;
12846 }
12847# 1201 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12848 template<typename _InputIterator, typename _OutputIterator,
12849 typename _Predicate>
12850 _OutputIterator
12851 remove_copy_if(_InputIterator __first, _InputIterator __last,
12852 _OutputIterator __result, _Predicate __pred)
12853 {
12854
12855
12856
12857
12858
12859
12860 ;
12861
12862 for ( ; __first != __last; ++__first)
12863 if (!__pred(*__first))
12864 {
12865 *__result = *__first;
12866 ++__result;
12867 }
12868 return __result;
12869 }
12870# 1240 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12871 template<typename _ForwardIterator, typename _Tp>
12872 _ForwardIterator
12873 remove(_ForwardIterator __first, _ForwardIterator __last,
12874 const _Tp& __value)
12875 {
12876
12877
12878
12879
12880
12881 ;
12882
12883 __first = std::find(__first, __last, __value);
12884 _ForwardIterator __i = __first;
12885 return __first == __last ? __first
12886 : std::remove_copy(++__i, __last,
12887 __first, __value);
12888 }
12889# 1275 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12890 template<typename _ForwardIterator, typename _Predicate>
12891 _ForwardIterator
12892 remove_if(_ForwardIterator __first, _ForwardIterator __last,
12893 _Predicate __pred)
12894 {
12895
12896
12897
12898
12899
12900 ;
12901
12902 __first = std::find_if(__first, __last, __pred);
12903 _ForwardIterator __i = __first;
12904 return __first == __last ? __first
12905 : std::remove_copy_if(++__i, __last,
12906 __first, __pred);
12907 }
12908# 1301 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12909 template<typename _InputIterator, typename _OutputIterator>
12910 _OutputIterator
12911 __unique_copy(_InputIterator __first, _InputIterator __last,
12912 _OutputIterator __result,
12913 output_iterator_tag)
12914 {
12915
12916 typename iterator_traits<_InputIterator>::value_type __value = *__first;
12917 *__result = __value;
12918 while (++__first != __last)
12919 if (!(__value == *__first))
12920 {
12921 __value = *__first;
12922 *++__result = __value;
12923 }
12924 return ++__result;
12925 }
12926# 1326 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12927 template<typename _InputIterator, typename _ForwardIterator>
12928 _ForwardIterator
12929 __unique_copy(_InputIterator __first, _InputIterator __last,
12930 _ForwardIterator __result,
12931 forward_iterator_tag)
12932 {
12933
12934 *__result = *__first;
12935 while (++__first != __last)
12936 if (!(*__result == *__first))
12937 *++__result = *__first;
12938 return ++__result;
12939 }
12940# 1348 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12941 template<typename _InputIterator, typename _OutputIterator,
12942 typename _BinaryPredicate>
12943 _OutputIterator
12944 __unique_copy(_InputIterator __first, _InputIterator __last,
12945 _OutputIterator __result,
12946 _BinaryPredicate __binary_pred,
12947 output_iterator_tag)
12948 {
12949
12950
12951
12952
12953
12954 typename iterator_traits<_InputIterator>::value_type __value = *__first;
12955 *__result = __value;
12956 while (++__first != __last)
12957 if (!__binary_pred(__value, *__first))
12958 {
12959 __value = *__first;
12960 *++__result = __value;
12961 }
12962 return ++__result;
12963 }
12964# 1380 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12965 template<typename _InputIterator, typename _ForwardIterator,
12966 typename _BinaryPredicate>
12967 _ForwardIterator
12968 __unique_copy(_InputIterator __first, _InputIterator __last,
12969 _ForwardIterator __result,
12970 _BinaryPredicate __binary_pred,
12971 forward_iterator_tag)
12972 {
12973
12974
12975
12976
12977
12978 *__result = *__first;
12979 while (++__first != __last)
12980 if (!__binary_pred(*__result, *__first)) *++__result = *__first;
12981 return ++__result;
12982 }
12983# 1412 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12984 template<typename _InputIterator, typename _OutputIterator>
12985 inline _OutputIterator
12986 unique_copy(_InputIterator __first, _InputIterator __last,
12987 _OutputIterator __result)
12988 {
12989
12990
12991
12992
12993
12994
12995 ;
12996
12997 typedef typename iterator_traits<_OutputIterator>::iterator_category
12998 _IterType;
12999
13000 if (__first == __last) return __result;
13001 return std::__unique_copy(__first, __last, __result, _IterType());
13002 }
13003# 1447 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13004 template<typename _InputIterator, typename _OutputIterator,
13005 typename _BinaryPredicate>
13006 inline _OutputIterator
13007 unique_copy(_InputIterator __first, _InputIterator __last,
13008 _OutputIterator __result,
13009 _BinaryPredicate __binary_pred)
13010 {
13011
13012
13013
13014
13015 ;
13016
13017 typedef typename iterator_traits<_OutputIterator>::iterator_category
13018 _IterType;
13019
13020 if (__first == __last) return __result;
13021 return std::__unique_copy(__first, __last, __result,
13022 __binary_pred, _IterType());
13023 }
13024# 1481 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13025 template<typename _ForwardIterator>
13026 _ForwardIterator
13027 unique(_ForwardIterator __first, _ForwardIterator __last)
13028 {
13029
13030
13031
13032
13033
13034 ;
13035
13036
13037 __first = std::adjacent_find(__first, __last);
13038 if (__first == __last)
13039 return __last;
13040
13041
13042 _ForwardIterator __dest = __first;
13043 ++__first;
13044 while (++__first != __last)
13045 if (!(*__dest == *__first))
13046 *++__dest = *__first;
13047 return ++__dest;
13048 }
13049# 1520 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13050 template<typename _ForwardIterator, typename _BinaryPredicate>
13051 _ForwardIterator
13052 unique(_ForwardIterator __first, _ForwardIterator __last,
13053 _BinaryPredicate __binary_pred)
13054 {
13055
13056
13057
13058
13059
13060
13061 ;
13062
13063
13064 __first = std::adjacent_find(__first, __last, __binary_pred);
13065 if (__first == __last)
13066 return __last;
13067
13068
13069 _ForwardIterator __dest = __first;
13070 ++__first;
13071 while (++__first != __last)
13072 if (!__binary_pred(*__dest, *__first))
13073 *++__dest = *__first;
13074 return ++__dest;
13075 }
13076# 1554 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13077 template<typename _BidirectionalIterator>
13078 void
13079 __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last,
13080 bidirectional_iterator_tag)
13081 {
13082 while (true)
13083 if (__first == __last || __first == --__last)
13084 return;
13085 else
13086 {
13087 std::iter_swap(__first, __last);
13088 ++__first;
13089 }
13090 }
13091# 1576 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13092 template<typename _RandomAccessIterator>
13093 void
13094 __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last,
13095 random_access_iterator_tag)
13096 {
13097 if (__first == __last)
13098 return;
13099 --__last;
13100 while (__first < __last)
13101 {
13102 std::iter_swap(__first, __last);
13103 ++__first;
13104 --__last;
13105 }
13106 }
13107# 1603 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13108 template<typename _BidirectionalIterator>
13109 inline void
13110 reverse(_BidirectionalIterator __first, _BidirectionalIterator __last)
13111 {
13112
13113
13114
13115 ;
13116 std::__reverse(__first, __last, std::__iterator_category(__first));
13117 }
13118# 1629 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13119 template<typename _BidirectionalIterator, typename _OutputIterator>
13120 _OutputIterator
13121 reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last,
13122 _OutputIterator __result)
13123 {
13124
13125
13126
13127
13128
13129 ;
13130
13131 while (__first != __last)
13132 {
13133 --__last;
13134 *__result = *__last;
13135 ++__result;
13136 }
13137 return __result;
13138 }
13139# 1657 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13140 template<typename _EuclideanRingElement>
13141 _EuclideanRingElement
13142 __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
13143 {
13144 while (__n != 0)
13145 {
13146 _EuclideanRingElement __t = __m % __n;
13147 __m = __n;
13148 __n = __t;
13149 }
13150 return __m;
13151 }
13152
13153
13154
13155
13156
13157
13158 template<typename _ForwardIterator>
13159 void
13160 __rotate(_ForwardIterator __first,
13161 _ForwardIterator __middle,
13162 _ForwardIterator __last,
13163 forward_iterator_tag)
13164 {
13165 if (__first == __middle || __last == __middle)
13166 return;
13167
13168 _ForwardIterator __first2 = __middle;
13169 do
13170 {
13171 swap(*__first, *__first2);
13172 ++__first;
13173 ++__first2;
13174 if (__first == __middle)
13175 __middle = __first2;
13176 }
13177 while (__first2 != __last);
13178
13179 __first2 = __middle;
13180
13181 while (__first2 != __last)
13182 {
13183 swap(*__first, *__first2);
13184 ++__first;
13185 ++__first2;
13186 if (__first == __middle)
13187 __middle = __first2;
13188 else if (__first2 == __last)
13189 __first2 = __middle;
13190 }
13191 }
13192
13193
13194
13195
13196
13197
13198 template<typename _BidirectionalIterator>
13199 void
13200 __rotate(_BidirectionalIterator __first,
13201 _BidirectionalIterator __middle,
13202 _BidirectionalIterator __last,
13203 bidirectional_iterator_tag)
13204 {
13205
13206
13207
13208
13209 if (__first == __middle || __last == __middle)
13210 return;
13211
13212 std::__reverse(__first, __middle, bidirectional_iterator_tag());
13213 std::__reverse(__middle, __last, bidirectional_iterator_tag());
13214
13215 while (__first != __middle && __middle != __last)
13216 {
13217 swap(*__first, *--__last);
13218 ++__first;
13219 }
13220
13221 if (__first == __middle)
13222 std::__reverse(__middle, __last, bidirectional_iterator_tag());
13223 else
13224 std::__reverse(__first, __middle, bidirectional_iterator_tag());
13225 }
13226
13227
13228
13229
13230
13231
13232 template<typename _RandomAccessIterator>
13233 void
13234 __rotate(_RandomAccessIterator __first,
13235 _RandomAccessIterator __middle,
13236 _RandomAccessIterator __last,
13237 random_access_iterator_tag)
13238 {
13239
13240
13241
13242
13243 if (__first == __middle || __last == __middle)
13244 return;
13245
13246 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13247 _Distance;
13248 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13249 _ValueType;
13250
13251 const _Distance __n = __last - __first;
13252 const _Distance __k = __middle - __first;
13253 const _Distance __l = __n - __k;
13254
13255 if (__k == __l)
13256 {
13257 std::swap_ranges(__first, __middle, __middle);
13258 return;
13259 }
13260
13261 const _Distance __d = __gcd(__n, __k);
13262
13263 for (_Distance __i = 0; __i < __d; __i++)
13264 {
13265 _ValueType __tmp = *__first;
13266 _RandomAccessIterator __p = __first;
13267
13268 if (__k < __l)
13269 {
13270 for (_Distance __j = 0; __j < __l / __d; __j++)
13271 {
13272 if (__p > __first + __l)
13273 {
13274 *__p = *(__p - __l);
13275 __p -= __l;
13276 }
13277
13278 *__p = *(__p + __k);
13279 __p += __k;
13280 }
13281 }
13282 else
13283 {
13284 for (_Distance __j = 0; __j < __k / __d - 1; __j ++)
13285 {
13286 if (__p < __last - __k)
13287 {
13288 *__p = *(__p + __k);
13289 __p += __k;
13290 }
13291 *__p = * (__p - __l);
13292 __p -= __l;
13293 }
13294 }
13295
13296 *__p = __tmp;
13297 ++__first;
13298 }
13299 }
13300# 1836 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13301 template<typename _ForwardIterator>
13302 inline void
13303 rotate(_ForwardIterator __first, _ForwardIterator __middle,
13304 _ForwardIterator __last)
13305 {
13306
13307
13308
13309 ;
13310 ;
13311
13312 typedef typename iterator_traits<_ForwardIterator>::iterator_category
13313 _IterType;
13314 std::__rotate(__first, __middle, __last, _IterType());
13315 }
13316# 1869 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13317 template<typename _ForwardIterator, typename _OutputIterator>
13318 _OutputIterator
13319 rotate_copy(_ForwardIterator __first, _ForwardIterator __middle,
13320 _ForwardIterator __last, _OutputIterator __result)
13321 {
13322
13323
13324
13325
13326 ;
13327 ;
13328
13329 return std::copy(__first, __middle,
13330 std::copy(__middle, __last, __result));
13331 }
13332# 1895 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13333 template<typename _RandomAccessIterator>
13334 inline void
13335 random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
13336 {
13337
13338
13339
13340 ;
13341
13342 if (__first != __last)
13343 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13344 std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1)));
13345 }
13346# 1922 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13347 template<typename _RandomAccessIterator, typename _RandomNumberGenerator>
13348 void
13349 random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
13350 _RandomNumberGenerator& __rand)
13351 {
13352
13353
13354
13355 ;
13356
13357 if (__first == __last)
13358 return;
13359 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13360 std::iter_swap(__i, __first + __rand((__i - __first) + 1));
13361 }
13362
13363
13364
13365
13366
13367
13368
13369 template<typename _ForwardIterator, typename _Predicate>
13370 _ForwardIterator
13371 __partition(_ForwardIterator __first, _ForwardIterator __last,
13372 _Predicate __pred,
13373 forward_iterator_tag)
13374 {
13375 if (__first == __last)
13376 return __first;
13377
13378 while (__pred(*__first))
13379 if (++__first == __last)
13380 return __first;
13381
13382 _ForwardIterator __next = __first;
13383
13384 while (++__next != __last)
13385 if (__pred(*__next))
13386 {
13387 swap(*__first, *__next);
13388 ++__first;
13389 }
13390
13391 return __first;
13392 }
13393
13394
13395
13396
13397
13398
13399 template<typename _BidirectionalIterator, typename _Predicate>
13400 _BidirectionalIterator
13401 __partition(_BidirectionalIterator __first, _BidirectionalIterator __last,
13402 _Predicate __pred,
13403 bidirectional_iterator_tag)
13404 {
13405 while (true)
13406 {
13407 while (true)
13408 if (__first == __last)
13409 return __first;
13410 else if (__pred(*__first))
13411 ++__first;
13412 else
13413 break;
13414 --__last;
13415 while (true)
13416 if (__first == __last)
13417 return __first;
13418 else if (!__pred(*__last))
13419 --__last;
13420 else
13421 break;
13422 std::iter_swap(__first, __last);
13423 ++__first;
13424 }
13425 }
13426# 2016 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13427 template<typename _ForwardIterator, typename _Predicate>
13428 inline _ForwardIterator
13429 partition(_ForwardIterator __first, _ForwardIterator __last,
13430 _Predicate __pred)
13431 {
13432
13433
13434
13435
13436
13437 ;
13438
13439 return std::__partition(__first, __last, __pred,
13440 std::__iterator_category(__first));
13441 }
13442
13443
13444
13445
13446
13447
13448
13449 template<typename _ForwardIterator, typename _Predicate, typename _Distance>
13450 _ForwardIterator
13451 __inplace_stable_partition(_ForwardIterator __first,
13452 _ForwardIterator __last,
13453 _Predicate __pred, _Distance __len)
13454 {
13455 if (__len == 1)
13456 return __pred(*__first) ? __last : __first;
13457 _ForwardIterator __middle = __first;
13458 std::advance(__middle, __len / 2);
13459 _ForwardIterator __begin = std::__inplace_stable_partition(__first,
13460 __middle,
13461 __pred,
13462 __len / 2);
13463 _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
13464 __pred,
13465 __len
13466 - __len / 2);
13467 std::rotate(__begin, __middle, __end);
13468 std::advance(__begin, std::distance(__middle, __end));
13469 return __begin;
13470 }
13471
13472
13473
13474
13475
13476
13477 template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
13478 typename _Distance>
13479 _ForwardIterator
13480 __stable_partition_adaptive(_ForwardIterator __first,
13481 _ForwardIterator __last,
13482 _Predicate __pred, _Distance __len,
13483 _Pointer __buffer,
13484 _Distance __buffer_size)
13485 {
13486 if (__len <= __buffer_size)
13487 {
13488 _ForwardIterator __result1 = __first;
13489 _Pointer __result2 = __buffer;
13490 for ( ; __first != __last ; ++__first)
13491 if (__pred(*__first))
13492 {
13493 *__result1 = *__first;
13494 ++__result1;
13495 }
13496 else
13497 {
13498 *__result2 = *__first;
13499 ++__result2;
13500 }
13501 std::copy(__buffer, __result2, __result1);
13502 return __result1;
13503 }
13504 else
13505 {
13506 _ForwardIterator __middle = __first;
13507 std::advance(__middle, __len / 2);
13508 _ForwardIterator __begin =
13509 std::__stable_partition_adaptive(__first, __middle, __pred,
13510 __len / 2, __buffer,
13511 __buffer_size);
13512 _ForwardIterator __end =
13513 std::__stable_partition_adaptive(__middle, __last, __pred,
13514 __len - __len / 2,
13515 __buffer, __buffer_size);
13516 std::rotate(__begin, __middle, __end);
13517 std::advance(__begin, std::distance(__middle, __end));
13518 return __begin;
13519 }
13520 }
13521# 2127 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13522 template<typename _ForwardIterator, typename _Predicate>
13523 _ForwardIterator
13524 stable_partition(_ForwardIterator __first, _ForwardIterator __last,
13525 _Predicate __pred)
13526 {
13527
13528
13529
13530
13531
13532 ;
13533
13534 if (__first == __last)
13535 return __first;
13536 else
13537 {
13538 typedef typename iterator_traits<_ForwardIterator>::value_type
13539 _ValueType;
13540 typedef typename iterator_traits<_ForwardIterator>::difference_type
13541 _DistanceType;
13542
13543 _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first,
13544 __last);
13545 if (__buf.size() > 0)
13546 return
13547 std::__stable_partition_adaptive(__first, __last, __pred,
13548 _DistanceType(__buf.requested_size()),
13549 __buf.begin(), __buf.size());
13550 else
13551 return
13552 std::__inplace_stable_partition(__first, __last, __pred,
13553 _DistanceType(__buf.requested_size()));
13554 }
13555 }
13556
13557
13558
13559
13560
13561
13562 template<typename _RandomAccessIterator, typename _Tp>
13563 _RandomAccessIterator
13564 __unguarded_partition(_RandomAccessIterator __first,
13565 _RandomAccessIterator __last, _Tp __pivot)
13566 {
13567 while (true)
13568 {
13569 while (*__first < __pivot)
13570 ++__first;
13571 --__last;
13572 while (__pivot < *__last)
13573 --__last;
13574 if (!(__first < __last))
13575 return __first;
13576 std::iter_swap(__first, __last);
13577 ++__first;
13578 }
13579 }
13580
13581
13582
13583
13584
13585
13586 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
13587 _RandomAccessIterator
13588 __unguarded_partition(_RandomAccessIterator __first,
13589 _RandomAccessIterator __last,
13590 _Tp __pivot, _Compare __comp)
13591 {
13592 while (true)
13593 {
13594 while (__comp(*__first, __pivot))
13595 ++__first;
13596 --__last;
13597 while (__comp(__pivot, *__last))
13598 --__last;
13599 if (!(__first < __last))
13600 return __first;
13601 std::iter_swap(__first, __last);
13602 ++__first;
13603 }
13604 }
13605
13606
13607
13608
13609
13610
13611
13612 enum { _S_threshold = 16 };
13613
13614
13615
13616
13617
13618
13619 template<typename _RandomAccessIterator, typename _Tp>
13620 void
13621 __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val)
13622 {
13623 _RandomAccessIterator __next = __last;
13624 --__next;
13625 while (__val < *__next)
13626 {
13627 *__last = *__next;
13628 __last = __next;
13629 --__next;
13630 }
13631 *__last = __val;
13632 }
13633
13634
13635
13636
13637
13638
13639 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
13640 void
13641 __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val,
13642 _Compare __comp)
13643 {
13644 _RandomAccessIterator __next = __last;
13645 --__next;
13646 while (__comp(__val, *__next))
13647 {
13648 *__last = *__next;
13649 __last = __next;
13650 --__next;
13651 }
13652 *__last = __val;
13653 }
13654
13655
13656
13657
13658
13659
13660 template<typename _RandomAccessIterator>
13661 void
13662 __insertion_sort(_RandomAccessIterator __first,
13663 _RandomAccessIterator __last)
13664 {
13665 if (__first == __last)
13666 return;
13667
13668 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13669 {
13670 typename iterator_traits<_RandomAccessIterator>::value_type
13671 __val = *__i;
13672 if (__val < *__first)
13673 {
13674 std::copy_backward(__first, __i, __i + 1);
13675 *__first = __val;
13676 }
13677 else
13678 std::__unguarded_linear_insert(__i, __val);
13679 }
13680 }
13681
13682
13683
13684
13685
13686
13687 template<typename _RandomAccessIterator, typename _Compare>
13688 void
13689 __insertion_sort(_RandomAccessIterator __first,
13690 _RandomAccessIterator __last, _Compare __comp)
13691 {
13692 if (__first == __last) return;
13693
13694 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13695 {
13696 typename iterator_traits<_RandomAccessIterator>::value_type
13697 __val = *__i;
13698 if (__comp(__val, *__first))
13699 {
13700 std::copy_backward(__first, __i, __i + 1);
13701 *__first = __val;
13702 }
13703 else
13704 std::__unguarded_linear_insert(__i, __val, __comp);
13705 }
13706 }
13707
13708
13709
13710
13711
13712
13713 template<typename _RandomAccessIterator>
13714 inline void
13715 __unguarded_insertion_sort(_RandomAccessIterator __first,
13716 _RandomAccessIterator __last)
13717 {
13718 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13719 _ValueType;
13720
13721 for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
13722 std::__unguarded_linear_insert(__i, _ValueType(*__i));
13723 }
13724
13725
13726
13727
13728
13729
13730 template<typename _RandomAccessIterator, typename _Compare>
13731 inline void
13732 __unguarded_insertion_sort(_RandomAccessIterator __first,
13733 _RandomAccessIterator __last, _Compare __comp)
13734 {
13735 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13736 _ValueType;
13737
13738 for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
13739 std::__unguarded_linear_insert(__i, _ValueType(*__i), __comp);
13740 }
13741
13742
13743
13744
13745
13746
13747 template<typename _RandomAccessIterator>
13748 void
13749 __final_insertion_sort(_RandomAccessIterator __first,
13750 _RandomAccessIterator __last)
13751 {
13752 if (__last - __first > int(_S_threshold))
13753 {
13754 std::__insertion_sort(__first, __first + int(_S_threshold));
13755 std::__unguarded_insertion_sort(__first + int(_S_threshold), __last);
13756 }
13757 else
13758 std::__insertion_sort(__first, __last);
13759 }
13760
13761
13762
13763
13764
13765
13766 template<typename _RandomAccessIterator, typename _Compare>
13767 void
13768 __final_insertion_sort(_RandomAccessIterator __first,
13769 _RandomAccessIterator __last, _Compare __comp)
13770 {
13771 if (__last - __first > int(_S_threshold))
13772 {
13773 std::__insertion_sort(__first, __first + int(_S_threshold), __comp);
13774 std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,
13775 __comp);
13776 }
13777 else
13778 std::__insertion_sort(__first, __last, __comp);
13779 }
13780
13781
13782
13783
13784
13785
13786 template<typename _Size>
13787 inline _Size
13788 __lg(_Size __n)
13789 {
13790 _Size __k;
13791 for (__k = 0; __n != 1; __n >>= 1)
13792 ++__k;
13793 return __k;
13794 }
13795# 2416 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13796 template<typename _RandomAccessIterator>
13797 void
13798 partial_sort(_RandomAccessIterator __first,
13799 _RandomAccessIterator __middle,
13800 _RandomAccessIterator __last)
13801 {
13802 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13803 _ValueType;
13804
13805
13806
13807
13808
13809 ;
13810 ;
13811
13812 std::make_heap(__first, __middle);
13813 for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
13814 if (*__i < *__first)
13815 std::__pop_heap(__first, __middle, __i, _ValueType(*__i));
13816 std::sort_heap(__first, __middle);
13817 }
13818# 2457 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13819 template<typename _RandomAccessIterator, typename _Compare>
13820 void
13821 partial_sort(_RandomAccessIterator __first,
13822 _RandomAccessIterator __middle,
13823 _RandomAccessIterator __last,
13824 _Compare __comp)
13825 {
13826 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13827 _ValueType;
13828
13829
13830
13831
13832
13833
13834 ;
13835 ;
13836
13837 std::make_heap(__first, __middle, __comp);
13838 for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
13839 if (__comp(*__i, *__first))
13840 std::__pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);
13841 std::sort_heap(__first, __middle, __comp);
13842 }
13843# 2499 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13844 template<typename _InputIterator, typename _RandomAccessIterator>
13845 _RandomAccessIterator
13846 partial_sort_copy(_InputIterator __first, _InputIterator __last,
13847 _RandomAccessIterator __result_first,
13848 _RandomAccessIterator __result_last)
13849 {
13850 typedef typename iterator_traits<_InputIterator>::value_type
13851 _InputValueType;
13852 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13853 _OutputValueType;
13854 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13855 _DistanceType;
13856
13857
13858
13859
13860
13861
13862
13863 ;
13864 ;
13865
13866 if (__result_first == __result_last)
13867 return __result_last;
13868 _RandomAccessIterator __result_real_last = __result_first;
13869 while(__first != __last && __result_real_last != __result_last)
13870 {
13871 *__result_real_last = *__first;
13872 ++__result_real_last;
13873 ++__first;
13874 }
13875 std::make_heap(__result_first, __result_real_last);
13876 while (__first != __last)
13877 {
13878 if (*__first < *__result_first)
13879 std::__adjust_heap(__result_first, _DistanceType(0),
13880 _DistanceType(__result_real_last
13881 - __result_first),
13882 _InputValueType(*__first));
13883 ++__first;
13884 }
13885 std::sort_heap(__result_first, __result_real_last);
13886 return __result_real_last;
13887 }
13888# 2563 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13889 template<typename _InputIterator, typename _RandomAccessIterator, typename _Compare>
13890 _RandomAccessIterator
13891 partial_sort_copy(_InputIterator __first, _InputIterator __last,
13892 _RandomAccessIterator __result_first,
13893 _RandomAccessIterator __result_last,
13894 _Compare __comp)
13895 {
13896 typedef typename iterator_traits<_InputIterator>::value_type
13897 _InputValueType;
13898 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13899 _OutputValueType;
13900 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13901 _DistanceType;
13902
13903
13904
13905
13906
13907
13908
13909
13910
13911 ;
13912 ;
13913
13914 if (__result_first == __result_last)
13915 return __result_last;
13916 _RandomAccessIterator __result_real_last = __result_first;
13917 while(__first != __last && __result_real_last != __result_last)
13918 {
13919 *__result_real_last = *__first;
13920 ++__result_real_last;
13921 ++__first;
13922 }
13923 std::make_heap(__result_first, __result_real_last, __comp);
13924 while (__first != __last)
13925 {
13926 if (__comp(*__first, *__result_first))
13927 std::__adjust_heap(__result_first, _DistanceType(0),
13928 _DistanceType(__result_real_last
13929 - __result_first),
13930 _InputValueType(*__first),
13931 __comp);
13932 ++__first;
13933 }
13934 std::sort_heap(__result_first, __result_real_last, __comp);
13935 return __result_real_last;
13936 }
13937
13938
13939
13940
13941
13942
13943 template<typename _RandomAccessIterator, typename _Size>
13944 void
13945 __introsort_loop(_RandomAccessIterator __first,
13946 _RandomAccessIterator __last,
13947 _Size __depth_limit)
13948 {
13949 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13950 _ValueType;
13951
13952 while (__last - __first > int(_S_threshold))
13953 {
13954 if (__depth_limit == 0)
13955 {
13956 std::partial_sort(__first, __last, __last);
13957 return;
13958 }
13959 --__depth_limit;
13960 _RandomAccessIterator __cut =
13961 std::__unguarded_partition(__first, __last,
13962 _ValueType(std::__median(*__first,
13963 *(__first
13964 + (__last
13965 - __first)
13966 / 2),
13967 *(__last
13968 - 1))));
13969 std::__introsort_loop(__cut, __last, __depth_limit);
13970 __last = __cut;
13971 }
13972 }
13973
13974
13975
13976
13977
13978
13979 template<typename _RandomAccessIterator, typename _Size, typename _Compare>
13980 void
13981 __introsort_loop(_RandomAccessIterator __first,
13982 _RandomAccessIterator __last,
13983 _Size __depth_limit, _Compare __comp)
13984 {
13985 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13986 _ValueType;
13987
13988 while (__last - __first > int(_S_threshold))
13989 {
13990 if (__depth_limit == 0)
13991 {
13992 std::partial_sort(__first, __last, __last, __comp);
13993 return;
13994 }
13995 --__depth_limit;
13996 _RandomAccessIterator __cut =
13997 std::__unguarded_partition(__first, __last,
13998 _ValueType(std::__median(*__first,
13999 *(__first
14000 + (__last
14001 - __first)
14002 / 2),
14003 *(__last - 1),
14004 __comp)),
14005 __comp);
14006 std::__introsort_loop(__cut, __last, __depth_limit, __comp);
14007 __last = __cut;
14008 }
14009 }
14010# 2698 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14011 template<typename _RandomAccessIterator>
14012 inline void
14013 sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
14014 {
14015 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14016 _ValueType;
14017
14018
14019
14020
14021
14022 ;
14023
14024 if (__first != __last)
14025 {
14026 std::__introsort_loop(__first, __last, __lg(__last - __first) * 2);
14027 std::__final_insertion_sort(__first, __last);
14028 }
14029 }
14030# 2732 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14031 template<typename _RandomAccessIterator, typename _Compare>
14032 inline void
14033 sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
14034 _Compare __comp)
14035 {
14036 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14037 _ValueType;
14038
14039
14040
14041
14042
14043
14044 ;
14045
14046 if (__first != __last)
14047 {
14048 std::__introsort_loop(__first, __last, __lg(__last - __first) * 2,
14049 __comp);
14050 std::__final_insertion_sort(__first, __last, __comp);
14051 }
14052 }
14053# 2765 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14054 template<typename _ForwardIterator, typename _Tp>
14055 _ForwardIterator
14056 lower_bound(_ForwardIterator __first, _ForwardIterator __last,
14057 const _Tp& __val)
14058 {
14059 typedef typename iterator_traits<_ForwardIterator>::value_type
14060 _ValueType;
14061 typedef typename iterator_traits<_ForwardIterator>::difference_type
14062 _DistanceType;
14063
14064
14065
14066
14067
14068
14069
14070
14071
14072 ;
14073
14074 _DistanceType __len = std::distance(__first, __last);
14075 _DistanceType __half;
14076 _ForwardIterator __middle;
14077
14078 while (__len > 0)
14079 {
14080 __half = __len >> 1;
14081 __middle = __first;
14082 std::advance(__middle, __half);
14083 if (*__middle < __val)
14084 {
14085 __first = __middle;
14086 ++__first;
14087 __len = __len - __half - 1;
14088 }
14089 else
14090 __len = __half;
14091 }
14092 return __first;
14093 }
14094# 2820 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14095 template<typename _ForwardIterator, typename _Tp, typename _Compare>
14096 _ForwardIterator
14097 lower_bound(_ForwardIterator __first, _ForwardIterator __last,
14098 const _Tp& __val, _Compare __comp)
14099 {
14100 typedef typename iterator_traits<_ForwardIterator>::value_type
14101 _ValueType;
14102 typedef typename iterator_traits<_ForwardIterator>::difference_type
14103 _DistanceType;
14104
14105
14106
14107
14108
14109 ;
14110
14111 _DistanceType __len = std::distance(__first, __last);
14112 _DistanceType __half;
14113 _ForwardIterator __middle;
14114
14115 while (__len > 0)
14116 {
14117 __half = __len >> 1;
14118 __middle = __first;
14119 std::advance(__middle, __half);
14120 if (__comp(*__middle, __val))
14121 {
14122 __first = __middle;
14123 ++__first;
14124 __len = __len - __half - 1;
14125 }
14126 else
14127 __len = __half;
14128 }
14129 return __first;
14130 }
14131# 2867 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14132 template<typename _ForwardIterator, typename _Tp>
14133 _ForwardIterator
14134 upper_bound(_ForwardIterator __first, _ForwardIterator __last,
14135 const _Tp& __val)
14136 {
14137 typedef typename iterator_traits<_ForwardIterator>::value_type
14138 _ValueType;
14139 typedef typename iterator_traits<_ForwardIterator>::difference_type
14140 _DistanceType;
14141
14142
14143
14144
14145
14146
14147 ;
14148
14149 _DistanceType __len = std::distance(__first, __last);
14150 _DistanceType __half;
14151 _ForwardIterator __middle;
14152
14153 while (__len > 0)
14154 {
14155 __half = __len >> 1;
14156 __middle = __first;
14157 std::advance(__middle, __half);
14158 if (__val < *__middle)
14159 __len = __half;
14160 else
14161 {
14162 __first = __middle;
14163 ++__first;
14164 __len = __len - __half - 1;
14165 }
14166 }
14167 return __first;
14168 }
14169# 2919 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14170 template<typename _ForwardIterator, typename _Tp, typename _Compare>
14171 _ForwardIterator
14172 upper_bound(_ForwardIterator __first, _ForwardIterator __last,
14173 const _Tp& __val, _Compare __comp)
14174 {
14175 typedef typename iterator_traits<_ForwardIterator>::value_type
14176 _ValueType;
14177 typedef typename iterator_traits<_ForwardIterator>::difference_type
14178 _DistanceType;
14179
14180
14181
14182
14183
14184 ;
14185
14186 _DistanceType __len = std::distance(__first, __last);
14187 _DistanceType __half;
14188 _ForwardIterator __middle;
14189
14190 while (__len > 0)
14191 {
14192 __half = __len >> 1;
14193 __middle = __first;
14194 std::advance(__middle, __half);
14195 if (__comp(__val, *__middle))
14196 __len = __half;
14197 else
14198 {
14199 __first = __middle;
14200 ++__first;
14201 __len = __len - __half - 1;
14202 }
14203 }
14204 return __first;
14205 }
14206
14207
14208
14209
14210
14211
14212 template<typename _BidirectionalIterator, typename _Distance>
14213 void
14214 __merge_without_buffer(_BidirectionalIterator __first,
14215 _BidirectionalIterator __middle,
14216 _BidirectionalIterator __last,
14217 _Distance __len1, _Distance __len2)
14218 {
14219 if (__len1 == 0 || __len2 == 0)
14220 return;
14221 if (__len1 + __len2 == 2)
14222 {
14223 if (*__middle < *__first)
14224 std::iter_swap(__first, __middle);
14225 return;
14226 }
14227 _BidirectionalIterator __first_cut = __first;
14228 _BidirectionalIterator __second_cut = __middle;
14229 _Distance __len11 = 0;
14230 _Distance __len22 = 0;
14231 if (__len1 > __len2)
14232 {
14233 __len11 = __len1 / 2;
14234 std::advance(__first_cut, __len11);
14235 __second_cut = std::lower_bound(__middle, __last, *__first_cut);
14236 __len22 = std::distance(__middle, __second_cut);
14237 }
14238 else
14239 {
14240 __len22 = __len2 / 2;
14241 std::advance(__second_cut, __len22);
14242 __first_cut = std::upper_bound(__first, __middle, *__second_cut);
14243 __len11 = std::distance(__first, __first_cut);
14244 }
14245 std::rotate(__first_cut, __middle, __second_cut);
14246 _BidirectionalIterator __new_middle = __first_cut;
14247 std::advance(__new_middle, std::distance(__middle, __second_cut));
14248 std::__merge_without_buffer(__first, __first_cut, __new_middle,
14249 __len11, __len22);
14250 std::__merge_without_buffer(__new_middle, __second_cut, __last,
14251 __len1 - __len11, __len2 - __len22);
14252 }
14253
14254
14255
14256
14257
14258
14259 template<typename _BidirectionalIterator, typename _Distance,
14260 typename _Compare>
14261 void
14262 __merge_without_buffer(_BidirectionalIterator __first,
14263 _BidirectionalIterator __middle,
14264 _BidirectionalIterator __last,
14265 _Distance __len1, _Distance __len2,
14266 _Compare __comp)
14267 {
14268 if (__len1 == 0 || __len2 == 0)
14269 return;
14270 if (__len1 + __len2 == 2)
14271 {
14272 if (__comp(*__middle, *__first))
14273 std::iter_swap(__first, __middle);
14274 return;
14275 }
14276 _BidirectionalIterator __first_cut = __first;
14277 _BidirectionalIterator __second_cut = __middle;
14278 _Distance __len11 = 0;
14279 _Distance __len22 = 0;
14280 if (__len1 > __len2)
14281 {
14282 __len11 = __len1 / 2;
14283 std::advance(__first_cut, __len11);
14284 __second_cut = std::lower_bound(__middle, __last, *__first_cut,
14285 __comp);
14286 __len22 = std::distance(__middle, __second_cut);
14287 }
14288 else
14289 {
14290 __len22 = __len2 / 2;
14291 std::advance(__second_cut, __len22);
14292 __first_cut = std::upper_bound(__first, __middle, *__second_cut,
14293 __comp);
14294 __len11 = std::distance(__first, __first_cut);
14295 }
14296 std::rotate(__first_cut, __middle, __second_cut);
14297 _BidirectionalIterator __new_middle = __first_cut;
14298 std::advance(__new_middle, std::distance(__middle, __second_cut));
14299 std::__merge_without_buffer(__first, __first_cut, __new_middle,
14300 __len11, __len22, __comp);
14301 std::__merge_without_buffer(__new_middle, __second_cut, __last,
14302 __len1 - __len11, __len2 - __len22, __comp);
14303 }
14304
14305
14306
14307
14308
14309
14310 template<typename _RandomAccessIterator>
14311 void
14312 __inplace_stable_sort(_RandomAccessIterator __first,
14313 _RandomAccessIterator __last)
14314 {
14315 if (__last - __first < 15)
14316 {
14317 std::__insertion_sort(__first, __last);
14318 return;
14319 }
14320 _RandomAccessIterator __middle = __first + (__last - __first) / 2;
14321 std::__inplace_stable_sort(__first, __middle);
14322 std::__inplace_stable_sort(__middle, __last);
14323 std::__merge_without_buffer(__first, __middle, __last,
14324 __middle - __first,
14325 __last - __middle);
14326 }
14327
14328
14329
14330
14331
14332
14333 template<typename _RandomAccessIterator, typename _Compare>
14334 void
14335 __inplace_stable_sort(_RandomAccessIterator __first,
14336 _RandomAccessIterator __last, _Compare __comp)
14337 {
14338 if (__last - __first < 15)
14339 {
14340 std::__insertion_sort(__first, __last, __comp);
14341 return;
14342 }
14343 _RandomAccessIterator __middle = __first + (__last - __first) / 2;
14344 std::__inplace_stable_sort(__first, __middle, __comp);
14345 std::__inplace_stable_sort(__middle, __last, __comp);
14346 std::__merge_without_buffer(__first, __middle, __last,
14347 __middle - __first,
14348 __last - __middle,
14349 __comp);
14350 }
14351# 3117 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14352 template<typename _InputIterator1, typename _InputIterator2,
14353 typename _OutputIterator>
14354 _OutputIterator
14355 merge(_InputIterator1 __first1, _InputIterator1 __last1,
14356 _InputIterator2 __first2, _InputIterator2 __last2,
14357 _OutputIterator __result)
14358 {
14359
14360
14361
14362
14363
14364
14365
14366
14367
14368
14369 ;
14370 ;
14371
14372 while (__first1 != __last1 && __first2 != __last2)
14373 {
14374 if (*__first2 < *__first1)
14375 {
14376 *__result = *__first2;
14377 ++__first2;
14378 }
14379 else
14380 {
14381 *__result = *__first1;
14382 ++__first1;
14383 }
14384 ++__result;
14385 }
14386 return std::copy(__first2, __last2, std::copy(__first1, __last1,
14387 __result));
14388 }
14389# 3175 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14390 template<typename _InputIterator1, typename _InputIterator2,
14391 typename _OutputIterator, typename _Compare>
14392 _OutputIterator
14393 merge(_InputIterator1 __first1, _InputIterator1 __last1,
14394 _InputIterator2 __first2, _InputIterator2 __last2,
14395 _OutputIterator __result, _Compare __comp)
14396 {
14397
14398
14399
14400
14401
14402
14403
14404
14405
14406
14407
14408 ;
14409 ;
14410
14411 while (__first1 != __last1 && __first2 != __last2)
14412 {
14413 if (__comp(*__first2, *__first1))
14414 {
14415 *__result = *__first2;
14416 ++__first2;
14417 }
14418 else
14419 {
14420 *__result = *__first1;
14421 ++__first1;
14422 }
14423 ++__result;
14424 }
14425 return std::copy(__first2, __last2, std::copy(__first1, __last1,
14426 __result));
14427 }
14428
14429 template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
14430 typename _Distance>
14431 void
14432 __merge_sort_loop(_RandomAccessIterator1 __first,
14433 _RandomAccessIterator1 __last,
14434 _RandomAccessIterator2 __result,
14435 _Distance __step_size)
14436 {
14437 const _Distance __two_step = 2 * __step_size;
14438
14439 while (__last - __first >= __two_step)
14440 {
14441 __result = std::merge(__first, __first + __step_size,
14442 __first + __step_size, __first + __two_step,
14443 __result);
14444 __first += __two_step;
14445 }
14446
14447 __step_size = std::min(_Distance(__last - __first), __step_size);
14448 std::merge(__first, __first + __step_size, __first + __step_size, __last,
14449 __result);
14450 }
14451
14452 template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
14453 typename _Distance, typename _Compare>
14454 void
14455 __merge_sort_loop(_RandomAccessIterator1 __first,
14456 _RandomAccessIterator1 __last,
14457 _RandomAccessIterator2 __result, _Distance __step_size,
14458 _Compare __comp)
14459 {
14460 const _Distance __two_step = 2 * __step_size;
14461
14462 while (__last - __first >= __two_step)
14463 {
14464 __result = std::merge(__first, __first + __step_size,
14465 __first + __step_size, __first + __two_step,
14466 __result,
14467 __comp);
14468 __first += __two_step;
14469 }
14470 __step_size = std::min(_Distance(__last - __first), __step_size);
14471
14472 std::merge(__first, __first + __step_size,
14473 __first + __step_size, __last,
14474 __result,
14475 __comp);
14476 }
14477
14478 enum { _S_chunk_size = 7 };
14479
14480 template<typename _RandomAccessIterator, typename _Distance>
14481 void
14482 __chunk_insertion_sort(_RandomAccessIterator __first,
14483 _RandomAccessIterator __last,
14484 _Distance __chunk_size)
14485 {
14486 while (__last - __first >= __chunk_size)
14487 {
14488 std::__insertion_sort(__first, __first + __chunk_size);
14489 __first += __chunk_size;
14490 }
14491 std::__insertion_sort(__first, __last);
14492 }
14493
14494 template<typename _RandomAccessIterator, typename _Distance, typename _Compare>
14495 void
14496 __chunk_insertion_sort(_RandomAccessIterator __first,
14497 _RandomAccessIterator __last,
14498 _Distance __chunk_size, _Compare __comp)
14499 {
14500 while (__last - __first >= __chunk_size)
14501 {
14502 std::__insertion_sort(__first, __first + __chunk_size, __comp);
14503 __first += __chunk_size;
14504 }
14505 std::__insertion_sort(__first, __last, __comp);
14506 }
14507
14508 template<typename _RandomAccessIterator, typename _Pointer>
14509 void
14510 __merge_sort_with_buffer(_RandomAccessIterator __first,
14511 _RandomAccessIterator __last,
14512 _Pointer __buffer)
14513 {
14514 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14515 _Distance;
14516
14517 const _Distance __len = __last - __first;
14518 const _Pointer __buffer_last = __buffer + __len;
14519
14520 _Distance __step_size = _S_chunk_size;
14521 std::__chunk_insertion_sort(__first, __last, __step_size);
14522
14523 while (__step_size < __len)
14524 {
14525 std::__merge_sort_loop(__first, __last, __buffer, __step_size);
14526 __step_size *= 2;
14527 std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size);
14528 __step_size *= 2;
14529 }
14530 }
14531
14532 template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
14533 void
14534 __merge_sort_with_buffer(_RandomAccessIterator __first,
14535 _RandomAccessIterator __last,
14536 _Pointer __buffer, _Compare __comp)
14537 {
14538 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14539 _Distance;
14540
14541 const _Distance __len = __last - __first;
14542 const _Pointer __buffer_last = __buffer + __len;
14543
14544 _Distance __step_size = _S_chunk_size;
14545 std::__chunk_insertion_sort(__first, __last, __step_size, __comp);
14546
14547 while (__step_size < __len)
14548 {
14549 std::__merge_sort_loop(__first, __last, __buffer,
14550 __step_size, __comp);
14551 __step_size *= 2;
14552 std::__merge_sort_loop(__buffer, __buffer_last, __first,
14553 __step_size, __comp);
14554 __step_size *= 2;
14555 }
14556 }
14557
14558
14559
14560
14561
14562
14563 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
14564 typename _BidirectionalIterator3>
14565 _BidirectionalIterator3
14566 __merge_backward(_BidirectionalIterator1 __first1,
14567 _BidirectionalIterator1 __last1,
14568 _BidirectionalIterator2 __first2,
14569 _BidirectionalIterator2 __last2,
14570 _BidirectionalIterator3 __result)
14571 {
14572 if (__first1 == __last1)
14573 return std::copy_backward(__first2, __last2, __result);
14574 if (__first2 == __last2)
14575 return std::copy_backward(__first1, __last1, __result);
14576 --__last1;
14577 --__last2;
14578 while (true)
14579 {
14580 if (*__last2 < *__last1)
14581 {
14582 *--__result = *__last1;
14583 if (__first1 == __last1)
14584 return std::copy_backward(__first2, ++__last2, __result);
14585 --__last1;
14586 }
14587 else
14588 {
14589 *--__result = *__last2;
14590 if (__first2 == __last2)
14591 return std::copy_backward(__first1, ++__last1, __result);
14592 --__last2;
14593 }
14594 }
14595 }
14596
14597
14598
14599
14600
14601
14602 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
14603 typename _BidirectionalIterator3, typename _Compare>
14604 _BidirectionalIterator3
14605 __merge_backward(_BidirectionalIterator1 __first1,
14606 _BidirectionalIterator1 __last1,
14607 _BidirectionalIterator2 __first2,
14608 _BidirectionalIterator2 __last2,
14609 _BidirectionalIterator3 __result,
14610 _Compare __comp)
14611 {
14612 if (__first1 == __last1)
14613 return std::copy_backward(__first2, __last2, __result);
14614 if (__first2 == __last2)
14615 return std::copy_backward(__first1, __last1, __result);
14616 --__last1;
14617 --__last2;
14618 while (true)
14619 {
14620 if (__comp(*__last2, *__last1))
14621 {
14622 *--__result = *__last1;
14623 if (__first1 == __last1)
14624 return std::copy_backward(__first2, ++__last2, __result);
14625 --__last1;
14626 }
14627 else
14628 {
14629 *--__result = *__last2;
14630 if (__first2 == __last2)
14631 return std::copy_backward(__first1, ++__last1, __result);
14632 --__last2;
14633 }
14634 }
14635 }
14636
14637
14638
14639
14640
14641
14642 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
14643 typename _Distance>
14644 _BidirectionalIterator1
14645 __rotate_adaptive(_BidirectionalIterator1 __first,
14646 _BidirectionalIterator1 __middle,
14647 _BidirectionalIterator1 __last,
14648 _Distance __len1, _Distance __len2,
14649 _BidirectionalIterator2 __buffer,
14650 _Distance __buffer_size)
14651 {
14652 _BidirectionalIterator2 __buffer_end;
14653 if (__len1 > __len2 && __len2 <= __buffer_size)
14654 {
14655 __buffer_end = std::copy(__middle, __last, __buffer);
14656 std::copy_backward(__first, __middle, __last);
14657 return std::copy(__buffer, __buffer_end, __first);
14658 }
14659 else if (__len1 <= __buffer_size)
14660 {
14661 __buffer_end = std::copy(__first, __middle, __buffer);
14662 std::copy(__middle, __last, __first);
14663 return std::copy_backward(__buffer, __buffer_end, __last);
14664 }
14665 else
14666 {
14667 std::rotate(__first, __middle, __last);
14668 std::advance(__first, std::distance(__middle, __last));
14669 return __first;
14670 }
14671 }
14672
14673
14674
14675
14676
14677
14678 template<typename _BidirectionalIterator, typename _Distance,
14679 typename _Pointer>
14680 void
14681 __merge_adaptive(_BidirectionalIterator __first,
14682 _BidirectionalIterator __middle,
14683 _BidirectionalIterator __last,
14684 _Distance __len1, _Distance __len2,
14685 _Pointer __buffer, _Distance __buffer_size)
14686 {
14687 if (__len1 <= __len2 && __len1 <= __buffer_size)
14688 {
14689 _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
14690 std::merge(__buffer, __buffer_end, __middle, __last, __first);
14691 }
14692 else if (__len2 <= __buffer_size)
14693 {
14694 _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
14695 std::__merge_backward(__first, __middle, __buffer,
14696 __buffer_end, __last);
14697 }
14698 else
14699 {
14700 _BidirectionalIterator __first_cut = __first;
14701 _BidirectionalIterator __second_cut = __middle;
14702 _Distance __len11 = 0;
14703 _Distance __len22 = 0;
14704 if (__len1 > __len2)
14705 {
14706 __len11 = __len1 / 2;
14707 std::advance(__first_cut, __len11);
14708 __second_cut = std::lower_bound(__middle, __last,
14709 *__first_cut);
14710 __len22 = std::distance(__middle, __second_cut);
14711 }
14712 else
14713 {
14714 __len22 = __len2 / 2;
14715 std::advance(__second_cut, __len22);
14716 __first_cut = std::upper_bound(__first, __middle,
14717 *__second_cut);
14718 __len11 = std::distance(__first, __first_cut);
14719 }
14720 _BidirectionalIterator __new_middle =
14721 std::__rotate_adaptive(__first_cut, __middle, __second_cut,
14722 __len1 - __len11, __len22, __buffer,
14723 __buffer_size);
14724 std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
14725 __len22, __buffer, __buffer_size);
14726 std::__merge_adaptive(__new_middle, __second_cut, __last,
14727 __len1 - __len11,
14728 __len2 - __len22, __buffer, __buffer_size);
14729 }
14730 }
14731
14732
14733
14734
14735
14736
14737 template<typename _BidirectionalIterator, typename _Distance, typename _Pointer,
14738 typename _Compare>
14739 void
14740 __merge_adaptive(_BidirectionalIterator __first,
14741 _BidirectionalIterator __middle,
14742 _BidirectionalIterator __last,
14743 _Distance __len1, _Distance __len2,
14744 _Pointer __buffer, _Distance __buffer_size,
14745 _Compare __comp)
14746 {
14747 if (__len1 <= __len2 && __len1 <= __buffer_size)
14748 {
14749 _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
14750 std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
14751 }
14752 else if (__len2 <= __buffer_size)
14753 {
14754 _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
14755 std::__merge_backward(__first, __middle, __buffer, __buffer_end,
14756 __last, __comp);
14757 }
14758 else
14759 {
14760 _BidirectionalIterator __first_cut = __first;
14761 _BidirectionalIterator __second_cut = __middle;
14762 _Distance __len11 = 0;
14763 _Distance __len22 = 0;
14764 if (__len1 > __len2)
14765 {
14766 __len11 = __len1 / 2;
14767 std::advance(__first_cut, __len11);
14768 __second_cut = std::lower_bound(__middle, __last, *__first_cut,
14769 __comp);
14770 __len22 = std::distance(__middle, __second_cut);
14771 }
14772 else
14773 {
14774 __len22 = __len2 / 2;
14775 std::advance(__second_cut, __len22);
14776 __first_cut = std::upper_bound(__first, __middle, *__second_cut,
14777 __comp);
14778 __len11 = std::distance(__first, __first_cut);
14779 }
14780 _BidirectionalIterator __new_middle =
14781 std::__rotate_adaptive(__first_cut, __middle, __second_cut,
14782 __len1 - __len11, __len22, __buffer,
14783 __buffer_size);
14784 std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
14785 __len22, __buffer, __buffer_size, __comp);
14786 std::__merge_adaptive(__new_middle, __second_cut, __last,
14787 __len1 - __len11,
14788 __len2 - __len22, __buffer,
14789 __buffer_size, __comp);
14790 }
14791 }
14792# 3595 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14793 template<typename _BidirectionalIterator>
14794 void
14795 inplace_merge(_BidirectionalIterator __first,
14796 _BidirectionalIterator __middle,
14797 _BidirectionalIterator __last)
14798 {
14799 typedef typename iterator_traits<_BidirectionalIterator>::value_type
14800 _ValueType;
14801 typedef typename iterator_traits<_BidirectionalIterator>::difference_type
14802 _DistanceType;
14803
14804
14805
14806
14807
14808 ;
14809 ;
14810
14811 if (__first == __middle || __middle == __last)
14812 return;
14813
14814 _DistanceType __len1 = std::distance(__first, __middle);
14815 _DistanceType __len2 = std::distance(__middle, __last);
14816
14817 _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
14818 __last);
14819 if (__buf.begin() == 0)
14820 std::__merge_without_buffer(__first, __middle, __last, __len1, __len2);
14821 else
14822 std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
14823 __buf.begin(), _DistanceType(__buf.size()));
14824 }
14825# 3649 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14826 template<typename _BidirectionalIterator, typename _Compare>
14827 void
14828 inplace_merge(_BidirectionalIterator __first,
14829 _BidirectionalIterator __middle,
14830 _BidirectionalIterator __last,
14831 _Compare __comp)
14832 {
14833 typedef typename iterator_traits<_BidirectionalIterator>::value_type
14834 _ValueType;
14835 typedef typename iterator_traits<_BidirectionalIterator>::difference_type
14836 _DistanceType;
14837
14838
14839
14840
14841
14842
14843 ;
14844 ;
14845
14846 if (__first == __middle || __middle == __last)
14847 return;
14848
14849 const _DistanceType __len1 = std::distance(__first, __middle);
14850 const _DistanceType __len2 = std::distance(__middle, __last);
14851
14852 _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
14853 __last);
14854 if (__buf.begin() == 0)
14855 std::__merge_without_buffer(__first, __middle, __last, __len1,
14856 __len2, __comp);
14857 else
14858 std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
14859 __buf.begin(), _DistanceType(__buf.size()),
14860 __comp);
14861 }
14862
14863 template<typename _RandomAccessIterator, typename _Pointer,
14864 typename _Distance>
14865 void
14866 __stable_sort_adaptive(_RandomAccessIterator __first,
14867 _RandomAccessIterator __last,
14868 _Pointer __buffer, _Distance __buffer_size)
14869 {
14870 const _Distance __len = (__last - __first + 1) / 2;
14871 const _RandomAccessIterator __middle = __first + __len;
14872 if (__len > __buffer_size)
14873 {
14874 std::__stable_sort_adaptive(__first, __middle,
14875 __buffer, __buffer_size);
14876 std::__stable_sort_adaptive(__middle, __last,
14877 __buffer, __buffer_size);
14878 }
14879 else
14880 {
14881 std::__merge_sort_with_buffer(__first, __middle, __buffer);
14882 std::__merge_sort_with_buffer(__middle, __last, __buffer);
14883 }
14884 std::__merge_adaptive(__first, __middle, __last,
14885 _Distance(__middle - __first),
14886 _Distance(__last - __middle),
14887 __buffer, __buffer_size);
14888 }
14889
14890 template<typename _RandomAccessIterator, typename _Pointer,
14891 typename _Distance, typename _Compare>
14892 void
14893 __stable_sort_adaptive(_RandomAccessIterator __first,
14894 _RandomAccessIterator __last,
14895 _Pointer __buffer, _Distance __buffer_size,
14896 _Compare __comp)
14897 {
14898 const _Distance __len = (__last - __first + 1) / 2;
14899 const _RandomAccessIterator __middle = __first + __len;
14900 if (__len > __buffer_size)
14901 {
14902 std::__stable_sort_adaptive(__first, __middle, __buffer,
14903 __buffer_size, __comp);
14904 std::__stable_sort_adaptive(__middle, __last, __buffer,
14905 __buffer_size, __comp);
14906 }
14907 else
14908 {
14909 std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp);
14910 std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp);
14911 }
14912 std::__merge_adaptive(__first, __middle, __last,
14913 _Distance(__middle - __first),
14914 _Distance(__last - __middle),
14915 __buffer, __buffer_size,
14916 __comp);
14917 }
14918# 3758 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14919 template<typename _RandomAccessIterator>
14920 inline void
14921 stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
14922 {
14923 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14924 _ValueType;
14925 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14926 _DistanceType;
14927
14928
14929
14930
14931
14932 ;
14933
14934 _Temporary_buffer<_RandomAccessIterator, _ValueType>
14935 buf(__first, __last);
14936 if (buf.begin() == 0)
14937 std::__inplace_stable_sort(__first, __last);
14938 else
14939 std::__stable_sort_adaptive(__first, __last, buf.begin(),
14940 _DistanceType(buf.size()));
14941 }
14942# 3799 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14943 template<typename _RandomAccessIterator, typename _Compare>
14944 inline void
14945 stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
14946 _Compare __comp)
14947 {
14948 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14949 _ValueType;
14950 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14951 _DistanceType;
14952
14953
14954
14955
14956
14957
14958
14959 ;
14960
14961 _Temporary_buffer<_RandomAccessIterator, _ValueType> buf(__first, __last);
14962 if (buf.begin() == 0)
14963 std::__inplace_stable_sort(__first, __last, __comp);
14964 else
14965 std::__stable_sort_adaptive(__first, __last, buf.begin(),
14966 _DistanceType(buf.size()), __comp);
14967 }
14968# 3840 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14969 template<typename _RandomAccessIterator>
14970 void
14971 nth_element(_RandomAccessIterator __first,
14972 _RandomAccessIterator __nth,
14973 _RandomAccessIterator __last)
14974 {
14975 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14976 _ValueType;
14977
14978
14979
14980
14981
14982 ;
14983 ;
14984
14985 while (__last - __first > 3)
14986 {
14987 _RandomAccessIterator __cut =
14988 std::__unguarded_partition(__first, __last,
14989 _ValueType(std::__median(*__first,
14990 *(__first
14991 + (__last
14992 - __first)
14993 / 2),
14994 *(__last
14995 - 1))));
14996 if (__cut <= __nth)
14997 __first = __cut;
14998 else
14999 __last = __cut;
15000 }
15001 std::__insertion_sort(__first, __last);
15002 }
15003# 3891 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15004 template<typename _RandomAccessIterator, typename _Compare>
15005 void
15006 nth_element(_RandomAccessIterator __first,
15007 _RandomAccessIterator __nth,
15008 _RandomAccessIterator __last,
15009 _Compare __comp)
15010 {
15011 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15012 _ValueType;
15013
15014
15015
15016
15017
15018
15019 ;
15020 ;
15021
15022 while (__last - __first > 3)
15023 {
15024 _RandomAccessIterator __cut =
15025 std::__unguarded_partition(__first, __last,
15026 _ValueType(std::__median(*__first,
15027 *(__first
15028 + (__last
15029 - __first)
15030 / 2),
15031 *(__last - 1),
15032 __comp)), __comp);
15033 if (__cut <= __nth)
15034 __first = __cut;
15035 else
15036 __last = __cut;
15037 }
15038 std::__insertion_sort(__first, __last, __comp);
15039 }
15040# 3944 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15041 template<typename _ForwardIterator, typename _Tp>
15042 pair<_ForwardIterator, _ForwardIterator>
15043 equal_range(_ForwardIterator __first, _ForwardIterator __last,
15044 const _Tp& __val)
15045 {
15046 typedef typename iterator_traits<_ForwardIterator>::value_type
15047 _ValueType;
15048 typedef typename iterator_traits<_ForwardIterator>::difference_type
15049 _DistanceType;
15050
15051
15052
15053
15054
15055
15056 ;
15057
15058 _DistanceType __len = std::distance(__first, __last);
15059 _DistanceType __half;
15060 _ForwardIterator __middle, __left, __right;
15061
15062 while (__len > 0)
15063 {
15064 __half = __len >> 1;
15065 __middle = __first;
15066 std::advance(__middle, __half);
15067 if (*__middle < __val)
15068 {
15069 __first = __middle;
15070 ++__first;
15071 __len = __len - __half - 1;
15072 }
15073 else if (__val < *__middle)
15074 __len = __half;
15075 else
15076 {
15077 __left = std::lower_bound(__first, __middle, __val);
15078 std::advance(__first, __len);
15079 __right = std::upper_bound(++__middle, __first, __val);
15080 return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
15081 }
15082 }
15083 return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
15084 }
15085# 4006 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15086 template<typename _ForwardIterator, typename _Tp, typename _Compare>
15087 pair<_ForwardIterator, _ForwardIterator>
15088 equal_range(_ForwardIterator __first, _ForwardIterator __last,
15089 const _Tp& __val,
15090 _Compare __comp)
15091 {
15092 typedef typename iterator_traits<_ForwardIterator>::value_type
15093 _ValueType;
15094 typedef typename iterator_traits<_ForwardIterator>::difference_type
15095 _DistanceType;
15096
15097
15098
15099
15100
15101
15102
15103 ;
15104
15105 _DistanceType __len = std::distance(__first, __last);
15106 _DistanceType __half;
15107 _ForwardIterator __middle, __left, __right;
15108
15109 while (__len > 0)
15110 {
15111 __half = __len >> 1;
15112 __middle = __first;
15113 std::advance(__middle, __half);
15114 if (__comp(*__middle, __val))
15115 {
15116 __first = __middle;
15117 ++__first;
15118 __len = __len - __half - 1;
15119 }
15120 else if (__comp(__val, *__middle))
15121 __len = __half;
15122 else
15123 {
15124 __left = std::lower_bound(__first, __middle, __val, __comp);
15125 std::advance(__first, __len);
15126 __right = std::upper_bound(++__middle, __first, __val, __comp);
15127 return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
15128 }
15129 }
15130 return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
15131 }
15132# 4064 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15133 template<typename _ForwardIterator, typename _Tp>
15134 bool
15135 binary_search(_ForwardIterator __first, _ForwardIterator __last,
15136 const _Tp& __val)
15137 {
15138
15139
15140
15141
15142
15143
15144 ;
15145
15146 _ForwardIterator __i = std::lower_bound(__first, __last, __val);
15147 return __i != __last && !(__val < *__i);
15148 }
15149# 4096 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15150 template<typename _ForwardIterator, typename _Tp, typename _Compare>
15151 bool
15152 binary_search(_ForwardIterator __first, _ForwardIterator __last,
15153 const _Tp& __val, _Compare __comp)
15154 {
15155
15156
15157
15158
15159
15160
15161 ;
15162
15163 _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
15164 return __i != __last && !__comp(__val, *__i);
15165 }
15166# 4134 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15167 template<typename _InputIterator1, typename _InputIterator2>
15168 bool
15169 includes(_InputIterator1 __first1, _InputIterator1 __last1,
15170 _InputIterator2 __first2, _InputIterator2 __last2)
15171 {
15172
15173
15174
15175
15176
15177
15178
15179
15180 ;
15181 ;
15182
15183 while (__first1 != __last1 && __first2 != __last2)
15184 if (*__first2 < *__first1)
15185 return false;
15186 else if(*__first1 < *__first2)
15187 ++__first1;
15188 else
15189 ++__first1, ++__first2;
15190
15191 return __first2 == __last2;
15192 }
15193# 4180 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15194 template<typename _InputIterator1, typename _InputIterator2,
15195 typename _Compare>
15196 bool
15197 includes(_InputIterator1 __first1, _InputIterator1 __last1,
15198 _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
15199 {
15200
15201
15202
15203
15204
15205
15206
15207
15208
15209 ;
15210 ;
15211
15212 while (__first1 != __last1 && __first2 != __last2)
15213 if (__comp(*__first2, *__first1))
15214 return false;
15215 else if(__comp(*__first1, *__first2))
15216 ++__first1;
15217 else
15218 ++__first1, ++__first2;
15219
15220 return __first2 == __last2;
15221 }
15222# 4226 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15223 template<typename _InputIterator1, typename _InputIterator2,
15224 typename _OutputIterator>
15225 _OutputIterator
15226 set_union(_InputIterator1 __first1, _InputIterator1 __last1,
15227 _InputIterator2 __first2, _InputIterator2 __last2,
15228 _OutputIterator __result)
15229 {
15230
15231
15232
15233
15234
15235
15236
15237
15238
15239
15240 ;
15241 ;
15242
15243 while (__first1 != __last1 && __first2 != __last2)
15244 {
15245 if (*__first1 < *__first2)
15246 {
15247 *__result = *__first1;
15248 ++__first1;
15249 }
15250 else if (*__first2 < *__first1)
15251 {
15252 *__result = *__first2;
15253 ++__first2;
15254 }
15255 else
15256 {
15257 *__result = *__first1;
15258 ++__first1;
15259 ++__first2;
15260 }
15261 ++__result;
15262 }
15263 return std::copy(__first2, __last2, std::copy(__first1, __last1,
15264 __result));
15265 }
15266# 4288 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15267 template<typename _InputIterator1, typename _InputIterator2,
15268 typename _OutputIterator, typename _Compare>
15269 _OutputIterator
15270 set_union(_InputIterator1 __first1, _InputIterator1 __last1,
15271 _InputIterator2 __first2, _InputIterator2 __last2,
15272 _OutputIterator __result, _Compare __comp)
15273 {
15274
15275
15276
15277
15278
15279
15280
15281
15282
15283
15284
15285 ;
15286 ;
15287
15288 while (__first1 != __last1 && __first2 != __last2)
15289 {
15290 if (__comp(*__first1, *__first2))
15291 {
15292 *__result = *__first1;
15293 ++__first1;
15294 }
15295 else if (__comp(*__first2, *__first1))
15296 {
15297 *__result = *__first2;
15298 ++__first2;
15299 }
15300 else
15301 {
15302 *__result = *__first1;
15303 ++__first1;
15304 ++__first2;
15305 }
15306 ++__result;
15307 }
15308 return std::copy(__first2, __last2, std::copy(__first1, __last1,
15309 __result));
15310 }
15311# 4349 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15312 template<typename _InputIterator1, typename _InputIterator2,
15313 typename _OutputIterator>
15314 _OutputIterator
15315 set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
15316 _InputIterator2 __first2, _InputIterator2 __last2,
15317 _OutputIterator __result)
15318 {
15319
15320
15321
15322
15323
15324
15325
15326
15327
15328
15329 ;
15330 ;
15331
15332 while (__first1 != __last1 && __first2 != __last2)
15333 if (*__first1 < *__first2)
15334 ++__first1;
15335 else if (*__first2 < *__first1)
15336 ++__first2;
15337 else
15338 {
15339 *__result = *__first1;
15340 ++__first1;
15341 ++__first2;
15342 ++__result;
15343 }
15344 return __result;
15345 }
15346# 4403 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15347 template<typename _InputIterator1, typename _InputIterator2,
15348 typename _OutputIterator, typename _Compare>
15349 _OutputIterator
15350 set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
15351 _InputIterator2 __first2, _InputIterator2 __last2,
15352 _OutputIterator __result, _Compare __comp)
15353 {
15354
15355
15356
15357
15358
15359
15360
15361
15362
15363
15364
15365 ;
15366 ;
15367
15368 while (__first1 != __last1 && __first2 != __last2)
15369 if (__comp(*__first1, *__first2))
15370 ++__first1;
15371 else if (__comp(*__first2, *__first1))
15372 ++__first2;
15373 else
15374 {
15375 *__result = *__first1;
15376 ++__first1;
15377 ++__first2;
15378 ++__result;
15379 }
15380 return __result;
15381 }
15382# 4457 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15383 template<typename _InputIterator1, typename _InputIterator2,
15384 typename _OutputIterator>
15385 _OutputIterator
15386 set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15387 _InputIterator2 __first2, _InputIterator2 __last2,
15388 _OutputIterator __result)
15389 {
15390
15391
15392
15393
15394
15395
15396
15397
15398
15399
15400 ;
15401 ;
15402
15403 while (__first1 != __last1 && __first2 != __last2)
15404 if (*__first1 < *__first2)
15405 {
15406 *__result = *__first1;
15407 ++__first1;
15408 ++__result;
15409 }
15410 else if (*__first2 < *__first1)
15411 ++__first2;
15412 else
15413 {
15414 ++__first1;
15415 ++__first2;
15416 }
15417 return std::copy(__first1, __last1, __result);
15418 }
15419# 4515 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15420 template<typename _InputIterator1, typename _InputIterator2,
15421 typename _OutputIterator, typename _Compare>
15422 _OutputIterator
15423 set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15424 _InputIterator2 __first2, _InputIterator2 __last2,
15425 _OutputIterator __result, _Compare __comp)
15426 {
15427
15428
15429
15430
15431
15432
15433
15434
15435
15436
15437
15438 ;
15439 ;
15440
15441 while (__first1 != __last1 && __first2 != __last2)
15442 if (__comp(*__first1, *__first2))
15443 {
15444 *__result = *__first1;
15445 ++__first1;
15446 ++__result;
15447 }
15448 else if (__comp(*__first2, *__first1))
15449 ++__first2;
15450 else
15451 {
15452 ++__first1;
15453 ++__first2;
15454 }
15455 return std::copy(__first1, __last1, __result);
15456 }
15457# 4569 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15458 template<typename _InputIterator1, typename _InputIterator2,
15459 typename _OutputIterator>
15460 _OutputIterator
15461 set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15462 _InputIterator2 __first2, _InputIterator2 __last2,
15463 _OutputIterator __result)
15464 {
15465
15466
15467
15468
15469
15470
15471
15472
15473
15474
15475 ;
15476 ;
15477
15478 while (__first1 != __last1 && __first2 != __last2)
15479 if (*__first1 < *__first2)
15480 {
15481 *__result = *__first1;
15482 ++__first1;
15483 ++__result;
15484 }
15485 else if (*__first2 < *__first1)
15486 {
15487 *__result = *__first2;
15488 ++__first2;
15489 ++__result;
15490 }
15491 else
15492 {
15493 ++__first1;
15494 ++__first2;
15495 }
15496 return std::copy(__first2, __last2, std::copy(__first1,
15497 __last1, __result));
15498 }
15499# 4630 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15500 template<typename _InputIterator1, typename _InputIterator2,
15501 typename _OutputIterator, typename _Compare>
15502 _OutputIterator
15503 set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15504 _InputIterator2 __first2, _InputIterator2 __last2,
15505 _OutputIterator __result,
15506 _Compare __comp)
15507 {
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517
15518
15519 ;
15520 ;
15521
15522 while (__first1 != __last1 && __first2 != __last2)
15523 if (__comp(*__first1, *__first2))
15524 {
15525 *__result = *__first1;
15526 ++__first1;
15527 ++__result;
15528 }
15529 else if (__comp(*__first2, *__first1))
15530 {
15531 *__result = *__first2;
15532 ++__first2;
15533 ++__result;
15534 }
15535 else
15536 {
15537 ++__first1;
15538 ++__first2;
15539 }
15540 return std::copy(__first2, __last2, std::copy(__first1,
15541 __last1, __result));
15542 }
15543# 4683 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15544 template<typename _ForwardIterator>
15545 _ForwardIterator
15546 max_element(_ForwardIterator __first, _ForwardIterator __last)
15547 {
15548
15549
15550
15551
15552 ;
15553
15554 if (__first == __last)
15555 return __first;
15556 _ForwardIterator __result = __first;
15557 while (++__first != __last)
15558 if (*__result < *__first)
15559 __result = __first;
15560 return __result;
15561 }
15562# 4710 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15563 template<typename _ForwardIterator, typename _Compare>
15564 _ForwardIterator
15565 max_element(_ForwardIterator __first, _ForwardIterator __last,
15566 _Compare __comp)
15567 {
15568
15569
15570
15571
15572
15573 ;
15574
15575 if (__first == __last) return __first;
15576 _ForwardIterator __result = __first;
15577 while (++__first != __last)
15578 if (__comp(*__result, *__first)) __result = __first;
15579 return __result;
15580 }
15581
15582
15583
15584
15585
15586
15587
15588 template<typename _ForwardIterator>
15589 _ForwardIterator
15590 min_element(_ForwardIterator __first, _ForwardIterator __last)
15591 {
15592
15593
15594
15595
15596 ;
15597
15598 if (__first == __last)
15599 return __first;
15600 _ForwardIterator __result = __first;
15601 while (++__first != __last)
15602 if (*__first < *__result)
15603 __result = __first;
15604 return __result;
15605 }
15606# 4762 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15607 template<typename _ForwardIterator, typename _Compare>
15608 _ForwardIterator
15609 min_element(_ForwardIterator __first, _ForwardIterator __last,
15610 _Compare __comp)
15611 {
15612
15613
15614
15615
15616
15617 ;
15618
15619 if (__first == __last)
15620 return __first;
15621 _ForwardIterator __result = __first;
15622 while (++__first != __last)
15623 if (__comp(*__first, *__result))
15624 __result = __first;
15625 return __result;
15626 }
15627# 4797 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15628 template<typename _BidirectionalIterator>
15629 bool
15630 next_permutation(_BidirectionalIterator __first,
15631 _BidirectionalIterator __last)
15632 {
15633
15634
15635
15636
15637
15638 ;
15639
15640 if (__first == __last)
15641 return false;
15642 _BidirectionalIterator __i = __first;
15643 ++__i;
15644 if (__i == __last)
15645 return false;
15646 __i = __last;
15647 --__i;
15648
15649 for(;;)
15650 {
15651 _BidirectionalIterator __ii = __i;
15652 --__i;
15653 if (*__i < *__ii)
15654 {
15655 _BidirectionalIterator __j = __last;
15656 while (!(*__i < *--__j))
15657 {}
15658 std::iter_swap(__i, __j);
15659 std::reverse(__ii, __last);
15660 return true;
15661 }
15662 if (__i == __first)
15663 {
15664 std::reverse(__first, __last);
15665 return false;
15666 }
15667 }
15668 }
15669# 4853 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15670 template<typename _BidirectionalIterator, typename _Compare>
15671 bool
15672 next_permutation(_BidirectionalIterator __first,
15673 _BidirectionalIterator __last, _Compare __comp)
15674 {
15675
15676
15677
15678
15679
15680
15681 ;
15682
15683 if (__first == __last)
15684 return false;
15685 _BidirectionalIterator __i = __first;
15686 ++__i;
15687 if (__i == __last)
15688 return false;
15689 __i = __last;
15690 --__i;
15691
15692 for(;;)
15693 {
15694 _BidirectionalIterator __ii = __i;
15695 --__i;
15696 if (__comp(*__i, *__ii))
15697 {
15698 _BidirectionalIterator __j = __last;
15699 while (!__comp(*__i, *--__j))
15700 {}
15701 std::iter_swap(__i, __j);
15702 std::reverse(__ii, __last);
15703 return true;
15704 }
15705 if (__i == __first)
15706 {
15707 std::reverse(__first, __last);
15708 return false;
15709 }
15710 }
15711 }
15712# 4908 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15713 template<typename _BidirectionalIterator>
15714 bool
15715 prev_permutation(_BidirectionalIterator __first,
15716 _BidirectionalIterator __last)
15717 {
15718
15719
15720
15721
15722
15723 ;
15724
15725 if (__first == __last)
15726 return false;
15727 _BidirectionalIterator __i = __first;
15728 ++__i;
15729 if (__i == __last)
15730 return false;
15731 __i = __last;
15732 --__i;
15733
15734 for(;;)
15735 {
15736 _BidirectionalIterator __ii = __i;
15737 --__i;
15738 if (*__ii < *__i)
15739 {
15740 _BidirectionalIterator __j = __last;
15741 while (!(*--__j < *__i))
15742 {}
15743 std::iter_swap(__i, __j);
15744 std::reverse(__ii, __last);
15745 return true;
15746 }
15747 if (__i == __first)
15748 {
15749 std::reverse(__first, __last);
15750 return false;
15751 }
15752 }
15753 }
15754# 4964 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15755 template<typename _BidirectionalIterator, typename _Compare>
15756 bool
15757 prev_permutation(_BidirectionalIterator __first,
15758 _BidirectionalIterator __last, _Compare __comp)
15759 {
15760
15761
15762
15763
15764
15765
15766 ;
15767
15768 if (__first == __last)
15769 return false;
15770 _BidirectionalIterator __i = __first;
15771 ++__i;
15772 if (__i == __last)
15773 return false;
15774 __i = __last;
15775 --__i;
15776
15777 for(;;)
15778 {
15779 _BidirectionalIterator __ii = __i;
15780 --__i;
15781 if (__comp(*__ii, *__i))
15782 {
15783 _BidirectionalIterator __j = __last;
15784 while (!__comp(*--__j, *__i))
15785 {}
15786 std::iter_swap(__i, __j);
15787 std::reverse(__ii, __last);
15788 return true;
15789 }
15790 if (__i == __first)
15791 {
15792 std::reverse(__first, __last);
15793 return false;
15794 }
15795 }
15796 }
15797# 5023 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15798 template<typename _InputIterator, typename _ForwardIterator>
15799 _InputIterator
15800 find_first_of(_InputIterator __first1, _InputIterator __last1,
15801 _ForwardIterator __first2, _ForwardIterator __last2)
15802 {
15803
15804
15805
15806
15807
15808
15809 ;
15810 ;
15811
15812 for ( ; __first1 != __last1; ++__first1)
15813 for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
15814 if (*__first1 == *__iter)
15815 return __first1;
15816 return __last1;
15817 }
15818# 5059 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15819 template<typename _InputIterator, typename _ForwardIterator,
15820 typename _BinaryPredicate>
15821 _InputIterator
15822 find_first_of(_InputIterator __first1, _InputIterator __last1,
15823 _ForwardIterator __first2, _ForwardIterator __last2,
15824 _BinaryPredicate __comp)
15825 {
15826
15827
15828
15829
15830
15831
15832 ;
15833 ;
15834
15835 for ( ; __first1 != __last1; ++__first1)
15836 for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
15837 if (__comp(*__first1, *__iter))
15838 return __first1;
15839 return __last1;
15840 }
15841# 5089 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15842 template<typename _ForwardIterator1, typename _ForwardIterator2>
15843 _ForwardIterator1
15844 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15845 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
15846 forward_iterator_tag, forward_iterator_tag)
15847 {
15848 if (__first2 == __last2)
15849 return __last1;
15850 else
15851 {
15852 _ForwardIterator1 __result = __last1;
15853 while (1)
15854 {
15855 _ForwardIterator1 __new_result
15856 = std::search(__first1, __last1, __first2, __last2);
15857 if (__new_result == __last1)
15858 return __result;
15859 else
15860 {
15861 __result = __new_result;
15862 __first1 = __new_result;
15863 ++__first1;
15864 }
15865 }
15866 }
15867 }
15868
15869 template<typename _ForwardIterator1, typename _ForwardIterator2,
15870 typename _BinaryPredicate>
15871 _ForwardIterator1
15872 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15873 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
15874 forward_iterator_tag, forward_iterator_tag,
15875 _BinaryPredicate __comp)
15876 {
15877 if (__first2 == __last2)
15878 return __last1;
15879 else
15880 {
15881 _ForwardIterator1 __result = __last1;
15882 while (1)
15883 {
15884 _ForwardIterator1 __new_result
15885 = std::search(__first1, __last1, __first2, __last2, __comp);
15886 if (__new_result == __last1)
15887 return __result;
15888 else
15889 {
15890 __result = __new_result;
15891 __first1 = __new_result;
15892 ++__first1;
15893 }
15894 }
15895 }
15896 }
15897
15898
15899 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
15900 _BidirectionalIterator1
15901 __find_end(_BidirectionalIterator1 __first1,
15902 _BidirectionalIterator1 __last1,
15903 _BidirectionalIterator2 __first2,
15904 _BidirectionalIterator2 __last2,
15905 bidirectional_iterator_tag, bidirectional_iterator_tag)
15906 {
15907
15908
15909
15910
15911
15912
15913 typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
15914 typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
15915
15916 _RevIterator1 __rlast1(__first1);
15917 _RevIterator2 __rlast2(__first2);
15918 _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
15919 _RevIterator2(__last2), __rlast2);
15920
15921 if (__rresult == __rlast1)
15922 return __last1;
15923 else
15924 {
15925 _BidirectionalIterator1 __result = __rresult.base();
15926 std::advance(__result, -std::distance(__first2, __last2));
15927 return __result;
15928 }
15929 }
15930
15931 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
15932 typename _BinaryPredicate>
15933 _BidirectionalIterator1
15934 __find_end(_BidirectionalIterator1 __first1,
15935 _BidirectionalIterator1 __last1,
15936 _BidirectionalIterator2 __first2,
15937 _BidirectionalIterator2 __last2,
15938 bidirectional_iterator_tag, bidirectional_iterator_tag,
15939 _BinaryPredicate __comp)
15940 {
15941
15942
15943
15944
15945
15946
15947 typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
15948 typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
15949
15950 _RevIterator1 __rlast1(__first1);
15951 _RevIterator2 __rlast2(__first2);
15952 _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
15953 _RevIterator2(__last2), __rlast2,
15954 __comp);
15955
15956 if (__rresult == __rlast1)
15957 return __last1;
15958 else
15959 {
15960 _BidirectionalIterator1 __result = __rresult.base();
15961 std::advance(__result, -std::distance(__first2, __last2));
15962 return __result;
15963 }
15964 }
15965# 5239 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15966 template<typename _ForwardIterator1, typename _ForwardIterator2>
15967 inline _ForwardIterator1
15968 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15969 _ForwardIterator2 __first2, _ForwardIterator2 __last2)
15970 {
15971
15972
15973
15974
15975
15976
15977 ;
15978 ;
15979
15980 return std::__find_end(__first1, __last1, __first2, __last2,
15981 std::__iterator_category(__first1),
15982 std::__iterator_category(__first2));
15983 }
15984# 5284 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15985 template<typename _ForwardIterator1, typename _ForwardIterator2,
15986 typename _BinaryPredicate>
15987 inline _ForwardIterator1
15988 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15989 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
15990 _BinaryPredicate __comp)
15991 {
15992
15993
15994
15995
15996
15997
15998 ;
15999 ;
16000
16001 return std::__find_end(__first1, __last1, __first2, __last2,
16002 std::__iterator_category(__first1),
16003 std::__iterator_category(__first2),
16004 __comp);
16005 }
16006
16007}
16008# 70 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 2 3
16009
16010#pragma GCC visibility pop
16011# 4 "t.c++" 2
16012
16013# 1 "../schultz" 1
16014# 10 "../schultz"
16015namespace schultz {
16016
16017# 1 "../language/keywords" 1
16018# 13 "../schultz" 2
16019
16020
16021# 1 "../language/types" 1
16022
16023
16024
16025
16026
16027
16028
16029typedef unsigned int nat;
16030# 16 "../schultz" 2
16031
16032
16033# 1 "../language/iteration" 1
16034# 19 "../schultz" 2
16035
16036
16037# 1 "../language/meta" 1
16038# 9 "../language/meta"
16039template<typename T> struct default_type_traits {
16040 enum {
16041 trivial = false,
16042 trivial_constructor = false,
16043 trivial_copy = false,
16044 trivial_assignment = false,
16045 trivial_destructor = false,
16046
16047 fast_increment = false,
16048 fast_decrement = false,
16049 fast_random_increment = false,
16050
16051 special_swap = false
16052 };
16053};
16054
16055
16056template<typename T> struct type_traits {
16057 enum {
16058 trivial = T::type_traits::trivial || (
16059 T::type_traits::trivial_constructor &&
16060 T::type_traits::trivial_copy &&
16061 T::type_traits::trivial_assignment &&
16062 T::type_traits::trivial_destructor
16063 ),
16064 trivial_constructor = T::type_traits::trivial || T::type_traits::trivial_constructor,
16065 trivial_copy = T::type_traits::trivial || T::type_traits::trivial_copy,
16066 trivial_assignment = T::type_traits::trivial || T::type_traits::trivial_assignment,
16067 trivial_destructor = T::type_traits::trivial || T::type_traits::trivial_destructor,
16068
16069 fast_increment = T::type_traits::fast_increment || T::type_traits::fast_random_increment,
16070 fast_decrement = T::type_traits::fast_decrement || T::type_traits::fast_random_increment,
16071 fast_random_increment = T::type_traits::fast_random_increment,
16072
16073 special_swap = T::type_traits::special_swap
16074 };
16075};
16076
16077
16078template<typename T> struct builtin_type_traits : public default_type_traits<T> {
16079 enum {
16080 trivial = true,
16081 trivial_constructor = true,
16082 trivial_copy = true,
16083 trivial_assignment = true,
16084 trivial_destructor = true,
16085
16086 fast_increment = true,
16087 fast_decrement = true,
16088 fast_random_increment = true,
16089
16090 special_swap = false
16091 };
16092};
16093
16094
16095template<> struct type_traits<bool> : public builtin_type_traits<bool> {};
16096template<> struct type_traits<nat> : public builtin_type_traits<nat> {};
16097template<> struct type_traits<int> : public builtin_type_traits<int> {};
16098template<> struct type_traits<char> : public builtin_type_traits<char> {};
16099template<typename T> struct type_traits<T*> : public builtin_type_traits<T*> {};
16100template<typename T> struct type_traits<const T*> : public builtin_type_traits<const T*> {};
16101
16102
16103
16104template<typename I> struct default_iterator_traits {
16105 enum {
16106 constant = true,
16107 persistent = false,
16108 bidirectional = false,
16109 random_access = false
16110 };
16111};
16112
16113
16114template<typename I> struct iterator_traits {
16115 enum {
16116 constant = I::iterator_traits::constant,
16117 persistent = I::iterator_traits::persistent,
16118 bidirectional = I::iterator_traits::bidirectional || I::iterator_traits::random_access,
16119 random_access = I::iterator_traits::random_access
16120 };
16121};
16122
16123
16124template<typename T> struct iterator_traits<T*> : public default_iterator_traits<T*> {
16125 enum {
16126 constant = false,
16127 persistent = true,
16128 bidirectional = true,
16129 random_access = true
16130 };
16131};
16132template<typename T> struct iterator_traits<const T*> : public default_iterator_traits<const T*> {
16133 enum {
16134 constant = true,
16135 persistent = true,
16136 bidirectional = true,
16137 random_access = true
16138 };
16139};
16140
16141
16142template<typename I> struct iterator_type_traits : public default_type_traits<I> {
16143 enum {
16144 trivial = true,
16145
16146 fast_increment = true,
16147 fast_decrement = iterator_traits<I>::bidirectional,
16148 fast_random_increment = iterator_traits<I>::random_access
16149 };
16150};
16151# 22 "../schultz" 2
16152
16153
16154# 1 "../language/base" 1
16155
16156
16157
16158
16159
16160
16161
16162namespace __schultz {
16163
16164 template<bool> struct swap_meta {
16165 template<typename T> static inline void swap(T& a, T& b) {
16166 T c = a;
16167 a = b;
16168 b = c;
16169 }
16170 };
16171
16172
16173 template<> struct swap_meta<true> {
16174 template<typename T> static inline void swap(T& a, T& b) {
16175 T::swap(a, b);
16176 }
16177 };
16178}
16179
16180
16181template<typename T> inline void swap(T& a, T& b) {
16182 __schultz::swap_meta<type_traits<T>::special_swap>::swap(a, b);
16183}
16184
16185
16186
16187template<typename I> inline void reverse(I a, I b) {
16188 while (a != b) {
16189 --b;
16190 if (a == b) break;
16191 swap(*a, *b);
16192 ++a;
16193 }
16194}
16195template<typename T> inline void reverse(T& A) {
16196 reverse(A.begin(), A.end());
16197}
16198
16199
16200
16201template<typename I, typename E> inline bool equal(I a, I b, E e) {
16202 while (--b != a) if (!e(*a, *b)) return false;
16203 return true;
16204}
16205template<typename I> inline bool equal(I a, I b) {
16206 while (--b != a) if (*a != *b) return false;
16207 return true;
16208}
16209template<typename T, typename E> inline bool equal(const T& A, E e) {
16210 return equal(A.begin(), A.end(), e);
16211}
16212template<typename T> inline bool equal(const T& A) {
16213 return equal(A.begin(), A.end());
16214}
16215
16216
16217
16218template<typename T> inline bool ascending(const T& x, const T& y) {
16219 return x < y;
16220}
16221
16222
16223template<typename T> inline bool descending(const T& x, const T& y) {
16224 return y < x;
16225}
16226
16227
16228
16229template<typename T, typename O> inline const T& min(const T& x, const T& y, O o) {
16230 return o(x, y) ? x : y;
16231}
16232template<typename T> inline const T& min(const T& x, const T& y) {
16233 return x < y ? x : y;
16234}
16235template<typename T, typename O> inline T& min(T& x, T& y, O o) {
16236 return o(x, y) ? x : y;
16237}
16238template<typename T> inline T& min(T& x, T& y) {
16239 return x < y ? x : y;
16240}
16241
16242
16243template<typename T, typename O> inline const T& max(const T& x, const T& y, O o) {
16244 return o(y, x) ? x : y;
16245}
16246template<typename T> inline const T& max(const T& x, const T& y) {
16247 return y < x ? x : y;
16248}
16249template<typename T, typename O> inline T& max(T& x, T& y, O o) {
16250 return o(y, x) ? x : y;
16251}
16252template<typename T> inline T& max(T& x, T& y) {
16253 return y < x ? x : y;
16254}
16255
16256
16257
16258template<typename I, typename O> inline I minimum(I a, I b, O o) {
16259 I m = a;
16260 while (++a != b) if (o(*a, *m)) m = a;
16261 return m;
16262}
16263template<typename I> inline I minimum(I a, I b) {
16264 I m = a;
16265 while (++a != b) if (*a < *m) m = a;
16266 return m;
16267}
16268template<typename T, typename O> inline typename T::const_iterator minimum(const T& A, O o) {
16269 return minimum(A.begin(), A.end(), o);
16270}
16271template<typename T> inline typename T::const_iterator minimum(const T& A) {
16272 return minimum(A.begin(), A.end());
16273}
16274template<typename T, typename O> inline typename T::iterator minimum(T& A, O o) {
16275 return minimum(A.begin(), A.end(), o);
16276}
16277template<typename T> inline typename T::iterator minimum(T& A) {
16278 return minimum(A.begin(), A.end());
16279}
16280
16281
16282template<typename I, typename O> inline I maximum(I a, I b, O o) {
16283 I m = a;
16284 while (++a != b) if (o(*m, *a)) m = a;
16285 return m;
16286}
16287template<typename I> inline I maximum(I a, I b) {
16288 I m = a;
16289 while (++a != b) if (*m < *a) m = a;
16290 return m;
16291}
16292template<typename T, typename O> inline typename T::const_iterator maximum(const T& A, O o) {
16293 return maximum(A.begin(), A.end(), o);
16294}
16295template<typename T> inline typename T::const_iterator maximum(const T& A) {
16296 return maximum(A.begin(), A.end());
16297}
16298template<typename T, typename O> inline typename T::iterator maximum(T& A, O o) {
16299 return maximum(A.begin(), A.end(), o);
16300}
16301template<typename T> inline typename T::iterator maximum(T& A) {
16302 return maximum(A.begin(), A.end());
16303}
16304# 25 "../schultz" 2
16305
16306
16307# 1 "../language/pair" 1
16308
16309
16310
16311
16312
16313
16314namespace __schultz {
16315
16316 template<typename T, typename U> struct pair_base {
16317
16318 T first;
16319 U second;
16320
16321
16322 static inline void swap(pair_base<T, U>& p, pair_base<T, U>& q) {
16323 schultz::swap(p.first, q.first);
16324 schultz::swap(p.second, q.second);
16325 }
16326
16327
16328 inline bool operator ==(const pair_base<T, U>& p) const {
16329 return first == p.first && second == p.second;
16330 }
16331 inline bool operator !=(const pair_base<T, U>& p) const {
16332 return !((*this) == p);
16333 }
16334
16335
16336 inline bool operator <(const pair_base<T, U>& p) const {
16337 return first < p.first || (first == p.first && second < p.second);
16338 }
16339 inline bool operator >(const pair_base<T, U>& p) const {
16340 return p < (*this);
16341 }
16342 inline bool operator <=(const pair_base<T, U>& p) const {
16343 return !(p < (*this));
16344 }
16345 inline bool operator >=(const pair_base<T, U>& p) const {
16346 return !((*this) < p);
16347 }
16348
16349
16350 inline pair_base() {}
16351 inline pair_base(const T& f, const U& s) : first(f), second(s) {}
16352
16353
16354 struct type_traits : public default_type_traits< pair_base<T, U> > {
16355 enum {
16356 trivial = schultz::type_traits<T>::trivial && schultz::type_traits<U>::trivial,
16357 trivial_constructor = schultz::type_traits<T>::trivial_constructor && schultz::type_traits<U>::trivial_constructor,
16358 trivial_copy = schultz::type_traits<T>::trivial_copy && schultz::type_traits<U>::trivial_copy,
16359 trivial_assignment = schultz::type_traits<T>::trivial_assignment && schultz::type_traits<U>::trivial_assignment,
16360 trivial_destructor = schultz::type_traits<T>::trivial_destructor && schultz::type_traits<U>::trivial_destructor,
16361
16362 special_swap = schultz::type_traits<T>::special_swap || schultz::type_traits<U>::special_swap
16363 };
16364 };
16365 };
16366}
16367
16368
16369template<typename T, typename U = T> struct pair : public __schultz::pair_base<T, U> {
16370
16371 inline pair() {}
16372 inline pair(const T& f, const U& s) : __schultz::pair_base<T, U>::pair_base(f, s) {}
16373};
16374
16375
16376template<typename T> struct pair<T, T> : public __schultz::pair_base<T, T> {
16377
16378 using __schultz::pair_base<T, T>::first;
16379 using __schultz::pair_base<T, T>::second;
16380
16381
16382 inline const T& operator [](nat i) const {return i == 0 ? first : second;}
16383 inline T& operator [](nat i) {return i == 0 ? first : second;}
16384
16385
16386 inline pair() {}
16387 inline pair(const T& f, const T& s) : __schultz::pair_base<T, T>::pair_base(f, s) {}
16388};
16389# 28 "../schultz" 2
16390
16391
16392# 1 "../language/interval" 1
16393
16394
16395
16396
16397
16398
16399
16400namespace __schultz {
16401
16402 template<typename T> struct interval_base {
16403
16404 T left, right;
16405
16406
16407 inline typeof(((T)(*((T*)(0)))) - ((T)(*((T*)(0))))) size() const {return right-left;}
16408
16409
16410 static inline void swap(interval_base<T>& I, interval_base<T>& J) {
16411 schultz::swap(I.left, J.left);
16412 schultz::swap(I.right, J.right);
16413 }
16414
16415
16416 inline bool operator ==(const interval_base<T>& I) const {
16417 return left == I.left && right == I.right;
16418 }
16419 inline bool operator !=(const interval_base<T>& I) const {
16420 return !((*this) == I);
16421 }
16422
16423
16424 inline interval_base() {}
16425 inline interval_base(const T& l, const T& r) : left(l), right(r) {}
16426
16427
16428 struct type_traits : public default_type_traits< interval_base<T> > {
16429 enum {
16430 trivial = schultz::type_traits<T>::trivial,
16431 trivial_constructor = schultz::type_traits<T>::trivial_constructor,
16432 trivial_copy = schultz::type_traits<T>::trivial_copy,
16433 trivial_assignment = schultz::type_traits<T>::trivial_assignment,
16434 trivial_destructor = schultz::type_traits<T>::trivial_destructor,
16435
16436 special_swap = schultz::type_traits<T>::special_swap
16437 };
16438 };
16439 };
16440}
16441
16442
16443template<typename T, bool B = type_traits<T>::trivial && type_traits<T>::fast_increment> struct interval : public __schultz::interval_base<T> {
16444
16445 using __schultz::interval_base<T>::left;
16446 using __schultz::interval_base<T>::right;
16447
16448
16449 using __schultz::interval_base<T>::size;
16450
16451
16452 struct const_iterator {
16453
16454 const interval<T, B>* I;
16455
16456
16457 nat i;
16458
16459
16460 inline T operator *() const {return I->left + i;}
16461 inline T operator [](nat k) const {return I->left + i + k;}
16462
16463
16464 inline bool operator ==(const_iterator it) const {return i == it.i;}
16465 inline bool operator !=(const_iterator it) const {return i != it.i;}
16466
16467
16468 inline bool operator <(const_iterator it) const {return i < it.i;}
16469 inline bool operator >(const_iterator it) const {return i < it.i;}
16470 inline bool operator <=(const_iterator it) const {return i < it.i;}
16471 inline bool operator >=(const_iterator it) const {return i < it.i;}
16472
16473
16474 inline void operator ++() {++i;}
16475 inline const_iterator operator ++(int) {
16476 const_iterator r = (*this);
16477 ++i;
16478 return r;
16479 }
16480 inline void operator --() {--i;}
16481 inline const_iterator operator --(int) {
16482 const_iterator r = (*this);
16483 --i;
16484 return r;
16485 }
16486 inline void operator +=(nat x) {i+= x;}
16487 inline const_iterator operator +(nat x) const {
16488 return const_iterator(I, i+x);
16489 }
16490 inline void operator -=(nat x) {i-= x;}
16491 inline const_iterator operator -(nat x) const {
16492 return const_iterator(I, i-x);
16493 }
16494 inline nat operator -(const_iterator it) const {return i - it.i;}
16495
16496
16497 inline const_iterator(const interval<T, B>* p, nat idx) : I(p), i(idx) {}
16498
16499
16500 struct iterator_traits : public default_iterator_traits<const_iterator> {
16501 enum {
16502 constant = true,
16503 persistent = false,
16504 bidirectional = true,
16505 random_access = true
16506 };
16507 };
16508
16509
16510 struct type_traits : public iterator_type_traits<const_iterator> {};
16511 };
16512
16513
16514 typedef const_iterator iterator;
16515
16516
16517 inline const_iterator begin() const {return const_iterator(this, 0);}
16518 inline const_iterator end() const {return const_iterator(this, size());}
16519 inline bool end(const_iterator i) const {return i.i == size();}
16520
16521
16522 inline interval() {}
16523 inline interval(const T& l, const T& r) : __schultz::interval_base<T>::interval_base(l, r) {}
16524};
16525
16526
16527template<typename T> struct interval<T, true> : public __schultz::interval_base<T> {
16528
16529 using __schultz::interval_base<T>::left;
16530 using __schultz::interval_base<T>::right;
16531
16532
16533 struct const_iterator {
16534
16535 T e;
16536
16537
16538 inline const T& operator *() const {return e;}
16539 inline const T* operator ->() const {return &e;}
16540 inline T operator [](nat i) const {return e+i;}
16541
16542
16543 inline bool operator ==(const_iterator i) const {return e == i.e;}
16544 inline bool operator !=(const_iterator i) const {return e != i.e;}
16545
16546
16547 inline bool operator <(const_iterator i) const {return e < i.e;}
16548 inline bool operator >(const_iterator i) const {return e < i.e;}
16549 inline bool operator <=(const_iterator i) const {return e < i.e;}
16550 inline bool operator >=(const_iterator i) const {return e < i.e;}
16551
16552
16553 inline void operator ++() {++e;}
16554 inline const_iterator operator ++(int) {
16555 const_iterator r = (*this);
16556 ++e;
16557 return r;
16558 }
16559 inline void operator --() {--e;}
16560 inline const_iterator operator --(int) {
16561 const_iterator r = (*this);
16562 --e;
16563 return r;
16564 }
16565 inline void operator +=(nat i) {e+= i;}
16566 inline const_iterator operator +(nat i) const {return const_iterator(e+i);}
16567 inline void operator -=(nat i) {e-= i;}
16568 inline const_iterator operator -(nat i) const {return const_iterator(e-i);}
16569 inline nat operator -(const_iterator i) const {return e - i.e;}
16570
16571
16572 inline const_iterator(T x) : e(x) {}
16573
16574
16575 struct iterator_traits : public default_iterator_traits<const_iterator> {
16576 enum {
16577 constant = true,
16578 persistent = false,
16579 bidirectional = schultz::type_traits<T>::fast_decrement,
16580 random_access = schultz::type_traits<T>::fast_random_increment
16581 };
16582 };
16583
16584
16585 struct type_traits : public iterator_type_traits<const_iterator> {};
16586 };
16587
16588
16589 typedef const_iterator iterator;
16590
16591
16592 inline const_iterator begin() const {return const_iterator(left);}
16593 inline const_iterator end() const {return const_iterator(right);}
16594 inline iterator begin() {return iterator(left);}
16595 inline iterator end() {return iterator(right);}
16596 inline bool end(const_iterator i) const {return i.e == right;}
16597
16598
16599 inline interval() {}
16600 inline interval(const T& l, const T& r) : __schultz::interval_base<T>::interval_base(l, r) {}
16601};
16602
16603
16604
16605template<typename T> inline interval<typename T::const_iterator> iterators(const T& A) {
16606 return interval<typename T::const_iterator>(A.begin(), A.end());
16607}
16608template<typename T> inline interval<typename T::iterator> iterators(T& A) {
16609 return interval<typename T::iterator>(A.begin(), A.end());
16610}
16611
16612
16613typedef interval<nat> _;
16614# 31 "../schultz" 2
16615}
16616# 6 "t.c++" 2
16617using namespace schultz;
16618
16619
16620
16621int A[1000000] = {3};
16622
16623void dosch() {
16624 reverse(A, A+1000000);
16625}
16626
16627void dostl() {
16628 std::reverse(A, A+1000000);
16629}
16630
16631int main() {
16632
16633 dosch();
16634
16635 dostl();
16636
16637 nat s = 0;
16638 for (int i = 0; i != 1000000; ++i) s+= A[i];
16639 printf("%u\n", s);
16640
16641 return 0;
16642}