A proof of the Cycle Double Cover Conjecture