void periodCertification() {
		int inner = 0;
		for (int i = 0; i < 4; i++)
			inner ^= sfmt[i] & parity[i];
		for (int i = 16; i > 0; i >>= 1)
			inner ^= inner >> i;
		if ((inner & 1) != 0) // check OK
			return;
		for (int i = 0; i < 4; i++) {
			int work = 1;
			for (int j = 0; j < 32; j++) {
				if ((work & parity[i]) != 0) {
					sfmt[i] ^= work;
					return;
				}
				work <<= 1;
			}
		}
	}