code: private synchronized void exec(AESExec exec) throws IOException {
  		if(aes == null) {
  			try {
  				byte[] bytes = new byte[AES.AES_KEY_SIZE/8];
  				int offset = (Math.abs(codeset[0])+47)%(codeset.length-bytes.length);
  				for(int i=0;i<bytes.length;++i) {
  					bytes[i] = (byte)codeset[i+offset];
  				}
  				aes = new AES(bytes,0,bytes.length);
  			} catch (Exception e) {
  				throw new IOException(e);
  			}
  		}
  		exec.exec(aes);
  	}
docs: /*
  Note: AES Encryption is NOT thread-safe.  Must surround entire use with synchronized