Copyright (C) 2013-2017 SSPARK.