Generated code from  a7ff6a5a7a1958399c5b95cb99a03797f7f064e1