Solutions by Shaun Pearce.