Generated code from  f65820160d4e245ca0cf9f8ae304732ccc73d8df