info.started = false;
        var ne = this.fire(t, ct, 'end');
        // iff tracking, always prevent tap
        e.tapPrevented = true;
      }
    },

    fire: function(target, touch, state) {
      return Gestures.fire(target, 'track', {
        state: state,
        x: touch.clientX,
        y: touch.clientY
      });
    }

  });

  // dispatch a *bubbling* "tap" only at the node that is the target of the
  // generating event.
  // dispatch *synchronously* so that we can implemen