Microsoft offers to buy Yahoo