BEGIN {
	write_header();
	last_section = "";
}

END {
	printf("\n");
}

{
	if ($1 != last_section)
	{
		last_offset = $2;
		printf("\n%63s", $0);
	}
	else
	{
		size = $2 - last_offset;	# size of previous symbol
		printf(" %8d\n", size);
		printf("%63s", $0);
	}
	last_offset = $2;
	last_section = $1;
}

function write_header()
{
	printf("%-12s", "Section");
	printf("%8s  ", "Offset");
	printf("%-18s", "Module");
	printf(" %-25s", "Symbol");
	printf(" %8s", "Size");
}