When in game loop do OnPointerDown etc (IEventSystemHandler) events get called?

Do pointer and drag events (IEventSystemHandler style calls) get called before Updates on monobehaviours in the scene or is it undefined?
Also if you have a Physics Raycaster when is that fired?

I’m not entirely sure but I’d assume it happens with the OnMouse Events in the Input Events area, so before Update:

Apparently my initial assumption that Physics Raycasters happen around FixedUpdate time was wrong and they also seem to happen with other Input Events in the default InputsModules:
https://bitbucket.org/Unity-Technologies/ui/src/a3f89d5f7d145e4b6fa11cf9f2de768fea2c500f/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs

As far as I know it all runs in Update.
https://bitbucket.org/Unity-Technologies/ui/src/a3f89d5f7d145e4b6fa11cf9f2de768fea2c500f/UnityEngine.UI/EventSystem/EventSystem.cs?at=2017.3&fileviewer=file-view-default
It all runs through EventSystem.Update alongside all other MonoBehaviors.
Not sure if it has custom execution order assigned.

Ok wonder if runs before others others or at random - anyway does what it needs to but I am doing my own raycasts after finding Physics Raycaster seemingly conflicting with other raycasts or out of step with the scene

I swear this changed in 2017.3.1 but in any case I am now getting events between Update and LateUpdate which means if I want less cursor-lag I have to do any drag code in LateUpdate now not the more obvious “Update”.
This seems wrong