Decoding algorithms for surface codes | Synapse