#!/usr/bin/perl
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
    if $running_under_some_shell;
			# this emulates #! processing on NIH machines.
			# (remove #! line above if indigestible)

eval '$'.$1.'$2;' while $ARGV[0] =~ /^([A-Za-z_0-9]+=)(.*)/ && shift;
			# process any FOO=bar switches

$, = ' ';		# set output field separator
$\ = "\n";		# set output record separator

$FS = ',';
# create translation table
for ($i = 32; $i < 128; $i++) {
    $XT{sprintf('%02x', $i)} = sprintf('%c', $i);
}

# this is header, print it

line: while (<>) {
    chomp;	# strip record separator
    @Fld = split(/[,\n]/, $_, -1);
    if (/^C_ID/) {
	print $_;
	next line;
    }

    if (/^[0-9]/) {
	$C_ID = $Fld[(1)-1];
	$C_MESSAGE_PRIORITY = $Fld[(2)-1];
	$C_CREATED_DATE_TIME = $Fld[(3)-1];
	$C_WAS_PROCESSED = $Fld[(4)-1];
	$C_XML = $Fld[(5)-1];
	$C_XML =~ s/[^0-9a-f]//g;
	$X = '';
	for ($i = 1; $i < length($C_XML); $i += 2) {
	    $X = $X . $XT{substr($C_XML, ($i)-1, 2)};
	}

	printf "%s,%s,%s,%s,%s\n", $C_ID, $C_MESSAGE_PRIORITY,

	  $C_CREATED_DATE_TIME, $C_WAS_PROCESSED, $X;
    }
}
