/* This file is created by running make-ndn-js.js.sh in this directory.
 * It concatenates ndn-js-header.txt plus all the ndn-js source files plus
 *   ndn-js-footer.txt to make ndn-js.js .
 * author: Jeff Thompson
 * See COPYING for copyright and distribution information.
 */

// LOG is used by some of the NDN code.
var LOG = 0;

// jsbn.js needs the navigator object which isn't defined in Node, so make a local hack.
var navigator = {
    appName: "Netscape"
};

