(a) A claim or right arising out of a breach of contract may be discharged in whole or part without consideration by a waiver in a record to which the party making the waiver agrees after breach, such as by manifesting assent, or which the party making the waiver authenticates and delivers to the other party.
(b) A party that accepts a performance with knowledge that the performance constitutes a breach of contract and, within a reasonable time after acceptance, does not notify the other party of the breach waives all remedies for the breach, unless acceptance was made on the reasonable assumption that the breach would be cured and it has not been seasonably cured. However, a party that seasonably notifies the other party of a reservation of rights does not waive the rights reserved.
(c) A party that refuses a performance and fails to identify a particular defect that is ascertainable by reasonable inspection waives the right to rely on that defect to justify refusal only if:
(1) The other party could have cured the defect if it were identified seasonably; or
(2) Between merchants, the other party after refusal made a request in a record for a full and final statement of all defects on which the refusing party relied.
(d) Waiver of a remedy for breach of contract in one performance does not waive any remedy for the same or a similar breach in future performances unless the party making the waiver expressly so states.
(e) A waiver may not be retracted as to the performance to which the waiver applies.
(f) Except for a waiver in accordance with subsection (a) of this section or a waiver supported by consideration, a waiver affecting an executory portion of a contract may be retracted by seasonable notice received by the other party that strict performance will be required in the future, unless the retraction would be unjust in view of a material change of position in reliance on the waiver by that party.