Author: Qingyangyeren.