Barclays agrees to buy Tesco Bank