hardware software failures