https://jp.caruana.fr/notes/2020/04/30/sor4/