Yep this is going to take a while...fml