anchor.diff:  void main() {
   
     Impress pres = new Impress();
  +
  +  window.on.hashChange.add((e) {
  +    int step = Math.parseInt(window.location.hash.substring(1));
  +    if (step != pres.mCurrentStep)
  +      pres.goto(step);
  +  });
  +
     pres.setupPresentation();
   
     bool serverControl = false;
  
positive.code: 
      // Scale and perspective
      mImpress.style.cssText = getState(mSteps[0]).scaleCSS();
    }
  
    /**
  
negative.code:     }
      // Iterate over attributes of the step jumped to and apply CSS
      mCurrentStep = step;
      // Due to a dartium bug we can't directly set window.location.hash
      window.location.href = window.location.href.replaceFirst(new RegExp('#[0-9]*'), '') + '#${step}';
      mCanvas.style.cssText = getState(mSteps[mCurrentStep]).canvasCSS();
      // Scale and perspective
      mImpress.style.cssText = getState(mSteps[mCurrentStep]).scaleCSS();
  