The code for push/pull was doing just a single step, for some reason
6WFOU7UXCYM5UWA5WVZ72XFRJWJA5GWCIAC5PI5NOEFHNFD3VKNAC let mut now_ = HashSet::new();let mut result = Vec::new();for n in now {
let mut now_ = HashSet::with_capacity(original.len());let mut result = Vec::with_capacity(original.len());for &h in now {now_.insert(h);result.push(h);}let mut stack = now.to_vec();stack.reverse();while let Some(n) = stack.pop() {