xData.disableKeys) {
                p += "&nokeys=1"
            }

            history.replaceState({}, document.title, p);
            tweetSetup(track);
        }
    }

    function now() {
        return new Date().getTime();
    }


    // we want to find the best, long backwards branch
    // and ensure that it is included in the graph to
    // avoid short branching songs like:
    // http://labs.echonest.com/Uploader/index.html?trid=TRVHPII13AFF43D495

    function longestBackwardBranch(type) {
  