swiped with permission from: User:Bart_v_M
edited to contain overflowing pre elements dvdrtrgn (talk)