This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Ensure that documentation works under 'use strict'.
[perl5.git] / Porting / checkAUTHORS.pl
CommitLineData
5649b9c9
NC
1#!/usr/bin/perl -w
2use strict;
8a5e2fa6 3my ($committer, $patch, $author);
cdad3b53 4use utf8;
5649b9c9 5use Getopt::Long;
0be47eca 6use Unicode::Collate;
7582f0f6
JV
7use Text::Wrap;
8$Text::Wrap::columns = 80;
5649b9c9 9
946fbe37
DG
10my ($rank, $ta, $ack, $who, $tap) = (0) x 5;
11my ($author_file, $percentage, $cumulative, $reverse);
12my (%authors, %untraced, %patchers, %committers, %real_names);
13
14my $result = GetOptions (
15 # modes
c673b32a
MH
16 "who" => \$who,
17 "rank" => \$rank,
946fbe37 18 "thanks-applied" => \$ta,
c673b32a
MH
19 "missing" => \$ack ,
20 "tap" => \$tap,
21
946fbe37 22 # modifiers
c673b32a
MH
23 "authors=s" => \$author_file,
24 "percentage" => \$percentage, # show as %age
25 "cumulative" => \$cumulative,
26 "reverse" => \$reverse,
00229b97 27 );
5649b9c9 28
946fbe37 29if (!$result or ( $rank + $ta + $who + $ack + $tap != 1 ) or !@ARGV) {
7582f0f6
JV
30 usage();
31}
32
946fbe37 33$author_file ||= './AUTHORS';
c673b32a 34die "Can't locate '$author_file'. Specify it with '--authors <path>'."
946fbe37
DG
35 unless -f $author_file;
36
7582f0f6
JV
37my $map = generate_known_author_map();
38
946fbe37 39read_authors_files($author_file);
7582f0f6 40
7582f0f6
JV
41
42if ($rank) {
3877da06 43 parse_commits_from_stdin();
7582f0f6
JV
44 display_ordered(\%patchers);
45} elsif ($ta) {
3877da06 46 parse_commits_from_stdin();
7582f0f6 47 display_ordered(\%committers);
946fbe37 48} elsif ($tap) {
3877da06 49 parse_commits_from_stdin_authors();
7582f0f6 50 display_test_output(\%patchers, \%authors, \%real_names);
946fbe37 51} elsif ($ack) {
3877da06 52 parse_commits_from_stdin();
7582f0f6 53 display_missing_authors(\%patchers, \%authors, \%real_names);
64265e98 54} elsif ($who) {
3877da06 55 parse_commits_from_stdin();
946fbe37 56 list_authors(\%patchers, \%authors);
7582f0f6
JV
57}
58
7582f0f6
JV
59exit(0);
60
61sub usage {
62
5649b9c9 63 die <<"EOS";
946fbe37
DG
64Usage: $0 [modes] [modifiers] <git-log-output-file>
65
66Modes (use only one):
67 --who # show list of unique authors by full name
68 --rank # rank authors by patches
69 --thanks-applied # ranks committers of others' patches
70 --missing # display authors not in AUTHORS
71 --tap # show authors present/missing as TAP
72
73Modifiers:
74 --authors <authors-file> # path to authors file (default: ./AUTHORS)
75 --percentage # show rankings as percentages
76 --cumulative # show rankings cumulatively
77 --reverse # show rankings in reverse
78
79Generate git-log-output-file with git log --pretty=fuller rev1..rev2
47e01c32 80(or pipe by specifying '-' for stdin). For example:
64265e98 81 \$ git log --pretty=fuller v5.12.0..v5.12.1 > gitlog
946fbe37 82 \$ perl Porting/checkAUTHORS.pl --rank --percentage gitlog
5649b9c9
NC
83EOS
84}
85
64265e98 86sub list_authors {
946fbe37
DG
87 my ($patchers, $authors) = @_;
88 binmode(STDOUT, ":utf8");
0be47eca 89 print wrap '', '', join(', ', Unicode::Collate->new(level => 1)->sort(
946fbe37 90 map { $authors->{$_} }
0be47eca 91 keys %$patchers)) . ".\n";
64265e98 92}
7582f0f6
JV
93
94sub parse_commits_from_stdin {
95 my @lines = split( /^commit\s*/sm, join( '', <> ) );
96 for (@lines) {
97 next if m/^$/;
98 next if m/^(\S*?)^Merge:/ism; # skip merge commits
8a5e2fa6 99 if (m/^(.*?)^Author:\s*(.*?)^AuthorDate:\s*.*?^Commit:\s*(.*?)^(.*)$/gism) {
7582f0f6
JV
100
101 # new patch
8a5e2fa6 102 ( $patch, $author, $committer ) = ( $1, $2, $3 );
7582f0f6
JV
103 chomp($author);
104 unless ($author) { die $_ }
105 chomp($committer);
106 unless ($committer) { die $_ }
107 process( $committer, $patch, $author );
108 } else {
109 die "XXX $_ did not match";
110 }
e427132c 111 }
e427132c 112
e427132c
JV
113}
114
3877da06
DM
115# just grab authors. Quicker than parse_commits_from_stdin
116
117sub parse_commits_from_stdin_authors {
118 while (<>) {
119 next unless /^Author:\s*(.*)$/;
120 my $author = $1;
121 $author = _raw_address($author);
122 $patchers{$author}++;
123 }
124}
125
e427132c 126
7582f0f6
JV
127sub generate_known_author_map {
128 my %map;
e427132c 129
7582f0f6
JV
130 my $prev = "";
131 while (<DATA>) {
132 chomp;
133 s/\\100/\@/g;
134 $_ = lc;
135 if ( my ( $correct, $alias ) = /^\s*([^#\s]\S*)\s+(.*\S)/ ) {
136 $correct =~ s/^\\043/#/;
137 if ( $correct eq '+' ) { $correct = $prev }
138 else { $prev = $correct }
139 $map{$alias} = $correct;
140 }
141 }
8513229b 142
7582f0f6
JV
143 #
144 # Email addresses for we do not have names.
145 #
146 $map{$_} = "?"
147 for
148 "bah\100longitude.com",
149 "bbucklan\100jpl-devvax.jpl.nasa.gov",
150 "bilbo\100ua.fm",
151 "bob\100starlabs.net",
152 "cygwin\100cygwin.com",
153 "david\100dhaller.de", "erik\100cs.uni-jena.de", "info\100lingo.kiev.ua", # Lingo Translation agency
154 "jms\100mathras.comcast.net",
155 "premchai21\100yahoo.com",
156 "pxm\100nubz.org",
157 "raf\100tradingpost.com.au",
158 "smoketst\100hp46t243.cup.hp.com", "root\100chronos.fi.muni.cz", # no clue - jrv 20090803
159 "gomar\100md.media-web.de", # no clue - jrv 20090803
160 "data-drift\100so.uio.no", # no data. originally private message from 199701282014.VAA12645@selters.uio.no
161 "arbor\100al37al08.telecel.pt"
162 , # reported perlbug ticket 5196 - no actual code contribution. no real name - jrv 20091006
163 "oracle\100pcr8.pcr.com", # Reported perlbug ticket 1015 - no patch - Probably Ed Eddington ed@pcr.com
48f3d0c6 164 "snaury\100gmail.com", # Reported cpan ticket 35943, with patch for fix
7582f0f6
JV
165 ;
166
167 #
168 # Email addresses for people that don't have an email address in AUTHORS
169 # Presumably deliberately?
170 #
171
172 $map{$_} = '!' for
173
174 # Nick Ing-Simmons has passed away (2006-09-25).
175 "nick\100ing-simmons.net",
176 "nik\100tiuk.ti.com",
177 "nick.ing-simmons\100elixent.com",
178 "nick\100ni-s.u-net.com",
179 "nick.ing-simmons\100tiuk.ti.com",
180
181 # Iain Truskett has passed away (2003-12-29).
182 "perl\100dellah.anu.edu.au", "spoon\100dellah.org", "spoon\100cpan.org",
183
184 # Ton Hospel
185 "me-02\100ton.iguana.be", "perl-5.8.0\100ton.iguana.be", "perl5-porters\100ton.iguana.be",
186
187 # Beau Cox
188 "beau\100beaucox.com",
189
190 # Randy W. Sims
191 "ml-perl\100thepierianspring.org",
192
193 # perl internal addresses
194 "perl5-porters\100africa.nicoh.com",
195 "perlbug\100perl.org",,
196 "perl5-porters.nicoh.com",
197 "perlbug-followup\100perl.org",
198 "perlbug-comment\100perl.org",
199 "bug-module-corelist\100rt.cpan.org",
200 "bug-storable\100rt.cpan.org",
201 "bugs-perl5\100bugs6.perl.org",
202 "unknown",
203 "unknown\100unknown",
204 "unknown\100longtimeago",
205 "unknown\100perl.org",
206 "",
207 "(none)",
208 ;
209
210 return \%map;
211}
e427132c 212
7582f0f6
JV
213sub read_authors_files {
214 my @authors = (@_);
215 return unless (@authors);
946fbe37 216 my (%count, %raw);
7582f0f6 217 foreach my $filename (@authors) {
1ae6ead9 218 open FH, '<', $filename or die "Can't open $filename: $!";
60d42009 219 binmode FH, ':encoding(UTF-8)';
7582f0f6
JV
220 while (<FH>) {
221 next if /^\#/;
222 next if /^-- /;
946fbe37 223 if (/^([^<]+)<([^>]+)>/) {
7582f0f6 224 # Easy line.
946fbe37
DG
225 my ($name, $email) = ($1, $2);
226 $name =~ s/\s*\z//;
227 $raw{$email} = $name;
228 $count{$email}++;
daeedd11 229 } elsif (/^([- .'\w]+)[\t\n]/) {
7582f0f6
JV
230
231 # Name only
232 $untraced{$1}++;
233 } elsif ( length $_ ) {
234 chomp;
235 warn "Can't parse line '$_'";
236 } else {
237 next;
238 }
239 }
8513229b 240 }
7582f0f6 241 foreach ( keys %raw ) {
946fbe37
DG
242 print "E-mail $_ occurs $count{$_} times\n" if $count{$_} > 1;
243 my $lc = lc $_;
244 $authors{ $map->{$lc} || $lc } = $raw{$_};
7582f0f6 245 }
946fbe37 246 $authors{$_} = $_ for qw(? !);
8513229b
A
247}
248
7582f0f6
JV
249sub display_test_output {
250 my $patchers = shift;
251 my $authors = shift;
252 my $real_names = shift;
253 my $count = 0;
3877da06 254 printf "1..%d\n", scalar keys %$patchers;
7582f0f6 255 foreach ( sort keys %$patchers ) {
3877da06 256 $count++;
7582f0f6
JV
257 if ($authors->{$_}) {
258 print "ok $count - ".$real_names->{$_} ." $_\n";
259 } else {
260 print "not ok $count - Contributor not found in AUTHORS: $_ ".($real_names->{$_} || '???' )."\n";
7ce1b4c4 261 print STDERR ($real_names->{$_} || '???' )." <$_> not found in AUTHORS\n";
7582f0f6 262 }
8513229b 263
7582f0f6 264 }
5649b9c9
NC
265}
266
e427132c 267sub display_missing_authors {
7582f0f6
JV
268 my $patchers = shift;
269 my $authors = shift;
e427132c 270 my $real_names = shift;
7582f0f6
JV
271 my %missing;
272 foreach ( sort keys %$patchers ) {
273 next if $authors->{$_};
274
275 # Sort by number of patches, then name.
276 $missing{ $patchers{$_} }->{$_}++;
277 }
278 foreach my $patches ( sort { $b <=> $a } keys %missing ) {
279 print "\n\n=head1 $patches patch(es)\n\n";
280 foreach my $author ( sort keys %{ $missing{$patches} } ) {
281 my $xauthor = $author;
282 $xauthor =~ s/@/\\100/g; # xxx temp hack
283 print "" . ( $real_names->{$author} || $author ) . "\t\t\t<" . $xauthor . ">\n";
284 }
5649b9c9 285 }
5649b9c9
NC
286}
287
288sub display_ordered {
7582f0f6
JV
289 my $what = shift;
290 my @sorted;
291 my $total;
292
293 while ( my ( $name, $count ) = each %$what ) {
294 push @{ $sorted[$count] }, $name;
295 $total += $count;
296 }
297
298 my $i = @sorted;
299 return unless @sorted;
300 my $sum = 0;
301 foreach my $i ( $reverse ? 0 .. $#sorted : reverse 0 .. $#sorted ) {
302 next unless $sorted[$i];
303 my $prefix;
304 $sum += $i * @{ $sorted[$i] };
305
306 # Value to display is either this one, or the cumulative sum.
307 my $value = $cumulative ? $sum : $i;
308 if ($percentage) {
309 $prefix = sprintf "%6.2f:\t", 100 * $value / $total;
310 } else {
311 $prefix = "$value:\t";
312 }
313 print wrap ( $prefix, "\t", join( " ", sort @{ $sorted[$i] } ), "\n" );
15b8f96d 314 }
5649b9c9
NC
315}
316
317sub process {
7582f0f6
JV
318 my ( $committer, $patch, $author ) = @_;
319 return unless $author;
320 return unless $committer;
321
322 $author = _raw_address($author);
323 $patchers{$author}++;
324
325 $committer = _raw_address($committer);
326 if ( $committer ne $author ) {
327
328 # separate commit credit only if committing someone else's patch
329 $committers{$committer}++;
330 }
5649b9c9
NC
331}
332
00229b97
JV
333sub _raw_address {
334 my $addr = shift;
335 my $real_name;
350bd8f1 336 if ($addr =~ /(?:\\?")?\s*\(via RT\) <perlbug-followup\@perl\.org>$/p) {
08dc3bc8 337 my $name = ${^PREMATCH};
e529a387 338 $addr = 'perlbug-followup@perl.org';
08dc3bc8
A
339 #
340 # Try to find the author
341 #
ac664a5e
DR
342 if (exists $map->{$name}) {
343 $addr = $map->{$name};
344 $real_name = $authors{$addr};
345 }
346 else {
347 while (my ($email, $author_name) = each %authors) {
348 if ($name eq $author_name) {
349 $addr = $email;
350 $real_name = $name;
351 last;
352 }
08dc3bc8
A
353 }
354 }
355 }
356 elsif ( $addr =~ /<.*>/ ) {
7582f0f6
JV
357 $addr =~ s/^\s*(.*)\s*<\s*(.*?)\s*>.*$/$2/;
358 $real_name = $1;
00229b97 359 }
5a528087
CB
360 $addr =~ s/\[mailto://;
361 $addr =~ s/\]//;
00229b97 362 $addr = lc $addr;
e427132c 363 $addr = $map->{$addr} || $addr;
7582f0f6 364 $addr =~ s/\\100/@/g; # Sometimes, there are encoded @ signs in the git log.
5e8353a0 365
7582f0f6 366 if ($real_name) { $real_names{$addr} = $real_name }
00229b97
JV
367 return $addr;
368}
369
5649b9c9 370
8513229b
A
371__DATA__
372
373#
374# List of mappings. First entry the "correct" email address, as appears
375# in the AUTHORS file. Second is any "alias" mapped to it.
376#
a695a9ef 377# If the "correct" email address is a '+', the entry above it is reused;
8513229b
A
378# this for addresses with more than one alias.
379#
380# Note that all entries are in lowercase. Further, no '@' signs should
381# appear; use \100 instead.
382#
383#
384# Committers.
385#
386adi enache\100rdslink.ro
387alanbur alan.burlison\100sun.com
388+ alan.burlison\100uk.sun.com
00229b97
JV
389+ aburlison\100cix.compulink.co.uk
390ams ams\100toroid.org
391+ ams\100wiw.org
8513229b 392chip chip\100pobox.com
00229b97
JV
393+ chip\100perl.com
394+ salzench\100nielsenmedia.com
395+ chip\100atlantic.net
396+ chip\100rio.atlantic.net
397+ salzench\100dun.nielsen.com
3bf51dad 398+ chip\100ci005.sv2.upperbeyond.com
8513229b
A
399craigb craig.berry\100psinetcs.com
400+ craig.berry\100metamorgs.com
401+ craig.berry\100signaltreesolutions.com
402+ craigberry\100mac.com
a94e4597 403+ craig.a.berry\100gmail.com
e82692ac 404+ craig a. berry)
8513229b
A
405davem davem\100fdgroup.com
406+ davem\100iabyn.nospamdeletethisbit.com
a94e4597 407+ davem\100iabyn.com
8513229b
A
408+ davem\100fdgroup.co.uk
409+ davem\100fdisolutions.com
410+ davem\100iabyn.com
411demerphq demerphq\100gmail.com
412+ yves.orton\100de.mci.com
413+ yves.orton\100mciworldcom.de
745b54e4 414+ yves.orton\100booking.com
00229b97
JV
415+ demerphq\100dromedary.booking.com
416+ demerphq\100gemini.(none)
417+ demerphq\100camel.booking.com
418+ demerphq\100hotmail.com
8513229b 419doughera doughera\100lafayette.edu
00229b97
JV
420+ doughera\100lafcol.lafayette.edu
421+ doughera\100fractal.phys.lafayette.edu
422+ doughera.lafayette.edu
423+ doughera\100newton.phys.lafayette.edu
424
8513229b 425gbarr gbarr\100pobox.com
00229b97
JV
426+ bodg\100tiuk.ti.com
427+ gbarr\100ti.com
428+ graham.barr\100tiuk.ti.com
e82692ac 429+ gbarr\100monty.mutatus.co.uk
8513229b
A
430gisle gisle\100activestate.com
431+ gisle\100aas.no
00229b97
JV
432+ aas\100aas.no
433+ aas\100bergen.sn.no
8513229b
A
434gsar gsar\100activestate.com
435+ gsar\100cpan.org
00229b97 436+ gsar\100engin.umich.edu
8513229b
A
437hv hv\100crypt.compulink.co.uk
438+ hv\100crypt.org
00229b97 439+ hv\100iii.co.uk
8513229b
A
440jhi jhi\100iki.fi
441+ jhietaniemi\100gmail.com
442+ jhi\100kosh.hut.fi
00229b97 443+ jhi\100alpha.hut.fi
8513229b 444+ jhi\100cc.hut.fi
fda5b70a 445+ jhi\100hut.fi
8513229b 446+ jarkko.hietaniemi\100nokia.com
00229b97 447+ jarkko.hietaniemi\100cc.hut.fi
63d7924f 448+ jarkko.hietaniemi\100booking.com
00229b97
JV
449jesse jesse\100bestpractical.com
450+ jesse\100fsck.com
451+ jesse\100perl.org
8513229b
A
452merijn h.m.brand\100xs4all.nl
453+ h.m.brand\100hccnet.nl
454+ merijn\100l1.procura.nl
e82692ac 455+ merijn\100a5.(none)
8513229b 456mhx mhx-perl\100gmx.net
e82692ac 457+ mhx\100r2d2.(none)
93456aa7
JV
458mst mst\100shadowcat.co.uk
459+ matthewt\100hercule.scsys.co.uk
8513229b
A
460nicholas nick\100unfortu.net
461+ nick\100ccl4.org
462+ nick\100talking.bollo.cx
463+ nick\100plum.flirble.org
464+ nick\100babyhippo.co.uk
465+ nick\100bagpuss.unfortu.net
e82692ac 466+ nick\100babyhippo.com
93456aa7 467+ nicholas\100dromedary.ams6.corp.booking.com
e82692ac 468+ Nicholas Clark (sans From field in mail header)
8513229b
A
469pudge pudge\100pobox.com
470rgs rgarciasuarez\100free.fr
471+ rgarciasuarez\100mandrakesoft.com
472+ rgarciasuarez\100mandriva.com
473+ rgarciasuarez\100gmail.com
474+ raphel.garcia-suarez\100hexaflux.com
12feb466 475+ rgs@consttype.org
8513229b
A
476sky sky\100nanisky.com
477+ artur\100contiller.se
478+ arthur\100contiller.se
86e2f329
S
479smueller 7k8lrvf02\100sneakemail.com
480+ kjx9zthh3001\100sneakemail.com
481+ dtr8sin02\100sneakemail.com
482+ rt8363b02\100sneakemail.com
483+ o6hhmk002\100sneakemail.com
484+ smueller\100cpan.org
485+ l2ot9pa02\100sneakemail.com
486+ wyp3rlx02\100sneakemail.com
487+ 0mgwtfbbq\100sneakemail.com
488+ xyey9001\100sneakemail.com
03c4920e
SH
489steveh steve.m.hay\100googlemail.com
490+ stevehay\100planit.com
b692cd7a 491+ steve.hay\100uk.radan.com
8513229b
A
492stevep steve\100fisharerojo.org
493+ steve.peters\100gmail.com
e82692ac 494+ root\100dixie.cscaper.com
00229b97
JV
495timb Tim.Bunce\100pobox.com
496+ tim.bunce\100ig.co.uk
87ff2bbe
TC
497tonyc tony\100develop-help.com
498+ tony\100openbsd32.tony.develop-help.com
a2d496af 499+ tony\100saturn.(none)
8513229b
A
500
501#
502# Mere mortals.
503#
00229b97 504\043####\100juerd.nl juerd\100cpan.org
212682ea 505+ juerd\100c3.convolution.nl
00229b97 506+ juerd\100convolution.nl
00229b97 507a.r.ferreira\100gmail.com aferreira\100shopzilla.com
8513229b 508abe\100ztreet.demon.nl abeltje\100cpan.org
00229b97 509abela\100hsc.fr abela\100geneanet.org
8513229b
A
510abigail\100abigail.be abigail\100foad.org
511+ abigail\100abigail.nl
00229b97 512+ abigail\100fnx.com
e82692ac 513aburt\100isis.cs.du.edu isis!aburt
00229b97 514ach\100mpe.mpg.de ach\100rosat.mpe-garching.mpg.de
e82692ac 515adavies\100ptc.com alex.davies\100talktalk.net
8513229b 516ajohnson\100nvidia.com ajohnson\100wischip.com
e82692ac 517+ anders\100broadcom.com
8513229b 518alexm\100netli.com alexm\100w-m.ru
a94e4597 519alex-p5p\100earth.li alex\100rcon.rog
00229b97 520alexmv\100mit.edu alex\100chmrr.net
8513229b 521alian\100cpan.org alian\100alianwebserver.com
00229b97
JV
522allen\100grumman.com allen\100gateway.grumman.com
523allen\100huarp.harvard.edu nort\100bottesini.harvard.edu
e82692ac 524+ nort\100qnx.com
8513229b 525allens\100cpan.org easmith\100beatrice.rutgers.edu
e82692ac 526+ root\100dogberry.rutgers.edu
00229b97
JV
527andreas.koenig\100anima.de andreas.koenig.gmwojprw\100franz.ak.mind.de
528+ andreas.koenig.7os6vvqr\100franz.ak.mind.de
8513229b 529+ a.koenig\100mind.de
00229b97
JV
530+ k\100anna.in-berlin.de
531+ andk\100cpan.org
532+ koenig\100anna.mind.de
533+ k\100anna.mind.de
e82692ac
MB
534+ root\100ak-71.mind.de
535+ root\100ak-75.mind.de
536+ k\100sissy.in-berlin.de
537+ a.koenig\100kulturbox.de
538+ k\100sissy.in-berlin.de
539+ root\100dubravka.in-berlin.de
8513229b
A
540anno4000\100lublin.zrz.tu-berlin.de anno4000\100mailbox.tu-berlin.de
541+ siegel\100zrz.tu-berlin.de
25b68122 542apocal@cpan.org perl\1000ne.us
e82692ac
MB
543arnold\100gnu.ai.mit.edu arnold\100emoryu2.arpa
544+ gatech!skeeve!arnold
7dbe2044 545arodland\100cpan.org andrew\100hbslabs.com
e82692ac 546arussell\100cs.uml.edu adam\100adam-pc.(none)
8513229b
A
547ash\100cpan.org ash_cpan\100firemirror.com
548avarab\100gmail.com avar\100cpan.org
549
00229b97
JV
550bailey\100newman.upenn.edu bailey\100hmivax.humgen.upenn.edu
551+ bailey\100genetics.upenn.edu
e82692ac 552+ bailey.charles\100gmail.com
8513229b 553bah\100ecnvantage.com bholzman\100longitude.com
e82692ac
MB
554barries\100slaysys.com root\100jester.slaysys.com
555bkedryna\100home.com bart\100cg681574-a.adubn1.nj.home.com
00229b97 556bcarter\100gumdrop.flyinganvil.org q.eibcartereio.=~m-b.{6}-cgimosx\100gumdrop.flyinganvil.org
8513229b 557ben_tilly\100operamail.com btilly\100gmail.com
e82692ac
MB
558+ ben_tilly\100hotmail.com
559ben\100morrow.me.uk mauzo\100csv.warwick.ac.uk
560+ mauzo\100.(none)
561bepi\100perl.it enrico.sorcinelli\100gmail.com
562bert\100alum.mit.edu bert\100genscan.com
93456aa7 563bigbang7\100gmail.com ddascalescu+github\100gmail.com
f8a89dce 564blgl\100stacken.kth.se blgl\100hagernas.com
6fd0ab63 565+ 2bfjdsla52kztwejndzdstsxl9athp\100gmail.com
d203773f 566brian.d.foy\100gmail.com bdfoy\100cpan.org
e82692ac 567BQW10602\100nifty.com sadahiro\100cpan.org
ac664a5e 568bulk88\100hotmail.com bulk88
8513229b 569
4bba85d0 570chad.granum\100dreamhost.com exodist7\100gmail.com
4d88742b 571choroba\100cpan.org choroba\100weed.(none)
8513229b 572chromatic\100wgz.org chromatic\100rmci.net
201da6ff 573ckuskie\100cadence.com colink\100perldreamer.com
040d2336 574claes\100surfar.nu claes\100versed.se
e82692ac 575clintp\100geeksalad.org cpierce1\100ford.com
8513229b 576clkao\100clkao.org clkao\100bestpractical.com
00229b97 577corion\100corion.net corion\100cpan.org
8513229b
A
578cp\100onsitetech.com publiustemp-p5p\100yahoo.com
579+ publiustemp-p5p3\100yahoo.com
580cpan\100audreyt.org autrijus\100egb.elixus.org
581+ autrijus\100geb.elixus.org
582+ autrijus\100gmail.com
583+ autrijus\100ossf.iis.sinica.edu.tw
584+ autrijus\100autrijus.org
585+ audreyt\100audreyt.org
e82692ac 586cpan\100ton.iguana.be me-01\100ton.iguana.be
d203773f 587crt\100kiski.net perl\100ctweten.amsite.com
8513229b 588
e82692ac 589dairiki\100dairiki.org dairiki at dairiki.org
fda5b70a 590dagolden\100cpan.org xdaveg\100gmail.com
6fb5c52d 591+ xdg\100xdg.me
895db057 592damian\100conway.org damian\100cs.monash.edu.au
00229b97
JV
593dan\100sidhe.org sugalsd\100lbcc.cc.or.us
594+ sugalskd\100osshe.edu
e82692ac 595daniel\100bitpusher.com daniel\100biz.bitpusher.com
83cad695 596dave\100mag-sol.com dave\100dave.org.uk
8513229b 597david.dyck\100fluke.com dcd\100tc.fluke.com
9d1ee727
KW
598david\100justatheory.com david\100wheeler.net
599+ david\100kineticode.com
600+ david\100wheeler.com
e82692ac 601+ david\100wheeler.net
c2e08204 602whatever\100davidnicol.com davidnicol\100gmail.com
3bf51dad 603dennis\100booking.com dennis\100camel.ams6.corp.booking.com
6439ee77 604+ dennis.kaarsemaker\100booking.com
a4d824de 605+ dennis\100kaarsemaker.net
d203773f 606dev-perl\100pimb.org knew-p5p\100pimb.org
5a528087 607+ lists-p5p\100pimb.org
e82692ac 608djberg86\100attbi.com djberg96\100attbi.com
09c3cef4 609dk\100tetsuo.karasik.eu.org dmitry\100karasik.eu.org
8513229b 610domo\100computer.org shouldbedomo\100mac.com
00229b97 611+ domo\100slipper.ip.lu
e82692ac 612+ domo\100tcp.ip.lu
00229b97
JV
613dougm\100covalent.net dougm\100opengroup.org
614+ dougm\100osf.org
e82692ac
MB
615dougw\100cpan.org doug_wilson\100intuit.com
616dwegscheid\100qtm.net wegscd\100whirlpool.com
617edwardp\100excitehome.net epeschko\100den-mdev1
618+ epeschko\100elmer.tci.com
619+ esp5\100pge.com
00229b97 620egf7\100columbia.edu efifer\100sanwaint.com
e82692ac 621eggert\100twinsun.com eggert\100sea.sm.unisys.com
2330d9b7 622etj\100cpan.org mohawk2\100users.noreply.github.com
8513229b
A
623
624fugazi\100zyx.net larrysh\100cpan.org
e82692ac 625+ lshatzer\100islanddata.com
8513229b 626
e82692ac 627gbacon\100itsc.uah.edu gbacon\100adtrn-srv4.adtran.com
d203773f 628gerberb\100zenez.com root\100devsys0.zenez.com
e82692ac
MB
629gfuji\100cpan.org g.psy.va\100gmail.com
630gerard\100ggoossen.net gerard\100tty.nl
fda5b70a
JV
631gibreel\100pobox.com stephen.zander\100interlock.mckesson.com
632+ srz\100loopback
b9ff0c49 633gideon\100cpan.org gidisrael\100gmail.com
00229b97 634gnat\100frii.com gnat\100prometheus.frii.com
8513229b
A
635gp\100familiehaase.de gerrit\100familiehaase.de
636grazz\100pobox.com grazz\100nyc.rr.com
d203773f 637gward\100ase.com greg\100bic.mni.mcgill.ca
a22ececd
AHA
638haggai\100cpan.org alanhaggai\100alanhaggai.org
639+ alanhaggai\100gmail.com
00229b97
JV
640hansmu\100xs4all.nl hansm\100icgroup.nl
641+ hansm\100icgned.nl
642+ hans\100icgned.nl
b5e2dde1 643+ hans\100icgroup.nl
00229b97 644+ hansm\100euronet.nl
e82692ac 645+ hansm\100euro.net
8513229b 646hio\100ymir.co.jp hio\100hio.jp
e82692ac 647hops\100sco.com hops\100scoot.pdev.sco.com
8513229b 648
74314d7a 649ian.goodacre\100xtra.co.nz ian\100debian.lan
e82692ac 650ingo_weinhold\100gmx.de bonefish\100cs.tu-berlin.de
c07671d7 651
e82692ac 652james\100mastros.biz theorb\100desert-island.me.uk
5ab3d1b3
JD
653jan\100jandubois.com jand\100activestate.com
654+ jan.dubois\100ibm.net
8513229b
A
655japhy\100pobox.com japhy\100pobox.org
656+ japhy\100perlmonk.org
657+ japhy\100cpan.org
e82692ac 658+ jeffp\100crusoe.net
8513229b 659jari.aalto\100poboxes.com jari.aalto\100cante.net
e82692ac
MB
660jarausch\100numa1.igpm.rwth-aachen.de helmutjarausch\100unknown
661jasons\100cs.unm.edu jasons\100sandy-home.arc.unm.edu
662jbuehler\100hekimian.com jhpb\100hekimian.com
663jcromie\100100divsol.com jcromie\100cpan.org
8513229b 664+ jim.cromie\100gmail.com
1ae6ead9 665jd\100cpanel.net lightsey\100debian.org
8513229b
A
666jdhedden\100cpan.org jerry\100hedden.us
667+ jdhedden\1001979.usna.com
668+ jdhedden\100gmail.com
669+ jdhedden\100yahoo.com
e82692ac 670+ jhedden\100pn100-02-2-356p.corp.bloomberg.com
9846bace 671+ jdhedden\100solydxk
e82692ac 672jeremy\100zawodny.com jzawodn\100wcnet.org
d203773f 673jesse\100sig.bsh.com jesse\100ginger
8513229b 674jfriedl\100yahoo.com jfriedl\100yahoo-inc.com
e82692ac 675jfs\100fluent.com jfs\100jfs.fluent.com
fd548ba4
FC
676jhannah\100mutationgrid.com jay\100jays.net
677+ jhannah\100omnihotels.com
678jidanni\100jidanni.org jidanni\100hoffa.dreamhost.com
8513229b 679jjore\100cpan.org twists\100gmail.com
dfe12d64
JK
680jkeenan\100cpan.org jkeen\100verizon.net
681+ jkeenan\100dromedary-001.ams6.corp.booking.com
fda5b70a
JV
682jns\100integration-house.com jns\100gellyfish.com
683+ gellyfish\100gellyfish.com
e82692ac
MB
684john\100atlantech.com john\100titanic.atlantech.com
685john\100johnwright.org john.wright\100hp.com
686joseph\100cscaper.com joseph\1005sigma.com
687joshua\100rodd.us jrodd\100pbs.org
688jtobey\100john-edwin-tobey.org jtobey\100user1.channel1.com
9feb1316 689jpeacock\100messagesystems.com john.peacock\100havurah-software.org
fda5b70a 690+ jpeacock\100havurah-software.org
e82692ac 691+ jpeacock\100dsl092-147-156.wdc1.dsl.speakeasy.net
feaafc86 692+ jpeacock\100jpeacock-hp.doesntexist.org
05ddb96b 693+ jpeacock\100cpan.org
9feb1316 694+ jpeacock\100rowman.com
277c21af 695jpl.jpl\100gmail.com jpl\100research.att.com
d203773f 696jql\100accessone.com jql\100jql.accessone.com
e82692ac 697jsm28\100hermes.cam.ac.uk jsm28\100cam.ac.uk
8513229b
A
698
699kane\100dwim.org kane\100xs4all.net
700+ kane\100cpan.org
701+ kane\100xs4all.nl
702+ jos\100dwim.org
703+ jib\100ripe.net
60d42009 704keith.s.thompson\100gmail.com kst\100mib.org
00229b97 705ken\100mathforum.org kenahoo\100gmail.com
e82692ac 706+ ken.williams\100thomsonreuters.com
31a15f36 707kentfredric\100gmail.com kentnl\100cpan.org
63781094
RS
708kmx\100volny.cz kmx\100volny.cz
709+ kmx\100cpan.org
8513229b 710kroepke\100dolphin-services.de kay\100dolphin-services.de
78d25b6c
JV
711kst\100mib.org kst\100cts.com
712+ kst\100SDSC.EDU
8513229b 713kstar\100wolfetech.com kstar\100cpan.org
00229b97 714+ kurt_starsinic\100ml.com
e82692ac
MB
715+ kstar\100www.chapin.edu
716+ kstar\100chapin.edu
00229b97
JV
717larry\100wall.org lwall\100jpl-devvax.jpl.nasa.gov
718+ lwall\100netlabs.com
719+ larry\100netlabs.com
720+ lwall\100sems.com
721+ lwall\100scalpel.netlabs.com
e82692ac
MB
722laszlo.molnar\100eth.ericsson.se molnarl\100cdata.tvnet.hu
723+ ml1050\100freemail.hu
946fbe37 724lewart\100uiuc.edu lewart\100vadds.cvm.uiuc.edu
00229b97 725+ d-lewart\100uiuc.edu
84ad9c6c 726lkundrak\100v3.sk lubo.rintel\100gooddata.com
e82692ac
MB
727lstein\100cshl.org lstein\100formaggio.cshl.org
728+ lstein\100genome.wi.mit.edu
84ad9c6c 729l.mai\100web.de plokinom\100gmail.com
e82692ac
MB
730lupe\100lupe-christoph.de lupe\100alanya.m.isar.de
731lutherh\100stratcom.com lutherh\100infinet.com
732mab\100wdl.loral.com markb\100rdcf.sm.unisys.com
00229b97 733marcel\100codewerk.com gr\100univie.ac.at
06fdbb00 734+ hanekomu\100gmail.com
9d0e037a 735marcgreen\100cpan.org marcgreen\100wpi.edu
d4cb306b 736markleightonfisher\100gmail.com fisherm\100tce.com
a8a7611f 737+ mark-fisher\100mindspring.com
e82692ac
MB
738mark.p.lutz\100boeing.com tecmpl1\100triton.ca.boeing.com
739marnix\100gmail.com pttesac!marnix!vanam
88048be8 740marty+p5p\100kasei.com marty\100martian.org
8513229b
A
741mats\100sm6sxl.net mats\100sm5sxl.net
742mbarbon\100dsi.unive.it mattia.barbon\100libero.it
a73beef9 743+ mattia\100barbon.org
8513229b 744mcmahon\100ibiblio.org mcmahon\100metalab.unc.edu
e82692ac
MB
745me\100davidglasser.net glasser\100tang-eleven-seventy-nine.mit.edu
746merijnb\100iloquent.nl merijnb\100ms.com
747+ merijnb\100iloquent.com
d203773f 748merlyn\100stonehenge.com merlyn\100gadget.cscaper.com
d5564dc4 749mestre.smash\100gmail.com smash\100cpan.org
8513229b 750mgjv\100comdyn.com.au mgjv\100tradingpost.com.au
e82692ac 751mlh\100swl.msd.ray.com webtools\100uewrhp03.msd.ray.com
8513229b
A
752michael.schroeder\100informatik.uni-erlangen.de mls\100suse.de
753mike\100stok.co.uk mike\100exegenix.com
e7613a67 754miyagawa\100bulknews.net miyagawa\100edge.co.jp
8513229b 755mjtg\100cam.ac.uk mjtg\100cus.cam.ac.uk
e82692ac 756mikedlr\100tardis.ed.ac.uk mikedlr\100it.com.pl
fda5b70a 757moritz\100casella.verplant.org moritz\100faui2k3.org
e82692ac 758+ moritz lenz
fda5b70a 759
e82692ac 760neale\100VMA.TABNSW.COM.AU neale\100pucc.princeton.edu
d203773f 761neeracher\100mac.com neeri\100iis.ee.ethz.ch
e82692ac 762neil\100bowers.com neilb\100cre.canon.co.uk
20b15ed1 763
8513229b
A
764nospam-abuse\100bloodgate.com tels\100bloodgate.com
765+ perl_dummy\100bloodgate.com
00229b97 766
e82692ac
MB
767ian.phillipps\100iname.com ian_phillipps\100yahoo.co.uk
768+ ian\100dial.pipex.com
00229b97 769ignasi.roca\100fujitsu-siemens.com ignasi.roca\100fujitsu.siemens.es
e82692ac 770ikegami\100adaelis.com eric\100fmdev10.(none)
d203773f 771ilmari\100ilmari.org ilmari\100vesla.ilmari.org
e82692ac 772illpide\100telecel.pt arbor\100al37al08.telecel.pt
20b15ed1
JV
773# see http://www.nntp.perl.org/group/perl.perl5.porters/2001/01/msg28925.html
774#
a94e4597
S
775ilya\100math.berkeley.edu ilya\100math.ohio-state.edu
776+ nospam-abuse\100ilyaz.org
e82692ac 777+ [9]ilya\100math.ohio-state.edu
d203773f 778ilya\100martynov.org ilya\100juil.nonet
8513229b 779
31febfb6
FC
780joshua.pritikin\100db.com joshua\100paloalto.com
781
9fcef2a0
FC
782litt\100acm.org tlhackque\100yahoo.com
783
3b8d3bda
FC
784meyering@asic.sc.ti.com jim\100meyering.net
785
00229b97 786okamoto\100corp.hp.com okamoto\100hpcc123.corp.hp.com
e82692ac 787orwant\100oreilly.com orwant\100media.mit.edu
00229b97 788
8513229b
A
789p5-authors\100crystalflame.net perl\100crystalflame.net
790+ rs\100crystalflame.net
00229b97
JV
791+ coral\100eekeek.org
792+ coral\100moonlight.crystalflame.net
793+ rs\100oregonnet.com
93456aa7 794+ rs\100topsy.com
8513229b 795paul.green\100stratus.com paul_greenvos\100vos.stratus.com
e82692ac 796+ pgreen\100seussnt.stratus.com
8513229b
A
797paul.marquess\100btinternet.com paul_marquess\100yahoo.co.uk
798+ paul.marquess\100ntlworld.com
799+ paul.marquess\100openwave.com
00229b97
JV
800+ pmarquess\100bfsec.bt.co.uk
801+ pmqs\100cpan.org
e82692ac
MB
802+ paul\100paul-desktop.(none)
803Pavel.Zakouril\100mff.cuni.cz root\100egg.karlov.mff.cuni.cz
8513229b 804pcg\100goof.com schmorp\100schmorp.de
00229b97 805perl\100cadop.com cdp\100hpescdp.fc.hp.com
e82692ac 806perl\100greerga.m-l.org greerga\100m-l.org
00229b97
JV
807perl\100profvince.com vince\100profvince.com
808perl-rt\100wizbit.be p5p\100perl.wizbit.be
8513229b 809# Maybe we should special case this to get real names out?
946fbe37 810Peter.Dintelmann\100Dresdner-Bank.com peter.dintelmann\100dresdner-bank.com
fda5b70a 811# NOTE: There is an intentional trailing space in the line above
00229b97 812pfeifer\100wait.de pfeifer\100charly.informatik.uni-dortmund.de
e82692ac 813+ upf\100de.uu.net
36a4e1d1
NC
814ribasushi@cpan.org rabbit\100rabbit.us
815+ rabbit+bugs\100rabbit.us
d6abd0a3 816perl\100aaroncrane.co.uk arc\100cpan.org
8513229b
A
817phil\100perkpartners.com phil\100finchcomputer.com
818pimlott\100idiomtech.com andrew\100pimlott.net
e82692ac
MB
819+ pimlott\100abel.math.harvard.edu
820pixel\100mandriva.com pixel\100mandrakesoft.com
8513229b
A
821pne\100cpan.org philip.newton\100gmx.net
822+ philip.newton\100datenrevision.de
823+ pnewton\100gmx.de
00229b97 824pprymmer\100factset.com pvhp\100forte.com
3eab96ca
KW
825khw\100cpan.org khw\100karl.(none)
826+ public\100khwilliamson.com
e82692ac 827+ khw\100khw-desktop.(none)
8513229b
A
828
829radu\100netsoft.ro rgreab\100fx.ro
549122ae 830rajagopa\100pauline.schrodinger.com rajagopa\100schrodinger.com
00229b97 831raphael.manfredi\100pobox.com raphael_manfredi\100grenoble.hp.com
117a8c22
RB
832module@renee-baecker.de renee.baecker\100smart-websolutions.de
833+ reneeb\100reneeb-desktop.(none)
a7f7a167 834+ github@renee-baecker.de
2bacf451 835+ otrs\100ubuntu.(none)
524cd813 836+ perl\100renee-baecker.de
7bb7565a 837+ reb\100perl-services.de
f157ad77 838richard.foley\100rfi.net richard.foley\100t-online.de
8513229b 839+ richard.foley\100ubs.com
f157ad77 840+ richard.foley\100ubsw.com
8513229b
A
841rick\100consumercontact.com rick\100bort.ca
842+ rick.delaney\100rogers.com
a94e4597 843+ rick\100bort.ca
e82692ac 844+ rick.delaney\100home.com
4bc69901 845rjbs\100cpan.org rjbs-perl-p5p\100lists.manxome.org
e82692ac 846+ perl.p5p\100rjbs.manxome.org
8513229b
A
847rjk\100linguist.dartmouth.edu rjk\100linguist.thayer.dartmouth.edu
848+ rjk-perl-p5p\100tamias.net
ec36440e 849+ rjk\100tamias.net
e82692ac 850rjray\100redhat.com rjray\100uswest.com
8513229b 851rmgiroux\100acm.org rmgiroux\100hotmail.com
e82692ac 852+ mgiroux\100bear.com
a94e4597
S
853rmbarker\100cpan.org rmb1\100cise.npl.co.uk
854+ robin.barker\100npl.co.uk
00229b97 855+ rmb\100cise.npl.co.uk
5b2081f5 856+ robin\100spade-ubuntu.(none)
b2061475 857+ r.m.barker\100btinternet.com
34c029c7 858+ rmbarker.cpan\100btinternet.com
00229b97 859robertmay\100cpan.org rob\100themayfamily.me.uk
d203773f 860roberto\100keltia.freenix.fr roberto\100eurocontrol.fr
00229b97
JV
861robin\100cpan.org robin\100kitsite.com
862roderick\100argon.org roderick\100gate.net
e82692ac 863+ roderick\100ibcinc.com
3560ee4d 864argrath\100ub32.org root\100ub32.org
8513229b 865rootbeer\100teleport.com rootbeer\100redcat.com
e82692ac 866+ tomphoenix\100unknown
3bf51dad 867rurban\100x-ray.at rurban\100cpan.org
080d4cd3 868+ rurban\100cpanel.net
2515a12c 869rvtol+news\100isolution.nl rvtol\100isolution.nl
c0e9ef6a 870sartak\100bestpractical.com sartak\100gmail.com
a3d8b840 871+ code\100sartak.org
ed429a63 872sadinoff\100olf.com danny-cpan\100sadinoff.com
8513229b
A
873schubiger\100cpan.org steven\100accognoscere.org
874+ sts\100accognoscere.org
00229b97 875+ schubiger\100gmail.com
f273d1e7 876+ stsc\100refcnt.org
8513229b 877schwern\100pobox.com schwern\100gmail.com
8ed05479
MS
878+ schwern\100athens.arena-i.com
879+ schwern\100blackrider.aocn.com
880+ schwern\100ool-18b93024.dyn.optonline.net
e82692ac
MB
881scotth\100sgi.com author scotth\100sgi.com 842220273 +0000
882+ schotth\100sgi.com
883schwab\100suse.de schwab\100issan.informatik.uni-dortmund.de
884+ schwab\100ls5.informatik.uni-dortmund.de
8513229b
A
885sebastien\100aperghis.net maddingue\100free.fr
886+ saper\100cpan.org
1048cfac 887shigeya\100wide.ad.jp shigeya\100foretune.co.jp
917cc27d
SF
888shlomif\100cpan.org shlomif\100vipe.technion.ac.il
889+ shlomif\100iglu.org.il
ff47f462 890+ shlomif+processed-by-perl\100gmail.com
be235cc1 891+ shlomif\100shlomifish.org
8513229b
A
892simon\100simon-cozens.org simon\100pembro4.pmb.ox.ac.uk
893+ simon\100brecon.co.uk
894+ simon\100othersideofthe.earth.li
895+ simon\100cozens.net
896+ simon\100netthink.co.uk
cd799e5a
SL
897lannings\100who.int lannings\100gmail.com
898+ slanning\100cpan.org
8513229b 899slaven\100rezic.de slaven.rezic\100berlin.de
a94e4597 900+ srezic\100iconmobile.com
00229b97 901+ srezic\100cpan.org
e82692ac
MB
902+ eserte\100cs.tu-berlin.de
903+ eserte\100vran.herceg.de
8513229b
A
904smcc\100mit.edu smcc\100ocf.berkeley.edu
905+ smcc\100csua.berkeley.edu
00229b97 906+ alias\100mcs.com
fda5b70a 907+ smccam\100uclink4.berkeley.edu
8513229b
A
908spider\100orb.nashua.nh.us spider\100web.zk3.dec.com
909+ spider\100leggy.zk3.dec.com
910+ spider-perl\100orb.nashua.nh.us
911+ spider\100peano.zk3.dec.com
fda5b70a
JV
912+ spider.boardman\100orb.nashua.nh.us>
913+ spidb\100cpan.org
e82692ac
MB
914+ spider.boardman\100orb.nashua.nh.us
915+ root\100peano.zk3.dec.com
1ea085fc 916spiros\100lokku.com s.denaxas\100gmail.com
00229b97 917spp\100ds.net spp\100psa.pencom.com
fda5b70a
JV
918+ spp\100psasolar.colltech.com
919+ spp\100spotter.yi.org
8513229b
A
920stef\100mongueurs.net stef\100payrard.net
921+ s.payrard\100wanadoo.fr
e82692ac
MB
922+ properler\100freesurf.fr
923+ stef\100francenet.fr
cb991fd8 924stevan\100cpan.org stevan.little\100gmail.com
c6a7f572 925+ stevan.little\100iinteractive.com
e82692ac 926sthoenna\100efn.org ysth\100raven.shiftboard.com
8b2d7fd7 927sisyphus1\100optusnet.com.au sisyphus\100cpan.org
8513229b
A
928
929tassilo.parseval\100post.rwth-aachen.de tassilo.von.parseval\100rwth-aachen.de
e82692ac
MB
930tchrist\100perl.com tchrist\100mox.perl.com
931+ tchrist\100jhereg.perl.com
932thomas.dorner\100start.de tdorner\100amadeus.net
933tjenness\100cpan.org t.jenness\100jach.hawaii.edu
934+ timj\100jach.hawaii.edu
935tobez\100tobez.org tobez\100plab.ku.dk
2fe8fc10 936toddr\100cpan.org toddr\100cpanel.net
e82692ac
MB
937tom\100compton.nu thh\100cyberscience.com
938tom.horsley\100mail.ccur.com tom.horsley\100ccur.com
939+ tom\100amber.ssd.hcsc.com
940
941vkonovalov\100lucent.com vkonovalov\100peterstar.ru
942+ konovalo\100mail.wplus.net
943+ vadim\100vkonovalov.ru
944+ vkonovalov\100spb.lucent.com
945+ vkonovalov\100alcatel-lucent.com
058a5f6c 946+ vadim.konovalov\100alcatel-lucent.com
e82692ac
MB
947
948whatever\100davidnicol.com davidnicol\100gmail.com
949wolfgang.laun\100alcatel.at wolfgang.laun\100chello.at
950+ wolfgang.laun\100thalesgroup.com
951+ wolfgang.laun\100gmail.com
64698074 952wolfsage\100gmail.com mhorsfall\100darmstadtium.(none)
e82692ac 953yath\100yath.de yath-perlbug\100yath.de
691b316a 954