Fix objcopy and strip so that they remove their temporary files even if an error...
[deliverable/binutils-gdb.git] / binutils / ChangeLog
CommitLineData
5e186ece
NC
12014-11-10 Nick Clifton <nickc@redhat.com>
2
3 PR binutils/17552
4 * (copy_archive): Clean up temporary files even if an error
5 occurs.
6
5a2cbcf4
L
72014-11-07 H.J. Lu <hongjiu.lu@intel.com>
8
9 * readelf.c (process_dynamic_section): Cast time value to unsigned
10 long to print.
11
071436c6
NC
122014-11-07 Nick Clifton <nickc@redhat.com>
13
14 PR binutils/17531
15 * readelf.c (get_data): Avoid allocating memory when we know that
16 the read will fail.
17 (find_section_by_type): New function.
18 (get_unwind_section_word): Check for invalid symbol indicies.
19 Check for invalid reloc types.
20 (get_32bit_dynamic_section): Add range checks.
21 (get_64bit_dynamic_section): Add range checks.
22 (process_dynamic_section): Check for a corrupt time value.
23 (process_symbol_table): Add range checks.
24 (dump_section_as_strings): Add string length range checks.
25 (display_tag_value): Likewise.
26 (display_arm_attribute): Likewise.
27 (display_gnu_attribute): Likewise.
28 (display_tic6x_attribute): Likewise.
29 (display_msp430x_attribute): Likewise.
30 (process_mips_specific): Add range check.
31
dd9b91de
NC
322014-11-06 Nick Clifton <nickc@redhat.com>
33
34 PR binutils/17552, binutils/17533
35 * bucomm.c (is_valid_archive_path): New function. Returns false
36 for absolute pathnames and pathnames that include /../.
37 * bucomm.h (is_valid_archive_path): Add prototype.
38 * ar.c (extract_file): Use new function to check for valid
39 pathnames when extracting files from an archive.
40 * objcopy.c (copy_archive): Likewise.
41 * doc/binutils.texi: Update documentation to mention the
42 limitation on pathname of archive members.
43
74e1a04b
NC
442014-11-05 Nick Clifton <nickc@redhat.com>
45
dd9b91de 46 PR binutils/17531
74e1a04b
NC
47 * readelf.c (printable_section_name): New function.
48 (printable_section_name_from_index): New function.
49 (dump_relocations): Use new function.
50 (process_program_headers, get_32bit_elf_symbols,
51 (get_64bit_elf_symbols, process_section_headers,
52 (process_section_groups, process_relocs, ia64_process_unwind,
53 (hppa_process_unwind, get_unwind_section_word, decode_arm_unwind,
54 (arm_process_unwind, process_version_sections,
55 (process_symbol_table, apply_relocations, get_section_contents,
56 (dump_section_as_strings, dump_section_as_bytes,
57 (display_debug_section, process_attributes, process_mips_specific,
58 (process_mips_specific process_gnu_liblist): Likewise.
59 (get_unwind_section_word): Check for a missing symbol table.
60 Replace aborts with error messages.
61 (arm_process_unwind): Check for a missing string table.
62 (process_attributes): Check for an attribute length that is too
63 small.
64 (process_mips_specific): Check for a corrupt GOT symbol offset.
65
662014-11-05 Nick Clifton <nickc@redhat.com>
67
dd9b91de 68 PR binutils/17533
74e1a04b
NC
69 * bucomm.c (is_valid_archive_path): New function.
70 * bucomm.h (is_valid_archive_path): Prototype it.
71 * ar.c (extract_file): Call is_valid_archive_path to verify a
72 member filename before extracting it.
73 * objcopy.c (copy_archive): Likewise.
74
7fc5ac57
JBG
752014-11-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
76
77 * readelf.c (process_mips_specific): Fix format string warning.
78
df97ab2a
MF
792014-11-04 Matthew Fortune <matthew.fortune@imgtec.com>
80
81 * readelf.c (process_mips_specific): Rename index to idx.
82
049b0c3a
NC
832014-11-04 Nick Clifton <nickc@redhat.com>
84
85 PR binutils/17531
86 * readelf.c (get_data): If the reason parameter is null, do not
87 print any error messages.
88 (get_32bit_section_headers): Verify section header entry size
89 before reading in the section headers.
90 (get_64bit_section_headers): Likewise.
91 (process_section_headers): Pass FALSE to get_section_headers.
92 (get_file_header): Pass TRUE to get_section_headers.
93 (process_dynamic_section): Change an assert to an error message.
94 (process_symbol_table): Handle corrupt histograms.
95
e0a31db1
NC
96 (get_32bit_program_headers): Verify program header entry size
97 before reading in the program headers.
98 (get_64bit_program_headers): Likewise.
99 (get_unwind_section_word): Do nothing if no section was provided.
100 Fail if the offset is outside of the section.
101 (print_dynamic_symbol): Catch out of range symbol indicies.
102 (process_mips_specific): Likewise.
103 (process_attributes): Make sure that there is enough space left in
104 the section before attempting to read the length of the next
105 attribute.
106
5a3f568b
NC
1072014-11-03 Nick Clifton <nickc@redhat.com>
108
109 PR binutils/17512
110 * objdump.c (slurp_symtab): Fail gracefully if the table could not
111 be read.
112 (dump_relocs_in_section): Likewise.
113
ba241f2d
NC
1142014-11-03 Nick Clifton <nickc@redhat.com>
115
116 * po/fi.po: Updated Finnish translation.
117 * po/sv.po: Updated Swedish translation.
118
2a03f307
HPN
1192014-11-01 Hans-Peter Nilsson <hp@axis.com>
120
121 * readelf.c (get_32bit_elf_symbols): Cast error
122 parameters of bfd_size_type with the %lx format to
123 unsigned long.
124
2c629856 1252014-10-31 Andrew Pinski <apinski@cavium.com>
7fc5ac57 126 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2c629856
N
127
128 * readelf.c (print_mips_isa_ext): Print the value of Octeon3.
129
da37262b
IB
1302014-10-31 Iain Buclaw <ibuclaw@gdcproject.org>
131
132 * cxxfilt.c (main): Add case for dlang_demangling style.
133
f54498b4
NC
1342014-10-31 Nick Clifton <nickc@redhat.com>
135
136 PR binutils/17512
137 * readelf.c (process_program_headers): Avoid memory exhaustion due
138 to corrupt values in a dynamis segment header.
139 (get_32bit_elf_symbols): Do not attempt to read an over-large
140 section.
141 (get_64bit_elf_symbols): Likewise.
142
fe060053
NC
1432014-10-31 Nick Clifton <nickc@redhat.com>
144
145 * strings.c: Add new command line option --data to only scan the
146 initialized, loadable data secions of binaries. Choose the
147 default behaviour of --all or --data based upon a configure
148 option.
149 * doc/binutils.texi (strings): Update documentation. Include
150 description of why the --data option might be unsafe.
151 * configure.ac: Add new option --disable-default-strings-all which
152 restores the old behaviour of strings using --data by default. If
153 the option is not used make strings use --all by default.
154 * NEWS: Mention the new behaviour of strings.
155 * configure: Regenerate.
156 * config.in: Regenerate.
157
76ca31c0
NC
1582014-10-30 Nick Clifton <nickc@redhat.com>
159
160 * readelf.c (CHECK_ENTSIZE_VALUES): Rewrite error message so that
161 there is a single string for translation.
162 (dynamic_section_mips_val): Likewise.
163
64b588b5
NC
1642014-10-29 Nick Clifton <nickc@redhat.com>
165
166 * po/bg.po: Updated Bulgarian translation.
167 * po/sr.po: New Serbian translation.
168 * po/sv.po: Updated Swedish translation.
169
00ac7aa0
MF
1702014-10-22 Matthew Fortune <matthew.fortune@imgtec.com>
171
172 * readelf.c (print_mips_ases): Print unknown ASEs.
173 (print_mips_isa_ext): Print the value of an unknown extension.
174
91dc4e0a
TG
1752014-10-15 Tristan Gingold <gingold@adacore.com>
176
177 * configure: Regenerate.
178
c50415e2
TG
1792014-10-14 Tristan Gingold <gingold@adacore.com>
180
181 * NEWS: Add marker for 2.25.
182
65879393
AM
1832014-10-14 Alan Modra <amodra@gmail.com>
184
185 PR 17453
186 * dwarf.c (read_leb128): Avoid signed overflow.
187 (read_debug_line_header): Likewise.
188
9495b2e6
AM
1892014-10-14 Alan Modra <amodra@gmail.com>
190
191 PR 17453
192 * readelf.c (process_program_headers): Correct fscanf format used
193 for interpreter.
194
3d68f91c
JM
1952014-10-09 Jose E. Marchesi <jose.marchesi@oracle.com>
196
197 * readelf.c (display_sparc_hwcaps2): New function.
198 (display_sparc_gnu_attribute): Call `display_sparc_hwcaps2' when
199 handling `Tag_GNU_Sparc_HWCAPS2' attributes.
200
49727e46
AM
2012014-09-22 Alan Modra <amodra@gmail.com>
202
203 PR 16563
204 * dwarf.c (GET): Remove semicolon.
205 (read_cie): New function, extracted from..
206 (display_debug_frames): ..here. Correctly handle signed offset
207 from FDE to CIE in .eh_frame. Decode forward referenced CIEs too.
208
70e99720
TG
2092014-09-16 Nick Clifton <nickc@redhat.com>
210
211 * readelf.c (display_arm_attribute): Use unsigned int type for
212 tag, val and type variables.
213
40c7a7cb
KLC
2142014-09-16 Kuan-Lin Chen <kuanlinchentw@gmail.com>
215
216 * readelf.c (decode_NDS32_machine_flags): Display ABI2 FP+.
217
7361da2c
AB
2182014-09-15 Andrew Bennett <andrew.bennett@imgtec.com>
219 Matthew Fortune <matthew.fortune@imgtec.com>
220
221 * readelf.c (get_machine_flags): Add support for mips32r6 and
222 mips64r6.
223
74fffc39
JT
2242014-09-01 Jon TURNEY <jon.turney@dronecode.org.uk>
225
226 * objcopy.c (is_nondebug_keep_contents_section): Change
227 '.build-id' to '.buildid'.
228
4ee22035
RH
2292014-08-22 Richard Henderson <rth@redhat.com>
230
231 * dwarf.h (init_dwarf_regnames_aarch64): Declare.
232 * dwarf.c (dwarf_regnames_aarch64): New.
233 (init_dwarf_regnames_aarch64): New.
234 (init_dwarf_regnames): Call it.
235 * objdump.c (dump_dwarf): Likewise.
236
2974be62
AM
2372014-08-19 Alan Modra <amodra@gmail.com>
238
239 * configure: Regenerate.
240
b879806f
AM
2412014-08-14 Alan Modra <amodra@gmail.com>
242
243 * configure.ac: Move ACX_LARGEFILE after LT_INIT.
244 * config.in: Regenerate.
245 * configure: Regenerate.
246
351cdf24
MF
2472014-07-29 Matthew Fortune <matthew.fortune@imgtec.com>
248
249 * readelf.c (get_mips_segment_type): Display name for PT_MIPS_ABIFLAGS.
250 (get_mips_section_type_name): Display name for SHT_MIPS_ABIFLAGS.
251 (display_mips_gnu_attribute): Abstracted fp abi printing to...
252 (print_mips_fp_abi_value): New static function. Handle new FP ABIs.
253 (print_mips_ases, print_mips_isa_ext): New static functions.
254 (get_mips_reg_size): Likewise.
255 (process_mips_specific): Display abiflags data.
256
b794fc1d
AM
2572014-07-28 Alan Modra <amodra@gmail.com>
258
259 PR 13227
260 * nm.c (filter_symbols): Warn on __gnu_lto_slim.
261
3510a7b8
NC
2622014-07-07 Nick Clifton <nickc@redhat.com>
263
264 * readelf.c (get_symbol_type): Revert accidental change to
265 detection of thumb function symbols.
266
35eafcc7
AM
2672014-07-04 Alan Modra <amodra@gmail.com>
268
269 * configure.ac: Rename from configure.in.
270 * Makefile.in: Regenerate.
271 * config.in: Regenerate.
272 * doc/Makefile.in: Regenerate.
273
2e98a7bd
AM
2742014-07-04 Alan Modra <amodra@gmail.com>
275
276 * configure.in: Include bfd/version.m4.
277 (AC_INIT, AM_INIT_AUTOMAKE): Use modern form.
278 (BFD_VERSION): Delete.
279 * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Remove bfd/configure.in.
280 * configure: Regenerate.
281 * Makefile.in: Regenerate.
282 * doc/Makefile.in: Regenerate.
283
8d112f9e
TG
2842014-07-03 Tristan Gingold <gingold@adacore.com>
285
286 * doc/binutils.texi: Clarify addr2line output.
287
b6a1c03a
AM
2882014-07-01 Alan Modra <amodra@gmail.com>
289
290 * objdump.c (dump_bfd_header): Don't print HAS_LOAD_PAGE.
291
334ac421
EA
2922014-06-26 Erik Akermann <kurterikackermann@gmail.com>
293
294 * strings.c: Add -w/--include-all-whitespace option to include any
295 whitespace character in the displayed strings.
296 * NEWS: Mention the new feature.
297 * doc/binutils.texi (strings): Document the new command line
298 option.
299
df565f32
NC
3002014-06-26 Nick Clifton <nickc@redhat.com>
301
302 * readelf.c (process_note_sections): If there are no note sections
303 try processing note segments instead.
304
548a2357
NC
3052014-06-17 Anton Lavrentiwev <lavr@ncbi.nim.nih.gov>
306
307 PR binutils/16923
308 * rcparse.y (fixedverinfo): Prevent large version numbers from
309 corrupting other values.
310
d71ad7fc
RC
3112014-06-09 Romain Chastenet <romain.chastenet@free.fr>
312
313 PR binutils/16252
314 * dwarf.c (display_debug_frames): Remember the state of the
315 cfa_offset, cfa_reg, ra and cfa_exp field
316
270c9937
JB
3172014-06-05 Joel Brobecker <brobecker@adacore.com>
318
319 * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add dependency on
320 bfd's development.sh.
321 * Makefile.in, configure: Regenerate.
322
6e6e7cfc
JT
3232014-05-16 Jon Turney <jon.turney@dronecode.org.uk>
324
325 * objcopy.c (is_nondebug_keep_contents_section): New function.
326 (setup_section): Use it.
327
856ea05c
KP
3282014-05-16 Kaushik Phata <Kaushik.Phatak@kpit.com>
329
330 * readelf.c (get_machine_flags): Handle RL78 64-bit doubles flag.
331
6d00b590
AM
3322014-05-02 Alan Modra <amodra@gmail.com>
333
334 * emul_aix.c: Update bfd target vector naming.
335 * testsuite/binutils-all/objcopy.exp: Likewise.
336
b2bcb4bd
CS
3372014-04-24 Christian Svensson <blue@cmd.nu>
338
339 * MAINTAINERS: Add myself and Stefan as OR1K maintainers.
340
7d64c587
AB
3412014-04-23 Andrew Bennett <andrew.bennett@imgtec.com>
342
343 * doc/binutils.texi: Document the disassemble MIPS XPA instructions
344 command line option.
345
73589c9d
CS
3462014-04-22 Christian Svensson <blue@cmd.nu>
347
348 * readelf.c: Remove openrisc and or32 support. Add support for or1k.
349
c9ffd2ea
TG
3502014-04-18 Tristan Gingold <gingold@adacore.com>
351
352 * od-macho.c (dump_section_map): Adjust as load commands
353 are now chained.
354 (dump_load_command, dump_section_content): Likewise.
355
e89d3dee
TG
3562014-04-16 Tristan Gingold <gingold@adacore.com>
357
358 * od-macho.c (OPT_DYLD_INFO): New macro.
359 (options): Add entry for dyld_info.
360 (mach_o_help): Likewise.
361 (load_and_dump, dump_dyld_info_rebase, dump_dyld_info_bind)
362 (dump_dyld_info_export_1, dump_dyld_info_export): New functions.
363 (bfd_mach_o_dyld_rebase_type_name): New array.
364 (export_info_data): New struct.
365 (dump_dyld_info): Add verbose argument. Dump rebase, bind and
366 exports data.
367 (dump_load_command): Adjust dump_dyld_info call.
368 (mach_o_dump): Handle dyld_info.
369
47f8a107
TG
3702014-04-16 Tristan Gingold <gingold@adacore.com>
371
372 * od-macho.c (dump_header): Display sizeofcmds in decimal too.
373 (dump_segment): Reformat output.
374 (dump_dyld_info): Also display end offsets.
375 (dump_load_command): Add IDX argument, display commands size
376 and offset, reformat display.
377 (dump_load_commands): Adjust for added argument.
378
5063a421
AM
3792014-04-07 Alan Modra <amodra@gmail.com>
380
381 PR binutils/16811
382 * objcopy.c (copy_object): Error if no sections.
383
92b1b678
MT
3842014-04-03 Markus Trippelsdorf <markus@trippelsdorf.de>
385
386 PR binutils/14698
387 ar.c: Set plugin_target early if plugins are supported.
388 nm.c: Likewise.
389
965b60c9
TG
3902014-04-03 Tristan Gingold <gingold@adacore.com>
391
392 * od-macho.c (printf_uint64): New function.
393 (dump_load_command, dump_obj_compact_unwind): Use it.
394 (dump_exe_compact_unwind): Display personality functions.
395
7a79c514
TG
3962014-04-02 Tristan Gingold <gingold@adacore.com>
397
398 * od-macho.c (OPT_TWOLEVEL_HINTS): New macro.
399 (options): Add entry for twolevel_hints.
400 (dump_data_in_code): Fix error message.
401 (dump_twolevel_hints): New function.
402 (dump_load_command): Handle prebound dylib, prebind cksum
403 and twolevel hints.
404 (mach_o_dump): Handle twolevel hints.
405
c275b681
TG
4062014-04-01 Tristan Gingold <gingold@adacore.com>
407
408 * od-macho.c (OPT_DATA_IN_CODE): New macro.
409 (options): Add entry for data in code.
410 (mach_o_help): Ditto.
411 (data_in_code_kind_name): New array.
412 (dump_data_in_code): New function.
413 (dump_load_command): Handle data in code.
414 (mach_o_dump): Ditto.
415 (dump_header): Display a terminal newline.
416
10be66a4
TG
4172014-03-27 Tristan Gingold <gingold@adacore.com>
418
419 * od-macho.c (dump_load_command): Display value for
420 BFD_MACH_O_LC_DYLD_ENVIRONMENT. Handle BFD_MACH_O_LC_DATA_IN_CODE
421 and BFD_MACH_O_LC_DYLIB_CODE_SIGN_DRS.
422
3cc27770
TG
4232014-03-27 Tristan Gingold <gingold@adacore.com>
424
425 * od-macho.c (OPT_FUNCTION_STARTS): New macro.
426 (options): Add entry for function_starts.
427 (mach_o_help): Ditto.
428 (disp_segment_prot): New function.
429 (dump_section_map): Call disp_segment_prot.
430 (dump_function_starts): New function.
431 (dump_obj_compact_unwind): Fix ouput indentation.
432 (dump_exe_compact_unwind): Fix ouput indentation.
433 (mach_o_dump): Handle function_starts.
434
d8028530
TG
4352014-03-26 Tristan Gingold <gingold@adacore.com>
436
437 * od-macho.c (bfd_mach_o_cpu_name): Add BFD_MACH_O_CPU_TYPE_ARM64.
438
595330b7
TG
4392014-03-24 Tristan Gingold <gingold@adacore.com>
440
441 * objdump.c (load_specific_debug_section): Set address of section.
442
aa9fa1e2
TG
4432014-03-24 Tristan Gingold <gingold@adacore.com>
444
445 * od-macho.c (dump_unwind_encoding_x86): Set the factor.
446 (dump_exe_compact_unwind): Change the condition. Improve
447 indentation.
448
bcf83b2a
NC
4492014-03-20 Nick Clifton <nickc@redhat.com>
450
451 * readelf.c (process_version_sections): Fix off-by-one error in
452 previous delta.
453
c24cf8b6
NC
4542014-03-19 Nick Clifton <nickc@redhat.com>
455
456 PR binutils/16723
457 * readelf.c (process_version_sections): Prevent an infinite loop
458 when the vn_next field is zero but there are still entries to be
459 processed.
460
167e1c1f
TG
4612014-03-17 Tristan Gingold <gingold@adacore.com>
462
463 * od-macho.c (dump_section_header): Renames of dump_section.
464 (dump_segment): Adjust after renaming.
465 (OPT_COMPACT_UNWIND): Define.
466 (options): Add compact unwind.
467 (mach_o_help): Document compact_unwind.
468 (unwind_x86_64_regs, unwind_x86_regs): New arrays.
469 (dump_unwind_encoding_x86, dump_unwind_encoding)
470 (dump_obj_compact_unwind, dump_exe_compact_unwind)
471 (dump_section_content): New functions.
472 (mach_o_dump): Handle compact unwind.
473
fbe383b9
TG
4742014-03-17 Tristan Gingold <gingold@adacore.com>
475
476 * od-macho.c (dump_load_command): Handle lazy load dylib.
477
182a105a
AG
4782014-03-14 Anthony Green <green@moxielogic.com>
479
480 * objcopy.c (copy_object): Check fwrite return code.
481
5a026fc9
NC
4822014-03-14 Meador Inge <meadori@codesourcery.com>
483
9495b2e6
AM
484 * dwarf.c (strnlen): Move prototype ...
485 * sysdep.h (strnlen): ... to here.
5a026fc9 486
8a1373cc
NC
4872014-03-12 Nick Clifton <nickc@redhat.com>
488
489 PR binutils/16652
490 * doc/binutils.texi (ar cmdline): Move --plugin command line
491 option to after the command option.
492
c63043aa
DG
4932014-03-12 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
494
495 PR binutils/16567
496 * deflex.l: Add noinput and nounput options.
497
fa47fa92
AM
4982014-03-12 Alan Modra <amodra@gmail.com>
499
500 * Makefile.in: Regenerate.
501 * doc/Makefile.in: Regenerate.
502
e9847026
NC
5032014-03-06 Nick Clifton <nickc@redhat.com>
504
505 PR binutils/16664
506 * readelf.c (process_attributes): Add checks for corrupt
507 attribute section names.
508
4b95cf5c
AM
5092014-03-05 Alan Modra <amodra@gmail.com>
510
511 Update copyright years.
512
2c80b753
AM
5132014-03-03 Alan Modra <amodra@gmail.com>
514
515 * README: Add "Copyright Notices" paragraph.
516
503a6091
CC
5172014-02-11 Cary Coutant <ccoutant@google.com>
518
519 * binutils/dwarf.c (read_and_display_attr_value): Don't warn
520 for zero-length attribute value.
521
c1c69e83
AM
5222014-02-10 Alan Modra <amodra@gmail.com>
523
524 * po/binutils.pot: Regenerate.
525
d32e5c54
AP
5262014-02-06 Andrew Pinski <apinski@cavium.com>
527
528 * readelf.c (get_machine_flags): Handle E_MIPS_MACH_OCTEON3 case.
529
926c5385
CC
5302014-02-06 Cary Coutant <ccoutant@google.com>
531
532 PR binutils/16444
533 * readelf.c (print_gnu_note): Add support for NT_GNU_GOLD_VERSION.
534
221fd5d5
L
5352014-01-08 H.J. Lu <hongjiu.lu@intel.com>
536
537 * version.c (print_version): Update copyright year to 2014.
538
1651e569
TT
5392014-01-07 Tom Tromey <tromey@redhat.com>
540
541 * bucomm.c (fatal, non_fatal): Replace obsolete VA_* macros with
542 stdarg macros.
543 * dlltool.c (inform): Replace obsolete VA_* macros with stdarg
544 macros.
545 * dllwrap.c (inform, warn): Replace obsolete VA_* macros with
546 stdarg macros.
547
b51f1626
TT
5482014-01-07 Tom Tromey <tromey@redhat.com>
549
550 * coffgrok.h (coff_ofile): Don't use PARAMS.
551 * nlmheader.y (strerror): Don't use PARAMS.
552
5fb776a6 553For older changes see ChangeLog-2013
252b5132 554\f
5fb776a6 555Copyright (C) 2014 Free Software Foundation, Inc.
752937aa
NC
556
557Copying and distribution of this file, with or without modification,
558are permitted in any medium without royalty provided the copyright
559notice and this notice are preserved.
560
252b5132
RH
561Local Variables:
562mode: change-log
563left-margin: 8
564fill-column: 74
565version-control: never
566End:
This page took 0.631243 seconds and 4 git commands to generate.