Contributed by Florian Hardwig
Contributed by Garrison Martin
Contributed by Tomas Brousil
Contributed by Matthijs Sluiter
Contributed by Stephen Coles
Contributed by David Smith