Source code

Play here in your browser!