code: func (p *Profile) Copy() *Profile {
  	p.preEncode()
  	b := marshal(p)
  
  	pp := &Profile{}
  	if err := unmarshal(b, pp); err != nil {
  		panic(err)
  	}
  	if err := pp.postDecode(); err != nil {
  		panic(err)
  	}
  
  	return pp
  }
docs: // Copy makes a fully independent copy of a profile.