recurrent hasher