Swiss bank agrees to pay huge fine