forked from: C

