Generated code from  a77136ad75818d8893e76c71ecf20e622345e37b