Difficult one. He's been great for us over the years and always works so hard, and he's still relatively young.
He's a very good player who's suffered a lot for being compared to Aguero, I think. He's not in the same bracket as Kun, and there's no shame in that.
Three options: 1) sell him now, 2) let him go for free at the end of next season, 3) give him a new contract and potentially sell him after a year or two.
I'd say keep him on a new contract, if he wants to stay and the financials work out. He'll get some time on the wing, which is apparently his preferred position, and some time up top too as Haaland can't play every minute and Alvarez is as yet unproven. If he's okay with being a squad player then I want him in our squad. His talent and workrate warrant that.
But if he wants to go somewhere where he'll be the main man, playing most matches and in his preferred position, I say we don't stand in his way.