code: private void parseFlags(byte[] flags) throws ID3v2FormatException
  	{
  		int bytesRead = 1;
  
  		update = (flags[0]&0x80)!=0;
  		if (update) bytesRead++;
  		
  		crced = (flags[0]&0x40)!=0;
  		if (crced)
  		{
  			bytesRead++;
  			for (int i = 0; i < crc.length; i++) crc[i] = flags[bytesRead++];
  		}
  		
  		if ((flags[0]&0x80)!=0)
  		{
  			bytesRead++;
  			byte b = flags[bytesRead];
  			maxTagSize = (b&0xC0)>>6;
  			textEncode = (b&0x20)!=0;
  			maxTextSize = (b&0x18)>>3;
  			imageEncode = (b&0x04)!=0;
  			imageRestrict = (b&0x03);
  			bytesRead++;
  		}
  		if (bytesRead != numFlagBytes)
  		{
  			throw new ID3v2FormatException("The number of found flag bytes in the extended header is not equal to the number specified in the extended header.");
  		}
  	}
docs: Parse the extended header flag bytes
  
  @param flags the array of extended flags
  @exception ID3v2FormatException if an error occurs