changed `apn_assign_part` behavior, now fills invalid range with 0.