Generated code from  50315478ce809068cf2538d3c216ddd772d4a238