  Leakage is a particularly damaging error that occurs when a qubit leaves the
defined computational subspace. Leakage errors limit the effectiveness of
quantum error correcting codes by spreading additional errors to other qubits
and corrupting syndrome measurements. The effects of leakage errors on the
surface code has been studied in various contexts. However, the effects of a
leaked data qubit versus a leaked ancilla qubit can be quite different. Here,
we study the effects of data leakage and ancilla leakage separately. We show
that data leakage is much less damaging. We show that the surface code
maintains its distance in the presence of leakage by either confining leakage
to data qubits or eliminating aniclla qubit leakage at the critical fault
location. We also introduce new techniques for handling leakage by using gates
with one-sided leakage and by mixing two types of leakage reducing circuits:
one to handle data leakage and one to handle ancilla leakage.
