long-distance error correction