Contributed by Stephen Coles
Contributed by Benoît Bodhuin
Contributed by Gareth Hague
Contributed by Étienne Aubert Bonn