Author: Tran-duc-Thao.