made by swu_lgl,zxing