Contributed by Stéphane Darricau
Contributed by Richard Lipton
Contributed by Christian Mengelt
Contributed by Florian Hardwig