forked from: flash on 2016-3-26

