Generated code from  56a5593b95d5c34e8ab0cf07067853cca7f9ea09