Generated code from  82475f2105036c4d77e29c2b560e226a890e439d