~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(updated 2 January 2013, 29 June 2014, 20 April 2020)