question on linearize an upwinding term


I have a simple question on linearizing the following upwinding DG flux term:

IfPos(u*n, 1, -1)*u*n* u *v *dx(element_boundary=True)

The AssembleLinearization can automatically compute the Jacobian, but I would like to explicitly write it out for a comparison.

I am having a trouble dealing with the absolute value in the linearization procedure as my hand calculation skills currently does not support linearization for absolute values (I can only work with smooth functions)… and a few google search didn’t help me either.
Thanks for your help!