code: func readTable(r io.Reader) (table Table, err error) {
  	var nested bytes.Buffer
  	var str string
  
  	if str, err = readLongstr(r); err != nil {
  		return
  	}
  
  	nested.Write([]byte(str))
  
  	table = make(Table)
  
  	for nested.Len() > 0 {
  		var key string
  		var value interface{}
  
  		if key, err = readShortstr(&nested); err != nil {
  			return
  		}
  
  		if value, err = readField(&nested); err != nil {
  			return
  		}
  
  		table[key] = value
  	}
  
  	return
  }
docs: /*
  	Field tables are long strings that contain packed name-value pairs.  The
  	name-value pairs are encoded as short string defining the name, and octet
  	defining the values type and then the value itself.   The valid field types for
  	tables are an extension of the native integer, bit, string, and timestamp
  	types, and are shown in the grammar.  Multi-octet integer fields are always
  	held in network byte order.
  */