Contributed by Diogo Ferreira
Contributed by Danie' Lopes
Contributed by Feliciano Type
Contributed by Stephen Coles