Aquí la respuesta.
Primera de dos partes.