code: func readBlob(reader *bufio.Reader) ([]byte, int, error) {
  	// First, get the length
  	var blobLen int32
  	if err := binary.Read(reader, binary.BigEndian, &blobLen); err != nil {
  		return nil, 0, err
  	}
  	n := 4 + int(blobLen)
  
  	// Read the data
  	blob := make([]byte, blobLen)
  	if _, err := reader.Read(blob); err != nil {
  		return nil, 0, err
  	}
  
  	// Remove the padding bytes
  	numPadBytes := padBytesNeeded(int(blobLen))
  	if numPadBytes > 0 {
  		n += numPadBytes
  		dummy := make([]byte, numPadBytes)
  		if _, err := reader.Read(dummy); err != nil {
  			return nil, 0, err
  		}
  	}
  
  	return blob, n, nil
  }
docs: ////
  // De/Encoding functions
  ////
  // readBlob reads an OSC blob from the blob byte array. Padding bytes are
  // removed from the reader and not returned.