~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(updated 4 January 2013, 9 June 2015, 4 March 2016, 2 June 2020)