as required in HW3