It's very long, please read it slowly