Department of Computer Science, Princeton University, Princeton, NJ 08540-5233, USA.|Department of Computer Science, Princeton University, Princeton, NJ 08540-5233, USA.|Department of Computer Science, Princeton University, Princeton, NJ 08540-5233, USA.|Department of Computer Science, Princeton University, Princeton, NJ 08540-5233, USA.|Department of Computer Science, Princeton University, Princeton, NJ 08540-5233, USA.|Department of Computer Science, Princeton University, Princeton, NJ 08540-5233, USA.