Edit 3
Inserted (short) comments for lines 1-340