Contributed by Nguyen Le
Contributed by Sean Kane
Contributed by Jan Myślnik
Contributed by Lars Høie
Contributed by Orin Vrkaš