#!/usr/bin/perl -w
use strict;

sub tai64nlocal
{
    my $time = shift;
    my $secs = 0;
    my $nanosecs = 0;
    my @a = split //, $time;
    for (@a)
    {
	my $u = eval "0x$_";
	$secs <<= 4;
	$secs += $nanosecs >> 28;
	$nanosecs &= 0xfffffff;
	$nanosecs <<= 4;
	$nanosecs += $u;
    }
    $secs -= 10;
    [localtime($secs),$nanosecs];
}

while (<>)
{
    if ($_ =~ /^\@([0-9a-f]{24})\s+(.*)$/o)
    {
	my $t = tai64nlocal($1);
	printf "%4d-%02d-%02d %02d:%02d:%02d.%09d %s\n",
	1900+$t->[6], 1+$t->[4], $t->[3], $t->[2],
	$t->[1], $t->[0], $t->[9], $2;
    }
    else
    {
	print;
    }
}
