key.go
func (c Key) Put(x uint64) {
	s := uint(8 * (len(c) - 1))
	for i := range c {
		c[i] = byte(x >> s)
		s -= 8
	}
}
func (c Key) Put(x uint64) {
	s := uint(8 * (len(c) - 1))
	for i := range c {
		c[i] = byte(x >> s)
		s -= 8
	}
}
// Put serializes x into the buffer (big endian). Behavior is undefined when x
// does not fit, so the caller must ensure c is large enough.