From 365a10420d1371e538c716f745b5711ea47bc6da Mon Sep 17 00:00:00 2001 From: Martin Donnelly Date: Fri, 15 Dec 2017 18:34:59 +0000 Subject: [PATCH] init --- .eslintrc.json | 55 + .gitignore | 153 + gulp/backbone.js | 35 + gulp/build.js | 65 + gulpfile.js | 7 + package-lock.json | 13914 +++++++++++++++ package.json | 64 + server.js | 28 + server/lib/train.js | 169 + src/browserconfig.xml | 9 + src/css/common.css | 88 + src/css/custom.scss | 93 + src/fonts.list | 2 + src/img/android-chrome-192x192.png | Bin 0 -> 4470 bytes src/img/apple-touch-icon.png | Bin 0 -> 7744 bytes src/img/favicon-16x16.png | Bin 0 -> 984 bytes src/img/favicon-32x32.png | Bin 0 -> 1783 bytes src/img/favicon.ico | Bin 0 -> 15086 bytes src/img/mstile-150x150.png | Bin 0 -> 3822 bytes src/img/safari-pinned-tab.svg | 33 + src/index.html | 42 + src/js/app.js | 47 + src/js/route.js | 106 + src/js/train.js | 217 + src/manifest.json | 15 + src/service-worker.js | 91 + src/work/stations.json | 24260 +++++++++++++++++++++++++++ 27 files changed, 39493 insertions(+) create mode 100644 .eslintrc.json create mode 100644 .gitignore create mode 100644 gulp/backbone.js create mode 100644 gulp/build.js create mode 100644 gulpfile.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 server.js create mode 100644 server/lib/train.js create mode 100644 src/browserconfig.xml create mode 100644 src/css/common.css create mode 100644 src/css/custom.scss create mode 100644 src/fonts.list create mode 100644 src/img/android-chrome-192x192.png create mode 100644 src/img/apple-touch-icon.png create mode 100644 src/img/favicon-16x16.png create mode 100644 src/img/favicon-32x32.png create mode 100644 src/img/favicon.ico create mode 100644 src/img/mstile-150x150.png create mode 100644 src/img/safari-pinned-tab.svg create mode 100644 src/index.html create mode 100644 src/js/app.js create mode 100644 src/js/route.js create mode 100644 src/js/train.js create mode 100644 src/manifest.json create mode 100644 src/service-worker.js create mode 100644 src/work/stations.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..7042266 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,55 @@ +{ + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module", + "ecmaFeatures": { + "jsx": false + } + }, + "env": { + "browser": true, + "node": true, + "es6": true + }, + "rules": { + "arrow-spacing": "error", + "block-scoped-var": "error", + "block-spacing": "error", + "brace-style": ["error", "stroustrup", {}], + "camelcase": "error", + "comma-dangle": ["error", "never"], + "comma-spacing": ["error", { "before": false, "after": true }], + "comma-style": [1, "last"], + "consistent-this": [1, "_this"], + "curly": [1, "multi"], + "eol-last": 1, + "eqeqeq": 1, + "func-names": 1, + "indent": ["error", 2, { "SwitchCase": 1 }], + "lines-around-comment": ["error", { "beforeBlockComment": true, "allowArrayStart": true }], + "max-len": [1, 120, 2], // 2 spaces per tab, max 80 chars per line + "new-cap": 1, + "newline-before-return": "error", + "no-array-constructor": 1, + "no-inner-declarations": [1, "both"], + "no-mixed-spaces-and-tabs": 1, + "no-multi-spaces": 2, + "no-new-object": 1, + "no-shadow-restricted-names": 1, + "object-curly-spacing": ["error", "always"], + "padded-blocks": ["error", { "blocks": "never", "switches": "always" }], + "prefer-const": "error", + "prefer-template": "error", + "one-var": 0, + "quote-props": ["error", "always"], + "quotes": [1, "single"], + "radix": 1, + "semi": [1, "always"], + "space-before-blocks": [1, "always"], + "space-infix-ops": 1, + "vars-on-top": 1, + "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 1 }], + "spaced-comment": ["error", "always", { "markers": ["/"] }] + } + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3bda331 --- /dev/null +++ b/.gitignore @@ -0,0 +1,153 @@ +# Created by .ignore support plugin (hsz.mobi) +### Node template +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +### macOS template +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +.idea/ +# User-specific stuff: +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/dictionaries + +# Sensitive or high-churn files: +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.xml +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + +# Gradle: +.idea/**/gradle.xml +.idea/**/libraries + +# CMake +cmake-build-debug/ + +# Mongo Explorer plugin: +.idea/**/mongoSettings.xml + +## File-based project format: +*.iws + +## Plugin-specific files: + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Elastic Beanstalk Files +.elasticbeanstalk/* +!.elasticbeanstalk/*.cfg.yml +!.elasticbeanstalk/*.global.yml +/src/bundle.js +/src/bundle.js.map +/src/react/bundle.js +/src/backbone/bundle.js +/src/react/bundle.js.map +/src/es2016/bundle.js +/src/es2016/bundle.js.map +/src/backbone/bundle.js.map +/live/* diff --git a/gulp/backbone.js b/gulp/backbone.js new file mode 100644 index 0000000..cf4efe9 --- /dev/null +++ b/gulp/backbone.js @@ -0,0 +1,35 @@ +'use strict'; + +const browserify = require('browserify'); +const gulp = require('gulp'); +const source = require('vinyl-source-stream'); +const buffer = require('vinyl-buffer'); +const uglify = require('gulp-uglify-es').default; +const sourcemaps = require('gulp-sourcemaps'); +const gutil = require('gulp-util'); +const rename = require('gulp-rename'); + +gulp.task('bundleBackbone', function () { + // set up the browserify instance on a task basis + const b = browserify({ + 'debug': true, + 'entries': './src/js/app.js' + }); + + return b.bundle() + .pipe(source('app.js')) + .pipe(buffer()) + .pipe(rename('bundle.js')) + + .pipe(sourcemaps.init({ 'loadMaps': true })) + // Add transformation tasks to the pipeline here. + .pipe(uglify()) + .on('error', gutil.log) + .pipe(sourcemaps.write('.')) + .pipe(gulp.dest('./live/js')); +}); + +gulp.task('buildBackbone', ['bundleBackbone'], function() { + gulp.watch('src/js/**/*.js', ['bundleBackbone']); +}); + diff --git a/gulp/build.js b/gulp/build.js new file mode 100644 index 0000000..105c7ed --- /dev/null +++ b/gulp/build.js @@ -0,0 +1,65 @@ +const gulp = require('gulp'), + + autoprefixer = require('gulp-autoprefixer'), + cssnano = require('gulp-cssnano'), + uglify = require('gulp-uglify'), + + rename = require('gulp-rename'), + concat = require('gulp-concat'), + cache = require('gulp-cache'), + htmlmin = require('gulp-htmlmin'), + inject = require('gulp-inject'), + del = require('del'), + htmlreplace = require('gulp-html-replace'); + +const scss = require('gulp-scss'); +const sass = require('gulp-sass'); +const googleWebFonts = require('gulp-google-webfonts'); + +const fontOptions = { }; + +gulp.task('styles', function() { + return gulp.src(['src/css/common.css']) + .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4')) + + /* .pipe(gulp.dest('dist/css'))*/ + /* .pipe(rename({suffix: '.min'}))*/ + .pipe(cssnano()) + .pipe(gulp.dest('live/css')); +}); + +gulp.task('copy', function() { + gulp.src(['src/img/**/*']).pipe(gulp.dest('live/img')); + gulp.src(['src/browserconfig.xml', 'src/manifest.json', 'src/service-worker.js']).pipe(gulp.dest('live')); + gulp.src(['src/index.html']).pipe(gulp.dest('live')); +}); + +gulp.task('clean', function() { + return del(['live']); +}); + +gulp.task('customMUI', function() { + return gulp.src(['src/css/custom.scss']) + .pipe(sass({ 'outputStyle': 'compressed' }).on('error', sass.logError)) + // .pipe(cssnano()) + .pipe(rename('mui.custom.css')) + // .pipe(gulp.dest(`${dest}/css`)); + .pipe(gulp.dest('live/css')); +}); + +gulp.task('vendor', function() { + return gulp.src([ + 'node_modules/muicss/dist/js/mui.min.js' + ]) + .pipe(concat('vendor.js')) + + /* .pipe(uglify({ 'mangle': false }))*/ + .pipe(gulp.dest(`live/js`)); +}); + +gulp.task('fonts', function() { + return gulp.src('src/fonts.list') + .pipe(googleWebFonts(fontOptions)) + .pipe(gulp.dest(`live/fonts`)) + ; +}); diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..d532357 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,7 @@ +const gulp = require('gulp'); + +const requireDir = require('require-dir'); + +requireDir('./gulp'); + +gulp.task('BuildAll', ['bundleBackbone', 'styles', 'copy', 'customMUI', 'vendor', 'fonts']); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..6919b93 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,13914 @@ +{ + "name": "traintimespwa", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@gulp-sourcemaps/identity-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.1.tgz", + "integrity": "sha1-z6I7xYQPkQTOMqZedNt+epdLvuE=", + "dev": true, + "requires": { + "acorn": "5.2.1", + "css": "2.2.1", + "normalize-path": "2.1.1", + "source-map": "0.5.7", + "through2": "2.0.3" + }, + "dependencies": { + "acorn": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", + "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==", + "dev": true + } + } + }, + "@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "requires": { + "normalize-path": "2.1.1", + "through2": "2.0.3" + } + }, + "Base64": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz", + "integrity": "sha1-ujpCMHCOGGcFBl5mur3Uw1z2ACg=", + "dev": true + }, + "JSONStream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", + "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", + "requires": { + "jsonparse": "1.3.1", + "through": "2.3.8" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "3.3.0" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "addressparser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", + "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=", + "optional": true + }, + "agent-base": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", + "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", + "requires": { + "extend": "3.0.1", + "semver": "5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=" + } + } + }, + "ajv": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.1.tgz", + "integrity": "sha1-s4u4h22ehr7plJVqBOch6IskjrI=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", + "dev": true + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "apicache": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/apicache/-/apicache-1.2.0.tgz", + "integrity": "sha512-SwA6mpYhEEQ0cbDXFKxuVKcW9d1LS2AX3aJSX0gaWMWK8y3bXIQXcj77BqVlYKIlS3VY+PE+veyG7/AJA2x6yg==" + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + } + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0" + } + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "asn1.js": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", + "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", + "requires": { + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "requires": { + "util": "0.10.3" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "ast-types": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.10.1.tgz", + "integrity": "sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ==", + "optional": true + }, + "astw": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz", + "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=", + "requires": { + "acorn": "4.0.13" + } + }, + "async": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/async/-/async-2.1.5.tgz", + "integrity": "sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw=", + "optional": true, + "requires": { + "lodash": "4.17.4" + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "dev": true + }, + "autoprefixer": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.3.tgz", + "integrity": "sha512-dqzVGiz3v934+s3YZA6nk7tAs9xuTz5wMJbX1M+L4cY/MTNkOUqP61c1GWkEVlUL/PEy1pKRSCFuoRZrXYx9qA==", + "dev": true, + "requires": { + "browserslist": "2.10.0", + "caniuse-lite": "1.0.30000783", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "6.0.14", + "postcss-value-parser": "3.3.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "axios": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.15.3.tgz", + "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=", + "optional": true, + "requires": { + "follow-redirects": "1.0.0" + } + }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.12.2", + "convert-source-map": "1.5.1", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.2", + "lodash": "4.17.4", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" + }, + "dependencies": { + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + }, + "dependencies": { + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + } + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", + "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "dev": true, + "requires": { + "find-cache-dir": "1.0.0", + "loader-utils": "1.1.0", + "mkdirp": "0.5.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, + "requires": { + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true, + "requires": { + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "0.10.1" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "core-js": "2.5.3", + "regenerator-runtime": "0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, + "babel-preset-env": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", + "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "2.10.0", + "invariant": "2.2.2", + "semver": "5.4.1" + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" + } + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "6.22.0" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.3", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babelify": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-8.0.0.tgz", + "integrity": "sha512-xVr63fKEvMWUrrIbqlHYsMcc5Zdw4FSVesAHgkgajyCE1W8gbm9rbMakqavhxKvikGYMhEcqxTwB/gQmQ6lBtw==" + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "backbone": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.3.3.tgz", + "integrity": "sha1-TMgOp8sWMaxHSInOQPL4vGg7KZk=", + "requires": { + "underscore": "1.8.3" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.5", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.0", + "pascalcase": "0.1.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "bl": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", + "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", + "optional": true, + "requires": { + "readable-stream": "2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "optional": true + } + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" + } + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.0" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-pack": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz", + "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=", + "requires": { + "JSONStream": "1.3.1", + "combine-source-map": "0.7.2", + "defined": "1.0.0", + "through2": "2.0.3", + "umd": "3.0.1" + } + }, + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, + "browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", + "dev": true + }, + "browserify": { + "version": "14.5.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.5.0.tgz", + "integrity": "sha512-gKfOsNQv/toWz+60nSPfYzuwSEdzvV2WdxrVPUbPD/qui44rAkB3t3muNtmmGYHqrG56FGwX9SUEQmzNLAeS7g==", + "requires": { + "JSONStream": "1.3.1", + "assert": "1.4.1", + "browser-pack": "6.0.2", + "browser-resolve": "1.11.2", + "browserify-zlib": "0.2.0", + "buffer": "5.0.8", + "cached-path-relative": "1.0.1", + "concat-stream": "1.5.2", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "defined": "1.0.0", + "deps-sort": "2.0.0", + "domain-browser": "1.1.7", + "duplexer2": "0.1.4", + "events": "1.1.1", + "glob": "7.1.2", + "has": "1.0.1", + "htmlescape": "1.1.1", + "https-browserify": "1.0.0", + "inherits": "2.0.3", + "insert-module-globals": "7.0.1", + "labeled-stream-splicer": "2.0.0", + "module-deps": "4.1.1", + "os-browserify": "0.3.0", + "parents": "1.0.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "read-only-stream": "2.0.0", + "readable-stream": "2.3.3", + "resolve": "1.5.0", + "shasum": "1.0.2", + "shell-quote": "1.6.1", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "1.0.3", + "subarg": "1.0.0", + "syntax-error": "1.3.0", + "through2": "2.0.3", + "timers-browserify": "1.4.2", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4", + "xtend": "4.0.1" + } + }, + "browserify-aes": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "requires": { + "browserify-aes": "1.1.1", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.3" + } + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "4.11.8", + "randombytes": "2.0.5" + } + }, + "browserify-shim": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/browserify-shim/-/browserify-shim-2.0.10.tgz", + "integrity": "sha1-dKDtW5t4SlooeQZROoltMfVKhLg=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "1.0.6" + } + }, + "browserslist": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.10.0.tgz", + "integrity": "sha512-WyvzSLsuAVPOjbljXnyeWl14Ae+ukAT8MUuagKVzIDvwBxl4UAwD1xqtyQs2eWYPGUKMeC3Ol62goqYuKqTTcw==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000783", + "electron-to-chromium": "1.3.28" + } + }, + "buffer": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", + "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8" + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "bufferstreams": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.3.tgz", + "integrity": "sha512-HaJnVuslRF4g2kSDeyl++AaVizoitCpL9PglzCYwy0uHHyvWerfvEb8jWmYbF1z4kiVFolGomnxSGl+GUQp2jg==", + "dev": true, + "requires": { + "readable-stream": "2.3.3" + } + }, + "buildmail": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-4.0.1.tgz", + "integrity": "sha1-h393OLeHKYccmhBeO4N9K+EaenI=", + "optional": true, + "requires": { + "addressparser": "1.0.1", + "libbase64": "0.1.0", + "libmime": "3.0.0", + "libqp": "1.1.0", + "nodemailer-fetch": "1.6.0", + "nodemailer-shared": "1.1.0", + "punycode": "1.4.1" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "builtins": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz", + "integrity": "sha1-NVIZzWzxjb58Acx/0tznZc/cVJo=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "cache-swap": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/cache-swap/-/cache-swap-0.3.0.tgz", + "integrity": "sha1-HFQaoQilAQb2ML3Zj+HeyLoTP1E=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1", + "rimraf": "2.6.2" + } + }, + "cached-path-relative": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", + "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "0.2.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "2.3.2", + "upper-case": "1.1.3" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000783", + "lodash.memoize": "4.1.2", + "lodash.uniq": "4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000783", + "electron-to-chromium": "1.3.28" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + } + } + }, + "caniuse-db": { + "version": "1.0.30000783", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000783.tgz", + "integrity": "sha1-FrMNRyZqT1FcxprgMWtnDJYDzb4=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000783", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000783.tgz", + "integrity": "sha1-m1SZ+xtQPSNF0SqmuGEoUvQnb/0=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + }, + "dependencies": { + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + } + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.3", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "circular-json": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.4.0.tgz", + "integrity": "sha512-tKV502ADgm9Z37s6B1QOohegjJJrCl2iyMMb1+8ITHrh1fquW8Jdbkb4s5r4Iwutr1UfL1qvkqvc1wZZlLvwow==" + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, + "class-utils": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.5.tgz", + "integrity": "sha1-F+eTEDdQ+WJ7IXbqNM/RtWWQPIA=", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "clean-css": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz", + "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + } + } + }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "cloneable-readable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", + "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "process-nextick-args": "1.0.7", + "through2": "2.0.3" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true, + "requires": { + "q": "1.4.1" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true, + "requires": { + "clone": "1.0.3", + "color-convert": "1.9.1", + "color-string": "0.3.0" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true, + "requires": { + "color": "0.11.4", + "css-color-names": "0.0.4", + "has": "1.0.1" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combine-source-map": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", + "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=", + "requires": { + "convert-source-map": "1.1.3", + "inline-source-map": "0.6.2", + "lodash.memoize": "3.0.4", + "source-map": "0.5.7" + } + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", + "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.0.6", + "typedarray": "0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "concat-with-sourcemaps": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", + "integrity": "sha1-9Vs74q60dgGxCi1SWcz7cP0vHdY=", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "requires": { + "date-now": "0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0" + } + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.9" + } + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + } + } + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.3", + "pbkdf2": "3.0.14", + "public-encrypt": "4.0.0", + "randombytes": "2.0.5", + "randomfill": "1.0.3" + } + }, + "css": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", + "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "source-map": "0.1.43", + "source-map-resolve": "0.3.1", + "urix": "0.1.0" + }, + "dependencies": { + "atob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", + "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "source-map-resolve": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", + "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", + "dev": true, + "requires": { + "atob": "1.1.3", + "resolve-url": "0.2.1", + "source-map-url": "0.3.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", + "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=", + "dev": true + } + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, + "requires": { + "autoprefixer": "6.7.7", + "decamelize": "1.2.0", + "defined": "1.0.0", + "has": "1.0.1", + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-calc": "5.3.1", + "postcss-colormin": "2.2.2", + "postcss-convert-values": "2.6.1", + "postcss-discard-comments": "2.0.4", + "postcss-discard-duplicates": "2.1.0", + "postcss-discard-empty": "2.1.0", + "postcss-discard-overridden": "0.1.1", + "postcss-discard-unused": "2.2.3", + "postcss-filter-plugins": "2.0.2", + "postcss-merge-idents": "2.1.7", + "postcss-merge-longhand": "2.0.2", + "postcss-merge-rules": "2.1.2", + "postcss-minify-font-values": "1.0.5", + "postcss-minify-gradients": "1.0.5", + "postcss-minify-params": "1.2.2", + "postcss-minify-selectors": "2.1.1", + "postcss-normalize-charset": "1.1.1", + "postcss-normalize-url": "3.0.8", + "postcss-ordered-values": "2.2.3", + "postcss-reduce-idents": "2.4.0", + "postcss-reduce-initial": "1.0.1", + "postcss-reduce-transforms": "1.0.4", + "postcss-svgo": "2.1.6", + "postcss-unique-selectors": "2.0.2", + "postcss-value-parser": "3.3.0", + "postcss-zindex": "2.2.0" + }, + "dependencies": { + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000783", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000783", + "electron-to-chromium": "1.3.28" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "requires": { + "clap": "1.2.3", + "source-map": "0.5.7" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "0.10.37" + } + }, + "dargs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-5.1.0.tgz", + "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "data-uri-to-buffer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", + "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==", + "optional": true + }, + "date-format": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz", + "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=" + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "debug-fabulous": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.0.0.tgz", + "integrity": "sha512-dsd50qQ1atDeurcxL7XOjPp4nZCGZzWIONDujDXzl1atSyC3hMbZD+v6440etw+Vt0Pr8ce4TQzHfX3KZM05Mw==", + "dev": true, + "requires": { + "debug": "3.1.0", + "memoizee": "0.4.11", + "object-assign": "4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.1.2.tgz", + "integrity": "sha1-skbCuApXCkfBG+HZvRBw7IeLh84=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "deepcopy": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deepcopy/-/deepcopy-0.5.0.tgz", + "integrity": "sha1-0so0M1wtMfVMG08TdF4AGXfUkaI=", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "1.0.3" + } + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + } + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.1" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "optional": true, + "requires": { + "ast-types": "0.10.1", + "escodegen": "1.9.0", + "esprima": "3.1.3" + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "requires": { + "globby": "6.1.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "p-map": "1.2.0", + "pify": "3.0.0", + "rimraf": "2.6.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", + "dev": true + }, + "deps-sort": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", + "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "requires": { + "JSONStream": "1.3.1", + "shasum": "1.0.2", + "subarg": "1.0.0", + "through2": "2.0.3" + } + }, + "derequire": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/derequire/-/derequire-0.8.0.tgz", + "integrity": "sha1-wffx2izt5Ere3gRzePA/RE6cTA0=", + "dev": true, + "requires": { + "esprima-fb": "3001.1.0-dev-harmony-fb", + "esrefactor": "0.1.0", + "estraverse": "1.5.1" + }, + "dependencies": { + "esprima-fb": { + "version": "3001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", + "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=", + "dev": true + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "dev": true + } + } + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "detective": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.0.tgz", + "integrity": "sha512-4mBqSEdMfBpRAo/DQZnTcAXenpiSIJmVKbCMSotS+SFWWcrP/CKM6iBRPdTiEO+wZhlfEsoZlGqpG6ycl5vTqw==", + "requires": { + "acorn": "5.2.1", + "defined": "1.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", + "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==" + } + } + }, + "diff": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", + "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "requires": { + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.5" + } + }, + "doctrine": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.2.tgz", + "integrity": "sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" + }, + "double-ended-queue": { + "version": "2.1.0-0", + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", + "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=", + "optional": true + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "2.3.3" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron-to-chromium": { + "version": "1.3.28", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.28.tgz", + "integrity": "sha1-jdTmRYCGZE6fnwoc8y4qH53/2e4=", + "dev": true + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } + }, + "end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "dev": true, + "requires": { + "once": "1.3.3" + }, + "dependencies": { + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + } + } + }, + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.2.0", + "tapable": "0.1.10" + } + }, + "errno": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", + "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", + "dev": true, + "requires": { + "prr": "1.0.1" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es-abstract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", + "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", + "dev": true, + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } + }, + "es5-ext": { + "version": "0.10.37", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz", + "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=", + "dev": true, + "requires": { + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37", + "es6-symbol": "3.1.1" + } + }, + "es6-promise": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==" + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "optional": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "escope": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/escope/-/escope-0.0.16.tgz", + "integrity": "sha1-QYx6CvynIdr+ZZGT/Zhig+dGU48=", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "eslint": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.13.1.tgz", + "integrity": "sha512-UCJVV50RtLHYzBp1DZ8CMPtRSg4iVZvjgO9IJHIKyWU/AnJVjtdRikoUPLB29n5pzMB7TnsLQWf0V6VUJfoPfw==", + "dev": true, + "requires": { + "ajv": "5.5.1", + "babel-code-frame": "6.26.0", + "chalk": "2.3.0", + "concat-stream": "1.6.0", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.0.2", + "eslint-scope": "3.7.1", + "espree": "3.5.2", + "esquery": "1.0.0", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.1.0", + "ignore": "3.3.7", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.0.1", + "js-yaml": "3.10.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.4.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.1.0.tgz", + "integrity": "sha512-uEuWt9mqTlPDwSqi+sHjD4nWU/1N+q0fiWI9T1mZpD2UENqX20CFD5T/ziLZvztPaBKl7ZylUi1q6Qfm7E2CiQ==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "eslint-plugin-react": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.5.1.tgz", + "integrity": "sha512-YGSjB9Qu6QbVTroUZi66pYky3DfoIPLdHQ/wmrBGyBRnwxQsBXAov9j2rpXt/55i8nyMv6IRWJv2s4d4YnduzQ==", + "dev": true, + "requires": { + "doctrine": "2.0.2", + "has": "1.0.1", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.0" + } + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "espree": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", + "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", + "dev": true, + "requires": { + "acorn": "5.2.1", + "acorn-jsx": "3.0.1" + }, + "dependencies": { + "acorn": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", + "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==", + "dev": true + } + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "dev": true, + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.1" + } + }, + "esrefactor": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/esrefactor/-/esrefactor-0.1.0.tgz", + "integrity": "sha1-0UJ5WigjOauB6Ta1t6IbEb8ZexM=", + "dev": true, + "requires": { + "escope": "0.0.16", + "esprima": "1.0.4", + "estraverse": "0.0.4" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "estraverse": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", + "integrity": "sha1-AaCTLf7ldGhKWYr1pnw7+bZCjbI=", + "dev": true + } + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37" + } + }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "dev": true, + "requires": { + "duplexer": "0.1.1", + "from": "0.1.7", + "map-stream": "0.1.0", + "pause-stream": "0.0.11", + "split": "0.3.3", + "stream-combiner": "0.0.4", + "through": "2.3.8" + } + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "1.0.1" + } + }, + "expect.js": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/expect.js/-/expect.js-0.3.1.tgz", + "integrity": "sha1-sKWaDS7/VDdUTr8M6qYBWEHQm1s=", + "dev": true + }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "external-editor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "dev": true, + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.19", + "tmp": "0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fancy-log": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "dev": true, + "requires": { + "ansi-gray": "0.1.1", + "color-support": "1.1.3", + "time-stamp": "1.1.0" + } + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "1.0.1", + "make-dir": "1.1.0", + "pkg-dir": "2.0.0" + } + }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "1.0.0", + "is-glob": "3.1.0", + "micromatch": "3.1.4", + "resolve-dir": "1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", + "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.1" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "extglob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.2.tgz", + "integrity": "sha512-I0+eZBH+jFGL8F5BnIz2ON2nKCjTS3AS3H/5PeSmCp7UVC70Ym8IhdRiQly2juKYQ//f7z1aj1BRpQniFJoU1w==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.4.tgz", + "integrity": "sha512-kFRtviKYoAJT+t7HggMl0tBFGNAKLw/S7N+CO9qfEQyisob1Oy4pao+geRbkyeEd+V9aOkvZ4mhuyPvI/q9Sfg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.0", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "extglob": "2.0.2", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.6", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + } + } + }, + "fined": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", + "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "is-plain-object": "2.0.4", + "object.defaults": "1.1.0", + "object.pick": "1.3.0", + "parse-filepath": "1.0.1" + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true + }, + "flagged-respawn": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", + "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=", + "dev": true + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + }, + "dependencies": { + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, + "follow-redirects": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz", + "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=", + "optional": true, + "requires": { + "debug": "2.6.9" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "formatio": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz", + "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=", + "dev": true, + "requires": { + "samsam": "1.3.0" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + } + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "optional": true, + "requires": { + "readable-stream": "1.1.14", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "optional": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "optional": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dev": true, + "requires": { + "globule": "0.1.0" + } + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "requires": { + "is-property": "1.0.2" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.1.tgz", + "integrity": "sha512-7aelVrYqCLuVjq2kEKRTH8fXPTC0xKTkM+G7UlFkEwCXY3sFbSxvY375JoFowOAYbkaU47SrBvOefUlLZZ+6QA==", + "optional": true, + "requires": { + "data-uri-to-buffer": "1.2.0", + "debug": "2.6.9", + "extend": "3.0.1", + "file-uri-to-path": "1.0.0", + "ftp": "0.3.10", + "readable-stream": "2.3.3" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "dev": true, + "requires": { + "glob": "4.5.3", + "glob2base": "0.0.12", + "minimatch": "2.0.10", + "ordered-read-streams": "0.1.0", + "through2": "0.6.5", + "unique-stream": "1.0.0" + }, + "dependencies": { + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.4.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + } + } + }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "dev": true, + "requires": { + "gaze": "0.5.2" + } + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true, + "requires": { + "find-index": "0.1.1" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "1.0.2", + "is-windows": "1.0.1", + "resolve-dir": "1.0.1" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "homedir-polyfill": "1.0.1", + "ini": "1.3.5", + "is-windows": "1.0.1", + "which": "1.3.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "requires": { + "glob": "3.1.21", + "lodash": "1.0.2", + "minimatch": "0.2.14" + }, + "dependencies": { + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "1.2.3", + "inherits": "1.0.2", + "minimatch": "0.2.14" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2.6.5", + "sigmund": "1.0.1" + } + } + } + }, + "glogg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", + "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "dev": true, + "requires": { + "sparkles": "1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "group-array": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/group-array/-/group-array-0.3.3.tgz", + "integrity": "sha1-u9nS9xjfS+M/D7kEMqrxtDYOSY8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "for-own": "0.1.5", + "get-value": "2.0.6", + "kind-of": "3.2.2", + "split-string": "1.0.1", + "union-value": "0.2.4" + }, + "dependencies": { + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + }, + "split-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-1.0.1.tgz", + "integrity": "sha1-vLqz9BUqzuOg1qskecDSh5w9s84=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1" + } + }, + "union-value": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-0.2.4.tgz", + "integrity": "sha1-c3UVJ4ZnkFfns3qmdug0aPwCdPA=", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + } + } + } + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "dev": true, + "requires": { + "archy": "1.0.0", + "chalk": "1.1.3", + "deprecated": "0.0.1", + "gulp-util": "3.0.8", + "interpret": "1.1.0", + "liftoff": "2.4.0", + "minimist": "1.2.0", + "orchestrator": "0.3.8", + "pretty-hrtime": "1.0.3", + "semver": "4.3.6", + "tildify": "1.2.0", + "v8flags": "2.1.1", + "vinyl-fs": "0.3.14" + }, + "dependencies": { + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + } + } + }, + "gulp-autoprefixer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/gulp-autoprefixer/-/gulp-autoprefixer-4.0.0.tgz", + "integrity": "sha1-4AqMVxuF0GUWrCY0G+kN/Z/B6rA=", + "dev": true, + "requires": { + "autoprefixer": "7.2.3", + "gulp-util": "3.0.8", + "postcss": "6.0.14", + "through2": "2.0.3", + "vinyl-sourcemaps-apply": "0.2.1" + } + }, + "gulp-babel": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-7.0.0.tgz", + "integrity": "sha512-TiUuFLW6FD2hx3mJ7QBPXN2nzpu6gRWFyjfChWxE1A9xaASRA5nsxrvHcqMDl5Ha6TvSBB9r74GbkVd1GO4mDA==", + "dev": true, + "requires": { + "gulp-util": "3.0.8", + "replace-ext": "0.0.1", + "through2": "2.0.3", + "vinyl-sourcemaps-apply": "0.2.1" + } + }, + "gulp-browserify": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/gulp-browserify/-/gulp-browserify-0.5.1.tgz", + "integrity": "sha1-ggEIrCVUqVStuL4X0jlYsMBL4IM=", + "dev": true, + "requires": { + "browserify": "3.46.1", + "browserify-shim": "2.0.10", + "gulp-util": "2.2.20", + "readable-stream": "1.1.14", + "through2": "0.4.2" + }, + "dependencies": { + "JSONStream": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.7.4.tgz", + "integrity": "sha1-c0KQ5BUR7qfCz+FR+/mlY6l7l4Y=", + "dev": true, + "requires": { + "jsonparse": "0.0.5", + "through": "2.3.8" + } + }, + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true + }, + "ansi-regex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", + "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", + "dev": true + }, + "ansi-styles": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", + "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", + "dev": true + }, + "assert": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.1.2.tgz", + "integrity": "sha1-raoExGu1jG3R8pTaPrJuYijrbkQ=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", + "dev": true + }, + "browser-pack": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-2.0.1.tgz", + "integrity": "sha1-XRxSf1bFgmd0EcTbKhKGSP9r8VA=", + "dev": true, + "requires": { + "JSONStream": "0.6.4", + "combine-source-map": "0.3.0", + "through": "2.3.8" + }, + "dependencies": { + "JSONStream": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.6.4.tgz", + "integrity": "sha1-SyyAY/j1Enh7I3X37p22kgj6Lcs=", + "dev": true, + "requires": { + "jsonparse": "0.0.5", + "through": "2.2.7" + }, + "dependencies": { + "through": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/through/-/through-2.2.7.tgz", + "integrity": "sha1-bo4hIAGR1OtqmfbwEN9Gqhxusr0=", + "dev": true + } + } + } + } + }, + "browser-resolve": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.2.4.tgz", + "integrity": "sha1-Wa54IKgpVezTL1+3xGisIcRyOAY=", + "dev": true, + "requires": { + "resolve": "0.6.3" + } + }, + "browserify": { + "version": "3.46.1", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-3.46.1.tgz", + "integrity": "sha1-LC5Kfy9AgXjnjCI7W1ezfCGFrY4=", + "dev": true, + "requires": { + "JSONStream": "0.7.4", + "assert": "1.1.2", + "browser-pack": "2.0.1", + "browser-resolve": "1.2.4", + "browserify-zlib": "0.1.4", + "buffer": "2.1.13", + "builtins": "0.0.7", + "commondir": "0.0.1", + "concat-stream": "1.4.10", + "console-browserify": "1.0.3", + "constants-browserify": "0.0.1", + "crypto-browserify": "1.0.9", + "deep-equal": "0.1.2", + "defined": "0.0.0", + "deps-sort": "0.1.2", + "derequire": "0.8.0", + "domain-browser": "1.1.7", + "duplexer": "0.1.1", + "events": "1.0.2", + "glob": "3.2.11", + "http-browserify": "1.3.2", + "https-browserify": "0.0.1", + "inherits": "2.0.3", + "insert-module-globals": "6.0.0", + "module-deps": "2.0.6", + "os-browserify": "0.1.2", + "parents": "0.0.3", + "path-browserify": "0.0.0", + "process": "0.7.0", + "punycode": "1.2.4", + "querystring-es3": "0.2.0", + "resolve": "0.6.3", + "shallow-copy": "0.0.1", + "shell-quote": "0.0.1", + "stream-browserify": "0.1.3", + "stream-combiner": "0.0.4", + "string_decoder": "0.0.1", + "subarg": "0.0.1", + "syntax-error": "1.1.6", + "through2": "0.4.2", + "timers-browserify": "1.0.3", + "tty-browserify": "0.0.0", + "umd": "2.0.0", + "url": "0.10.3", + "util": "0.10.3", + "vm-browserify": "0.0.4", + "xtend": "3.0.0" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "requires": { + "pako": "0.2.9" + } + }, + "buffer": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-2.1.13.tgz", + "integrity": "sha1-yIg46/efMLi0pwd4hHC+qKYsI1U=", + "dev": true, + "requires": { + "base64-js": "0.0.8", + "ieee754": "1.1.8" + } + }, + "chalk": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", + "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "dev": true, + "requires": { + "ansi-styles": "1.1.0", + "escape-string-regexp": "1.0.5", + "has-ansi": "0.1.0", + "strip-ansi": "0.3.0", + "supports-color": "0.2.0" + } + }, + "combine-source-map": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.3.0.tgz", + "integrity": "sha1-2edPWT2c1DgHMSy12EbUUe+qnrc=", + "dev": true, + "requires": { + "convert-source-map": "0.3.5", + "inline-source-map": "0.3.1", + "source-map": "0.1.43" + } + }, + "commondir": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-0.0.1.tgz", + "integrity": "sha1-ifAP3NUbUZxXhzP+xWPmptp/W+I=", + "dev": true + }, + "concat-stream": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.10.tgz", + "integrity": "sha1-rMO79WAsuMyYDGrIQPp9hgPj7zY=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "1.1.14", + "typedarray": "0.0.6" + } + }, + "console-browserify": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.0.3.tgz", + "integrity": "sha1-04mNLDqTEC82QZf4h0tPkrUoao4=", + "dev": true + }, + "constants-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz", + "integrity": "sha1-kld9tSe6bEzwpFaNhLwDH0QeIfI=", + "dev": true + }, + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + }, + "crypto-browserify": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz", + "integrity": "sha1-zFRJaF37hesRyYKKzHy4erW7/MA=", + "dev": true + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "requires": { + "get-stdin": "4.0.1", + "meow": "3.7.0" + } + }, + "defined": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-0.0.0.tgz", + "integrity": "sha1-817qfXBekzuvE7LwOz+D2SFAOz4=", + "dev": true + }, + "deps-sort": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-0.1.2.tgz", + "integrity": "sha1-2qL7YUoXyWN9gB4vVTOa43DzYRo=", + "dev": true, + "requires": { + "JSONStream": "0.6.4", + "minimist": "0.0.10", + "through": "2.3.8" + }, + "dependencies": { + "JSONStream": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.6.4.tgz", + "integrity": "sha1-SyyAY/j1Enh7I3X37p22kgj6Lcs=", + "dev": true, + "requires": { + "jsonparse": "0.0.5", + "through": "2.2.7" + }, + "dependencies": { + "through": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/through/-/through-2.2.7.tgz", + "integrity": "sha1-bo4hIAGR1OtqmfbwEN9Gqhxusr0=", + "dev": true + } + } + } + } + }, + "detective": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-3.1.0.tgz", + "integrity": "sha1-d3gkRKt1K4jKG+Lp0KA5Xx2iXu0=", + "dev": true, + "requires": { + "escodegen": "1.1.0", + "esprima-fb": "3001.1.0-dev-harmony-fb" + } + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "1.1.14" + } + }, + "escodegen": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.1.0.tgz", + "integrity": "sha1-xmOSP24gqtSNDA+knzHG1PSTYM8=", + "dev": true, + "requires": { + "esprima": "1.0.4", + "estraverse": "1.5.1", + "esutils": "1.0.0", + "source-map": "0.1.43" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + } + } + }, + "esprima-fb": { + "version": "3001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", + "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=", + "dev": true + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "dev": true + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", + "dev": true + }, + "events": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/events/-/events-1.0.2.tgz", + "integrity": "sha1-dYSdz+k9EPsFfDAFWv29UdBqjiQ=", + "dev": true + }, + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + } + }, + "gulp-util": { + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-2.2.20.tgz", + "integrity": "sha1-1xRuVyiRC9jwR6awseVJvCLb1kw=", + "dev": true, + "requires": { + "chalk": "0.5.1", + "dateformat": "1.0.12", + "lodash._reinterpolate": "2.4.1", + "lodash.template": "2.4.1", + "minimist": "0.2.0", + "multipipe": "0.1.2", + "through2": "0.5.1", + "vinyl": "0.2.3" + }, + "dependencies": { + "minimist": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz", + "integrity": "sha1-Tf/lJdriuGTGbC4jxicdev3s784=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz", + "integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "3.0.0" + } + } + } + }, + "has-ansi": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", + "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", + "dev": true, + "requires": { + "ansi-regex": "0.2.1" + } + }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "dev": true + }, + "inline-source-map": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.3.1.tgz", + "integrity": "sha1-pSi1FOaJ/OkNswiehw2S9Sestes=", + "dev": true, + "requires": { + "source-map": "0.3.0" + }, + "dependencies": { + "source-map": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.3.0.tgz", + "integrity": "sha1-hYb7mloAXltQHiHNGLbyG0V60fk=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "insert-module-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-6.0.0.tgz", + "integrity": "sha1-7orrne4WgZ4zqhRYilWIJK8MFdw=", + "dev": true, + "requires": { + "JSONStream": "0.7.4", + "concat-stream": "1.4.10", + "lexical-scope": "1.1.1", + "process": "0.6.0", + "through": "2.3.8", + "xtend": "3.0.0" + }, + "dependencies": { + "process": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/process/-/process-0.6.0.tgz", + "integrity": "sha1-fdm+gP+q7dTLYo8YJ/HLq23AkY8=", + "dev": true + } + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "jsonparse": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", + "dev": true + }, + "lexical-scope": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.1.1.tgz", + "integrity": "sha1-3rrBBnQ18TWdkPz9npS8su5Hsr8=", + "dev": true, + "requires": { + "astw": "2.2.0" + } + }, + "lodash._reinterpolate": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz", + "integrity": "sha1-TxInqlqHEfxjL1sHofRgequLMiI=", + "dev": true + }, + "lodash.escape": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-2.4.1.tgz", + "integrity": "sha1-LOEsXghNsKV92l5dHu659dF1o7Q=", + "dev": true, + "requires": { + "lodash._escapehtmlchar": "2.4.1", + "lodash._reunescapedhtml": "2.4.1", + "lodash.keys": "2.4.1" + } + }, + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true, + "requires": { + "lodash._isnative": "2.4.1", + "lodash._shimkeys": "2.4.1", + "lodash.isobject": "2.4.1" + } + }, + "lodash.template": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-2.4.1.tgz", + "integrity": "sha1-nmEQB+32KRKal0qzxIuBez4c8g0=", + "dev": true, + "requires": { + "lodash._escapestringchar": "2.4.1", + "lodash._reinterpolate": "2.4.1", + "lodash.defaults": "2.4.1", + "lodash.escape": "2.4.1", + "lodash.keys": "2.4.1", + "lodash.templatesettings": "2.4.1", + "lodash.values": "2.4.1" + } + }, + "lodash.templatesettings": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz", + "integrity": "sha1-6nbHXRHrhtTb6JqDiTu4YZKaxpk=", + "dev": true, + "requires": { + "lodash._reinterpolate": "2.4.1", + "lodash.escape": "2.4.1" + } + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "2.6.5", + "sigmund": "1.0.1" + } + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "module-deps": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-2.0.6.tgz", + "integrity": "sha1-uZkyHHOsM1gPAHEsDzB1/cpCVj8=", + "dev": true, + "requires": { + "JSONStream": "0.7.4", + "browser-resolve": "1.2.4", + "concat-stream": "1.4.10", + "detective": "3.1.0", + "duplexer2": "0.0.2", + "inherits": "2.0.3", + "minimist": "0.0.10", + "parents": "0.0.2", + "readable-stream": "1.1.14", + "resolve": "0.6.3", + "stream-combiner": "0.1.0", + "through2": "0.4.2" + }, + "dependencies": { + "parents": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/parents/-/parents-0.0.2.tgz", + "integrity": "sha1-ZxR4JuSX1AdZqvW6TJllm2A00wI=", + "dev": true + }, + "stream-combiner": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.1.0.tgz", + "integrity": "sha1-DcOJo8ID+PTVY2j5Xd5S65Jptb4=", + "dev": true, + "requires": { + "duplexer": "0.1.1", + "through": "2.3.8" + } + } + } + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "os-browserify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", + "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parents": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/parents/-/parents-0.0.3.tgz", + "integrity": "sha1-+iEvAk2fpjGNu2tM5nbIvkk7nEM=", + "dev": true, + "requires": { + "path-platform": "0.0.1" + } + }, + "path-platform": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.0.1.tgz", + "integrity": "sha1-tVhdfDxGPYmqAGDYZhHPGv1hfio=", + "dev": true + }, + "process": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/process/-/process-0.7.0.tgz", + "integrity": "sha1-xSIIFho0rfOBI0SuhdPmFQRpOJ0=", + "dev": true + }, + "punycode": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.2.4.tgz", + "integrity": "sha1-VACKyXKux0F13vnLpt9/qdORh0A=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.0.tgz", + "integrity": "sha1-w2WgimnEQ6zP6zqd6rNePwq6pHY=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + }, + "dependencies": { + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=", + "dev": true + }, + "shell-quote": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-0.0.1.tgz", + "integrity": "sha1-GkEZbzwDM8SCMjWT1ohuzxU92YY=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "stream-browserify": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-0.1.3.tgz", + "integrity": "sha1-lc8bNpdy4nra9GNSJlFSaJxsS+k=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "process": "0.5.2" + }, + "dependencies": { + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "dev": true + } + } + }, + "string_decoder": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.0.1.tgz", + "integrity": "sha1-9UctCo0WUOyCN1LSTm/WJ7Ob8UE=", + "dev": true + }, + "strip-ansi": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", + "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "dev": true, + "requires": { + "ansi-regex": "0.2.1" + } + }, + "subarg": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-0.0.1.tgz", + "integrity": "sha1-PVawfaz7xFu7Y/dnK0O2PkY2jjo=", + "dev": true, + "requires": { + "minimist": "0.0.10" + } + }, + "supports-color": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", + "dev": true + }, + "syntax-error": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.1.6.tgz", + "integrity": "sha1-tFSXBtOGzBwdx8JCPxhXm2yt5xA=", + "dev": true, + "requires": { + "acorn": "2.7.0" + } + }, + "through2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", + "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "2.1.2" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "0.4.0" + } + } + } + }, + "timers-browserify": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.0.3.tgz", + "integrity": "sha1-/7pwycEu7ZFv1nMY5imsbzIpVVE=", + "dev": true, + "requires": { + "process": "0.5.2" + }, + "dependencies": { + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "dev": true + } + } + }, + "umd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/umd/-/umd-2.0.0.tgz", + "integrity": "sha1-dJaDsNUUcorg4bYZX1d0r8CtT48=", + "dev": true, + "requires": { + "rfile": "1.0.0", + "ruglify": "1.0.0", + "through": "2.3.8", + "uglify-js": "2.4.24" + } + }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "vinyl": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.2.3.tgz", + "integrity": "sha1-vKk4IJWC7FpJrVOKAPofEl5RMlI=", + "dev": true, + "requires": { + "clone-stats": "0.0.1" + } + }, + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + } + } + }, + "gulp-cache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gulp-cache/-/gulp-cache-1.0.1.tgz", + "integrity": "sha512-bxvGokw83Hhf7V2sneCaQlc3BnzKkAQPkFwSVVHOYQvdGesbOrz87qfv64IddczlaIpC+bvki7XNphyZ40w3aw==", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "cache-swap": "0.3.0", + "gulp-util": "3.0.8", + "object.pick": "1.3.0", + "through2": "2.0.3", + "vinyl": "2.1.0" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "dev": true, + "requires": { + "clone": "2.1.1", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.0.0", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" + } + } + } + }, + "gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "dev": true, + "requires": { + "concat-with-sourcemaps": "1.0.4", + "through2": "2.0.3", + "vinyl": "2.1.0" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "dev": true, + "requires": { + "clone": "2.1.1", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.0.0", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" + } + } + } + }, + "gulp-cssnano": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/gulp-cssnano/-/gulp-cssnano-2.1.2.tgz", + "integrity": "sha1-4IoJdx7FRUpUnxoAW90lbLjl4KM=", + "dev": true, + "requires": { + "cssnano": "3.10.0", + "gulp-util": "3.0.8", + "object-assign": "4.1.1", + "vinyl-sourcemaps-apply": "0.2.1" + } + }, + "gulp-google-webfonts": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/gulp-google-webfonts/-/gulp-google-webfonts-0.0.14.tgz", + "integrity": "sha1-LcmQG2jC93c3ri/FMsMa7G0I4S8=", + "dev": true, + "requires": { + "async": "0.9.2", + "commander": "2.12.2", + "lodash.defaults": "3.1.2", + "mkdirp": "0.5.1", + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "lodash.assign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", + "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", + "dev": true, + "requires": { + "lodash._baseassign": "3.2.0", + "lodash._createassigner": "3.1.1", + "lodash.keys": "3.1.2" + } + }, + "lodash.defaults": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", + "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", + "dev": true, + "requires": { + "lodash.assign": "3.2.0", + "lodash.restparam": "3.6.1" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "0.2.0", + "clone-stats": "0.0.1" + } + } + } + }, + "gulp-html-replace": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/gulp-html-replace/-/gulp-html-replace-1.6.2.tgz", + "integrity": "sha1-HhBm+m+FOMjRmemaNENHLyu0YkI=", + "dev": true, + "requires": { + "bluebird": "3.5.1", + "clone": "1.0.3", + "object-assign": "4.1.1", + "readable-stream": "2.3.3", + "slash": "1.0.0", + "vinyl-buffer": "1.0.0" + } + }, + "gulp-htmlmin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-htmlmin/-/gulp-htmlmin-3.0.0.tgz", + "integrity": "sha1-GeqAAtEjHWsfGKEtIPKmand3D7M=", + "dev": true, + "requires": { + "bufferstreams": "1.1.3", + "gulp-util": "3.0.8", + "html-minifier": "3.5.7", + "object-assign": "4.1.1", + "readable-stream": "2.3.3", + "tryit": "1.0.3" + } + }, + "gulp-inject": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gulp-inject/-/gulp-inject-4.3.0.tgz", + "integrity": "sha1-pnpYmabH7PnHx/HOufBh8cb0uJg=", + "dev": true, + "requires": { + "arrify": "1.0.1", + "escape-string-regexp": "1.0.5", + "event-stream": "3.3.4", + "group-array": "0.3.3", + "gulp-util": "3.0.8", + "stream-to-array": "2.3.0", + "through2": "2.0.3" + } + }, + "gulp-jshint": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/gulp-jshint/-/gulp-jshint-2.0.4.tgz", + "integrity": "sha1-84KxhWSxBy3vDJqvdTwUba208Og=", + "dev": true, + "requires": { + "gulp-util": "3.0.8", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "rcloader": "0.2.2", + "through2": "2.0.3" + } + }, + "gulp-rename": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", + "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=", + "dev": true + }, + "gulp-sass": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.1.0.tgz", + "integrity": "sha1-U9xLaKH13f5EJKtMJHZVJpqLdLc=", + "dev": true, + "requires": { + "gulp-util": "3.0.8", + "lodash.clonedeep": "4.5.0", + "node-sass": "4.7.2", + "through2": "2.0.3", + "vinyl-sourcemaps-apply": "0.2.1" + } + }, + "gulp-scss": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gulp-scss/-/gulp-scss-1.4.0.tgz", + "integrity": "sha1-0Xy0GNFZOBX8N154ms2a6jq4TAo=", + "dev": true, + "requires": { + "convert-source-map": "1.1.3", + "dargs": "5.1.0", + "extend": "3.0.1", + "gulp-util": "3.0.8", + "mkdirp": "0.5.1", + "node-kissdi": "1.0.3", + "q": "1.4.1", + "through2": "2.0.3", + "vinyl-sourcemaps-apply": "0.2.1" + } + }, + "gulp-sourcemaps": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.1.tgz", + "integrity": "sha512-1qHCI3hdmsMdq/SUotxwUh/L8YzlI6J9zQ5ifNOtx4Y6KV5y5sGuORv1KZzWhuKtz/mXNh5xLESUtwC4EndCjA==", + "dev": true, + "requires": { + "@gulp-sourcemaps/identity-map": "1.0.1", + "@gulp-sourcemaps/map-sources": "1.0.0", + "acorn": "4.0.13", + "convert-source-map": "1.1.3", + "css": "2.2.1", + "debug-fabulous": "1.0.0", + "detect-newline": "2.1.0", + "graceful-fs": "4.1.11", + "source-map": "0.5.7", + "strip-bom-string": "1.0.0", + "through2": "2.0.3", + "vinyl": "1.2.0" + }, + "dependencies": { + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true, + "requires": { + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "gulp-streamify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/gulp-streamify/-/gulp-streamify-1.0.2.tgz", + "integrity": "sha1-ANazgU1IbAiPeHOO0HZqvBY4nk0=", + "dev": true, + "requires": { + "plexer": "1.0.1" + } + }, + "gulp-tasks": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/gulp-tasks/-/gulp-tasks-0.0.2.tgz", + "integrity": "sha1-yDJDEUg77JP2tBjm6mr6JV3beaQ=", + "dev": true + }, + "gulp-uglify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz", + "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=", + "dev": true, + "requires": { + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash": "4.17.4", + "make-error-cause": "1.2.2", + "through2": "2.0.3", + "uglify-js": "3.2.2", + "vinyl-sourcemaps-apply": "0.2.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-js": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.2.2.tgz", + "integrity": "sha512-++1NO/zZIEdWf6cDIGceSJQPX31SqIpbVAHwFG5+240MtZqPG/NIPoinj8zlXQtAfMBqEt1Jyv2FiLP3n9gVhQ==", + "dev": true, + "requires": { + "commander": "2.12.2", + "source-map": "0.6.1" + } + } + } + }, + "gulp-uglify-es": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/gulp-uglify-es/-/gulp-uglify-es-0.1.9.tgz", + "integrity": "sha512-Vp3IL66RInqqYrzAqRtZ9wfQ1ikrizruKM9ks1+k5fP4hcwlqluMkHfHEfMj/dR6A/uN0mOvRF/BOtFudm0qSg==", + "dev": true, + "requires": { + "o-stream": "0.2.2", + "uglify-es": "3.2.2", + "vinyl-sourcemaps-apply": "0.2.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-es": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.2.2.tgz", + "integrity": "sha512-l+s5VLzFwGJfS+fbqaGf/Dfwo1MF13jLOF2ekL0PytzqEqQ6cVppvHf4jquqFok+35USMpKjqkYxy6pQyUcuug==", + "dev": true, + "requires": { + "commander": "2.12.2", + "source-map": "0.6.1" + } + } + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, + "requires": { + "array-differ": "1.0.0", + "array-uniq": "1.0.3", + "beeper": "1.1.1", + "chalk": "1.1.3", + "dateformat": "2.2.0", + "fancy-log": "1.3.2", + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash._reescape": "3.0.0", + "lodash._reevaluate": "3.0.0", + "lodash._reinterpolate": "3.0.0", + "lodash.template": "3.6.2", + "minimist": "1.2.0", + "multipipe": "0.1.2", + "object-assign": "3.0.0", + "replace-ext": "0.0.1", + "through2": "2.0.3", + "vinyl": "0.5.3" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "gulp-webpack": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/gulp-webpack/-/gulp-webpack-1.5.0.tgz", + "integrity": "sha1-eqaD/ojALSRhSOJ8cinLa2KJLbo=", + "dev": true, + "requires": { + "gulp-util": "3.0.8", + "memory-fs": "0.2.0", + "through": "2.3.8", + "vinyl": "0.5.3", + "webpack": "1.15.0" + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "5.5.1", + "har-schema": "2.0.0" + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "requires": { + "sparkles": "1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "requires": { + "inherits": "2.0.3" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hipchat-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz", + "integrity": "sha1-ttJJdVQ3wZEII2d5nTupoPI7Ix4=", + "optional": true, + "requires": { + "lodash": "4.17.4", + "request": "2.83.0" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "1.0.0" + } + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true + }, + "html-minifier": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.7.tgz", + "integrity": "sha512-GISXn6oKDo7+gVpKOgZJTbHMCUI2TSGfpg/8jgencWhWJsvEmsvp3M8emX7QocsXsYznWloLib3OeSfeyb/ewg==", + "dev": true, + "requires": { + "camel-case": "3.0.0", + "clean-css": "4.1.9", + "commander": "2.12.2", + "he": "1.1.1", + "ncname": "1.0.0", + "param-case": "2.1.1", + "relateurl": "0.2.7", + "uglify-js": "3.2.2" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-js": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.2.2.tgz", + "integrity": "sha512-++1NO/zZIEdWf6cDIGceSJQPX31SqIpbVAHwFG5+240MtZqPG/NIPoinj8zlXQtAfMBqEt1Jyv2FiLP3n9gVhQ==", + "dev": true, + "requires": { + "commander": "2.12.2", + "source-map": "0.6.1" + } + } + } + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=" + }, + "http-browserify": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.3.2.tgz", + "integrity": "sha1-tWLDRHk0mmkNemWX30la76jGBPU=", + "dev": true, + "requires": { + "Base64": "0.2.1", + "inherits": "2.0.3" + } + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + }, + "dependencies": { + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } + } + }, + "http-proxy-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz", + "integrity": "sha1-zBzjjkU7+YSg93AtLdWcc9CBKEo=", + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.1" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "httpntlm": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz", + "integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=", + "requires": { + "httpreq": "0.4.24", + "underscore": "1.7.0" + }, + "dependencies": { + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + } + } + }, + "httpreq": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz", + "integrity": "sha1-QzX/2CzZaWaKOUZckprGHWOTYn8=" + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "https-proxy-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", + "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.1" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflection": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.10.0.tgz", + "integrity": "sha1-W//LEZetPoEFD44X4hZoCH7p6y8=", + "optional": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "requires": { + "source-map": "0.5.7" + } + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.0", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.0", + "figures": "2.0.0", + "lodash": "4.17.4", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "insert-module-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", + "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=", + "requires": { + "JSONStream": "1.3.1", + "combine-source-map": "0.7.2", + "concat-stream": "1.5.2", + "is-buffer": "1.1.6", + "lexical-scope": "1.2.0", + "process": "0.11.10", + "through2": "2.0.3", + "xtend": "4.0.1" + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.0.1.tgz", + "integrity": "sha1-x+NWzeoiWucbNtcPLnGpK6TkJZA=", + "optional": true + }, + "ipaddr.js": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + }, + "is-absolute": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", + "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", + "dev": true, + "requires": { + "is-relative": "0.2.1", + "is-windows": "0.2.0" + }, + "dependencies": { + "is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", + "dev": true + } + } + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "1.11.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.1.tgz", + "integrity": "sha512-G3fFVFTqfaqu7r4YuSBHKBAuOaLz8Sy7ekklUpFEliaLMP1Y2ZjoN9jS62YWCAPQrQpMUQSitRlrzibbuCZjdA==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-my-json-valid": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", + "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-odd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", + "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", + "dev": true, + "requires": { + "is-number": "3.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + } + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.1" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "1.0.1" + } + }, + "is-relative": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", + "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", + "dev": true, + "requires": { + "is-unc-path": "0.1.2" + } + }, + "is-resolvable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.1.tgz", + "integrity": "sha512-y5CXYbzvB3jTnWAZH1Nl7ykUWb6T3BcTs56HUruwBf8MhF56n1HWqhDWnVFo8GHrUPDgvUUNVhrc2U8W7iqz5g==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, + "requires": { + "html-comment-regex": "1.1.1" + } + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-unc-path": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", + "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", + "dev": true, + "requires": { + "unc-path-regex": "0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", + "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jquery": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", + "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=" + }, + "js-base64": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.0.tgz", + "integrity": "sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + } + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "dev": true, + "requires": { + "array-includes": "3.0.3" + } + }, + "just-extend": { + "version": "1.1.27", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", + "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "labeled-stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", + "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", + "requires": { + "inherits": "2.0.3", + "isarray": "0.0.1", + "stream-splicer": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + } + } + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "dev": true, + "requires": { + "set-getter": "0.1.0" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lexical-scope": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", + "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", + "requires": { + "astw": "2.2.0" + } + }, + "libbase64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz", + "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=" + }, + "libmime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz", + "integrity": "sha1-UaGp50SOy9Ms2lRCFnW7IbwJPaY=", + "requires": { + "iconv-lite": "0.4.15", + "libbase64": "0.1.0", + "libqp": "1.1.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" + } + } + }, + "libqp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz", + "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=" + }, + "liftoff": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.4.0.tgz", + "integrity": "sha1-H7M+brKLAnx71TrSLr/JGlHm758=", + "dev": true, + "requires": { + "extend": "3.0.1", + "findup-sync": "2.0.0", + "fined": "1.1.0", + "flagged-respawn": "0.3.2", + "is-plain-object": "2.0.4", + "object.map": "1.0.0", + "rechoir": "0.6.2", + "resolve": "1.5.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + } + } + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true, + "requires": { + "lodash._basecopy": "3.0.1", + "lodash.keys": "3.1.2" + } + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basecreate": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", + "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", + "dev": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "dev": true + }, + "lodash._createassigner": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", + "dev": true, + "requires": { + "lodash._bindcallback": "3.0.1", + "lodash._isiterateecall": "3.0.9", + "lodash.restparam": "3.6.1" + } + }, + "lodash._escapehtmlchar": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz", + "integrity": "sha1-32fDu2t+jh6DGrSL+geVuSr+iZ0=", + "dev": true, + "requires": { + "lodash._htmlescapes": "2.4.1" + } + }, + "lodash._escapestringchar": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz", + "integrity": "sha1-7P4iYYoq3lC/7qQ5N+Ud9m8O23I=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._htmlescapes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz", + "integrity": "sha1-MtFL8IRLbeb4tioFG09nwii2JMs=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._isnative": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", + "integrity": "sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw=", + "dev": true + }, + "lodash._objecttypes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", + "integrity": "sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE=", + "dev": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._reunescapedhtml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz", + "integrity": "sha1-dHxPxAED6zu4oJduVx96JlnpO6c=", + "dev": true, + "requires": { + "lodash._htmlescapes": "2.4.1", + "lodash.keys": "2.4.1" + }, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true, + "requires": { + "lodash._isnative": "2.4.1", + "lodash._shimkeys": "2.4.1", + "lodash.isobject": "2.4.1" + } + } + } + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash._shimkeys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", + "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=", + "dev": true, + "requires": { + "lodash._objecttypes": "2.4.1" + } + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.create": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", + "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", + "dev": true, + "requires": { + "lodash._baseassign": "3.2.0", + "lodash._basecreate": "3.0.3", + "lodash._isiterateecall": "3.0.9" + } + }, + "lodash.defaults": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-2.4.1.tgz", + "integrity": "sha1-p+iIXwXmiFEUS24SqPNngCa8TFQ=", + "dev": true, + "requires": { + "lodash._objecttypes": "2.4.1", + "lodash.keys": "2.4.1" + }, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true, + "requires": { + "lodash._isnative": "2.4.1", + "lodash._shimkeys": "2.4.1", + "lodash.isobject": "2.4.1" + } + } + } + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, + "requires": { + "lodash._root": "3.0.1" + } + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.isobject": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", + "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", + "dev": true, + "requires": { + "lodash._objecttypes": "2.4.1" + } + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=" + }, + "lodash.merge": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz", + "integrity": "sha1-aYhLoUSsM/5plzemCG3v+t0PicU=", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", + "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=", + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, + "requires": { + "lodash._basecopy": "3.0.1", + "lodash._basetostring": "3.0.1", + "lodash._basevalues": "3.0.0", + "lodash._isiterateecall": "3.0.9", + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0", + "lodash.keys": "3.1.2", + "lodash.restparam": "3.6.1", + "lodash.templatesettings": "3.1.1" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, + "requires": { + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "lodash.values": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz", + "integrity": "sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ=", + "dev": true, + "requires": { + "lodash.keys": "2.4.1" + }, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true, + "requires": { + "lodash._isnative": "2.4.1", + "lodash._shimkeys": "2.4.1", + "lodash.isobject": "2.4.1" + } + } + } + }, + "log4js": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.4.1.tgz", + "integrity": "sha512-GohFT8UU/Mq++o2NAp87r6cZi4bCNT4inPimRBWa+ewd6PVeA5xJTNmgdEcSYDOXzxk7hCyLh0gmpJNEPgLS+g==", + "requires": { + "axios": "0.15.3", + "circular-json": "0.4.0", + "date-format": "1.2.0", + "debug": "3.1.0", + "hipchat-notifier": "1.1.0", + "loggly": "1.1.1", + "mailgun-js": "0.7.15", + "nodemailer": "2.7.2", + "redis": "2.8.0", + "semver": "5.4.1", + "slack-node": "0.2.0", + "streamroller": "0.7.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "loggly": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/loggly/-/loggly-1.1.1.tgz", + "integrity": "sha1-Cg/B0/o6XsRP3HuJe+uipGlc6+4=", + "optional": true, + "requires": { + "json-stringify-safe": "5.0.1", + "request": "2.75.0", + "timespan": "2.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "optional": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "optional": true + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "optional": true, + "requires": { + "boom": "2.10.1" + } + }, + "form-data": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.0.0.tgz", + "integrity": "sha1-bwrrrcxdoWwT4ezBETfYX5uIOyU=", + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "optional": true, + "requires": { + "chalk": "1.1.3", + "commander": "2.12.2", + "is-my-json-valid": "2.16.1", + "pinkie-promise": "2.0.1" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "optional": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "optional": true + }, + "qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "optional": true + }, + "request": { + "version": "2.75.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.75.0.tgz", + "integrity": "sha1-0rgmiihtoT6qXQGt9dGMyQ9lfZM=", + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "bl": "1.1.2", + "caseless": "0.11.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.0.0", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "node-uuid": "1.4.8", + "oauth-sign": "0.8.2", + "qs": "6.2.3", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.4.3" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "optional": true, + "requires": { + "hoek": "2.16.3" + } + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "optional": true + } + } + }, + "lolex": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.1.tgz", + "integrity": "sha512-mQuW55GhduF3ppo+ZRUTz1PRjEh1hS5BbqU7d8D0ez2OKxHDod7StPPeAVKisZR5aLkHZjdGWSL42LSONUJsZw==", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "3.0.2" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz", + "integrity": "sha1-5W1jVBSO3o13B7WNFDIg/QjfD9U=" + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dev": true, + "requires": { + "es5-ext": "0.10.37" + } + }, + "macaddress": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", + "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", + "dev": true + }, + "mailcomposer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-4.0.1.tgz", + "integrity": "sha1-DhxEsqB890DuF9wUm6AJ8Zyt/rQ=", + "optional": true, + "requires": { + "buildmail": "4.0.1", + "libmime": "3.0.0" + } + }, + "mailgun-js": { + "version": "0.7.15", + "resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.7.15.tgz", + "integrity": "sha1-7jZqINrGTDwVwD1sGz4O15UlKrs=", + "optional": true, + "requires": { + "async": "2.1.5", + "debug": "2.2.0", + "form-data": "2.1.4", + "inflection": "1.10.0", + "is-stream": "1.1.0", + "path-proxy": "1.0.0", + "proxy-agent": "2.0.0", + "q": "1.4.1", + "tsscmp": "1.0.5" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "optional": true, + "requires": { + "ms": "0.7.1" + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "optional": true + } + } + }, + "make-dir": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", + "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + }, + "make-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", + "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", + "dev": true + }, + "make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "dev": true, + "requires": { + "make-error": "1.3.0" + } + }, + "make-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", + "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memoizee": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.11.tgz", + "integrity": "sha1-vemBdmPJ5A/bKk6hw2cpYIeujI8=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37", + "es6-weak-map": "2.0.2", + "event-emitter": "0.3.5", + "is-promise": "2.1.0", + "lru-queue": "0.1.0", + "next-tick": "1.0.0", + "timers-ext": "0.1.2" + } + }, + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.0" + } + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "dev": true + }, + "minibus": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minibus/-/minibus-3.1.0.tgz", + "integrity": "sha1-/UKe2XWj/U5VbwxumqyaTqy80ZM=" + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mixin-deep": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.0.tgz", + "integrity": "sha512-dgaCvoh6i1nosAUBKb0l0pfJ78K8+S9fluyIR2YvAeUD/QuMahnFnF3xYty5eYXMjhGSsB0DsW6A0uAZyetoAg==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "mocha": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", + "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==", + "dev": true, + "requires": { + "browser-stdout": "1.3.0", + "commander": "2.9.0", + "debug": "2.6.8", + "diff": "3.2.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.1", + "growl": "1.9.2", + "he": "1.1.1", + "json3": "3.3.2", + "lodash.create": "3.1.1", + "mkdirp": "0.5.1", + "supports-color": "3.1.2" + }, + "dependencies": { + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "requires": { + "graceful-readlink": "1.0.1" + } + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", + "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "module-deps": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", + "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", + "requires": { + "JSONStream": "1.3.1", + "browser-resolve": "1.11.2", + "cached-path-relative": "1.0.1", + "concat-stream": "1.5.2", + "defined": "1.0.0", + "detective": "4.7.0", + "duplexer2": "0.1.4", + "inherits": "2.0.3", + "parents": "1.0.1", + "readable-stream": "2.3.3", + "resolve": "1.5.0", + "stream-combiner2": "1.1.1", + "subarg": "1.0.0", + "through2": "2.0.3", + "xtend": "4.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "muicss": { + "version": "0.9.33", + "resolved": "https://registry.npmjs.org/muicss/-/muicss-0.9.33.tgz", + "integrity": "sha512-ElG+22FW8ukdG8N1unNRrr1+AjkSaa6JKOpv+WMQmWpUjuHTyshe+5f8BIiOhXqeO8K7HTC96qO9EX6eXE2wSg==", + "requires": { + "react-addons-shallow-compare": "15.6.2" + } + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, + "requires": { + "duplexer2": "0.0.2" + }, + "dependencies": { + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "1.1.14" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", + "dev": true + }, + "nanomatch": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.6.tgz", + "integrity": "sha512-WJ6XTCbvWXUFPbi/bDwKcYkCeOGUHzaJj72KbuPqGn78Ba/F5Vu26Zlo6SuMQbCIst1RGKL1zfWBCOGAlbRLAg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "is-odd": "1.0.0", + "kind-of": "5.1.0", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "natives": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.1.tgz", + "integrity": "sha512-8eRaxn8u/4wN8tGkhlc2cgwwvOLMLUMUn4IYTexMgWd+LyUDfeXVkk2ygQR0hvIHbJQXgHujia3ieUUDwNGkEA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "ncname": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", + "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", + "dev": true, + "requires": { + "xml-char-classes": "1.0.0" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "netmask": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=", + "optional": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nise": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.2.0.tgz", + "integrity": "sha512-q9jXh3UNsMV28KeqI43ILz5+c3l+RiNW8mhurEwCKckuHQbL+hTJIKKTiUlCPKlgQ/OukFvSnKB/Jk3+sFbkGA==", + "dev": true, + "requires": { + "formatio": "1.2.0", + "just-extend": "1.1.27", + "lolex": "1.6.0", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "lolex": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", + "integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=", + "dev": true + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "1.1.4" + } + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, + "node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "dev": true, + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.4", + "request": "2.83.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.0" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-kissdi": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/node-kissdi/-/node-kissdi-1.0.3.tgz", + "integrity": "sha1-36zk/YuNFYUA3CccCXS+lAlZqbA=", + "dev": true, + "requires": { + "deepcopy": "0.5.0" + } + }, + "node-libs-browser": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", + "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.1.4", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.3.0", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "0.0.1", + "os-browserify": "0.2.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "0.10.31", + "timers-browserify": "2.0.4", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "browserify-aes": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", + "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "requires": { + "pako": "0.2.9" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + }, + "crypto-browserify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", + "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", + "dev": true, + "requires": { + "browserify-aes": "0.4.0", + "pbkdf2-compat": "2.0.1", + "ripemd160": "0.2.0", + "sha.js": "2.2.6" + } + }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "dev": true + }, + "os-browserify": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "ripemd160": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", + "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", + "dev": true + }, + "sha.js": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", + "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "dev": true, + "requires": { + "setimmediate": "1.0.5" + } + } + } + }, + "node-sass": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz", + "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==", + "dev": true, + "requires": { + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.2", + "get-stdin": "4.0.1", + "glob": "7.1.2", + "in-publish": "2.0.0", + "lodash.assign": "4.2.0", + "lodash.clonedeep": "4.5.0", + "lodash.mergewith": "4.6.0", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.8.0", + "node-gyp": "3.6.2", + "npmlog": "4.1.2", + "request": "2.79.0", + "sass-graph": "2.2.4", + "stdout-stream": "1.4.0", + "true-case-path": "1.0.2" + }, + "dependencies": { + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "which": "1.3.0" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "gaze": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "dev": true, + "requires": { + "globule": "1.2.0" + } + }, + "globule": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "minimatch": "3.0.4" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "commander": "2.12.2", + "is-my-json-valid": "2.16.1", + "pinkie-promise": "2.0.1" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.11.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.4.3", + "uuid": "3.1.0" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + } + } + }, + "nodemailer": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-2.7.2.tgz", + "integrity": "sha1-8kLmSa7q45tsftdA73sGHEBNMPk=", + "optional": true, + "requires": { + "libmime": "3.0.0", + "mailcomposer": "4.0.1", + "nodemailer-direct-transport": "3.3.2", + "nodemailer-shared": "1.1.0", + "nodemailer-smtp-pool": "2.8.2", + "nodemailer-smtp-transport": "2.7.2", + "socks": "1.1.9" + }, + "dependencies": { + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "optional": true + }, + "socks": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz", + "integrity": "sha1-Yo1+TQSRJDVEWsC25Fk3bLPm1pE=", + "optional": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "1.1.15" + } + } + } + }, + "nodemailer-direct-transport": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz", + "integrity": "sha1-6W+vuQNYVglH5WkBfZfmBzilCoY=", + "optional": true, + "requires": { + "nodemailer-shared": "1.1.0", + "smtp-connection": "2.12.0" + } + }, + "nodemailer-fetch": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", + "integrity": "sha1-ecSQihwPXzdbc/6IjamCj23JY6Q=" + }, + "nodemailer-shared": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz", + "integrity": "sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=", + "requires": { + "nodemailer-fetch": "1.6.0" + } + }, + "nodemailer-smtp-pool": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz", + "integrity": "sha1-LrlNbPhXgLG0clzoU7nL1ejajHI=", + "optional": true, + "requires": { + "nodemailer-shared": "1.1.0", + "nodemailer-wellknown": "0.1.10", + "smtp-connection": "2.12.0" + } + }, + "nodemailer-smtp-transport": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz", + "integrity": "sha1-A9ccdjFPFKx9vHvwM6am0W1n+3c=", + "optional": true, + "requires": { + "nodemailer-shared": "1.1.0", + "nodemailer-wellknown": "0.1.10", + "smtp-connection": "2.12.0" + } + }, + "nodemailer-wellknown": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz", + "integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U=" + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "prepend-http": "1.0.4", + "query-string": "4.3.4", + "sort-keys": "1.1.2" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "o-stream": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/o-stream/-/o-stream-0.2.2.tgz", + "integrity": "sha512-V3j76KU3g/Gyl8rpdi2z72rn5zguMvTCQgAXfBe3pxEefKqXmOUOD7mvx/mNjykdxGqDVfpSoo8r+WdrkWg/1Q==", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + } + } + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "1.0.1", + "array-slice": "1.1.0", + "for-own": "1.0.0", + "isobject": "3.0.1" + }, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.0.tgz", + "integrity": "sha1-kq74cc1ty87TH+KcCSHbg5ViRZc=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "make-iterator": "1.0.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "optimist": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", + "dev": true, + "requires": { + "wordwrap": "0.0.3" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + } + }, + "orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "dev": true, + "requires": { + "end-of-stream": "0.1.5", + "sequencify": "0.0.7", + "stream-consume": "0.1.0" + } + }, + "ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", + "dev": true + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "outpipe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", + "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "dev": true, + "requires": { + "shell-quote": "1.6.1" + } + }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" + } + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.1.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "pac-proxy-agent": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz", + "integrity": "sha512-QBELCWyLYPgE2Gj+4wUEiMscHrQ8nRPBzYItQNOHWavwBt25ohZHQC4qnd5IszdVVrFbLsQ+dPkm6eqdjJAmwQ==", + "optional": true, + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.1", + "get-uri": "2.0.1", + "http-proxy-agent": "1.0.0", + "https-proxy-agent": "1.0.0", + "pac-resolver": "2.0.0", + "raw-body": "2.3.2", + "socks-proxy-agent": "2.1.1" + } + }, + "pac-resolver": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-2.0.0.tgz", + "integrity": "sha1-mbiNLxk/ve78HJpSnB8yYKtSd80=", + "optional": true, + "requires": { + "co": "3.0.6", + "degenerator": "1.0.4", + "ip": "1.0.1", + "netmask": "1.0.6", + "thunkify": "2.1.2" + }, + "dependencies": { + "co": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/co/-/co-3.0.6.tgz", + "integrity": "sha1-FEXyJsXrlWE45oyawwFn6n0ua9o=", + "optional": true + } + } + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "2.3.2" + } + }, + "parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "requires": { + "path-platform": "0.11.15" + } + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "requires": { + "asn1.js": "4.9.2", + "browserify-aes": "1.1.1", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.14" + } + }, + "parse-filepath": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz", + "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", + "dev": true, + "requires": { + "is-absolute": "0.2.6", + "map-cache": "0.2.2", + "path-root": "0.1.1" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + }, + "path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=" + }, + "path-proxy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz", + "integrity": "sha1-GOijaFn8nS8aU7SN7hOFQ8Ag3l4=", + "optional": true, + "requires": { + "inflection": "1.3.8" + }, + "dependencies": { + "inflection": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.3.8.tgz", + "integrity": "sha1-y9Fg2p91sUw8xjV41POWeEvzAU4=", + "optional": true + } + } + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "0.1.2" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "pbkdf2": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "requires": { + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" + } + }, + "pbkdf2-compat": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", + "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "2.1.0" + } + }, + "plexer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plexer/-/plexer-1.0.1.tgz", + "integrity": "sha1-qAG2Ur+BRXOXlepNO/CvlGwwwN0=", + "dev": true, + "requires": { + "isstream": "0.1.2", + "readable-stream": "2.3.3" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-message-helpers": "2.0.0", + "reduce-css-calc": "1.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true, + "requires": { + "colormin": "1.1.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true, + "requires": { + "postcss": "5.2.18" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true, + "requires": { + "postcss": "5.2.18" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true, + "requires": { + "postcss": "5.2.18" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true, + "requires": { + "postcss": "5.2.18" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "uniqs": "2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-filter-plugins": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", + "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "uniqid": "4.1.1" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true, + "requires": { + "postcss": "5.2.18" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-api": "1.6.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3", + "vendors": "1.0.1" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000783", + "electron-to-chromium": "1.3.28" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "uniqs": "2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true, + "requires": { + "postcss": "5.2.18" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true, + "requires": { + "is-absolute-url": "2.1.0", + "normalize-url": "1.9.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true, + "requires": { + "postcss": "5.2.18" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "requires": { + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true, + "requires": { + "is-svg": "2.1.0", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "svgo": "0.7.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "uniqs": "2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "uniqs": "2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "2.0.6" + } + }, + "prop-types": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", + "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", + "dev": true, + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, + "proxy-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" + } + }, + "proxy-agent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-2.0.0.tgz", + "integrity": "sha1-V+tTR6qAXXTsaByyVknbo5yTNJk=", + "optional": true, + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.1", + "http-proxy-agent": "1.0.0", + "https-proxy-agent": "1.0.0", + "lru-cache": "2.6.5", + "pac-proxy-agent": "1.1.0", + "socks-proxy-agent": "2.1.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.5" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "randombytes": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", + "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "randomfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", + "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "requires": { + "randombytes": "2.0.5", + "safe-buffer": "5.1.1" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } + }, + "rcfinder": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.9.tgz", + "integrity": "sha1-8+gPOH3fmugK4wpBADKWQuroERU=", + "dev": true, + "requires": { + "lodash.clonedeep": "4.5.0" + } + }, + "rcloader": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/rcloader/-/rcloader-0.2.2.tgz", + "integrity": "sha1-WNIpi0YtC5v9ITPSoex0+9cFxxc=", + "dev": true, + "requires": { + "lodash.assign": "4.2.0", + "lodash.isobject": "3.0.2", + "lodash.merge": "4.6.0", + "rcfinder": "0.1.9" + }, + "dependencies": { + "lodash.isobject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", + "dev": true + } + } + }, + "react-addons-shallow-compare": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react-addons-shallow-compare/-/react-addons-shallow-compare-15.6.2.tgz", + "integrity": "sha1-GYoAuR/DdiPbZKKP0XtZa6NicC8=", + "requires": { + "fbjs": "0.8.16", + "object-assign": "4.1.1" + } + }, + "read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "requires": { + "readable-stream": "2.3.3" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "1.5.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "redis": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", + "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==", + "optional": true, + "requires": { + "double-ended-queue": "2.1.0-0", + "redis-commands": "1.3.1", + "redis-parser": "2.6.0" + } + }, + "redis-commands": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.1.tgz", + "integrity": "sha1-gdgm9F+pyLIBH0zXoP5ZfSQdRCs=", + "optional": true + }, + "redis-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz", + "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=", + "optional": true + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "math-expression-evaluator": "1.2.17", + "reduce-function-call": "1.0.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "requires": { + "balanced-match": "0.4.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regex-not": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", + "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "requestretry": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.12.2.tgz", + "integrity": "sha512-wDYnH4imurLs5upu31WoPaOFfEu31qhFlF7KgpYbBsmBagFmreZZo8E/XpoQ3erCP5za+72t8k8QI4wlrtwVXw==", + "optional": true, + "requires": { + "extend": "3.0.1", + "lodash": "4.17.4", + "request": "2.83.0", + "when": "3.7.8" + } + }, + "require-dir": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/require-dir/-/require-dir-0.3.2.tgz", + "integrity": "sha1-wdXHXp+//eny5rM+OD209ZS1pqk=", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + } + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "global-modules": "1.0.0" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "rfile": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rfile/-/rfile-1.0.0.tgz", + "integrity": "sha1-WXCM+Qyh50xUw8/Fw2/bmBBDUmE=", + "dev": true, + "requires": { + "callsite": "1.0.0", + "resolve": "0.3.1" + }, + "dependencies": { + "resolve": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.3.1.tgz", + "integrity": "sha1-NMY0R8ZkxwWY0cmxJvxDsqJDEKQ=", + "dev": true + } + } + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + } + }, + "ruglify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ruglify/-/ruglify-1.0.0.tgz", + "integrity": "sha1-3Ikw4qlUSidDAcyZcldMDQmGtnU=", + "dev": true, + "requires": { + "rfile": "1.0.0", + "uglify-js": "2.2.5" + }, + "dependencies": { + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "uglify-js": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz", + "integrity": "sha1-puAqcNg5eSuXgEiLe4sYTAlcmcc=", + "dev": true, + "requires": { + "optimist": "0.3.7", + "source-map": "0.1.43" + } + } + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "2.1.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "4.0.8" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "samsam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", + "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "scss-tokenizer": "0.2.3", + "yargs": "7.1.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "2.4.0", + "source-map": "0.4.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + } + }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "dev": true + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "dev": true, + "requires": { + "to-object-path": "0.3.0" + } + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "sha.js": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=", + "dev": true + }, + "shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "requires": { + "json-stable-stringify": "0.0.1", + "sha.js": "2.4.9" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "requires": { + "array-filter": "0.0.1", + "array-map": "0.0.0", + "array-reduce": "0.0.0", + "jsonify": "0.0.0" + } + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sinon": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.1.3.tgz", + "integrity": "sha512-c7u0ZuvBRX1eXuB4jN3BRCAOGiUTlM8SE3TxbJHrNiHUKL7wonujMOB6Fi1gQc00U91IscFORQHDga/eccqpbw==", + "dev": true, + "requires": { + "diff": "3.2.0", + "formatio": "1.2.0", + "lodash.get": "4.4.2", + "lolex": "2.3.1", + "nise": "1.2.0", + "supports-color": "4.5.0", + "type-detect": "4.0.5" + }, + "dependencies": { + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "slack-node": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/slack-node/-/slack-node-0.2.0.tgz", + "integrity": "sha1-3kuN3aqLeT9h29KTgQT9q/N9+jA=", + "optional": true, + "requires": { + "requestretry": "1.12.2" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0" + } + }, + "smart-buffer": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", + "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" + }, + "smtp-connection": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz", + "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=", + "requires": { + "httpntlm": "1.6.1", + "nodemailer-shared": "1.1.0" + } + }, + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "dev": true, + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "requires": { + "hoek": "4.2.0" + } + }, + "socks": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", + "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", + "requires": { + "ip": "1.1.5", + "smart-buffer": "1.1.15" + }, + "dependencies": { + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + } + } + }, + "socks-proxy-agent": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz", + "integrity": "sha512-sFtmYqdUK5dAMh85H0LEVFUCO7OhJJe1/z2x/Z6mxp3s7/QPf1RkZmpZy+BpuU0bEjcV9npqKjq9Y3kwFUjnxw==", + "requires": { + "agent-base": "2.1.1", + "extend": "3.0.1", + "socks": "1.1.10" + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "1.1.0" + } + }, + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sparkles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "dev": true + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.1.tgz", + "integrity": "sha512-Fg1xXAv+qXKdwHiJFMcZSqsMcbPlkzsZtf8KkLJ2fqnP+lqg2RjEKgDcSfO9CO1+p4LZKgApDBUUUqKaaRhwZQ==", + "dev": true, + "requires": { + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + }, + "stdout-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", + "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "dev": true, + "requires": { + "readable-stream": "2.3.3" + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "dev": true, + "requires": { + "duplexer": "0.1.1" + } + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "requires": { + "duplexer2": "0.1.4", + "readable-stream": "2.3.3" + } + }, + "stream-consume": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", + "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", + "dev": true + }, + "stream-http": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" + } + }, + "stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", + "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "stream-to-array": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", + "integrity": "sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=", + "dev": true, + "requires": { + "any-promise": "1.3.0" + } + }, + "streamroller": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz", + "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==", + "requires": { + "date-format": "1.2.0", + "debug": "3.1.0", + "mkdirp": "0.5.1", + "readable-stream": "2.3.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dev": true, + "requires": { + "first-chunk-stream": "1.0.0", + "is-utf8": "0.2.1" + } + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "requires": { + "minimist": "1.2.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, + "requires": { + "coa": "1.0.4", + "colors": "1.1.2", + "csso": "2.3.2", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "sax": "1.2.4", + "whet.extend": "0.9.9" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "2.7.3" + } + } + } + }, + "syntax-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz", + "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=", + "requires": { + "acorn": "4.0.13" + } + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "5.5.1", + "ajv-keywords": "2.1.1", + "chalk": "2.3.0", + "lodash": "4.17.4", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "text-encoding": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=", + "optional": true + }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true, + "requires": { + "os-homedir": "1.0.2" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "requires": { + "process": "0.11.10" + } + }, + "timers-ext": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.2.tgz", + "integrity": "sha1-YcxHp2wavTGV8UUn+XjViulMUgQ=", + "dev": true, + "requires": { + "es5-ext": "0.10.37", + "next-tick": "1.0.0" + } + }, + "timespan": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", + "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=", + "optional": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", + "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "regex-not": "1.0.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + } + } + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "requires": { + "punycode": "1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", + "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "dev": true, + "requires": { + "glob": "6.0.4" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } + } + }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", + "dev": true + }, + "tsscmp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", + "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=", + "optional": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "1.1.2" + } + }, + "type-detect": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.5.tgz", + "integrity": "sha512-N9IvkQslUGYGC24RkJk1ba99foK6TkwC2FHAEBlQFBP0RxQZS8ZpJuAZcwiY/w9ZJHFQb1aOXBI60OdxhTrwEQ==", + "dev": true + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" + }, + "uglify-js": { + "version": "2.4.24", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", + "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=", + "dev": true, + "requires": { + "async": "0.2.10", + "source-map": "0.1.34", + "uglify-to-browserify": "1.0.2", + "yargs": "3.5.4" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, + "source-map": { + "version": "0.1.34", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", + "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true + }, + "umd": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz", + "integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=" + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqid": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "dev": true, + "requires": { + "macaddress": "0.2.8" + } + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", + "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, + "requires": { + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.0.tgz", + "integrity": "sha1-ygZ+oIQx1QdyKx3lCD9gJhbrwjQ=", + "dev": true, + "requires": { + "bl": "0.9.5", + "through2": "0.6.5" + }, + "dependencies": { + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "dev": true, + "requires": { + "readable-stream": "1.0.34" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + } + } + }, + "vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "dev": true, + "requires": { + "defaults": "1.0.3", + "glob-stream": "3.1.18", + "glob-watcher": "0.0.6", + "graceful-fs": "3.0.11", + "mkdirp": "0.5.1", + "strip-bom": "1.0.0", + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "dev": true, + "requires": { + "natives": "1.1.1" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "0.2.0", + "clone-stats": "0.0.1" + } + } + } + }, + "vinyl-source-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.0.tgz", + "integrity": "sha1-RMvlEIIFJ53rDFZTwJSiiHk4sas=", + "dev": true, + "requires": { + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "0.2.0", + "clone-stats": "0.0.1" + } + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "requires": { + "indexof": "0.0.1" + } + }, + "watchify": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.9.0.tgz", + "integrity": "sha1-8HX9LoqGrN6Eztum5cKgvt1SPZ4=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "browserify": "14.5.0", + "chokidar": "1.7.0", + "defined": "1.0.0", + "outpipe": "1.1.1", + "through2": "2.0.3", + "xtend": "4.0.1" + } + }, + "watchpack": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", + "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", + "dev": true, + "requires": { + "async": "0.9.2", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + } + } + }, + "webpack": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", + "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", + "dev": true, + "requires": { + "acorn": "3.3.0", + "async": "1.5.2", + "clone": "1.0.3", + "enhanced-resolve": "0.9.1", + "interpret": "0.6.6", + "loader-utils": "0.2.17", + "memory-fs": "0.3.0", + "mkdirp": "0.5.1", + "node-libs-browser": "0.7.0", + "optimist": "0.6.1", + "supports-color": "3.2.3", + "tapable": "0.1.10", + "uglify-js": "2.7.5", + "watchpack": "0.2.9", + "webpack-core": "0.6.9" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "interpret": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", + "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + }, + "memory-fs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", + "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", + "dev": true, + "requires": { + "errno": "0.1.6", + "readable-stream": "2.3.3" + } + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.10", + "wordwrap": "0.0.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + }, + "uglify-js": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", + "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", + "dev": true, + "requires": { + "async": "0.2.10", + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + } + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "0.1.8", + "source-map": "0.4.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, + "when": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", + "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=", + "optional": true + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "requires": { + "string-width": "1.0.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "0.5.1" + } + }, + "xml-char-classes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", + "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=", + "dev": true + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "optional": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", + "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "decamelize": "1.2.0", + "window-size": "0.1.0", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..128efb6 --- /dev/null +++ b/package.json @@ -0,0 +1,64 @@ +{ + "name": "traintimespwa", + "version": "1.0.0", + "description": "Train Times Progressive Web App", + "main": "app.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "apicache": "^1.2.0", + "babelify": "^8.0.0", + "backbone": "^1.3.3", + "browserify": "^14.5.0", + "es6-promise": "^4.1.1", + "express": "^4.16.2", + "jquery": "^3.2.1", + "log4js": "^2.4.1", + "minibus": "^3.1.0", + "muicss": "^0.9.33", + "underscore": "^1.8.3" + }, + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-loader": "^7.1.2", + "babel-preset-env": "^1.6.1", + "babel-preset-es2015": "^6.24.1", + "babel-preset-react": "^6.24.1", + "del": "^3.0.0", + "eslint": "^4.12.0", + "eslint-plugin-react": "^7.4.0", + "expect.js": "^0.3.1", + "gulp": "^3.9.1", + "gulp-autoprefixer": "^4.0.0", + "gulp-babel": "^7.0.0", + "gulp-browserify": "^0.5.1", + "gulp-cache": "^1.0.1", + "gulp-concat": "^2.6.1", + "gulp-cssnano": "^2.1.2", + "gulp-google-webfonts": "0.0.14", + "gulp-html-replace": "^1.6.2", + "gulp-htmlmin": "^3.0.0", + "gulp-inject": "^4.3.0", + "gulp-jshint": "^2.0.4", + "gulp-rename": "^1.2.2", + "gulp-sass": "^3.1.0", + "gulp-scss": "^1.4.0", + "gulp-sourcemaps": "^2.6.1", + "gulp-streamify": "^1.0.2", + "gulp-tasks": "0.0.2", + "gulp-uglify": "^3.0.0", + "gulp-uglify-es": "^0.1.3", + "gulp-util": "^3.0.8", + "gulp-webpack": "^1.5.0", + "lodash.assign": "^4.2.0", + "mocha": "^3.5.3", + "require-dir": "^0.3.2", + "sinon": "^4.1.1", + "vinyl-buffer": "^1.0.0", + "vinyl-source-stream": "^1.1.0", + "watchify": "^3.9.0" + } +} diff --git a/server.js b/server.js new file mode 100644 index 0000000..18d1565 --- /dev/null +++ b/server.js @@ -0,0 +1,28 @@ +const express = require('express'); +const path = require('path'); +const apicache = require('apicache'); +const logger = require('log4js').getLogger('Server'); + +const train = require('./server/lib/train'); +logger.level = 'debug'; + +const app = express(); +const port = process.env.PORT || 3000; + +const sitePath = 'live'; + +apicache.options({ 'debug': true }); +const cache = apicache.middleware; + +app.use(express.static(path.join(__dirname, sitePath))); + +app.use('/gettrains', train.getTrainTimes); +app.use('/getnexttraintimes', train.getNextTrainTimes); +app.use('/getroute', train.getRoute); + +app.listen(port, (err) => { + if (err) + return logger.error('Server error:', err); + + logger.info(`TrainTime Server is listening on ${port}`); +}); diff --git a/server/lib/train.js b/server/lib/train.js new file mode 100644 index 0000000..ca9d0ee --- /dev/null +++ b/server/lib/train.js @@ -0,0 +1,169 @@ +// train.js +const http = require('http'); +const logger = require('log4js').getLogger('train'); +const trainCache = { + 'last': {}, + 'data': {} +}; + +module.exports = { + 'dbe_glq': function (req, res) { + logger.info('DBE:GLQ request'); + + const now = new Date(); + const nowSeconds = (now.getHours() * (60 * 60)) + (now.getMinutes() * 60); + + if (trainCache.last.dbeglq === null || nowSeconds !== trainCache.last.dbeglq) + Query(function (a, b) { + const ts = a.departures[0].service; + const output = {}; + logger.debug(ts); + + logger.debug(ts.sta); + output.sta = ts.sta; + output.eta = ts.eta; + trainCache.data.dbeglq = output; + + res.setHeader('Content-Type', 'application/json'); + res.end(JSON.stringify(trainCache.data.dbeglq)); + }, res, 'huxley.apphb.com', '/next/dbe/to/glq/1?accessToken=215b99fe-b237-4a01-aadc-cf315d6756d8'); + }, + 'glq_dbe': function (req, res) { + logger.info('GLQ:DBE request'); + + const now = new Date(); + const nowSeconds = (now.getHours() * (60 * 60)) + (now.getMinutes() * 60); + + if (trainCache.last.glqdbe === null || nowSeconds !== trainCache.last.dbeglq) + Query(function (a, b) { + const ts = a.departures[0].service; + const output = {}; + logger.debug(ts); + // GLOBAL.lastcheck = now; + logger.debug(ts.sta); + // logger.debug(toSeconds(ts.sta)); + + output.sta = ts.sta; + output.eta = ts.eta; + trainCache.data.glqdbe = output; + // trainCache.last.glqdbe = toSeconds(ts.sta); + // console.log(ts); + res.setHeader('Content-Type', 'application/json'); + res.end(JSON.stringify(trainCache.data.glqdbe)); + }, res, 'huxley.apphb.com', '/next/glq/to/dbe/1?accessToken=215b99fe-b237-4a01-aadc-cf315d6756d8'); + }, + 'getTrainTimes': function (req, res) { + // console.log(req); + logger.info(`getTrainTimes: ${ JSON.stringify(req.query)}`); + if (req.query.hasOwnProperty('from') && req.query.hasOwnProperty('from')) { + const url = `/all/${ req.query.from }/to/${ req.query.to }/10?accessToken=215b99fe-b237-4a01-aadc-cf315d6756d8`; + + Query(function (a, b) { + res.setHeader('Content-Type', 'application/json'); + res.end(JSON.stringify(a)); + }, res, 'huxley.apphb.com', url); + } + else { + res.setHeader('Content-Type', 'application/json'); + res.end(JSON.stringify({})); + } + }, + 'getNextTrainTimes': function (req, res) { + logger.info(`getNextTrainTimes: ${ JSON.stringify(req.query)}`); + let trainFrom, trainTo, trainToken, url; + if (req.query.hasOwnProperty('from') && req.query.hasOwnProperty('from')) { + trainFrom = req.query.from; + trainTo = req.query.to; + trainToken = trainFrom + trainTo; + url = `/next/${ trainFrom }/to/${ trainTo }/1?accessToken=215b99fe-b237-4a01-aadc-cf315d6756d8`; + logger.info(`Requesting latest time for : ${ trainToken}`); + + const now = new Date(); + const nowSeconds = (now.getHours() * (60 * 60)) + (now.getMinutes() * 60); + logger.info(`Now Seconds: ${ nowSeconds}`); + if (trainCache.last[trainToken] === null || nowSeconds !== trainCache.last[trainToken]) + + Query(function (a, b) { + const output = {}; + const ts = a.departures[0].service; + if (ts !== null) { + // console.log(ts); + // GLOBAL.lastcheck = now; + logger.debug(ts.sta, ts.std); + // logger.debug(toSeconds(ts.sta)); + + output.sta = (ts.sta !== null) ? ts.sta : ts.std; + output.eta = (ts.eta !== null ? ts.eta : ts.etd); + + // trainCache.last.glqdbe = toSeconds(ts.sta); + // console.log(ts); + } + else { + logger.warn('*** NO SERVICE'); + output.sta = 'No Service'; + output.eta = 'No Service'; + } + + trainCache.data[trainToken] = output; + + res.setHeader('Content-Type', 'application/json'); + res.end(JSON.stringify(trainCache.data[trainToken])); + }, res, 'huxley.apphb.com', url); + } + }, 'getRoute': function (req, res) { + logger.info(`getRoute: ${ JSON.stringify(req.query)}`); + let routeID; + let data = {}; + if (req.query.hasOwnProperty('route')) { + routeID = req.query.route; + Query(function (a, b) { + if (a !== null && a.message === null) + data = a; + + res.setHeader('Content-Type', 'application/json'); + res.end(JSON.stringify(data)); + }, res, 'huxley.apphb.com', `/service/${ routeID }?accessToken=215b99fe-b237-4a01-aadc-cf315d6756d8`); + } + } +}; + +function toSeconds(inval) { + console.log('inval', typeof inval); + if (typeof inval === 'string') { + const a = inval.split(':'); + + return ((parseInt(a[0]) * (60 * 60)) + (parseInt(a[1]) * 60)); + } + + return ''; +} + +function Query(callback, r, host, path) { + logger.debug(path); + const req = r; + const options = { + 'host': host, + // port: 80, + 'path': path, + // method: 'GET', + 'headers': {} + }; + + try { + http.request(options).on('response', function (response) { + let data = ''; + response.on('data', function (chunk) { + data += chunk; + }); + response.on('end', function () { + callback(JSON.parse(data), r); + }); + response.on('error', function (e) { + console.error(e); + }); + }).end(); + } + catch (e) { + console.log(e); + } +} diff --git a/src/browserconfig.xml b/src/browserconfig.xml new file mode 100644 index 0000000..9e68e5d --- /dev/null +++ b/src/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #2b5797 + + + diff --git a/src/css/common.css b/src/css/common.css new file mode 100644 index 0000000..c9dcbf7 --- /dev/null +++ b/src/css/common.css @@ -0,0 +1,88 @@ +body { + background-color: #eee; + } + + .card { + position: relative; + background-color: #fff; + min-height:48px; + margin: 8px; + border-bottom-color: #666666; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + } + + .mui--text-display4, .mui--text-display3 { + font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Arial; + } + + .temp0, .temp1, .temp2, .temp3, .temp4, .temp5 { + color: rgb(80,181,221) + } + + .temp6 { + color: rgb(78,178,206) + } + + .temp7 { + color: rgb(76, 176, 190) + } + + .temp8 { + color: rgb(73, 173, 175) + } + + .temp9 { + color: rgb(72, 171, 159) + } + + .temp10 { + color: rgb(70, 168, 142) + } + + .temp11 { + color: rgb(68, 166, 125) + } + + .temp12 { + color: rgb(66, 164, 108) + } + + .temp13 { + color: rgb(102, 173, 94) + } + + .temp14 { + color: rgb(135, 190, 64) + } + + .temp15 { + color: rgb(179, 204, 26) + } + + .temp16 { + color: rgb(214, 213, 28) + } + + .temp17 { + color: rgb(249, 202, 3) + } + + .temp18 { + color: rgb(246, 181, 3) + } + + .temp19 { + color: rgb(244, 150, 26) + } + + .temp20 { + color: rgb(236, 110, 5) + } + + .day { + font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Arial, sans-serif; + text-transform: uppercase; + } + .summary::first-letter { + text-transform: capitalize + } diff --git a/src/css/custom.scss b/src/css/custom.scss new file mode 100644 index 0000000..b660186 --- /dev/null +++ b/src/css/custom.scss @@ -0,0 +1,93 @@ +// import MUI colors +@import "./node_modules/muicss/lib/sass/mui/colors"; + +// customize MUI variables +$mui-primary-color: mui-color('blue-grey', '500'); +$mui-primary-color-dark: mui-color('blue-grey', '700'); +$mui-primary-color-light: mui-color('blue-grey', '100'); + +$mui-accent-color: mui-color('deep-purple', '900'); +$mui-accent-color-dark: mui-color('indigo', 'A100'); +$mui-accent-color-light: mui-color('indigo', 'A400'); + +$mui-base-font-family: 'Roboto Slab', "Helvetica Neue", Helvetica, Arial, Verdana,"Trebuchet MS"; + +// import MUI SASS +@import "./node_modules/muicss/lib/sass/mui"; + +//// + +body { + background-color:mui-color('grey', '100'); + } + +#header { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 2; + transition: left 0.2s; +} + + + +ul { + margin: 0; + padding: 0; +} + +li { + display: inline; + margin: 0; + padding: 0 4px 0 0; +} + +.dates { + padding: 2px; + border: solid 1px #80007e; + background-color: #ffffff; +} + +#btc, #fx, #trend { + font-size: 85%; +} + +.up, .ontime, .trendUp { + color: mui-color('green') !important; +} + +.down, .delayed, .trendDown { + color: mui-color('red') !important; +} + +.nochange { + color: #000000; +} +.password { + border: 1px solid mui-color('grey','400'); + background-color: mui-color('grey','200'); + font-family: monospace; + white-space: pre; +} + +.trendUp:before { + content: "▲"; +} + +.trendDown:before{content:'▼'} + +.card { + position: relative; + background-color: #fff; + min-height:48px; + margin: 8px; + border-bottom-color: #666666; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + } + +.entry { + height: 36px; + margin: 6px 0; + vertical-align: middle; +} diff --git a/src/fonts.list b/src/fonts.list new file mode 100644 index 0000000..ab862b3 --- /dev/null +++ b/src/fonts.list @@ -0,0 +1,2 @@ +Roboto+Slab +Roboto+Condensed \ No newline at end of file diff --git a/src/img/android-chrome-192x192.png b/src/img/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..3aa557d7573a980fc4b5be88a3d040de81eeb746 GIT binary patch literal 4470 zcmZ`+c{o&k8$L7CSVKrDOvs+4Q1)%IW?zdKJ2OO#7&914$rjp_J$owIvd1s>L=*1#U%(d~gJdE;mY3Ix)y6ch-g zEyyTLJqF+Gi3j8R5n2KTg(v&?*7(wb{~X@n`g*I&ziBiEG78@eGJtweATxpNkE3Zr z5$arV#QoqtKTR!(RtQx14;#1u#qVqWQ#6F^g>9nkhLOApWaK|^ur&&rQ00Lm`_M@K z$OB7&aB!>14-^B^;wfnSpDo%MbOyBLuWTaCoPU5|GU&kHj;^&|`-2K;0h#{@150~= zY=3eHWM9xRJlT6+`ClMd>n{VILfhRp1dS)5XbywEk=oAR1JeGtQ=(VsD-T)=`}}`Q-fsac`qw4UE)s~Mx%b~7c>C9iP_R2%r~41vzWLzz zK%>HF&z?7SAN$88(0MR-T0kD@QXzx9+wFrOlP+MUbNgy}a@`(0Tn zJ44TF#NEE5*t53}3pD+DoqQel=J4@Ig1!1A zzJ9P(5)N3$UaWL+&?c3SNgf&rn&G~m;~W)YrWVhC_w$)VsnfR}ET$blCaXBiIh|kn zbYd{h(#omRzU#-8%!J#B*5-;!riBWZRbr6VVU7>+f!8wX+;bxfZl)_VXN!R*KwOOU z5Y+d+2Mxg+7{mBL-XuyfglT-aB1mE+LeK0_iX}t2+8( zMtZyA@CUuTiW&5-q$E6WaXw2a*kec`r+cxF7}%>emh~~K{&%MHQR`BxCl-Z<_a&?a z2fczEzwjwjH#Vr7n?bYlV+A?%)#6Ly*-_z4R{jZEJjMC!5qo9fq*3jb>dl?Fc*T&|FMm;!}_x9Ht)NN7p zpOdNw>MEr#vDR1I(kFYIvVO7t654CiA0pwH#&+AnY?-svn|ej&YrIFy9j?638OQfn zx%l)_cD(YxUJVG(x7#r0RTB8Js;f58bGa_fxL_l81NQvkgGY}p*~FDRn<@65JLh*& z?HEbz$mf^!LL9j=Lk2fAoCQcVTK)xoJxq!XHS@f%1-t^sSMd_&E}M@XWRK5^a&PB< z#t7vy;7<=PRN7i6Z0Z! zM}9*1=+{-Fu%nK4dvmvd#g-F@l&j4_TkvUxHTpmu0lPioEnp6L=)v82)~%D%uvDQ5U>ud^^x^z9!(ac*!u!gH|V`Ylnf!Y z_%j{*TSs6GvWSeDwS`N7#K`o$(RW3k4?83z*jp|0uao33Pwat- zlsAIyrk#n%1a-C8I+W@ngkToWBZ&8%EfJ%5GXjrRj!ZhpN-+8ZZsh7nG+o#sVX-#} z{9gq*0L7V#&QV*nlzEHx-Z3yi)hgbpJng=#2AY4&J zZP`emKG=m@Q(9AP-uU%h=6#!@|2BD z`SztHtNz^M$$G&LGl0?oM8ONg6q_xHlLSECsGTdZI<%!o^$oxQ$H_;)=MR2Rb;{Lr z*>+k=N{v57*@o1kr_Bh`AqUZ~FlPvU2T5{wxPOQc+Vl_gI6JB+ji=9a;CRS6BbkRX z*3*~?B9LXaMn*Rvyym-8eGf%Sq#mf(R}_tSLjoxDU)t~1^{AK6+66!=cj^=?nyv@5 z*CpJ$CR}k=m9C$N2S((|dOn7P@vVBg5i&NEkXj}WIm;ak>w)QBhYSq9qSYlb3NN=I zcQ`iF)YJLp$P~0ZwoZ{cXE%2t(!PSeWgQv$+J*wQ}TaSC&y+&#zsc$Ml@N z3iVIzSGs@K#HpX{0t#C{51@j&t{RO`{Ar-VS5md|235TlIFb1?4LUmYKdw<*>^l*u4ql*+rX&MgX}Ys_>jiRBE%#t>Mqgu2_f zAhADAjEYjBHcGf>>DEo!)i+oX+@ZL0MOf~yA~*dE#Trl9D%qQU|6#?>pQs)*Bc3;5 zVbK}fm%bU?N8rjGO2PMUKmftG>pgxMK7{LsOGI2DLfGz8)h|r z9Z8dHmhA5iLzJV#rWR7R_cR2DI)xrGyvQXcFt8tdzEN-NxNRJ~ytu?{x62|H*``I` zk3STcs`gMo*P_bp+0Qm7^Ah3w5hA z4BeKG8YTJ2%+Tn5smPZ$QsKH=GLgL|68vQ5C?K+8O?Y5UpXKei*g#VQ`zH&h0?loF zRPWT&VZnaSacJDzo;G#;?JoB$@`Rr6c3eG9`@8P&O4{&R?bFuFW-Q-0&AiX)~QL{J-!pOPzM0ShRu)mqLO&Pa3(OkP*_Pdj_r7nYS zYy*?R4ZTbw`ohwV-oX(k%JOHG&&o^6$|=jr z#w_|B{~v&_pPRP__WuLcDnAy30NYS2JB)>MFx)@D&%@it9ge~JyTiTxF|Gg*k~z7; z!f?$-OsvzitJ~n41wbdnEbYq7Da2`Xmy3=Qjv&alxX}q!S;4!8-o0+^ZavWo>mumq a8cGARJRF!6ZH4<_3Bcfj38G9J8TB7IQ)Bl4 literal 0 HcmV?d00001 diff --git a/src/img/apple-touch-icon.png b/src/img/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8387a2e44c1fbebe6ca61b653897c5683c02d950 GIT binary patch literal 7744 zcmZ{Jbx<6^_VwZf3+_&^;K5l4kRZV=cyI~su8Rb>;I1LKYhV`%?h;%Uve*W92yEcn z_xtaCRj)?6rl)T8%J?QZ+-ya&>R4e$OZr?-157$B#|#L zEmaid0MGw9iXjzg$Q~>&B{g}h-*^PLT+DgjYgPdO+TTiYvLF4{P73sWX-3))9QE0) z!(&v&r+?&7c_qIm#})rdhMze)N%snn ztB0xu$W4q&+?p?SYMNUyxjDn>_BlaS<~*GJt+K60Guz+eH8@xDn$F#;QdyCfu6mwG zF}nJHb%BSr6gdSr1Y*=V1S(~T^auq<7>_3u`mv`C2VU#&7~8Uv zpAv8X30ctQv}O_e(h-&0`SiGJ$Jn+r5mt#DyOELUqxZ?5n(Hese-qYf+e*y2x`tF~ zVoH9@q!BPkJ{eATn|y*#e|R(eO8uw#6E@1ENd{|rWfV9i@Y&q{F!(mHHcP0~n>?fg zO{UMn6!y*Ztk3UyA*s)l;!H%JnJq42Jc@V*(wznV$9AQ?q#T*5N4i!-fM>8hh;nu= z_xzXWIeQQ|d1yCD6fK*O4h~@VzZx6gEH#1)ku9MCc>5vJLLt@9pJu6kH@!f^BpED$ zU)Ee7TO&LqMelygl||f`_XR`y1<|%naE`P56w`bi^=L7KLqqKyUb_odSR0wVVd%H& z?+5yEYbpzuat5q&|Muup0!NIXV%8F=&Dj*#)rD*%!&AF7Zi}SW1b>rt=l;;pfqj@b z(usAvOG~qXEF7Z#rHl2H+k`-%{q(*?#^=P=qzedbrb6yPeHE4J5|NX3s4sjOeTpfZd3h1dEj6_*4 zZfu0hx2SeQW#Xug7qmqrcHwqCxVkb_EV!{kM@`$ln}PJu_`sgMF=yF25kkV}_lN7< zgH0Z+Pra@j+jxP4^<(#Y;kgY*)9U@frFTcMPgnGFcVi9w+w>Zt9V~EPbQfMk>g$HK zE=rMEyqn+iLX2XfepOAkWnb-^YO_A4ik|VQ3ICGIOBz+$ks^sMV{fO75yx0=DvbU2 z`=Seh0%#QVgIjN{&SW&j4gv`j)oD+}dEBQ6(A4DE9|rb-X%{s^5@u02-tq6*9~zD{ zKBsnALpBaSKgVRd`i0)dMEJS{=O|vEyrg^49k6mn>!I*cA?e}O^HP=)*vbrkZod4X zMg_(q^gg&z=*G?edzk2tx9*zCXqKqMXH~;9B#aMy<-N7hmWos_?C*+W>F4zO?c;~ zLLe$`FAS`IXm879X^s?ZmM(L48kx`+y(0?F3%T&x>rwZ*)o6;3AYVjW!@P$Y=bWDI zMgWuVO%lbg4$n0N93E0h zV)A_Y8@V9!cxh~=g2QI5ky+!ViMaaKF3BE%ypXPGaQiJNc(?zdJ);#?meDP8;Q&BQ z5XZ|Npv98JLPEnafpP>~LU<$fWeIhdE=`z2x}6+JW1okoyuO_JwKyV@QeqL`5(!uW z$AqJ$B>yfhHwV7%ysgUH3t)T6S$_TdvY@y3X^W?*2N_i1Wh%$?=lFMlSP|2WD(7PU zSs?i^5~`7GQmsV0uKw3v^jE0tZ|WnCW zi+~nd8K5%eGw zUX3l2T-6LcBVum-C1uZ5QEr%dZr$Vo)IkAPVH;FDL((nwAU!?U4xW09G({f?oRQ@edKD3BuRujQm!Ili@ZepQ&0&u*rRiO*qfGcNQhR*k8=5(| zDGlATFFqemyrHGPHQfj0RrIw&V+2s%oV|$(x&M3etVB-E&AT3+Iq~{WN{zydwlOVh zo%uh_1(twhq<6Sh(%)p_#3BQ2wT<1T&aOTWg-{HA`P1oC)syExXi3yfQ%j(0JD<1z zDFZp5HT58e!w03FK)-GCT}u5TMFfk7$NmFCnt^vFy*2y~0Y{vj zA=g{eo3=;Dw%^~8Dzg}G% z(62gJKh)x{yb!s%92}m z$g28GUQ1NnbtxgW{%yyv4=8!K#p<>WORtF%hc)^|IA)avn!!J$O*tuXkuQKTa=*ur zx4kQw7K_!`=I;>oTA68wS|qKeH>*lh84*|)lwksXPTTeR&ZZMLPTDQB;ygkkN|Fcm zI>^RTIsr|I;xRUxaWUnl8nw2xc536K?MB zGo%U{*RB$A98u+A1e^m=4=l6P??TI{<7Dw8sMAxGCHUj8^A0%`XkKgr_@l+?ub9~{ z4ETNfCJea=qA1GR#qb=2q;;*(0an%?zi zkEa2-8DWNo;$7Qi20n_k>Jm!1iWoxWQAMxt<5j(07}50@KTX0_5S#?-wUDL0oBHx-f8(x>+g#av+T^~O5GNty`R>f1Mz ze+K<}ZsEEPOZ(%M=9)Xs4?~l%#I;8ZX9*=U0Ry(SlP1KyIa~{TKsSFj`XjH;mbZ8)& zwbe`DVO*F!NgtXWjQ&iOU>pk>>_@eT4?Uihyd_br%Zg_H-uNIgXgY=2Tp-53pxUM* zep8niMT^apsRIYBPS04dI|3{sI|}Oo@6w6a10dD19J1*yn{QUssAAM;MI25!Jl&jV zEW3wOSfdt9g=L9^x${k)bDEZWGI9ZHb`nO;qeZBhE<*~!7A!i4VSQNa2kkF!snHj` z!o%7u;=jvgi$pcu1L_8SV1359a$I4r@r?gEVaSuttu6M{88=e*nZnGCnp};uMaEWM zP?@t>|3;>$dAwNujXxGcG6pR zz+bj7nMz{E)hOEzrW5^fP+#-)hft3-O(1r>2E$O0$r~Bg!tl72 zptW!mto+~cEYe66aB?}Muy2_T9I)d)CZLC>B7Vh-npS*X9B=yGdbtxXIDC?=@H6Y_ zMaUzroI3Rh)VuoZQvfn{vl98Fz=i^nA6ci_y`E$<4 zy0pIqjUc{DzAkA%(vC^1l2q6VXQ!MxOxA8d{223=7)z!7Rt+En(CRBSK4)z8p0L0; z4>Oo$une13fSFHzd=}436n}XCF*ew)S4$gf;=gBM2?jN17(Dv(aa|=AeavTW7cN=b?QBkIn%eU?@^!`3 zI3;q(a&Y?=+q7p>WI0GZFn)mX!N`9vczNHAekqke&8dgAbV+NO*5Io<0 zdDc`GR7UcwsmIA0Ym1WN{THn2P%`(sr27$MI%3jq?K%D`LgTrjLR%CS>JqEaicDv} zVja)kG`v-vE!3TlMQrS3bO%O6C*1{0!D&{L*djHXQv!WIUko3wvD`$YmEkzJw6zL# z-`cH6`&6H8)Nj8HbJqDeEN zpF{4q6cOE%iI?T+(>7+$NB_1Cnq7Ouh8WYqYQ3YJREd>XKX3}6d{E(J)2z;%gPg?6d_8x2Zp4s z9lD}}%mhvrv%D5SJH;iHyG$28G8ngL{tP6zQBs~#ecW2~a_+L=$0QB8PF8%pZ(7HA zK-GT6f_jC{M{`0fx6G=Dy%VN%ZZe9`%SDYoGEujd|LpaY@@%ZNxDZ`W-)@mK?yH){SeqKV>KAdk*4_Hdx@i6dlA2hV_ct1y-VnT<5B9QVjt5+*tSfKzQ6Mw|5l zvix-gQ=+w%sglB5h-nhV3D=j%l$EN%diqSn%GPyunO`x4^_Ta#;@|=Pi3>rza!%iH zBU9*x`U%-qWUOpqG*xhqsobXpb2i-dM&l-8vDo3j6JFAS!AH{Ds(nE!FA?UVt25;IF-XDYTxFTnF3yVI=ZSXOyQ?w&m&}lWRB- zEs&}JhRU9RaqF$LX-oAd4e|IcTHe(12PGPG4g%c9UM3|eA$OTDuhAx#j`q$u=P2cV zLc=;r4blyrx<$cw`oRdb>8J{DocJ=EJ zh+t#1K%*4|T-xk!!ZTnCo87av=r6`pp+ryq+tgQB*?p(>u>5zUJE6HAj`QvVtN=yP zZB|r*eC3FEV_nD=71YQTV1M0U^+(F}4d1c~SF_gl^f>S?$v=Uu+4{aGUe3Nsm3L#7 zA+o~OjuYK_FFMvh$^4Z~+Mkp&^atwc+ciKMm&tdkvDOQC@8$OqjwfjDV1l}fQV}Mpy}yBArRUtt<=WPqa-|w6O&F*}n~t^a{I!%LjJf(BXXOuM zjVr%jKDdv9zLLI*16mxB8}am<(PJ?9n^?E^cdhKp22h1UulN>)Y}AE*9tUY_z4sJ! z>Rf~06fPHXI(MlmJJqq4!q*2!Z^<1(APNQ(6Y?G8a|{&K$2JVXIioX%2ndKUUVqk9 zy-^L%VG@ZjEq-N{hRYYhUxLt2X@#!sWMEs z=Zpf{6JlW#wRAjs&$4!Oee7ZHE*aoZ`V6jk;^)uPT)+`Tehbg$^cYq57ndNSVHErL zx^Ld0_ZSaXyfM2BEE4^=AX?|iuaCYxxC`#jD`r80ho3qXaEN-H|POnUi)`2drT z4x52YeCZdNr}DlJVqDcDF#SS+dake@+AHwvSv}eH{cyWLv8)1F%pYZRwXcJb>ck|W z%uMI&^;`kPS*o`*-F}RcrVVdS*<20xKWXFNAo*F|h1tsTMnU+a!P#I{k0gBhJj$4A0|5 zA+qvOzb){NH|0{R1EHwkl^b<01#4&ZAz-=keN+-azdxG0*@NPg(%Mv?H&mduW4`7R zalF!>x;(i;#3yQBcEF`p?`~qDg1r5$`1%Rw2Im5*%?|McW8MFjy6U^>`aL5;#Yx47 zp|-mrj)F#|2{_HBA&o-9Ii0yW%?S(_F+H(Qu1L*bZ`UMq^#yj2C51}zFzNBHgG2$g zc85aVsz;||SjninkInAle*`^9x!&ut@Y<|1R(AHCtfRT;J0zGPS@lqJ#}KKXI{X5! z5qzS0(x2jr6{ss5F*6tJat`}in0CxE3(kc=-2B=6YiipJsK~|x?AiPs--L)aEX{@F z$C`+(2{K*O2HOe7{AZ0s>?yOkUk6y4+OO*iNtT`+_kFo2j15>z*f_b*0FLFg8{KE# zT&i9!UBhm|hpC;mi6F?iPP|iXOm3nc=JCS}8sOG{6Fblk^zk}dT|!&k3_nmkek_Aj z9BD?S79^PcNb4+t->#j85vJZ;enhN&L>NguoEIej+e0$@K%~U~e^i^df67B3O$=ae z25+=l$5d1Aml8OiLVBC~imUbO7^i4Xr$k2Q_Z26WS+-`=Lgh~d>YuD$>Rl>B&!R#% z^pp8IO<$?6(MX^>{lXP-XN>83jQR&`x0+_YNV1ZuV1Jkvxa}mf*+??WF$LFC$Njm@ zj;YOJ-_hslcXI0A+s;62B_mpaouR-rd%VsqpwKp*EiF@{o=EbS3wY$8M6Be$Xur!o zTW*P?Q^XIE&XpQvD}Tx}1-lGDcRj5kk~y7kGCEB^;&ML#&_firyT2Ai{j>Vs8^_F^ zc$aT^)@j&Fk4Aq?y}Ak+`4o=@esA_NXr^$us(8PGWVwRmq~t$~1^H7JFQYKfnLh94 zl`v3I1XA^b6cJXy!>WD>2cunD_Q&a*&OJgjD2>FiFFNG_;gy4ngnRHC_aQw`67tt4 zBVMoo(LAhi&aM8D(*HxJg)(3h7Hz6lwikjCw`(<~aSo^eagLMV5 zKJr{wry>&>uDEbac-RKL6nkge_Dga<`BoLrCvnMp;GxHOcd%?u$0{uNy8#}yAE5zr zw}%Axl<{{z(Y5ZkCl%{kkn_@<3I(z@g>TI z(W=#4!!cxmtA`k$EcLEAUsp8b+f;&r3p(>N9Oc5P(svgUI1PUWNTGeUqCh0cKp1L` zX*2%JBE{~;?jG(JW_}^1y%XS-HLb6&8#eQwhaPnAPs(b^K9jp{COkKLzpARuf_^p= zEqW~t#|x$FCcMHIoqaDn?{<;BMYiE9;v)ce5DDFxSU6sv#4Q^S>06wiZ~OZk(kS^a zT1x@LkPj)*_q=_caS*TfDusNIG8yf0yo^UA^({By2ELD`2I?d{u5UdpjgEkDB?i=? z5Is{%r3*d$Db4xIt}QCKPvl#wpjWuK`Ug*2S8dTEcV5C#>ep@a9?R2HI`^R?2j?h_Qs7$nC>%eY0t}JNy3Rt4bKg2_j&H0FZk%+=7H_XHF2x~z~uJO zo+W!rEdE1U@{}l;jW;BRlOU2%K3!9L0SBqYPuEKsy?#adehIIwjM%dugrS};rud&Y zunW?6LvG?&w&*B<6sJl@v04C9ysRy}Y$U8a zY>*A$4ZnaWkH8xq0illq0un-k5`scp`~njE{E=s_H2-Db>}qXq>;JzEZkm@XkOukz z9}T>;Eqoc>JX~$U%q G@c#!*dP9N$ literal 0 HcmV?d00001 diff --git a/src/img/favicon-16x16.png b/src/img/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..0e695c509a6270d48eeb9a2e93e6be8e0e5a7c83 GIT binary patch literal 984 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>`T@Ck8k+?86rKdb6M zM)khz+WlETHa*Y*y4Zr|mjjvA`+I(`^g@+7yfX6 z{-ljdS<#fSelsV>riKn#6(*+kt6NI9EwcD+eP^-ifrGQE9;pM(XH4>TcZn~)7^n;6 zu$OrHy0Smy;p5g;n!RlGO`y;VPZ!4!iOZ&EZ$>o*NVq+$58rX~P17@9@c@%XW z3l(&wwisz^zux`-G)GO5>^}AG4o%5*T)vaF&THiK&4`J))cbVmRnz3!(-@Gir87-}8tFPv?8-F;|*Q0ckbFbu&>v!YUXa8;H-d$5HegCfg67iXNA8*Lp z*z*6<_t;*;v1gU?Wtq(U0~02H;`@GBk~#VLXYTu48#{jnUu;&{`z_l~;_T)Km!c?@ zq-`JAS0(6gcYQL+4d`dp64!{5l*E!$tK_0oAjM#0U}&yuXryas5@Kj*Wnye)Y@%&o zXk}o~@;+Z0MMG|WN@iLmZVg{IU0)8=5MC7$Q4*9`u24{vpO%@Es!&o{kgAYbP?F5R zP%-E6CmxQ%Fb$1U{-@7)J`G}ER_4}A<`z~K_MR-lEUe(tU~)KxS$T7a!s#1VP8>ON jMCJ(l=?0GlUV03##05(}IhjrcTEXDy>gTe~DWM4f4&!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+0815-qRPlzi}LG}L3s{L8j z`?G6yC718duHK(jwKuEoKyLMc?8-d}4J$*d_NLTrjjP_3+O##Ic2`{S(UgjPah1E{ zs`q8r?aiw`noxc?v-&`K^}ej?16lR^s~bS3Wr4U51`-LhsA^v>rZ`TKed#!*kc_2F zO(v3dkoW0~z=2PqrKn+B1B|-^8OYAAJb)z%svv?G9t1`=L@&f8Rr_-)_v9c<+lLfB zsPWmWx+l2|Nno15~T^iv~{c`$S)X3;|7eJeEb4}LY$0@x*hvZoj!B++{Fv$ zFZJj#2HyRg6@mfdKL zi0Bor#O4<6_N!t|JbnprF#(O@^&VgTee9r8?JvR}x|BFXaj zz`==l!3{gNP0b<5G#y2ZEnV2Do2vy%x4Hyvv|GbMGb&xWn8oG!Baw06c0cdrJo zzF&Jo57<>DJK6Sqi|LBYf;i3x32V=mod~O*aYNZ;&1!XrTG_Aeg>NdHlan)p zgDW3%a{FB}IPJ$!E%x=SMX6OysfEm+nPL{1FN%Z@yj^s!Gi+ncr3qm#R$Scf$+2L0 zTzio_%ZCNFOdhwA7~9!p4IQk{W&P(ac`)bL>$fVOs&=3I|C*C?-@AF-A+~q-wM00G z+pAVNEK@sDw?z2zvhy<}@69!>K6hvTsVN<)W`}QNhcSF!VDMe)s2gW(LFd|U;U5~i z8{P}W7e(fnvK|SGcRUw*uZnj^UGx4*ZZF0H_x94;70b^jAOFL;;^U9^Qtw^cRr`Mb zYi^g&W$JJ0U;KF8HIBE{pG1nBg#+D;=GlsGTKA!G;=Tp@c05$gex-i6?92Y7_~*PA z0#uoW{~r_C#(Z#lPNK&S{gg>R?_Dh4^Izb&j!S&{jcFT~U3jsH<$L-G4 z{gbElJU{=RxoG_+*JOw9ph91@#5JNMC9x#cD!C{XNHG{07@F%E8tEFEgcurHnHXCc zn`j#tS{WF$yw8_L(U6;;l9^VCTf^5)*Ovn|gja<`lmsP~D-;yvr)B1(DwI?fq$*?< zlq54SRLpt&iHD;wOhe<8|LHTHPlFhkmAUnjxrLR5y(fz>3oE!Zm>f=FR^A+)Ql$clLa@jlu?VOonHfps zNP-dqfhrMH?QS#n@x1SN1v$`;>y<8X#xjE z!*3udz9r0|k<>NAui(GXpLksx`M3d^iLr_F(gdH1<+m`QRv$V_h2iL207eD;Tjl7A7m>Z;~l@>tl{%Q>R4fu|EQY|uYx;1ZhjSY@pEi16?UV1EhP2VwM)u} zu`_17*=X?73?)d?m+bHGDXZ_N)SX+yR`!bXdg6A+OV2@l=*x4EpKII7J!0Pr*)5P3 zyOl5U<5n5F5pY`ud$oOy#@_mg*450twrz^7*7$W9 zeI(6WJ%=md1$aJzPGp;a`JRv8L*E3UjDB81?~85ae9rgN*K&I$ zpTpM|;Kht>KZM>cemjzZ>gx4h>*yK2{Xon3oD1?@ul+}Ow!8Z6wUzR_V*79g`)ARa zV(rO~h1sCBc_z)R{EcdgWZ#84LBddJsRoGuomjY|0p`WR^^ z)!6HOa@)MrkK2~fyTsFdkaGA8NVR_7?$x_~ZJs@2K3;nr--=&-vwCUi@6j0{JEh>S z+uyf7{S@8rfV)oKOgS2hQn8V|zVB)6T6s$R+S`ZwVXK#xuHu^??`N?&0B(gR;U^HU z?FsQ~Zz!FoKsE43gjJ6oC3wo3SJ zuRw0&OiKqE|4Oyxwmlg6wlxK})Wqz=-Nu57|}OwYlL|4_t#liE_7ocHuDE(GmeUNQWQv=-9S zeoZ!uJIc{oHiYrt?8LtZF=#DJTPy0xwHKK*#N)5|AB}%>-rG2U_&2fVZhjZz*Pg3$ zJC0xP;PcyA{H*_laQ!6ifsa3P(3wBl57m2TlE1%|@Gd0F{%u98`To+D&VvJ)|If9R z3X>IoYxMo?|Mx5V{+WGOwErRYJt51PBW+Bd!#-Sp@TvX70QNrxonIb-w6?5#755k6 z{uA9XaAyV^YwM@?VH=(WwI?L6J*ltbmo-OvonLgOM4sjRsQtgYfBq!p`LGzyhaZ`| z&Sm1f1awb!HXN+Eqd(Tsto#3z^J8%r{5=GIfBo_u==8cjilSg1m-55gxbNnyJEEg9 z5Aq|pV;G@3aL%o%_Z9d=r|^di?Q4vCo!^m-gDm$aYtiemcek-4p8-0Lm7ok22gz=P z8CKs-k?Ra08-Kj~vd)}I_a~amf6QS2G&N-9`KubQiG|d^^chci|j!=ivH4-U{;V+xg{t(dl)6 z*b(g|S7xx6zfEw&spWYMUJQDNj)hZFn2Ef{v!^c&$UX-f!H+emyppvlUO&9{^BH}} z?_b~?m=1ffe#Gx4d*U4L?Rc0dbl=fhp0}+YU2OI=wpxdDADI+uk}U7W?B?;Iv&W`B z_|lws4YY1-yGyHt=kqc$?d^o#<88ltL~DiCVc90lwWPQu(_U+TH)c2Aen(!<^1JXR zr1?ma>nyUL^+o6<+zDoY%PQA`xFF5s9uU7gN`t!K!=rL!lPn)7M5-x(i_CagU zr{OcO0{mEhhwQT;9qIOE+!f0*7;WRMl`?>?( z5l&}+(BpT5TJfu{ZEZN0reZq>t^>_+-F=pz3~S*|!(F7}ZiDh#i+$E16Run~(w8s! zlz+9QHqU^4+PNpL7jLcl_BE^*>`%Bi+==vk_!K*Ll=345`H_5+M#Yp1qu4))(e=PK zw2Pj3c#kLFjct`}>s77T-m80eN1z)11wpS=VO4|R9i{BJx_Nu1ankEz=W`}s?=C}U zL$`t%mZ(YPD1H#!YWWX;W8}Hg@(bFWnNAt$w{Uz~^94 ziTV-8+0_*J?QHCkn*MY#Vu8jWIOGte-AWms?qI?MrCT*_^BKYg{QIkF!uXnT*T2(h zfx{vGcUt^guI=HEwPZN&y7pWX*rQAYrTqchaL*uL@!e?J7@#u@X24aj9-ac7U6u9+ z>qDu0&R{K!_giip^tplhS@0^@?~T^(qu^@L9@)z4rP7tn(V*{w)tB#YvCr(a?jt`K zUUqb4b2;C)VWc|4Tn1TUkdAa^lY=Y4wy*RRIMnU?9QH2AWaH{7zZquDSv^nn^7m7y z6@zWN2|dN#2Csqd_j2xM;xV9JXPo;I^knxBIH`S2-W>;>N3;iUk?aZ}&QSMM@`~SY zTjl$Kw>$bHuRDfEAxT%Vr(s`dla7U%@O6)4Dcj#X_apxdr1^V{y7;V3UcYfZo}&LR z(EB?JlEz*!{TbrlT9r4lq9s4`@S>%&^(w5tP_-}>M+CNL}_veqci-XX9u|I9ghPDfX(0;-A(lg!z zJ_sL5L3Ppz*EZ5T40Qa%b3J|z0udWOBisLs^RMRm6TW}=JRY))zjTf_UtGWK#_2)?Z z{u|t}R$k+6QTcT^+O&Tbd0$^;t+np@JD#$>NlChP{ndH)7&r;OVK|Z0eup(bB>xhO zGVQ0Wzxvj=-=A9F-^KD}|FF|J_+&W8aIQ%u>v8{0c@ZS_$^ZUpf4n|LSNG9*W@jXS2lX^6k;qUXB>&+>sZnAW78~;(>8?J{6ECbEq4IYwR0&79K zd&>doj&L<-PCoh$xc7*bK!78vmWg}bl zN9RB**E=!^rnd3_Q<-!6R3lsD=qXm&HiPoAe+xbj^I;`uu50aD0SiEN(vhxgWGgm+ zWN*TeFaq$`^wd+F#~raC<@`#dG9XWwmf&Le#pUNR`Z5M(c%TJ0Z2 z{Z&RsdKSslwlZRA=pfPTu~zo@Vlw zgVtNUC-VIZSO@pQl^~h+SC7IK&=S9Z+uoz`$Q6_3zxt**FXUe`)k!D*J)2w6pu&lF iF~3kRJUIv!Js$*1_=+yw5+S+e!qX$2bJj*Svi%?S0`_(Q literal 0 HcmV?d00001 diff --git a/src/img/mstile-150x150.png b/src/img/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..f5804575d79d102bf90734113a755b7ef6f0b711 GIT binary patch literal 3822 zcmcgvX*kqh-~S2Orm-(ECbAQm3}!4NTS8QpLDsR$I*ctO>&TvjvQx?5k}bQKEJM~* zNMV>p3faeA_uSX>ym?+cZ|)cO_qxvYy}rxm`}v#~=UnGJyk%-|j#ZEq0DyCb*Y(T* zfDZic#mqpND6*FpRWV#O1n~2>{%a1b_$e0B}T0Jy-#NU_}7< zus4P|$u`gH|}>Y;2$h{KaRCbkiaxoS}(6(;^7WCU-IaWz`oN>0?7ZZHutk z^||m&p3lNen;ZFG9=q{#3|<`M1mEV2D;W@Y$RsIf3}Tq`w5A#L0713@E z*AtJQWBkX44u=hNr`aK7CiXY8TwGBPa+AfL=_f}tE`6NkFKiU znMm!LiP<}N*Ti6NJkRSDpqQ?G0F`usoGrrO(vedxDuNB27>jyzK62o+FQ(}p3WO>} z%Sh(Ehq+xLW8Mpc_!l0{Q~@?Mq?%M*gAdgRX;|_ z<7$b_O92YoqVTt*jG3RaiC9xg2r=7n%VP~EGa?|h)!5lx9GOC7w9n=2b%@Mjxp2R2 z|HG9j0xOD~M@6D-%m%`9*%zOFkGwCpax`KhV8HC-8Gx+4t`tuhn0}=+RD0nmUuWWJ zb9Rlj&ogT#^x=eiy&KC>B(!`-c5+tp|+1*;4j_YQx=(c>XPY9hF@M zu_Eggd%qG%7C~62R|Rxx*&xALM95vyxmz7t^fu*K3AxCsl31A`t&~{xv*tS*FF20t z*=sznvE#eZ&QgLMkdQbuF2-QxRUV>|QCW^wGaT~V?qLZPQ+XQrLkds6|` zbMI3*O9#a4M94!ub$>1RdK;hl1a}mSRcaBJI_i=g!h9d{hs3N&T{IiFI?GZ^N`nlY zbTmwv^&<+pzXvu)D17Cjg4_L4pi+S;#9#hP5U6eI>KVcG<;Omo*6s2dnk((2k|z~U z>R;_O*^5DYd)=*$7*fkY*ss|o=~{6jS)Pp!Cs604;DQ9-*7IE&*{`(*NQJS}4h}j{ zNUBSG#g%4^%Kh9w3ev_{!7;+4l^CwC&r9gJM7U<~>yg|W&s2UyjzCedX5W65?%z&y zv2o^_vv_p7&*;yPdHE@8#z>|&%j;!+Pju|9zIoB$*qLEuHu0aVkU{!&f3BHeGB~iM$;B~) z1uaU?@+Mu-FcDU>e{t#bF)rrGuibF5Uo}!fy6x=XLiCx;CaBr~j8l~)kR5vCuR5;1 zOaftM6W8k`26Zo7&#~bG9TP(2k_ng%!-8~T)UyOuKny0Jx)eNI@!K|if-SmOY=f(T z>tiJ793YUEAEr0o7XNmf^A9N?LdMuy=)?%L(`6Uu%bjUn+d(MZ2#VK4bk-H2jc)%u z4xORbu6R<$V_-9(FKzmP4Lo}%J&dk>4r@Ewrd1Q~up8Su-xKkaJ1ebg9(U(w2+FSJ zc~sNw2IlC11FRDp){D3_L#djH+IXN*~-qlnFp^D?ta{xnnz87bWizIKTNL z0(}j5;&da+NSRGMkgTai4oIam_*O8!R}>-8RqMQu(1;Zac9qNzDH z>>GBW|J^MSOPe_L+e7^%`U!d|0AZ;QLsU~SjT;LMgx^}KS`o7yx@ruTSD^@Pw%w>!`8Dg@(K7-{6HEK`e`yZZjw zWoslxH17iYq}$R;*w{V}hs`O+)Nc zZ-=CzB)XJuU|v@>tb)#8>!w_LE<@e_Eql$2g_=Ed4`BExdhRr<@wfhEgiiOa_g2#U zX876EQpj0fhxv>?v+P*UJ?#4AM2d3&q8U=%GlaO{ayxl6lFfJ|x6NZPCNI8GQJ}_p zRR5r7D?#|~>vo}xCA`8yboSCZ_|PHi%BBMmpxAnzX$;>#>Zn&euDi>)MwN&V4MFzBRMYi$BHt3lFTkb}HkFzA zfPE#YrDiKXlb$z)I`jZYa!JrVN?(B7%Bocdp%%4*D`v8;ZFuk9zlBw9Jd zd@Dg?+En*0tugGYa!l(4pY>hj8B!^w4)W3n@*|9NcjB_Q!|7tDzBV^~e{oB5kRo&PLFx=SEss-Rv|}?LsV=~sznZ1 z!N7lC1RmQBwGnQ!n?>Z4594(b-VV0Hj%(BLZaG!F-2Djwy->*Rgs6PW`sc6Kca1GG z!oL)2!Xh@|&0kS}q;jlL55vRqqgHa?q&WxdHbbR%B!2f#DrA^%^wEbQE514O&e`9| z6QA$bbgz=IL>{#&c&x;U#m-4X(oi$rhd#)cWLCQeG1A&fXlE#2{%M=5`yC{|5bT^( zxuD@%pR)$jG0EmaYM}jCCjJ^c&V|9WXQ1}Nd1v7bg1JDdQDnlXAJq6tO{DOK6Z72< zu{AS(1?{hh8VjV)}FF}^d)FE|oC-w}TX`7V^suUhR@Dy&d1ik1o4I!JEg`ek~&s z?0#N>Lotr{$Zc=sx5($+A)pM59clafHm3oDeT#ku7DXw0Z+mD!4IS){aP0l3sHG0y zs|xy|^V077jvdwDA91-NViyt}CR9uT@Q@QPW$>4NTZnDO2fOT@od%Om#LB%i1}dcr zX&IKxhWvy%hKBDeS5LlyN^LqKmv0egOIDRHA|xtIe;Q~EVZO?a?IPiWyEQ~{zd_8Z zW~auAS{eu){lWv`vX0I{0}CFLpRd1gyb|rf?YQif z@U+evq5nA$(sMsA)=R(&o&s&cFfK1i>{w1PVyl?r=t~H+@^c7mT)k_vog zN|u-Nzhx}%|I+mX+xevRhbpumn*>hZ8t00^xv9AXy3rhPMG>Yd54$1{gImC0YH%er zCAgd-OifWSe#2kr{{VdbUA^4H|9`+ + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + + + + diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..4184add --- /dev/null +++ b/src/index.html @@ -0,0 +1,42 @@ + + + + + + + TestMVC + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ + + + + + + diff --git a/src/js/app.js b/src/js/app.js new file mode 100644 index 0000000..fc84cf4 --- /dev/null +++ b/src/js/app.js @@ -0,0 +1,47 @@ +require('muicss'); + +const { TrainModel, TrainView } = require('./train'); +const { RouteModel, RouteView } = require('./route'); + +const Minibus = require('minibus'); + +(function () { + const bus = Minibus.create(); + + const app = { + 'routes' : [ + { 'from': 'dbe', 'to': 'glq' }, + { 'from': 'glq', 'to': 'dbe' }, + { 'from': 'glq', 'to': 'hym' }, + { 'from': 'hym', 'to': 'glq' } + ], + 'views':{} + + }; + + const routeView = new RouteView( { 'model': new RouteModel() }); + + app.createViews = function() { + for (const route of this.routes) { + console.log(route); + var key = Symbol(route.from + route.to); + console.log(key); + + this.views[key] = new TrainView({ 'model': new TrainModel(route), 'routeView': routeView }); + } + }; + + /*if ('serviceWorker' in navigator) + navigator.serviceWorker + .register('./service-worker.js') + .then(function() { + console.log('Service Worker Registered'); + });*/ + + app.createViews(); + + /* app.views.dbqglqView = new TrainView({ 'model': new TrainModel({ 'from': 'dbe', 'to': 'glq' }) }); + app.views.glqdbeView = new TrainView({ 'model': new TrainModel({ 'from': 'glq', 'to': 'dbe' }) }); + app.views.glqhymView = new TrainView({ 'model': new TrainModel({ 'from': 'glq', 'to': 'hym' }) }); + app.views.hymglqView = new TrainView({ 'model': new TrainModel({ 'from': 'hym', 'to': 'glq' }) });*/ +})(); diff --git a/src/js/route.js b/src/js/route.js new file mode 100644 index 0000000..2e6857a --- /dev/null +++ b/src/js/route.js @@ -0,0 +1,106 @@ +const $ = require('jquery'); +const _ = require('underscore'); +const Backbone = require('backbone'); + +const RouteModel = Backbone.Model.extend({ + 'initialize': function () { + const fromStation = this.get('from'); + const toStation = this.get('to'); + const routeUrl = `/gettrainsbob?from=${ this.get('from') }&to=${ this.get('to')}`; + const target = this.get('from') + this.get('to'); + this.set('url', routeUrl); + this.set('routeUrl', routeUrl); + this.set('target', target); + this.set('visible', false); + this.set('trainData', { 'eta':'OFF', 'sta': 'OFF' }); + this.update(); + }, + 'update': function () { + const now = new Date; + const hours = now.getHours(); + const limit = (hours < 6) ? 3600000 : 60000; + + const mod = limit - (now.getTime() % limit); + + if (hours >= 6) + this.getRoute(); + else + this.set('trainData', { 'eta':'OFF', 'sta': 'OFF' }); + + const routeUpdateFn = function () { + this.update(); + }; + + setTimeout(routeUpdateFn.bind(this), mod + 10); + }, + 'getRoute': function () { + const url = this.get('routeUrl'); + const self = this; + + if (this.get('visible') === true) + this.set('visible', false); + else + $.ajax({ + 'type': 'GET', + 'url': url, + 'data': '', + 'dataType': 'json', + + 'timeout': 10000, + 'headers': { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS', + 'Access-Control-Allow-Headers': 'Content-Type' + + }, + 'success': function (data) { + // getTrainsCB(data); + // console.log('Got', data); + + self.set('route', data); + self.set('visible', true); + }, + 'error': function (xhr, type) { + console.error('ajax error'); + console.log('readyState', xhr.readyState); + console.log('status', xhr.status); + console.error(type); + } + }); + }, + 'setRoute': function(from, to) { + this.set('from', from); + this.set('to', to); + } +}); + +const RouteView = Backbone.View.extend({ + 'tagName': 'div', + 'initialize': function () { + _.bindAll(this, 'render'); + this.model.bind('change', this.render); + this.$trains = $('#trains'); + this.$traininfo = $('#traininfo'); + this.$traintext = $('#trainResults'); + this.$el = this.$traintext; + + this.initView(); + }, + 'events': { + 'click': 'showTrains' + }, + 'render': function () { + + }, + 'initView': function () { + }, + 'showTrains': function () { + console.log('Show train'); + }, + 'viewRoute': function(from, to) { + console.log('View route', from, to); + } + +}); + +module.exports = { RouteModel, RouteView }; diff --git a/src/js/train.js b/src/js/train.js new file mode 100644 index 0000000..b27d08a --- /dev/null +++ b/src/js/train.js @@ -0,0 +1,217 @@ +/** + * + * User: Martin Donnelly + * Date: 2016-10-03 + * Time: 14:20 + * + */ +const $ = require('jquery'); +const _ = require('underscore'); +const Backbone = require('backbone'); + +const TrainModel = Backbone.Model.extend({ + 'initialize': function () { + const fromStation = this.get('from'); + const toStation = this.get('to'); + const url = `/getnexttraintimes?from=${ this.get('from') }&to=${ this.get('to')}`; + const routeUrl = `/gettrains?from=${ this.get('from') }&to=${ this.get('to')}`; + const target = this.get('from') + this.get('to'); + this.set('url', url); + this.set('routeUrl', routeUrl); + this.set('target', target); + this.set('visible', false); + this.set('trainData', { 'eta':'OFF', 'sta': 'OFF' }); + this.update(); + }, + 'update': function () { + const now = new Date; + const hours = now.getHours(); + const limit = (hours < 6) ? 3600000 : 60000; + + const mod = limit - (now.getTime() % limit); + + if (hours >= 6) + this.getTrain(); + else + this.set('trainData', { 'eta':'OFF', 'sta': 'OFF' }); + + const trainUpdateFn = function () { + this.update(); + }; + + setTimeout(trainUpdateFn.bind(this), mod + 10); + }, + 'getTrain': function () { + const url = this.get('url'); + const self = this; + $.ajax({ + 'type': 'GET', + 'url': url, + 'data': '', + 'dataType': 'json', + 'timeout': 10000, + 'headers': { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS', + 'Access-Control-Allow-Headers': 'Content-Type' + }, + 'success': function (data) { + self.set('trainData', data); + }, + 'error': function (xhr, type) { + console.log('ajax error'); + console.log('readyState', xhr.readyState); + console.log('status', xhr.status); + console.log(type); + } + }); + }, + 'getRoute': function () { + const url = this.get('routeUrl'); + const self = this; + + if (this.get('visible') === true) + this.set('visible', false); + else + $.ajax({ + 'type': 'GET', + 'url': url, + 'data': '', + 'dataType': 'json', + + 'timeout': 10000, + 'headers': { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS', + 'Access-Control-Allow-Headers': 'Content-Type' + + }, + 'success': function (data) { + // getTrainsCB(data); + // console.log('Got', data); + + self.set('route', data); + self.set('visible', true); + }, + 'error': function (xhr, type) { + console.error('ajax error'); + console.error(xhr); + console.error(type); + } + }); + } +}); + +const TrainView = Backbone.View.extend({ + 'tagName': 'div', + 'initialize': function () { + _.bindAll(this, 'render'); + this.model.bind('change', this.render); + this.$trains = $('#trains'); + this.$traininfo = $('#traininfo'); + this.$traintext = $('#trainResults'); + this.$el = this.$trains; + this.initView(); + // console.log(this.get('routeView')); + }, + 'events': { + 'click': 'showTrains' + }, + 'render': function () { + const obj = this.model.get('trainData'); + const visible = this.model.get('visible'); + const route = this.model.get('route'); + + const output = (obj.eta.toLowerCase() === 'on time') ? obj.sta : obj.eta; + const status = (obj.eta.toLowerCase() === 'on time') ? 'ontime' : 'delayed'; + + this.$button.html(output); + this.$button.removeClass('delayed').removeClass('ontime').addClass(status); + + if (visible) { + let ws = `
${route.locationName} TO ${route.filterLocationName}
+ + + + + + `; + + const services = []; + if (typeof route.trainServices === 'object' && route.trainServices !== null) + for (const item of route.trainServices) { + const dest = item.destination[0]; + const via = dest.via !== null ? `${dest.via}` : ''; + const platform = item.platform !== null ? item.platform : '💠'; + const time = item.sta !== null ? item.sta : `D ${item.std}`; + const status = item.eta !== null ? item.eta : item.etd; + + services.push({ 'location':dest.locationName, 'time':time, 'status':status, 'platform':platform, 'cancel':item.cancelReason, 'type':'train' }); + if (!item.isCancelled) + ws = `${ws } + + + + `; + else + ws = `${ws } + `; + } + + if (typeof route.busServices === 'object' && route.busServices !== null) + for (const item of route.busServices) { + const dest = item.destination[0]; + const via = dest.via !== null ? `${dest.via}` : ''; + const platform = item.platform !== null ? item.platform : ''; + const time = item.sta !== null ? item.sta : `D ${item.std}`; + const status = item.eta !== null ? item.eta : item.etd; + services.push({ 'location':dest.locationName, 'time':time, 'status':status, 'platform':platform, 'cancel':item.cancelReason, 'type':'bus' }); + + ws = `${ws }`; + } + + ws = `${ws }
DestinationTimeStatusPlatform
${dest.locationName} ${via}${time}${status}${platform}
${dest.locationName} ${via}${time}❌ ${item.cancelReason}
🚌 ${dest.locationName} ${via}${time}${status}${platform}
`; + this.$traintext.empty().html(ws); + this.$traintext.removeClass('mui--hide').addClass('mui--show'); + } + else + this.$traintext.removeClass('mui--show').addClass('mui--hide'); + }, + 'initView': function () { + + const self = this; + const target = this.model.get('target'); + const html = ` +
+
${target.toUpperCase()}
+
+ +
+
+ +`; + this.$html = $(html); + this.$html.on('click', function () { + // console.log(self) + self.model.getRoute(); + }); + this.$trains.append(this.$html); + + this.$button = $(`#${target}`); + + const output = 'OFF'; + const status = (output === 'on time') ? 'ontime' : 'delayed'; + + this.$button.html(output); + this.$button.removeClass('delayed').removeClass('ontime').addClass(status); + + const cevent = `click #${target}`; + this.events[cevent] = 'showTrains'; + }, + 'showTrains': function () { + console.log('Show train'); + } + +}); + +module.exports = { TrainModel, TrainView }; diff --git a/src/manifest.json b/src/manifest.json new file mode 100644 index 0000000..9cb2e0d --- /dev/null +++ b/src/manifest.json @@ -0,0 +1,15 @@ +{ + "name": "Train Times", + "icons": [ + { + "src": "/img/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "start_url": "/index.html", + "imgdisplay": "standalone", + "display": "standalone" +} diff --git a/src/service-worker.js b/src/service-worker.js new file mode 100644 index 0000000..2d06354 --- /dev/null +++ b/src/service-worker.js @@ -0,0 +1,91 @@ +// Copyright 2016 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +var dataCacheName = 'traintimesData-v1'; +var cacheName = 'traintimePWA-final-1'; +var filesToCache = [ + '/', + '/index.html', + '/js/bundle.js', + '/css/common.css' +]; + +self.addEventListener('install', function(e) { + console.log('[ServiceWorker] Install'); + e.waitUntil( + caches.open(cacheName).then(function(cache) { + console.log('[ServiceWorker] Caching app shell'); + return cache.addAll(filesToCache); + }) + ); +}); + +self.addEventListener('activate', function(e) { + console.log('[ServiceWorker] Activate'); + e.waitUntil( + caches.keys().then(function(keyList) { + return Promise.all(keyList.map(function(key) { + if (key !== cacheName && key !== dataCacheName) { + console.log('[ServiceWorker] Removing old cache', key); + return caches.delete(key); + } + })); + }) + ); + /* + * Fixes a corner case in which the app wasn't returning the latest data. + * You can reproduce the corner case by commenting out the line below and + * then doing the following steps: 1) load app for first time so that the + * initial New York City data is shown 2) press the refresh button on the + * app 3) go offline 4) reload the app. You expect to see the newer NYC + * data, but you actually see the initial data. This happens because the + * service worker is not yet activated. The code below essentially lets + * you activate the service worker faster. + */ + return self.clients.claim(); +}); + +self.addEventListener('fetch', function(e) { + console.log('[Service Worker] Fetch', e.request.url); + var dataUrl = '/getnexttraintimes?'; + if (e.request.url.indexOf(dataUrl) > -1) { + console.log('!'); + /* + * When the request URL contains dataUrl, the app is asking for fresh + * weather data. In this case, the service worker always goes to the + * network and then caches the response. This is called the "Cache then + * network" strategy: + * https://jakearchibald.com/2014/offline-cookbook/#cache-then-network + */ + e.respondWith( + caches.open(dataCacheName).then(function(cache) { + return fetch(e.request).then(function(response){ + cache.put(e.request.url, response.clone()); + return response; + }); + }) + ); + } else { + /* + * The app is asking for app shell files. In this scenario the app uses the + * "Cache, falling back to the network" offline strategy: + * https://jakearchibald.com/2014/offline-cookbook/#cache-falling-back-to-network + */ + e.respondWith( + caches.match(e.request).then(function(response) { + return response || fetch(e.request); + }) + ); + } +}); diff --git a/src/work/stations.json b/src/work/stations.json new file mode 100644 index 0000000..4884631 --- /dev/null +++ b/src/work/stations.json @@ -0,0 +1,24260 @@ +{ + "locations": [ + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "ALDRSJN", + "name": "Aldershot North Junction", + "crs": "ZAJ", + "toc": "SW" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "LRDDEAC", + "name": "London Road Depot", + "crs": "ZLR", + "toc": "SW" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "BRKNIOM", + "name": "Birkenhead 12 Quays", + "crs": "BKI", + "toc": "ME" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "LILBDGE", + "name": "Lillie Bridge Depot LUL", + "crs": "ZLB", + "toc": "LU" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "OXFPWAY", + "name": "Oxford Parkway", + "crs": "OXP", + "toc": "CH" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "GRVSFRY", + "name": "Gravesend Town Pier", + "crs": "ZGP", + "toc": "SE" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "NTNGMJN", + "name": "Mansfield Junction", + "crs": "ZMJ", + "toc": "EM" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "PRBRITJ", + "name": "Pirbright Junction", + "crs": "ZPB", + "toc": "SW" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "BORMRKJ", + "name": "Borough Market Junction", + "crs": "ZBM", + "toc": "SE" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "SHTLTNL", + "name": "Shettleston Loop", + "crs": "ZSL", + "toc": "SR" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "ILKES", + "name": "Ilkeston", + "crs": "ILN", + "toc": "NT" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "BCSTSJ", + "name": "Bicester South Junction", + "crs": "XJV", + "toc": "CH" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "CARLLRJ", + "name": "Carlisle London Road Junction", + "crs": "ZCR", + "toc": "VT" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "WDNPK", + "name": "Wimbledon Park", + "crs": "WPK", + "toc": "LU" + }, + { + "lat": 52.2427, + "lon": -0.907905, + "tiploc": "NMPTNNJ", + "name": "Northampton North Junction", + "crs": "ZNJ", + "toc": "LM" + }, + { + "lat": 51.5314, + "lon": 0.01722, + "tiploc": "PLASTOW", + "name": "Plaistow L.T.", + "crs": "ZPS", + "toc": "LU" + }, + { + "lat": 43.3032794, + "lon": 5.380142, + "tiploc": "MRSLSTC", + "name": "Marseille St Charles", + "crs": "MSC", + "toc": "ES" + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "CRNFUGL", + "name": "Carnforth D&U.G.L.", + "crs": "XCS", + "toc": "WR" + }, + { + "lat": 51.51504, + "lon": -0.07236, + "tiploc": "ALDGEST", + "name": "Aldgate East", + "crs": "ZAE", + "toc": "LU" + }, + { + "lat": 51.4592, + "tiploc": "EPUTNEY", + "name": "East Putney", + "crs": "ZEP", + "toc": "LU", + "lon": -0.21098 + }, + { + "lat": 55.8404, + "tiploc": "GOREBRG", + "name": "Gorebridge", + "crs": "GBG", + "toc": "SR", + "lon": -3.0468 + }, + { + "lat": 51.5527, + "tiploc": "HLWYRLT", + "name": "Holloway Road", + "crs": "ZHR", + "toc": "LU", + "lon": -0.11322 + }, + { + "lat": 51.5166744, + "tiploc": "PADTLUL", + "name": "Paddington (Bakerloo Line)", + "crs": "ZPN", + "toc": "LU", + "lon": -0.1769328 + }, + { + "lat": 0.0, + "lon": 0.0, + "tiploc": "FLKSTNE", + "name": "Folkestone East", + "crs": "FKE", + "toc": "SE" + }, + { + "lat": 53.36484014431577, + "tiploc": "NWMILSC", + "name": "New Mills Central", + "crs": "NMC", + "toc": "NT", + "lon": -2.005671137351082 + }, + { + "lat": 52.9753511176829, + "tiploc": "HBRTBDG", + "name": "Hubberts Bridge", + "crs": "HBB", + "toc": "EM", + "lon": -0.1105287604554698 + }, + { + "lat": 53.31955235777388, + "tiploc": "ADLC", + "name": "Adlington (Cheshire)", + "crs": "ADC", + "toc": "NT", + "lon": -2.133562473910576 + }, + { + "lat": 51.357580617532406, + "tiploc": "WHSTBLE", + "name": "Whitstable", + "crs": "WHI", + "toc": "SE", + "lon": 1.0332947132577845 + }, + { + "lat": 54.9575, + "tiploc": "FELL", + "name": "Fellgate (T & W Metro)", + "crs": "FEG", + "toc": "TW", + "lon": -1.4856 + }, + { + "lat": 51.066063124425554, + "tiploc": "HORSHAM", + "name": "Horsham", + "crs": "HRH", + "toc": "SN", + "lon": -0.3192694871777138 + }, + { + "lat": 52.10470909770377, + "tiploc": "LLWRTYW", + "name": "Llanwrtyd", + "crs": "LNW", + "toc": "AW", + "lon": -3.632163294272856 + }, + { + "lat": 50.73918327908035, + "tiploc": "RYDP", + "name": "Ryde Pier Head", + "crs": "RYP", + "toc": "IL", + "lon": -1.1601266594011788 + }, + { + "lat": 54.965826626951085, + "tiploc": "PRUDHOE", + "name": "Prudhoe", + "crs": "PRU", + "toc": "NT", + "lon": -1.8648655591006895 + }, + { + "lat": 51.47150697354234, + "tiploc": "TILHRST", + "name": "Tilehurst", + "crs": "TLH", + "toc": "GW", + "lon": -1.0298158886948712 + }, + { + "lat": 51.488133701347216, + "tiploc": "SBRMNDS", + "name": "South Bermondsey", + "crs": "SBM", + "toc": "SN", + "lon": -0.05467773259566379 + }, + { + "lat": 52.6374725972589, + "tiploc": "TMWTHLL", + "name": "Tamworth", + "crs": "TAM", + "toc": "LM", + "lon": -1.686464391730138 + }, + { + "lat": 53.72407559898754, + "tiploc": "CASTLFD", + "name": "Castleford", + "crs": "CFD", + "toc": "NT", + "lon": -1.35465262548041 + }, + { + "lat": 53.35962657210294, + "tiploc": "NWMILSN", + "name": "New Mills Newtown", + "crs": "NMN", + "toc": "NT", + "lon": -2.008525264295832 + }, + { + "lat": 53.58871368782976, + "tiploc": "HTFLASF", + "name": "Hatfield & Stainforth", + "crs": "HFS", + "toc": "NT", + "lon": -1.0233772748744818 + }, + { + "lat": 51.675702219771104, + "tiploc": "WATFDN", + "name": "Watford North", + "crs": "WFN", + "toc": "LM", + "lon": -0.3899257937696956 + }, + { + "lat": 51.64872358562804, + "tiploc": "GOWERTN", + "name": "Gowerton", + "crs": "GWN", + "toc": "AW", + "lon": -4.035934479114915 + }, + { + "lat": 51.58150104719928, + "tiploc": "WLTHQRD", + "name": "Walthamstow Queens Road", + "crs": "WMW", + "toc": "LO", + "lon": -0.023845887175490868 + }, + { + "lat": 55.90610312153251, + "tiploc": "INVERKP", + "name": "Inverkip", + "crs": "INP", + "toc": "SR", + "lon": -4.872586072772624 + }, + { + "lat": 52.28653801648657, + "tiploc": "WARWICK", + "name": "Warwick", + "crs": "WRW", + "toc": "CH", + "lon": -1.5818545007447564 + }, + { + "lat": 53.55566819673773, + "tiploc": "WSTHOTN", + "name": "Westhoughton", + "crs": "WHG", + "toc": "NT", + "lon": -2.5237266450406066 + }, + { + "lat": 51.42127371866525, + "tiploc": "WDON", + "name": "Wimbledon", + "crs": "WIM", + "toc": "SW", + "lon": -0.2063686576928071 + }, + { + "lat": 53.14408448104717, + "tiploc": "CLHM", + "name": "Collingham", + "crs": "CLM", + "toc": "EM", + "lon": -0.7503938976960878 + }, + { + "lat": 54.001526466394274, + "tiploc": "DRIFILD", + "name": "Driffield", + "crs": "DRF", + "toc": "NT", + "lon": -0.4346649942825077 + }, + { + "lat": 52.51231212088594, + "tiploc": "NWTP", + "name": "Newtown (Powys)", + "crs": "NWT", + "toc": "AW", + "lon": -3.3113916901658813 + }, + { + "lat": 51.53897060609761, + "tiploc": "STHNDE", + "name": "Southend East", + "crs": "SOE", + "toc": "CC", + "lon": 0.7318147145803867 + }, + { + "lat": 53.14308738666073, + "tiploc": "PNYF", + "name": "Penyffordd", + "crs": "PNF", + "toc": "AW", + "lon": -3.054838192002942 + }, + { + "lat": 51.18500966830934, + "tiploc": "WYEE", + "name": "Wye", + "crs": "WYE", + "toc": "SE", + "lon": 0.9293036963612706 + }, + { + "lat": 54.07453979181289, + "tiploc": "BARELA", + "name": "Bare Lane", + "crs": "BAR", + "toc": "NT", + "lon": -2.8353303932432916 + }, + { + "lat": 54.49389738980757, + "tiploc": "YAAM", + "name": "Yarm", + "crs": "YRM", + "toc": "TP", + "lon": -1.3515450592250695 + }, + { + "lat": 51.662359111281624, + "tiploc": "NEATH", + "name": "Neath", + "crs": "NTH", + "toc": "AW", + "lon": -3.8072189039303455 + }, + { + "lat": 0.0, + "tiploc": "COLONSY", + "name": "Colonsay (Bus)", + "crs": "CYA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.48166900692033, + "tiploc": "ERITH", + "name": "Erith", + "crs": "ERH", + "toc": "SE", + "lon": 0.1750544564860437 + }, + { + "lat": 51.668106648720055, + "tiploc": "CHLFNAL", + "name": "Chalfont & Latimer", + "crs": "CFO", + "toc": "LT", + "lon": -0.5605263752238989 + }, + { + "lat": 52.004112006959396, + "tiploc": "FGDHGWK", + "name": "Fishguard & Goodwick", + "crs": "FGW", + "toc": "AW", + "lon": -4.994837652484635 + }, + { + "lat": 51.757714574061566, + "tiploc": "BAYFORD", + "name": "Bayford", + "crs": "BAY", + "toc": "GN", + "lon": -0.09561001507817089 + }, + { + "lat": 52.24440874629407, + "tiploc": "BEARLEY", + "name": "Bearley", + "crs": "BER", + "toc": "LM", + "lon": -1.7502552967947613 + }, + { + "lat": 51.341974727054094, + "tiploc": "STNGBRN", + "name": "Sittingbourne", + "crs": "SIT", + "toc": "SE", + "lon": 0.7346843484403418 + }, + { + "lat": 51.60503519953401, + "tiploc": "WHHRTLA", + "name": "White Hart Lane", + "crs": "WHL", + "toc": "LO", + "lon": -0.07091361472615568 + }, + { + "lat": 57.319975113020284, + "tiploc": "DUIRNSH", + "name": "Duirinish", + "crs": "DRN", + "toc": "SR", + "lon": -5.691316014473059 + }, + { + "lat": 50.832514368407196, + "tiploc": "STHWICK", + "name": "Southwick", + "crs": "SWK", + "toc": "SN", + "lon": -0.23596186561705684 + }, + { + "lat": 51.17067570362856, + "tiploc": "MMIL", + "name": "Martin Mill", + "crs": "MTM", + "toc": "SE", + "lon": 1.3482170568820318 + }, + { + "lat": 57.05914491324135, + "tiploc": "NWTM", + "name": "Newtonmore", + "crs": "NWR", + "toc": "SR", + "lon": -4.119108814773747 + }, + { + "lat": 55.84340784253798, + "tiploc": "ADIEWEL", + "name": "Addiewell", + "crs": "ADW", + "toc": "SR", + "lon": -3.606526376773403 + }, + { + "lat": 52.34606891998832, + "tiploc": "ALVCHRC", + "name": "Alvechurch", + "crs": "ALV", + "toc": "LM", + "lon": -1.9676605017322362 + }, + { + "lat": 51.49319447779276, + "tiploc": "SURREYQ", + "name": "Surrey Quays", + "crs": "SQE", + "toc": "LO", + "lon": -0.04751865829118127 + }, + { + "lat": 51.21815502922789, + "tiploc": "HGHBRDG", + "name": "Highbridge & Burnham", + "crs": "HIG", + "toc": "GW", + "lon": -2.9721533908124327 + }, + { + "lat": 53.432251559820834, + "tiploc": "ROTHCEN", + "name": "Rotherham Central", + "crs": "RMC", + "toc": "NT", + "lon": -1.3604345607919237 + }, + { + "lat": 55.81877671657123, + "tiploc": "NWTL", + "name": "Newton", + "crs": "NTN", + "toc": "SR", + "lon": -4.133054709382332 + }, + { + "lat": 0.0, + "tiploc": "STONEGS", + "name": "Stone Granville Square (Bus)", + "crs": "SGQ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.210433925906514, + "tiploc": "CBORNE", + "name": "Camborne", + "crs": "CBN", + "toc": "GW", + "lon": -5.2974106706722655 + }, + { + "lat": 51.38706459783867, + "tiploc": "RHOOSE", + "name": "Rhoose Cardiff Intl Airport", + "crs": "RIA", + "toc": "AW", + "lon": -3.3493838353136653 + }, + { + "lat": 51.25401001426, + "tiploc": "BOXHAWH", + "name": "Boxhill & Westhumble", + "crs": "BXW", + "toc": "SN", + "lon": -0.32848994172738305 + }, + { + "lat": 53.61606124384618, + "tiploc": "THORNEN", + "name": "Thorne North", + "crs": "TNN", + "toc": "NT", + "lon": -0.9723307794610068 + }, + { + "lat": 50.796337106104, + "tiploc": "FRATTON", + "name": "Fratton", + "crs": "FTN", + "toc": "SW", + "lon": -1.0739827022988337 + }, + { + "lat": 52.98713313505407, + "tiploc": "RUABON", + "name": "Ruabon", + "crs": "RUA", + "toc": "AW", + "lon": -3.043138542341498 + }, + { + "lat": 0.0, + "tiploc": "GLSTHAL", + "name": "Glastonbury (Bus)", + "crs": "XEA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.83526625989941, + "tiploc": "LAYTON", + "name": "Layton", + "crs": "LAY", + "toc": "NT", + "lon": -3.0299904258660084 + }, + { + "lat": 51.995310636863586, + "tiploc": "LLDVERY", + "name": "Llandovery", + "crs": "LLV", + "toc": "AW", + "lon": -3.80282879308186 + }, + { + "lat": 54.972763518136226, + "tiploc": "MANORS", + "name": "Manors", + "crs": "MAS", + "toc": "NT", + "lon": -1.6047409573451414 + }, + { + "lat": 51.36121218077412, + "tiploc": "CLYGATE", + "name": "Claygate", + "crs": "CLG", + "toc": "SW", + "lon": -0.34824778329177025 + }, + { + "lat": 52.537419667934124, + "tiploc": "CSTR", + "name": "Church Stretton", + "crs": "CTT", + "toc": "AW", + "lon": -2.8036943079431875 + }, + { + "lat": 53.97841477355686, + "tiploc": "GRGRAVE", + "name": "Gargrave", + "crs": "GGV", + "toc": "NT", + "lon": -2.1051703793356187 + }, + { + "lat": 0.0, + "tiploc": "WARWUNI", + "name": "Warwick University (Bus)", + "crs": "XWU", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "PBRODMP", + "name": "Dereham Market Place (Bus)", + "crs": "DEB", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.603328010572355, + "tiploc": "THORNES", + "name": "Thorne South", + "crs": "TNS", + "toc": "NT", + "lon": -0.9551092058270974 + }, + { + "lat": 53.08962322780806, + "tiploc": "CREWE", + "name": "Crewe", + "crs": "CRE", + "toc": "VT", + "lon": -2.432968823121986 + }, + { + "lat": 53.046186432888, + "tiploc": "WREXHMC", + "name": "Wrexham Central", + "crs": "WXC", + "toc": "AW", + "lon": -2.999052511549906 + }, + { + "lat": 51.41227778525325, + "tiploc": "CADOXTN", + "name": "Cadoxton", + "crs": "CAD", + "toc": "AW", + "lon": -3.2488953225675563 + }, + { + "lat": 52.101598709773256, + "tiploc": "HONYBRN", + "name": "Honeybourne", + "crs": "HYB", + "toc": "GW", + "lon": -1.8337427160436979 + }, + { + "lat": 54.829115571998074, + "tiploc": "WIGTON", + "name": "Wigton", + "crs": "WGT", + "toc": "NT", + "lon": -3.164342616719991 + }, + { + "lat": 0.0, + "tiploc": "WLGFORD", + "name": "Wallingford Market Place (Bus)", + "crs": "XWX", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.050230134111416, + "tiploc": "WREXHMG", + "name": "Wrexham General", + "crs": "WRX", + "toc": "AW", + "lon": -3.0024430064248198 + }, + { + "lat": 53.2348357504032, + "tiploc": "RHOSNGR", + "name": "Rhosneigr", + "crs": "RHO", + "toc": "AW", + "lon": -4.506641787894214 + }, + { + "lat": 0.0, + "tiploc": "STNVBUS", + "name": "St Neots (Bus)", + "crs": "XEI", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.73433986422341, + "tiploc": "KIDWELY", + "name": "Kidwelly", + "crs": "KWL", + "toc": "AW", + "lon": -4.316985391784186 + }, + { + "lat": 50.7328666299251, + "tiploc": "RYDE", + "name": "Ryde Esplanade", + "crs": "RYD", + "toc": "IL", + "lon": -1.159616115933744 + }, + { + "lat": 55.81217048887149, + "tiploc": "PHLD", + "name": "Priesthill & Darnley", + "crs": "PTL", + "toc": "SR", + "lon": -4.342894577700912 + }, + { + "lat": 53.456378555456524, + "tiploc": "NWTH", + "name": "Newton for Hyde", + "crs": "NWN", + "toc": "NT", + "lon": -2.067142385319519 + }, + { + "lat": 0.0, + "tiploc": "DONCBRN", + "name": "Barnsley (Bus)", + "crs": "BNX", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.544109160337705, + "tiploc": "STNBGPK", + "name": "Stonebridge Park", + "crs": "SBP", + "toc": "LT", + "lon": -0.2758284211176524 + }, + { + "lat": 50.81579723688428, + "tiploc": "PVNSYAW", + "name": "Pevensey & Westham", + "crs": "PEV", + "toc": "SN", + "lon": 0.32480740946206854 + }, + { + "lat": 52.63467971373351, + "tiploc": "ACLE", + "name": "Acle", + "crs": "ACL", + "toc": "LE", + "lon": 1.5439151251229433 + }, + { + "lat": 51.66333329207766, + "tiploc": "GORDONH", + "name": "Gordon Hill", + "crs": "GDH", + "toc": "GN", + "lon": -0.09461050664366928 + }, + { + "lat": 0.0, + "tiploc": "DUNOON", + "name": "Dunoon (Bus)", + "crs": "DUO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.42482888219944, + "tiploc": "LSYDNHM", + "name": "Lower Sydenham", + "crs": "LSY", + "toc": "SE", + "lon": -0.03334548173294932 + }, + { + "lat": 54.92953396823464, + "tiploc": "SEABURN", + "name": "Seaburn (T & W Metro)", + "crs": "SEB", + "toc": "TW", + "lon": -1.3866933393897771 + }, + { + "lat": 52.4140430910303, + "tiploc": "ABRYSTH", + "name": "Aberystwyth", + "crs": "AYW", + "toc": "AW", + "lon": -4.081893448795905 + }, + { + "lat": 55.921317151033506, + "tiploc": "LENZIE", + "name": "Lenzie", + "crs": "LNZ", + "toc": "SR", + "lon": -4.1538903849840905 + }, + { + "lat": 51.39611445846409, + "tiploc": "MORDENS", + "name": "Morden South", + "crs": "MDS", + "toc": "TL", + "lon": -0.19946099099884787 + }, + { + "lat": 52.48308428185418, + "tiploc": "ADERLYP", + "name": "Adderley Park", + "crs": "ADD", + "toc": "LM", + "lon": -1.8559444316309872 + }, + { + "lat": 51.25523567770788, + "tiploc": "EFARLGH", + "name": "East Farleigh", + "crs": "EFL", + "toc": "SE", + "lon": 0.484728951719465 + }, + { + "lat": 51.171465414570896, + "tiploc": "SPHS", + "name": "Staplehurst", + "crs": "SPU", + "toc": "SE", + "lon": 0.5504384121380562 + }, + { + "lat": 51.56362937275318, + "tiploc": "UPRHLWY", + "name": "Upper Holloway", + "crs": "UHL", + "toc": "LO", + "lon": -0.12951307701878048 + }, + { + "lat": 52.65749264723297, + "tiploc": "WELSHPL", + "name": "Welshpool", + "crs": "WLP", + "toc": "AW", + "lon": -3.1398711867938824 + }, + { + "lat": 53.59184499197743, + "tiploc": "CSTL", + "name": "Castleton", + "crs": "CAS", + "toc": "NT", + "lon": -2.1782339138977465 + }, + { + "lat": 50.725190115867015, + "tiploc": "HMWTHY", + "name": "Hamworthy", + "crs": "HAM", + "toc": "SW", + "lon": -2.019356967921385 + }, + { + "lat": 51.50697169668141, + "tiploc": "BRGEND", + "name": "Bridgend", + "crs": "BGN", + "toc": "AW", + "lon": -3.575275629465135 + }, + { + "lat": 55.91712815260169, + "tiploc": "BSDN", + "name": "Bearsden", + "crs": "BRN", + "toc": "SR", + "lon": -4.332020074478121 + }, + { + "lat": 0.0, + "tiploc": "WATRINT", + "name": "London Waterloo Intl", + "crs": "WIT", + "toc": "ES", + "lon": 0.0 + }, + { + "lat": 52.021235082685294, + "tiploc": "ASPLEYG", + "name": "Aspley Guise", + "crs": "APG", + "toc": "LM", + "lon": -0.6323344794036312 + }, + { + "lat": 0.0, + "tiploc": "CRDFAIR", + "name": "Cardiff Intl Airport (Bus)", + "crs": "XCF", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.69212974519418, + "tiploc": "DWBY", + "name": "Dewsbury", + "crs": "DEW", + "toc": "TP", + "lon": -1.633106395979067 + }, + { + "lat": 53.79869910513901, + "tiploc": "BLCKS", + "name": "Blackpool South", + "crs": "BPS", + "toc": "NT", + "lon": -3.0489377781044458 + }, + { + "lat": 0.0, + "tiploc": "DONCGPS", + "name": "Goldthorpe (Bus)", + "crs": "GOZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.544137513718844, + "tiploc": "KEARSLY", + "name": "Kearsley", + "crs": "KSL", + "toc": "NT", + "lon": -2.375119635585013 + }, + { + "lat": 55.852116526630844, + "tiploc": "PSLYSTJ", + "name": "Paisley St James", + "crs": "PYJ", + "toc": "SR", + "lon": -4.442442884976519 + }, + { + "lat": 51.64857273361682, + "tiploc": "NBARNET", + "name": "New Barnet", + "crs": "NBA", + "toc": "GN", + "lon": -0.1729971535419654 + }, + { + "lat": 51.56794336191934, + "tiploc": "WHORNDN", + "name": "West Horndon", + "crs": "WHR", + "toc": "CC", + "lon": 0.34064364989630913 + }, + { + "lat": 54.010860832646046, + "tiploc": "HELIFLD", + "name": "Hellifield", + "crs": "HLD", + "toc": "NT", + "lon": -2.227844609795384 + }, + { + "lat": 51.51632094542236, + "tiploc": "RADYR", + "name": "Radyr", + "crs": "RDR", + "toc": "AW", + "lon": -3.2483527772267173 + }, + { + "lat": 0.0, + "tiploc": "BARLSOP", + "name": "Barlaston Orchard Place (Bus)", + "crs": "BPL", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.281282525450905, + "tiploc": "VALLEY", + "name": "Valley", + "crs": "VAL", + "toc": "AW", + "lon": -4.563368726232951 + }, + { + "lat": 51.2758194354727, + "tiploc": "BSTD", + "name": "Bearsted", + "crs": "BSD", + "toc": "SE", + "lon": 0.5775803820172281 + }, + { + "lat": 51.50493727182167, + "tiploc": "FILTNEW", + "name": "Filton Abbey Wood", + "crs": "FIT", + "toc": "GW", + "lon": -2.562430535802052 + }, + { + "lat": 54.61370122743897, + "tiploc": "NWTA", + "name": "Newton Aycliffe", + "crs": "NAY", + "toc": "NT", + "lon": -1.5896451944812697 + }, + { + "lat": 55.77433620789626, + "tiploc": "BRWCKUT", + "name": "Berwick-upon-Tweed", + "crs": "BWK", + "toc": "GR", + "lon": -2.010973333835964 + }, + { + "lat": 54.11899850021927, + "tiploc": "BAROW", + "name": "Barrow-in-Furness", + "crs": "BIF", + "toc": "TP", + "lon": -3.226120294331034 + }, + { + "lat": 55.90459070188789, + "tiploc": "DRUMRY", + "name": "Drumry", + "crs": "DMY", + "toc": "SR", + "lon": -4.385472190728753 + }, + { + "lat": 55.83749967232931, + "tiploc": "CKHL", + "name": "Corkerhill", + "crs": "CKH", + "toc": "SR", + "lon": -4.334292445152268 + }, + { + "lat": 52.29471449804255, + "tiploc": "LNGBKBY", + "name": "Long Buckby", + "crs": "LBK", + "toc": "LM", + "lon": -1.0864668032433034 + }, + { + "lat": 0.0, + "tiploc": "RADGM", + "name": "Radcliffe Metrolink (Bus)", + "crs": "RCF", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 56.156634130371344, + "tiploc": "BGOALAN", + "name": "Bridge of Allan", + "crs": "BEA", + "toc": "SR", + "lon": -3.957228472935605 + }, + { + "lat": 50.81745871083885, + "tiploc": "PVNSYBY", + "name": "Pevensey Bay", + "crs": "PEB", + "toc": "SN", + "lon": 0.3429065719961726 + }, + { + "lat": 53.65253444989078, + "tiploc": "CHORLEY", + "name": "Chorley", + "crs": "CRL", + "toc": "NT", + "lon": -2.6268406289944943 + }, + { + "lat": 52.47088194257813, + "tiploc": "ECLR", + "name": "Eccles Road", + "crs": "ECS", + "toc": "LE", + "lon": 0.9699172234882515 + }, + { + "lat": 50.8342326910073, + "tiploc": "FSHRSGT", + "name": "Fishersgate", + "crs": "FSG", + "toc": "SN", + "lon": -0.21942323071574707 + }, + { + "lat": 51.643638136430944, + "tiploc": "YTRHOND", + "name": "Ystrad Rhondda", + "crs": "YSR", + "toc": "AW", + "lon": -3.4666845504363732 + }, + { + "lat": 54.9028, + "tiploc": "UNIV", + "name": "University (T & W Metro)", + "crs": "UNV", + "toc": "TW", + "lon": -1.3921 + }, + { + "lat": 55.853802271402365, + "tiploc": "WCALDER", + "name": "West Calder", + "crs": "WCL", + "toc": "SR", + "lon": -3.5670167140667135 + }, + { + "lat": 51.478133167435665, + "tiploc": "GNWH", + "name": "Greenwich", + "crs": "GNW", + "toc": "SE", + "lon": -0.01333992176301878 + }, + { + "lat": 50.71110071523092, + "tiploc": "SMALBRK", + "name": "Smallbrook Junction", + "crs": "SAB", + "toc": "IL", + "lon": -1.1541982760790552 + }, + { + "lat": 52.619481258312916, + "tiploc": "BRUNDAL", + "name": "Brundall", + "crs": "BDA", + "toc": "LE", + "lon": 1.4392988175019434 + }, + { + "lat": 0.0, + "tiploc": "BRSTAIR", + "name": "Bristol Intl Airport (Bus)", + "crs": "XPB", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.38517104254311, + "tiploc": "LNGCROS", + "name": "Longcross", + "crs": "LNG", + "toc": "SW", + "lon": -0.5945699831571213 + }, + { + "lat": 52.625830520775665, + "tiploc": "PWTH", + "name": "Polesworth", + "crs": "PSW", + "toc": "LM", + "lon": -1.6105401118960283 + }, + { + "lat": 52.4302114927358, + "tiploc": "SPHL", + "name": "Shippea Hill", + "crs": "SPP", + "toc": "LE", + "lon": 0.4133451747720132 + }, + { + "lat": 54.20985662268332, + "tiploc": "FILEY", + "name": "Filey", + "crs": "FIL", + "toc": "NT", + "lon": -0.29384938800244176 + }, + { + "lat": 54.61348284451141, + "tiploc": "HNGT", + "name": "Harrington", + "crs": "HRR", + "toc": "NT", + "lon": -3.5655146031551173 + }, + { + "lat": 53.13887813395356, + "tiploc": "MTHRNGH", + "name": "Metheringham", + "crs": "MGM", + "toc": "EM", + "lon": -0.39145313345076926 + }, + { + "lat": 54.35570558541832, + "tiploc": "RGLS", + "name": "Ravenglass for Eskdale", + "crs": "RAV", + "toc": "NT", + "lon": -3.4088136347188356 + }, + { + "lat": 52.43850975998469, + "tiploc": "OLTON", + "name": "Olton", + "crs": "OLT", + "toc": "LM", + "lon": -1.8043093837423791 + }, + { + "lat": 52.53564448650945, + "tiploc": "CHSRD", + "name": "Chester Road", + "crs": "CRD", + "toc": "LM", + "lon": -1.8324792994839945 + }, + { + "lat": 52.67557279813696, + "tiploc": "SALHOUS", + "name": "Salhouse", + "crs": "SAH", + "toc": "LE", + "lon": 1.391415475190666 + }, + { + "lat": 51.03403268493215, + "tiploc": "GLHM", + "name": "Gillingham (Dorset)", + "crs": "GIL", + "toc": "SW", + "lon": -2.2726236998469402 + }, + { + "lat": 52.86634443339401, + "tiploc": "GUNTON", + "name": "Gunton", + "crs": "GNT", + "toc": "LE", + "lon": 1.3491163455673327 + }, + { + "lat": 52.000067105382385, + "tiploc": "FSTR", + "name": "Fenny Stratford", + "crs": "FEN", + "toc": "LM", + "lon": -0.7159973278225868 + }, + { + "lat": 50.19704715915018, + "tiploc": "CARBISB", + "name": "Carbis Bay", + "crs": "CBB", + "toc": "GW", + "lon": -5.4632629137903725 + }, + { + "lat": 0.0, + "tiploc": "BSPSHIT", + "name": "Bishops Lydeard (Bus)", + "crs": "XLU", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.99969382491634, + "tiploc": "BULWELL", + "name": "Bulwell", + "crs": "BLW", + "toc": "EM", + "lon": -1.1962304761383986 + }, + { + "lat": 50.86212716045091, + "tiploc": "FAMR", + "name": "Falmer", + "crs": "FMR", + "toc": "SN", + "lon": -0.08738550084588205 + }, + { + "lat": 51.83890980843886, + "tiploc": "WNOTLEY", + "name": "White Notley", + "crs": "WNY", + "toc": "LE", + "lon": 0.5958634308177753 + }, + { + "lat": 53.48308168507671, + "tiploc": "SLFDORD", + "name": "Salford Central", + "crs": "SFD", + "toc": "NT", + "lon": -2.254840687983262 + }, + { + "lat": 55.851290124268594, + "tiploc": "BRGDDIE", + "name": "Bargeddie", + "crs": "BGI", + "toc": "SR", + "lon": -4.073807303983155 + }, + { + "lat": 53.429251655854706, + "tiploc": "WOODLEY", + "name": "Woodley", + "crs": "WLY", + "toc": "NT", + "lon": -2.093271550485685 + }, + { + "lat": 53.0920646818009, + "tiploc": "BETSYCD", + "name": "Betws-y-Coed", + "crs": "BYC", + "toc": "AW", + "lon": -3.800861272935723 + }, + { + "lat": 52.37993485879952, + "tiploc": "WYTH", + "name": "Wythall", + "crs": "WYT", + "toc": "LM", + "lon": -1.8655349326191222 + }, + { + "lat": 52.384480782099516, + "tiploc": "KDRMNST", + "name": "Kidderminster", + "crs": "KID", + "toc": "LM", + "lon": -2.2384707238434625 + }, + { + "lat": 51.4029912575127, + "tiploc": "SMERTON", + "name": "South Merton", + "crs": "SMO", + "toc": "TL", + "lon": -0.20515747071830376 + }, + { + "lat": 53.61919901630419, + "tiploc": "ULCEBY", + "name": "Ulceby", + "crs": "ULC", + "toc": "NT", + "lon": -0.3008267607211642 + }, + { + "lat": 53.57231908265824, + "tiploc": "ADWICK", + "name": "Adwick", + "crs": "AWK", + "toc": "NT", + "lon": -1.1803562442158075 + }, + { + "lat": 56.76021269634052, + "tiploc": "CORROUR", + "name": "Corrour", + "crs": "CRR", + "toc": "SR", + "lon": -4.690600153436945 + }, + { + "lat": 51.25429201062932, + "tiploc": "OVTN", + "name": "Overton", + "crs": "OVR", + "toc": "SW", + "lon": -1.2592676033460328 + }, + { + "lat": 53.31515227974162, + "tiploc": "RTFD", + "name": "Retford", + "crs": "RET", + "toc": "GR", + "lon": -0.947884024701815 + }, + { + "lat": 50.8951507027228, + "tiploc": "SOTNTQ", + "name": "Southampton Town Quay (Bus)", + "crs": "STQ", + "toc": "ZB", + "lon": -1.4058303315722478 + }, + { + "lat": 52.47187133321373, + "tiploc": "BRDS", + "name": "Bordesley", + "crs": "BBS", + "toc": "LM", + "lon": -1.8777686447696424 + }, + { + "lat": 54.195720441645335, + "tiploc": "GOVS", + "name": "Grange-over-Sands", + "crs": "GOS", + "toc": "TP", + "lon": -2.902747274264969 + }, + { + "lat": 55.354734808291454, + "tiploc": "MAYBOLE", + "name": "Maybole", + "crs": "MAY", + "toc": "SR", + "lon": -4.685288657246588 + }, + { + "lat": 50.89576272751939, + "tiploc": "YTMNSTR", + "name": "Yetminster", + "crs": "YET", + "toc": "GW", + "lon": -2.573755633127097 + }, + { + "lat": 51.193898925872205, + "tiploc": "LEIGHK", + "name": "Leigh (Kent)", + "crs": "LIH", + "toc": "SN", + "lon": 0.21049492538885142 + }, + { + "lat": 50.770098437294195, + "tiploc": "SAMPCRT", + "name": "Sampford Courtenay", + "crs": "SMC", + "toc": "GW", + "lon": -3.948890978995091 + }, + { + "lat": 51.51187861986129, + "tiploc": "SLOUGH", + "name": "Slough", + "crs": "SLO", + "toc": "GW", + "lon": -0.5915104151514504 + }, + { + "lat": 56.85526676455846, + "tiploc": "LCEILOB", + "name": "Loch Eil Outward Bound", + "crs": "LHE", + "toc": "SR", + "lon": -5.191576470389345 + }, + { + "lat": 51.4870595019825, + "tiploc": "WBRMPTN", + "name": "West Brompton", + "crs": "WBP", + "toc": "LT", + "lon": -0.19559263318827042 + }, + { + "lat": 51.41235581639422, + "tiploc": "NRBITON", + "name": "Norbiton", + "crs": "NBT", + "toc": "SW", + "lon": -0.28402502143145947 + }, + { + "lat": 53.336713348164245, + "tiploc": "KVTNPK", + "name": "Kiveton Park", + "crs": "KVP", + "toc": "NT", + "lon": -1.2398445359901393 + }, + { + "lat": 53.95832261310232, + "tiploc": "PANNAL", + "name": "Pannal", + "crs": "PNL", + "toc": "NT", + "lon": -1.533466981334974 + }, + { + "lat": 0.0, + "tiploc": "WANTMPL", + "name": "Wantage (Bus)", + "crs": "XDC", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.399437788562416, + "tiploc": "MELS", + "name": "Meols", + "crs": "MEO", + "toc": "ME", + "lon": -3.154269142590225 + }, + { + "lat": 51.60984297706446, + "tiploc": "SEERGRN", + "name": "Seer Green", + "crs": "SRG", + "toc": "CH", + "lon": -0.607818519867759 + }, + { + "lat": 52.965085588137555, + "tiploc": "CRTN", + "name": "Carlton", + "crs": "CTO", + "toc": "EM", + "lon": -1.0786549560253254 + }, + { + "lat": 50.85917013389891, + "tiploc": "GLYNDE", + "name": "Glynde", + "crs": "GLY", + "toc": "SN", + "lon": 0.07007729378930234 + }, + { + "lat": 53.163561318802515, + "tiploc": "MFLDWSE", + "name": "Mansfield Woodhouse", + "crs": "MSW", + "toc": "EM", + "lon": -1.2018485119695417 + }, + { + "lat": 55.92944573172912, + "tiploc": "IBMM", + "name": "IBM", + "crs": "IBM", + "toc": "SR", + "lon": -4.827239930392862 + }, + { + "lat": 55.097002950822606, + "tiploc": "BRRHL", + "name": "Barrhill", + "crs": "BRL", + "toc": "SR", + "lon": -4.781780960824862 + }, + { + "lat": 51.71242365812675, + "tiploc": "TRDYRHW", + "name": "Troed-y-rhiw", + "crs": "TRD", + "toc": "AW", + "lon": -3.3467439510344223 + }, + { + "lat": 53.64627016995213, + "tiploc": "MEOLSCP", + "name": "Meols Cop", + "crs": "MEC", + "toc": "NT", + "lon": -2.9758037394276884 + }, + { + "lat": 0.0, + "tiploc": "BURY", + "name": "Bury Metrolink (Bus)", + "crs": "BUR", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.73127895855007, + "tiploc": "POLSBDG", + "name": "Polsloe Bridge", + "crs": "POL", + "toc": "GW", + "lon": -3.5019471070107016 + }, + { + "lat": 51.64779889604921, + "tiploc": "TONPNTR", + "name": "Ton Pentre", + "crs": "TPN", + "toc": "AW", + "lon": -3.4861872909517815 + }, + { + "lat": 53.16303412389489, + "tiploc": "BCKY", + "name": "Buckley", + "crs": "BCK", + "toc": "AW", + "lon": -3.0559256412443463 + }, + { + "lat": 55.86468053392175, + "tiploc": "CHRNGXG", + "name": "Charing Cross (Glasgow)", + "crs": "CHC", + "toc": "SR", + "lon": -4.269819900019294 + }, + { + "lat": 51.541893184624854, + "tiploc": "STFD", + "name": "Stratford (London)", + "crs": "SRA", + "toc": "XR", + "lon": -0.0033967355799776923 + }, + { + "lat": 50.81835207999152, + "tiploc": "WWRTHNG", + "name": "West Worthing", + "crs": "WWO", + "toc": "SN", + "lon": -0.392985188238169 + }, + { + "lat": 53.396221724767685, + "tiploc": "ROHL", + "name": "Rose Hill Marple", + "crs": "RSH", + "toc": "NT", + "lon": -2.0765215016483203 + }, + { + "lat": 51.78783865884637, + "tiploc": "SMARGRT", + "name": "St Margarets (Hertfordshire)", + "crs": "SMT", + "toc": "LE", + "lon": 0.0012691377785753587 + }, + { + "lat": 51.63394021674655, + "tiploc": "WNMHILL", + "name": "Winchmore Hill", + "crs": "WIH", + "toc": "GN", + "lon": -0.10090023464919244 + }, + { + "lat": 55.691045156800065, + "tiploc": "CRSTRS", + "name": "Carstairs", + "crs": "CRS", + "toc": "SR", + "lon": -3.6684732102532243 + }, + { + "lat": 51.530881477704284, + "tiploc": "KNGX", + "name": "London Kings Cross", + "crs": "KGX", + "toc": "RT", + "lon": -0.12292598600691025 + }, + { + "lat": 0.0, + "tiploc": "ULLAPOL", + "name": "Ullapool (Bus)", + "crs": "ULP", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "BCSTBUS", + "name": "Bicester (Bus)", + "crs": "XEZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.51253481634216, + "tiploc": "LIMHSE", + "name": "Limehouse", + "crs": "LHS", + "toc": "CC", + "lon": -0.039802861988681146 + }, + { + "lat": 55.8110982456796, + "tiploc": "THLB", + "name": "Thornliebank", + "crs": "THB", + "toc": "SR", + "lon": -4.311707064984751 + }, + { + "lat": 53.58836610355137, + "tiploc": "DRTN", + "name": "Darton", + "crs": "DRT", + "toc": "NT", + "lon": -1.531657433734141 + }, + { + "lat": 53.3209147016927, + "tiploc": "LUDO", + "name": "Llandudno", + "crs": "LLD", + "toc": "AW", + "lon": -3.827001105907067 + }, + { + "lat": 57.58024507758819, + "tiploc": "NAIRN", + "name": "Nairn", + "crs": "NRN", + "toc": "SR", + "lon": -3.8720000322654813 + }, + { + "lat": 55.91881242389054, + "tiploc": "KNGW", + "name": "Kingsknowe", + "crs": "KGE", + "toc": "SR", + "lon": -3.264966147758671 + }, + { + "lat": 53.654300809612515, + "tiploc": "THABBEY", + "name": "Thornton Abbey", + "crs": "TNA", + "toc": "NT", + "lon": -0.323021480361524 + }, + { + "lat": 51.24064790454977, + "tiploc": "LRDGFD", + "name": "London Road (Guildford)", + "crs": "LRD", + "toc": "SW", + "lon": -0.5650689527735233 + }, + { + "lat": 51.44322301298383, + "tiploc": "BALHAM", + "name": "Balham", + "crs": "BAL", + "toc": "SN", + "lon": -0.15242448914119103 + }, + { + "lat": 50.9015, + "tiploc": "CALAFGV", + "name": "Calais Frethun", + "crs": "FRH", + "toc": "ES", + "lon": 1.81152 + }, + { + "lat": 53.3918144893738, + "tiploc": "WRGT", + "name": "Warrington Central", + "crs": "WAC", + "toc": "TP", + "lon": -2.5931682922138877 + }, + { + "lat": 52.109196969222225, + "tiploc": "GTMLVRN", + "name": "Great Malvern", + "crs": "GMV", + "toc": "LM", + "lon": -2.318270808130817 + }, + { + "lat": 0.0, + "tiploc": "MRTECTR", + "name": "Moretonhampstead (Bus)", + "crs": "XEK", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 56.20101453484031, + "tiploc": "MKIN", + "name": "Markinch", + "crs": "MNC", + "toc": "SR", + "lon": -3.1307868475353415 + }, + { + "lat": 52.77742399055861, + "tiploc": "WORSTED", + "name": "Worstead", + "crs": "WRT", + "toc": "LE", + "lon": 1.404081230149746 + }, + { + "lat": 51.77668614916963, + "tiploc": "EBWVTN", + "name": "Ebbw Vale Town", + "crs": "EBB", + "toc": "AW", + "lon": -3.2025768816539606 + }, + { + "lat": 52.09071487803867, + "tiploc": "MELDRTH", + "name": "Meldreth", + "crs": "MEL", + "toc": "GN", + "lon": 0.008941215037779808 + }, + { + "lat": 52.96814062989019, + "tiploc": "BLYBDGE", + "name": "Blythe Bridge", + "crs": "BYB", + "toc": "EM", + "lon": -2.0669611116633297 + }, + { + "lat": 53.57292553181959, + "tiploc": "LOSTCKP", + "name": "Lostock", + "crs": "LOT", + "toc": "NT", + "lon": -2.4942660807285746 + }, + { + "lat": 51.897395602561794, + "tiploc": "CHLTNHM", + "name": "Cheltenham Spa", + "crs": "CNM", + "toc": "GW", + "lon": -2.0996199573135192 + }, + { + "lat": 53.82036838324465, + "tiploc": "FRZNGHL", + "name": "Frizinghall", + "crs": "FZH", + "toc": "NT", + "lon": -1.769001070885596 + }, + { + "lat": 0.0, + "tiploc": "DLTNTVA", + "name": "Tees Valley Airport (Bus)", + "crs": "TVA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.28394207597431, + "tiploc": "LANDUDJ", + "name": "Llandudno Junction", + "crs": "LLJ", + "toc": "AW", + "lon": -3.8091017849213955 + }, + { + "lat": 51.559106197898565, + "tiploc": "UPMNSP6", + "name": "Upminster", + "crs": "UPM", + "toc": "CC", + "lon": 0.25088392480396865 + }, + { + "lat": 55.94665365962121, + "tiploc": "DMBRTNC", + "name": "Dumbarton Central", + "crs": "DBC", + "toc": "SR", + "lon": -4.566920512378465 + }, + { + "lat": 55.68215252093108, + "tiploc": "STEWRTN", + "name": "Stewarton", + "crs": "STT", + "toc": "SR", + "lon": -4.518057462303498 + }, + { + "lat": 55.94224567102843, + "tiploc": "DMBRTNE", + "name": "Dumbarton East", + "crs": "DBE", + "toc": "SR", + "lon": -4.554136639676801 + }, + { + "lat": 52.45411488409697, + "tiploc": "TYSL", + "name": "Tyseley", + "crs": "TYS", + "toc": "LM", + "lon": -1.8391160057389504 + }, + { + "lat": 51.431662471639015, + "tiploc": "DINASP", + "name": "Dinas Powys", + "crs": "DNS", + "toc": "AW", + "lon": -3.218351511495117 + }, + { + "lat": 56.45648516162369, + "tiploc": "DUNDETB", + "name": "Dundee", + "crs": "DEE", + "toc": "SR", + "lon": -2.9712045352214917 + }, + { + "lat": 56.27378066579779, + "tiploc": "LADYBNK", + "name": "Ladybank", + "crs": "LDY", + "toc": "SR", + "lon": -3.1222751375888422 + }, + { + "lat": 51.68352561101079, + "tiploc": "PMBRYBP", + "name": "Pembrey & Burry Port", + "crs": "PBY", + "toc": "AW", + "lon": -4.247841053420649 + }, + { + "lat": 53.57431968975079, + "tiploc": "GRMSBYD", + "name": "Grimsby Docks", + "crs": "GMD", + "toc": "NT", + "lon": -0.0756172819542954 + }, + { + "lat": 53.86796129614441, + "tiploc": "KEIGHLY", + "name": "Keighley", + "crs": "KEI", + "toc": "NT", + "lon": -1.9016494845888396 + }, + { + "lat": 50.78014159961512, + "tiploc": "BSSN", + "name": "Bishopstone", + "crs": "BIP", + "toc": "SN", + "lon": 0.08275692749959099 + }, + { + "lat": 51.51436162964232, + "tiploc": "SLEHOPE", + "name": "Stanford-le-Hope", + "crs": "SFO", + "toc": "CC", + "lon": 0.4230357516493626 + }, + { + "lat": 56.46715948919992, + "tiploc": "BRFRY", + "name": "Broughty Ferry", + "crs": "BYF", + "toc": "SR", + "lon": -2.8731522873335 + }, + { + "lat": 55.89762955523126, + "tiploc": "MRYHILL", + "name": "Maryhill", + "crs": "MYH", + "toc": "SR", + "lon": -4.300745023646487 + }, + { + "lat": 56.00512165275773, + "tiploc": "DREMJ", + "name": "Drem", + "crs": "DRM", + "toc": "SR", + "lon": -2.7860478119682632 + }, + { + "lat": 0.0, + "tiploc": "MINEBAN", + "name": "Minehead Bancks Street (Bus)", + "crs": "XBW", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.66581369411219, + "tiploc": "NBRWGE", + "name": "Newbridge", + "crs": "NBE", + "toc": "AW", + "lon": -3.1428851095734682 + }, + { + "lat": 53.19050970454007, + "tiploc": "WNSFD", + "name": "Winsford", + "crs": "WSF", + "toc": "LM", + "lon": -2.4945993149814876 + }, + { + "lat": 51.38909518483323, + "tiploc": "TDITTON", + "name": "Thames Ditton", + "crs": "THD", + "toc": "SW", + "lon": -0.33915217599598757 + }, + { + "lat": 53.99632822513706, + "tiploc": "HAMERTN", + "name": "Hammerton", + "crs": "HMM", + "toc": "NT", + "lon": -1.2840955874829147 + }, + { + "lat": 51.16877344760636, + "tiploc": "HORLEY", + "name": "Horley", + "crs": "HOR", + "toc": "SN", + "lon": -0.16105357729562952 + }, + { + "lat": 51.99533270082938, + "tiploc": "BLTCHLY", + "name": "Bletchley", + "crs": "BLY", + "toc": "LM", + "lon": -0.7363204707714394 + }, + { + "lat": 50.84821300398625, + "tiploc": "ARUNDEL", + "name": "Arundel", + "crs": "ARU", + "toc": "SN", + "lon": -0.546174276346412 + }, + { + "lat": 51.296603575677665, + "tiploc": "FRBRMN", + "name": "Farnborough (Main)", + "crs": "FNB", + "toc": "SW", + "lon": -0.7557256871661012 + }, + { + "lat": 53.10786147620754, + "tiploc": "CAERGWL", + "name": "Caergwrle", + "crs": "CGW", + "toc": "AW", + "lon": -3.032912732311197 + }, + { + "lat": 51.40740987543696, + "tiploc": "MHERON", + "name": "Martins Heron", + "crs": "MAO", + "toc": "SW", + "lon": -0.7243966507152414 + }, + { + "lat": 51.25790633727494, + "tiploc": "OXTEDBY", + "name": "Oxted", + "crs": "OXT", + "toc": "SN", + "lon": -0.004833575342926261 + }, + { + "lat": 53.48477573466068, + "tiploc": "PTRCRFT", + "name": "Patricroft", + "crs": "PAT", + "toc": "NT", + "lon": -2.358244632942695 + }, + { + "lat": 53.56342662469799, + "tiploc": "GRMSBYT", + "name": "Grimsby Town", + "crs": "GMB", + "toc": "TP", + "lon": -0.08698394637622033 + }, + { + "lat": 51.672626214705346, + "tiploc": "TURKYST", + "name": "Turkey Street", + "crs": "TUR", + "toc": "LO", + "lon": -0.04721663292057485 + }, + { + "lat": 0.0, + "tiploc": "WLLSPRI", + "name": "Wells (Bus)", + "crs": "XDH", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "MIDSTHL", + "name": "Midsomer Norton (Bus)", + "crs": "XBR", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.54080261794074, + "tiploc": "TAFFSWL", + "name": "Taffs Well", + "crs": "TAF", + "toc": "AW", + "lon": -3.262937841979913 + }, + { + "lat": 51.872435754807455, + "tiploc": "LUTOAPY", + "name": "Luton Airport Parkway", + "crs": "LTN", + "toc": "TL", + "lon": -0.3958810013032624 + }, + { + "lat": 0.0, + "tiploc": "BATHBUS", + "name": "Bath Bus Station", + "crs": "XDO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.736370675488565, + "tiploc": "CHLMSFD", + "name": "Chelmsford", + "crs": "CHM", + "toc": "LE", + "lon": 0.46857210000913924 + }, + { + "lat": 51.43393328749854, + "tiploc": "FULWELL", + "name": "Fulwell", + "crs": "FLW", + "toc": "SW", + "lon": -0.3494675954480056 + }, + { + "lat": 55.81147954079327, + "tiploc": "HRTW", + "name": "Hartwood", + "crs": "HTW", + "toc": "SR", + "lon": -3.839321832118059 + }, + { + "lat": 50.12167154676524, + "tiploc": "PENZNCE", + "name": "Penzance", + "crs": "PNZ", + "toc": "GW", + "lon": -5.532565133194136 + }, + { + "lat": 52.34367843630911, + "tiploc": "WDND", + "name": "Wood End", + "crs": "WDE", + "toc": "LM", + "lon": -1.8442137067976367 + }, + { + "lat": 53.26741971201112, + "tiploc": "GLNCNWY", + "name": "Glan Conwy", + "crs": "GCW", + "toc": "AW", + "lon": -3.797727336184678 + }, + { + "lat": 50.83521447702881, + "tiploc": "HOVE", + "name": "Hove", + "crs": "HOV", + "toc": "SN", + "lon": -0.17068739192879606 + }, + { + "lat": 51.61014893532782, + "tiploc": "TREHAFD", + "name": "Trehafod", + "crs": "TRH", + "toc": "AW", + "lon": -3.3809745096114905 + }, + { + "lat": 52.39183003510532, + "tiploc": "WHLE", + "name": "Whitlocks End", + "crs": "WTE", + "toc": "LM", + "lon": -1.8515388432401703 + }, + { + "lat": 51.54611376388109, + "tiploc": "DALS", + "name": "Dalston Junction", + "crs": "DLJ", + "toc": "LO", + "lon": -0.07513756624735955 + }, + { + "lat": 51.4018003713731, + "tiploc": "VRGNWTR", + "name": "Virginia Water", + "crs": "VIR", + "toc": "SW", + "lon": -0.5621738254365595 + }, + { + "lat": 54.75895457618836, + "tiploc": "ASPTRIA", + "name": "Aspatria", + "crs": "ASP", + "toc": "NT", + "lon": -3.3318735575574396 + }, + { + "lat": 53.04188009326136, + "tiploc": "LNGP", + "name": "Longport", + "crs": "LPT", + "toc": "EM", + "lon": -2.216447844552954 + }, + { + "lat": 50.870630110043486, + "tiploc": "LEWES", + "name": "Lewes", + "crs": "LWS", + "toc": "SN", + "lon": 0.01133052139248327 + }, + { + "lat": 52.366579482102004, + "tiploc": "ELWD", + "name": "Earlswood (West Midlands)", + "crs": "EWD", + "toc": "LM", + "lon": -1.8611694937902326 + }, + { + "lat": 51.24452148390875, + "tiploc": "WANBRO", + "name": "Wanborough", + "crs": "WAN", + "toc": "SW", + "lon": -0.6675877675716477 + }, + { + "lat": 51.24818735936198, + "tiploc": "BTCHWTH", + "name": "Betchworth", + "crs": "BTO", + "toc": "GW", + "lon": -0.26697300601745594 + }, + { + "lat": 53.24952242503591, + "tiploc": "FLINT", + "name": "Flint", + "crs": "FLN", + "toc": "AW", + "lon": -3.1329930794723206 + }, + { + "lat": 52.35737721530825, + "tiploc": "BKNELL", + "name": "Bucknell", + "crs": "BUK", + "toc": "AW", + "lon": -2.9473778067564362 + }, + { + "lat": 52.11429662463637, + "tiploc": "LLGMMRW", + "name": "Llangammarch", + "crs": "LLM", + "toc": "AW", + "lon": -3.5548165204289437 + }, + { + "lat": 53.15785265238798, + "tiploc": "CONGLTN", + "name": "Congleton", + "crs": "CNG", + "toc": "NT", + "lon": -2.1925799855316686 + }, + { + "lat": 51.20677486987703, + "tiploc": "WRMNSTR", + "name": "Warminster", + "crs": "WMN", + "toc": "GW", + "lon": -2.176734034923989 + }, + { + "lat": 51.46808498823016, + "tiploc": "MRTLKE", + "name": "Mortlake", + "crs": "MTL", + "toc": "SW", + "lon": -0.2671056424193278 + }, + { + "lat": 51.12785457904066, + "tiploc": "BRDGWTR", + "name": "Bridgwater", + "crs": "BWT", + "toc": "GW", + "lon": -2.9904054460695226 + }, + { + "lat": 52.942870519384506, + "tiploc": "BARLSTN", + "name": "Barlaston", + "crs": "BRT", + "toc": "LM", + "lon": -2.168111108173998 + }, + { + "lat": 51.55247476457618, + "tiploc": "MANRPK", + "name": "Manor Park", + "crs": "MNP", + "toc": "XR", + "lon": 0.046341541016394754 + }, + { + "lat": 50.969248424712156, + "tiploc": "ELGH", + "name": "Eastleigh", + "crs": "ESL", + "toc": "SW", + "lon": -1.3500844830684007 + }, + { + "lat": 50.89675187314307, + "tiploc": "SHOLING", + "name": "Sholing", + "crs": "SHO", + "toc": "SW", + "lon": -1.3649149688340512 + }, + { + "lat": 54.43747979851764, + "tiploc": "EGTON", + "name": "Egton", + "crs": "EGT", + "toc": "NT", + "lon": -0.7614649286280512 + }, + { + "lat": 51.55520832771318, + "tiploc": "HMPSTDH", + "name": "Hampstead Heath", + "crs": "HDH", + "toc": "LO", + "lon": -0.16570541675743666 + }, + { + "lat": 51.38125071015674, + "tiploc": "WRCSTRP", + "name": "Worcester Park", + "crs": "WCP", + "toc": "SW", + "lon": -0.2451673022213078 + }, + { + "lat": 0.0, + "tiploc": "DLTNRIM", + "name": "Richmond, Nth Yorks (Bus)", + "crs": "RMK", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.82575154811538, + "tiploc": "ISLIP", + "name": "Islip", + "crs": "ISP", + "toc": "CH", + "lon": -1.23818167009187 + }, + { + "lat": 51.53756837037452, + "tiploc": "THOPBAY", + "name": "Thorpe Bay", + "crs": "TPB", + "toc": "CC", + "lon": 0.7617279575005359 + }, + { + "lat": 51.57130001860291, + "tiploc": "CROUCHH", + "name": "Crouch Hill", + "crs": "CRH", + "toc": "LO", + "lon": -0.11714881368883445 + }, + { + "lat": 51.130231988476794, + "tiploc": "TUNWELL", + "name": "Tunbridge Wells", + "crs": "TBW", + "toc": "SE", + "lon": 0.2628103116817585 + }, + { + "lat": 56.27484862745999, + "tiploc": "GLNEGLS", + "name": "Gleneagles", + "crs": "GLE", + "toc": "SR", + "lon": -3.7311679052629314 + }, + { + "lat": 54.45485543206214, + "tiploc": "KSTP", + "name": "Kirkby Stephen", + "crs": "KSW", + "toc": "NT", + "lon": -2.368596587917768 + }, + { + "lat": 54.52462118835162, + "tiploc": "ALLENSW", + "name": "Allens West", + "crs": "ALW", + "toc": "NT", + "lon": -1.3611167227003185 + }, + { + "lat": 51.617832180295466, + "tiploc": "DINASR", + "name": "Dinas Rhondda", + "crs": "DMG", + "toc": "AW", + "lon": -3.437541043527335 + }, + { + "lat": 51.360672427214915, + "tiploc": "BRSR", + "name": "Broadstairs", + "crs": "BSR", + "toc": "SE", + "lon": 1.4335605581507305 + }, + { + "lat": 0.0, + "tiploc": "HOLSLIB", + "name": "Holsworthy (Bus)", + "crs": "XEE", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.85640771296446, + "tiploc": "WEMM", + "name": "Wem", + "crs": "WEM", + "toc": "AW", + "lon": -2.7180168678882506 + }, + { + "lat": 51.36403922622502, + "tiploc": "CHSSN", + "name": "Chessington North", + "crs": "CSN", + "toc": "SW", + "lon": -0.3006991277268866 + }, + { + "lat": 52.45368783250652, + "tiploc": "HRLNGRD", + "name": "Harling Road", + "crs": "HRD", + "toc": "LE", + "lon": 0.9091422879025278 + }, + { + "lat": 56.30196545330362, + "tiploc": "ARDLUI", + "name": "Ardlui", + "crs": "AUI", + "toc": "SR", + "lon": -4.7216573210900314 + }, + { + "lat": 51.0889636957593, + "tiploc": "ERIDGE", + "name": "Eridge", + "crs": "ERI", + "toc": "SN", + "lon": 0.20143172133156884 + }, + { + "lat": 51.03323518245118, + "tiploc": "APDR", + "name": "Appledore (Kent)", + "crs": "APD", + "toc": "SN", + "lon": 0.8163415505736319 + }, + { + "lat": 53.66848097277538, + "tiploc": "DEIGHTN", + "name": "Deighton", + "crs": "DHN", + "toc": "NT", + "lon": -1.7518964097527505 + }, + { + "lat": 55.73888619271206, + "tiploc": "GLGN", + "name": "Glengarnock", + "crs": "GLG", + "toc": "SR", + "lon": -4.67450160251453 + }, + { + "lat": 53.735456357204384, + "tiploc": "MLHL", + "name": "Mill Hill (Lancashire)", + "crs": "MLH", + "toc": "NT", + "lon": -2.501735311170755 + }, + { + "lat": 52.28610160603858, + "tiploc": "WARWPWY", + "name": "Warwick Parkway", + "crs": "WRP", + "toc": "CH", + "lon": -1.6120578527593907 + }, + { + "lat": 56.497793039126464, + "tiploc": "GOLFSTR", + "name": "Golf Street", + "crs": "GOF", + "toc": "SR", + "lon": -2.7195435006412327 + }, + { + "lat": 51.38706705202925, + "tiploc": "CHTSEY", + "name": "Chertsey", + "crs": "CHY", + "toc": "SW", + "lon": -0.5093166064676423 + }, + { + "lat": 51.318467546091746, + "tiploc": "WOKING", + "name": "Woking", + "crs": "WOK", + "toc": "SW", + "lon": -0.5569596795014521 + }, + { + "lat": 51.67386476515968, + "tiploc": "LLNLLI", + "name": "Llanelli", + "crs": "LLE", + "toc": "AW", + "lon": -4.16130341182469 + }, + { + "lat": 51.522522027884825, + "tiploc": "MARYLBN", + "name": "London Marylebone", + "crs": "MYB", + "toc": "CH", + "lon": -0.16291089985291704 + }, + { + "lat": 52.85364317173123, + "tiploc": "WLNTNON", + "name": "Willington", + "crs": "WIL", + "toc": "EM", + "lon": -1.5633605394187644 + }, + { + "lat": 51.5324947720042, + "tiploc": "WLSDJHL", + "name": "Willesden Junction", + "crs": "WIJ", + "toc": "LO", + "lon": -0.24454788456345455 + }, + { + "lat": 52.4227698823911, + "tiploc": "BROOME", + "name": "Broome", + "crs": "BME", + "toc": "AW", + "lon": -2.8852074714326923 + }, + { + "lat": 51.336325837129394, + "tiploc": "CMBLEY", + "name": "Camberley", + "crs": "CAM", + "toc": "SW", + "lon": -0.7442716833707637 + }, + { + "lat": 51.40579885288157, + "tiploc": "SHRTLND", + "name": "Shortlands", + "crs": "SRT", + "toc": "SE", + "lon": 0.0017840279047206154 + }, + { + "lat": 53.64651749479831, + "tiploc": "SOUTHPT", + "name": "Southport", + "crs": "SOP", + "toc": "ME", + "lon": -3.0024347131693565 + }, + { + "lat": 52.954368960013916, + "tiploc": "TANY", + "name": "Tan-y-Bwlch (Bus)", + "crs": "TYB", + "toc": "ZB", + "lon": -4.0115152823743 + }, + { + "lat": 51.65325222216049, + "tiploc": "ENFC", + "name": "Enfield Chase", + "crs": "ENC", + "toc": "GN", + "lon": -0.09069636549785143 + }, + { + "lat": 50.73918327908035, + "tiploc": "RYDCATS", + "name": "Ryde Pier Head", + "crs": "RYP", + "toc": "IL", + "lon": -1.1601266594011788 + }, + { + "lat": 53.35765219769061, + "tiploc": "BEBNGTN", + "name": "Bebington", + "crs": "BEB", + "toc": "ME", + "lon": -3.0036346408225763 + }, + { + "lat": 54.69435586371646, + "tiploc": "LWBY", + "name": "Langwathby", + "crs": "LGW", + "toc": "NT", + "lon": -2.663683672794805 + }, + { + "lat": 50.933763855056114, + "tiploc": "WINCNEW", + "name": "Winchelsea", + "crs": "WSE", + "toc": "SN", + "lon": 0.7022616615985646 + }, + { + "lat": 51.511807863865975, + "tiploc": "BLFR", + "name": "London Blackfriars", + "crs": "BFR", + "toc": "TL", + "lon": -0.10333206712443484 + }, + { + "lat": 0.0, + "tiploc": "HOLINWD", + "name": "Hollinwood", + "crs": "HOD", + "toc": "NT", + "lon": 0.0 + }, + { + "lat": 58.4829906214691, + "tiploc": "SCSCLDR", + "name": "Scotscalder", + "crs": "SCT", + "toc": "SR", + "lon": -3.552049792086418 + }, + { + "lat": 52.37909277406321, + "tiploc": "RUGBY", + "name": "Rugby", + "crs": "RUG", + "toc": "VT", + "lon": -1.2504844056581146 + }, + { + "lat": 51.39192556811119, + "tiploc": "SELHRST", + "name": "Selhurst", + "crs": "SRS", + "toc": "SN", + "lon": -0.0882999731671392 + }, + { + "lat": 51.16331747107855, + "tiploc": "MLFORLP", + "name": "Milford (Surrey)", + "crs": "MLF", + "toc": "SW", + "lon": -0.6369483542335653 + }, + { + "lat": 51.65891738766915, + "tiploc": "PNALLY", + "name": "Penally", + "crs": "PNA", + "toc": "AW", + "lon": -4.722054956437404 + }, + { + "lat": 51.301066862213275, + "tiploc": "STURRY", + "name": "Sturry", + "crs": "STU", + "toc": "SE", + "lon": 1.1222552816532474 + }, + { + "lat": 55.60574042621791, + "tiploc": "TWDBANK", + "name": "Tweedbank", + "crs": "TWB", + "toc": "SR", + "lon": -2.7595311314552293 + }, + { + "lat": 51.6409325818712, + "tiploc": "YSTRADM", + "name": "Ystrad Mynach", + "crs": "YSM", + "toc": "AW", + "lon": -3.241295319664947 + }, + { + "lat": 52.48943298557931, + "tiploc": "BHAMJEW", + "name": "Jewellery Quarter", + "crs": "JEQ", + "toc": "LM", + "lon": -1.9132127550882023 + }, + { + "lat": 55.50169620707306, + "tiploc": "PWCK", + "name": "Prestwick Town", + "crs": "PTW", + "toc": "SR", + "lon": -4.615156230936393 + }, + { + "lat": 51.43763362127064, + "tiploc": "EASTBRK", + "name": "Eastbrook", + "crs": "EBK", + "toc": "AW", + "lon": -3.206137387122615 + }, + { + "lat": 51.66992041786625, + "tiploc": "PNRHCBR", + "name": "Penrhiwceiber", + "crs": "PER", + "toc": "AW", + "lon": -3.3599436449947055 + }, + { + "lat": 51.65658419128251, + "tiploc": "CWMBRAN", + "name": "Cwmbran", + "crs": "CWM", + "toc": "AW", + "lon": -3.0162033039507308 + }, + { + "lat": 56.456472528739745, + "tiploc": "INVGWRE", + "name": "Invergowrie", + "crs": "ING", + "toc": "SR", + "lon": -3.0573977003418316 + }, + { + "lat": 54.60988796718284, + "tiploc": "REDCBSC", + "name": "British Steel Redcar", + "crs": "RBS", + "toc": "NT", + "lon": -1.112661204774171 + }, + { + "lat": 52.4369076910224, + "tiploc": "HLGN", + "name": "Hall Green", + "crs": "HLG", + "toc": "LM", + "lon": -1.8456508656424881 + }, + { + "lat": 55.90138256910659, + "tiploc": "LVNSTNN", + "name": "Livingston North", + "crs": "LSN", + "toc": "SR", + "lon": -3.544350818643811 + }, + { + "lat": 53.41401013760736, + "tiploc": "ROMILEY", + "name": "Romiley", + "crs": "RML", + "toc": "NT", + "lon": -2.0893264853815525 + }, + { + "lat": 51.633655747389525, + "tiploc": "BRNMONC", + "name": "Burnham-on-Crouch", + "crs": "BUU", + "toc": "LE", + "lon": 0.8140278287738434 + }, + { + "lat": 51.49031, + "tiploc": "BRNSTLT", + "name": "Barons Court Underground", + "crs": "ZBC", + "toc": "LT", + "lon": -0.2134 + }, + { + "lat": 51.016533309252374, + "tiploc": "CHAPLTN", + "name": "Chapleton", + "crs": "CPN", + "toc": "GW", + "lon": -4.024721812383304 + }, + { + "lat": 57.988711987913064, + "tiploc": "ROGART", + "name": "Rogart", + "crs": "ROG", + "toc": "SR", + "lon": -4.1581849330518015 + }, + { + "lat": 55.871691930359184, + "tiploc": "LVNSTNS", + "name": "Livingston South", + "crs": "LVG", + "toc": "SR", + "lon": -3.5015691140620104 + }, + { + "lat": 53.42555829026513, + "tiploc": "HTCP", + "name": "Heaton Chapel", + "crs": "HTC", + "toc": "NT", + "lon": -2.1790415060301433 + }, + { + "lat": 50.93607219373755, + "tiploc": "KNYMPTN", + "name": "Kings Nympton", + "crs": "KGN", + "toc": "GW", + "lon": -3.905410632933094 + }, + { + "lat": 57.621756226518144, + "tiploc": "LCHLCHR", + "name": "Lochluichart", + "crs": "LCC", + "toc": "SR", + "lon": -4.809048773004652 + }, + { + "lat": 57.33700072249785, + "tiploc": "DUNCRAG", + "name": "Duncraig", + "crs": "DCG", + "toc": "SR", + "lon": -5.637130566251576 + }, + { + "lat": 53.71381610007096, + "tiploc": "TODMRDN", + "name": "Todmorden", + "crs": "TOD", + "toc": "NT", + "lon": -2.099659168967867 + }, + { + "lat": 51.513503680344456, + "tiploc": "WEALING", + "name": "West Ealing", + "crs": "WEA", + "toc": "GW", + "lon": -0.32013327441965683 + }, + { + "lat": 51.570212143736754, + "tiploc": "SKENTON", + "name": "South Kenton", + "crs": "SOK", + "toc": "LT", + "lon": -0.308462437181778 + }, + { + "lat": 55.926687214026124, + "tiploc": "SLATEFD", + "name": "Slateford", + "crs": "SLA", + "toc": "SR", + "lon": -3.2434565047305104 + }, + { + "lat": 56.00420690277842, + "tiploc": "HLNSBRC", + "name": "Helensburgh Central", + "crs": "HLC", + "toc": "SR", + "lon": -4.732757753398864 + }, + { + "lat": 51.46629577731621, + "tiploc": "LBGHJN", + "name": "Loughborough Junction", + "crs": "LGJ", + "toc": "TL", + "lon": -0.10218207794252922 + }, + { + "lat": 0.0, + "tiploc": "PWCH", + "name": "Prestwich Metrolink (Bus)", + "crs": "PWC", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.36447767163343, + "tiploc": "HALW", + "name": "Halewood", + "crs": "HED", + "toc": "NT", + "lon": -2.8301338990336697 + }, + { + "lat": 52.578969537813265, + "tiploc": "ATHRSTN", + "name": "Atherstone", + "crs": "ATH", + "toc": "LM", + "lon": -1.5528113308937872 + }, + { + "lat": 51.36271841950398, + "tiploc": "EYNSFD", + "name": "Eynsford", + "crs": "EYN", + "toc": "SE", + "lon": 0.20439312926986475 + }, + { + "lat": 53.007978436382714, + "tiploc": "STOKEOT", + "name": "Stoke-on-Trent", + "crs": "SOT", + "toc": "VT", + "lon": -2.1809873296066558 + }, + { + "lat": 55.8879418580705, + "tiploc": "CLDRCRX", + "name": "Caldercruix", + "crs": "CAC", + "toc": "SR", + "lon": -3.8877110444554175 + }, + { + "lat": 51.418728017544645, + "tiploc": "STRHCOM", + "name": "Streatham Common", + "crs": "SRC", + "toc": "SN", + "lon": -0.13600984942674885 + }, + { + "lat": 0.0, + "tiploc": "WISBBUS", + "name": "Wisbech Horsefair (Bus)", + "crs": "WIS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.52341838704696, + "tiploc": "MSTN", + "name": "Moston", + "crs": "MSO", + "toc": "NT", + "lon": -2.1710228330004577 + }, + { + "lat": 50.8550468574776, + "tiploc": "BLIEURD", + "name": "Beaulieu Road", + "crs": "BEU", + "toc": "SW", + "lon": -1.5047494907054941 + }, + { + "lat": 0.0, + "tiploc": "SOTDWD", + "name": "Southampton Western Docks", + "crs": "XSK", + "toc": "PC", + "lon": 0.0 + }, + { + "lat": 51.5393, + "tiploc": "BARKGLT", + "name": "Barking Underground", + "crs": "ZBK", + "toc": "LT", + "lon": 0.0817 + }, + { + "lat": 54.95954259529612, + "tiploc": "BRWHINS", + "name": "Brockley Whins (T & W Metro)", + "crs": "BNR", + "toc": "TW", + "lon": -1.461353275208675 + }, + { + "lat": 0.0, + "tiploc": "FALSWTH", + "name": "Failsworth", + "crs": "FLS", + "toc": "NT", + "lon": 0.0 + }, + { + "lat": 53.724242814434305, + "tiploc": "LSTH", + "name": "Lostock Hall", + "crs": "LOH", + "toc": "NT", + "lon": -2.68748331991519 + }, + { + "lat": 51.6130909542498, + "tiploc": "MLHB", + "name": "Mill Hill Broadway", + "crs": "MIL", + "toc": "TL", + "lon": -0.24923971283812835 + }, + { + "lat": 52.47093183717112, + "tiploc": "OLHL", + "name": "Old Hill", + "crs": "OHL", + "toc": "LM", + "lon": -2.0561906629362308 + }, + { + "lat": 51.379638316572034, + "tiploc": "BEDYN", + "name": "Bedwyn", + "crs": "BDW", + "toc": "GW", + "lon": -1.598786116903275 + }, + { + "lat": 50.95700018049761, + "tiploc": "PRTSMTA", + "name": "Portsmouth Arms", + "crs": "PMA", + "toc": "GW", + "lon": -3.950579400452369 + }, + { + "lat": 51.58291686864411, + "tiploc": "WLTWCEN", + "name": "Walthamstow Central", + "crs": "WHC", + "toc": "LO", + "lon": -0.019815023124161005 + }, + { + "lat": 56.11205715123655, + "tiploc": "KCLD", + "name": "Kirkcaldy", + "crs": "KDY", + "toc": "SR", + "lon": -3.1670283174746188 + }, + { + "lat": 53.469083127844634, + "tiploc": "FAZKRLY", + "name": "Fazakerley", + "crs": "FAZ", + "toc": "ME", + "lon": -2.936723192447611 + }, + { + "lat": 55.859754790338684, + "tiploc": "GLGC", + "name": "Glasgow Central", + "crs": "GLC", + "toc": "RT", + "lon": -4.257643235656933 + }, + { + "lat": 56.01236201340869, + "tiploc": "HLNSBRU", + "name": "Helensburgh Upper", + "crs": "HLU", + "toc": "SR", + "lon": -4.729803949412385 + }, + { + "lat": 53.26766304277784, + "tiploc": "LSTG", + "name": "Lostock Gralam", + "crs": "LTG", + "toc": "NT", + "lon": -2.4652029707315037 + }, + { + "lat": 51.54814632472448, + "tiploc": "DALSKLD", + "name": "Dalston Kingsland", + "crs": "DLK", + "toc": "LO", + "lon": -0.07570082140922381 + }, + { + "lat": 50.70102899478129, + "tiploc": "MORETON", + "name": "Moreton (Dorset)", + "crs": "MTN", + "toc": "SW", + "lon": -2.3134496593317087 + }, + { + "lat": 54.94641358659324, + "tiploc": "EBOLDON", + "name": "East Boldon (T & W Metro)", + "crs": "EBL", + "toc": "TW", + "lon": -1.4203139194037617 + }, + { + "lat": 52.051496006399745, + "tiploc": "CYNGHRD", + "name": "Cynghordy", + "crs": "CYN", + "toc": "AW", + "lon": -3.7482105026070274 + }, + { + "lat": 55.536731685417955, + "tiploc": "CHHL", + "name": "Chathill", + "crs": "CHT", + "toc": "NT", + "lon": -1.7063751469664243 + }, + { + "lat": 52.3914141501688, + "tiploc": "HOPTONH", + "name": "Hopton Heath", + "crs": "HPT", + "toc": "AW", + "lon": -2.9120595833540146 + }, + { + "lat": 56.11778819219982, + "tiploc": "ALLOA", + "name": "Alloa", + "crs": "ALO", + "toc": "SR", + "lon": -3.790055586305255 + }, + { + "lat": 50.79849359441136, + "tiploc": "PSEA", + "name": "Portsmouth & Southsea", + "crs": "PMS", + "toc": "SW", + "lon": -1.0909110478613053 + }, + { + "lat": 56.45235146275262, + "tiploc": "CONNELF", + "name": "Connel Ferry", + "crs": "CON", + "toc": "SR", + "lon": -5.3854408423729705 + }, + { + "lat": 51.48326612701557, + "tiploc": "WINDSEC", + "name": "Windsor & Eton Central", + "crs": "WNC", + "toc": "GW", + "lon": -0.6103799247307021 + }, + { + "lat": 51.523915395974285, + "tiploc": "BTHNLGR", + "name": "Bethnal Green", + "crs": "BET", + "toc": "LO", + "lon": -0.05956804087052071 + }, + { + "lat": 51.901436440474555, + "tiploc": "STANMFC", + "name": "Stansted Mountfitchet", + "crs": "SST", + "toc": "LE", + "lon": 0.19978087452933835 + }, + { + "lat": 51.37988927380555, + "tiploc": "ESHER", + "name": "Esher", + "crs": "ESH", + "toc": "SW", + "lon": -0.3533378261942159 + }, + { + "lat": 50.933763855056114, + "tiploc": "WINCSEA", + "name": "Winchelsea", + "crs": "WSE", + "toc": "SN", + "lon": 0.7022616615985646 + }, + { + "lat": 0.0, + "tiploc": "LYNECMP", + "name": "Lyneham Camp (Bus)", + "crs": "XBD", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.356548476594966, + "tiploc": "CHSSS", + "name": "Chessington South", + "crs": "CSS", + "toc": "SW", + "lon": -0.3081575636500277 + }, + { + "lat": 52.62728638947704, + "tiploc": "CODSALL", + "name": "Codsall", + "crs": "CSL", + "toc": "LM", + "lon": -2.2017628137333145 + }, + { + "lat": 56.84282591316124, + "tiploc": "CORPACH", + "name": "Corpach", + "crs": "CPA", + "toc": "SR", + "lon": -5.1219564407639675 + }, + { + "lat": 53.53385055940274, + "tiploc": "HAGFOLD", + "name": "Hag Fold", + "crs": "HGF", + "toc": "NT", + "lon": -2.4948215406378895 + }, + { + "lat": 51.46750506952694, + "tiploc": "STPLTNR", + "name": "Stapleton Road", + "crs": "SRD", + "toc": "GW", + "lon": -2.5662168284696207 + }, + { + "lat": 51.559106197898565, + "tiploc": "UPMNSTR", + "name": "Upminster", + "crs": "UPM", + "toc": "CC", + "lon": 0.25088392480396865 + }, + { + "lat": 52.129476371735144, + "tiploc": "BESJOHN", + "name": "Bedford St Johns", + "crs": "BSJ", + "toc": "LM", + "lon": -0.4675010105918842 + }, + { + "lat": 56.888363179145095, + "tiploc": "ROYBDGE", + "name": "Roy Bridge", + "crs": "RYB", + "toc": "SR", + "lon": -4.8372420520421215 + }, + { + "lat": 51.345697372422094, + "tiploc": "DUMPTNP", + "name": "Dumpton Park", + "crs": "DMP", + "toc": "SE", + "lon": 1.4258186362823204 + }, + { + "lat": 50.76091046687727, + "tiploc": "LMTNTWN", + "name": "Lymington Town", + "crs": "LYT", + "toc": "SW", + "lon": -1.537161991001282 + }, + { + "lat": 53.824015495373914, + "tiploc": "WHALLEY", + "name": "Whalley", + "crs": "WHE", + "toc": "NT", + "lon": -2.4122529909136268 + }, + { + "lat": 51.54710307555882, + "tiploc": "HACKNYC", + "name": "Hackney Central", + "crs": "HKC", + "toc": "LO", + "lon": -0.056057609636737116 + }, + { + "lat": 53.451881717823916, + "tiploc": "HYDEC", + "name": "Hyde Central", + "crs": "HYC", + "toc": "NT", + "lon": -2.085250132298221 + }, + { + "lat": 51.342191393392405, + "tiploc": "PEWSEY", + "name": "Pewsey", + "crs": "PEW", + "toc": "GW", + "lon": -1.7706752147335356 + }, + { + "lat": 53.4912712733896, + "tiploc": "ASHONUL", + "name": "Ashton-under-Lyne", + "crs": "AHN", + "toc": "NT", + "lon": -2.094312273592711 + }, + { + "lat": 50.21657711219791, + "tiploc": "PERANWL", + "name": "Perranwell", + "crs": "PRW", + "toc": "GW", + "lon": -5.11206911064482 + }, + { + "lat": 54.54167767053412, + "tiploc": "CRCK", + "name": "Corkickle", + "crs": "CKL", + "toc": "NT", + "lon": -3.5821639937524865 + }, + { + "lat": 53.54432310790814, + "tiploc": "DODWRTH", + "name": "Dodworth", + "crs": "DOD", + "toc": "NT", + "lon": -1.531690739537414 + }, + { + "lat": 55.9143167563865, + "tiploc": "WHAILES", + "name": "Wester Hailes", + "crs": "WTA", + "toc": "SR", + "lon": -3.2843391469486276 + }, + { + "lat": 54.9527, + "tiploc": "PELAWTW", + "name": "Pelaw (T & W Metro)", + "crs": "PAW", + "toc": "TW", + "lon": -1.5414 + }, + { + "lat": 0.0, + "tiploc": "WDBDGBS", + "name": "Wadebridge Bus Station", + "crs": "WBE", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.43545074209875, + "tiploc": "ALBNYPK", + "name": "Albany Park", + "crs": "AYP", + "toc": "SE", + "lon": 0.12573707258458985 + }, + { + "lat": 55.93312038970162, + "tiploc": "NCRAGHA", + "name": "Newcraighall", + "crs": "NEW", + "toc": "SR", + "lon": -3.090843369712456 + }, + { + "lat": 50.86694650567125, + "tiploc": "OREE", + "name": "Ore", + "crs": "ORE", + "toc": "SN", + "lon": 0.5915678864183034 + }, + { + "lat": 0.0, + "tiploc": "CSBY", + "name": "Castlebay, Barra (Bus)", + "crs": "CTB", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.34681424161992, + "tiploc": "HALSWTH", + "name": "Halesworth", + "crs": "HAS", + "toc": "LE", + "lon": 1.5056673864896757 + }, + { + "lat": 51.477071505387414, + "tiploc": "KEWGRDN", + "name": "Kew Gardens", + "crs": "KWG", + "toc": "LT", + "lon": -0.2850535827780554 + }, + { + "lat": 0.0, + "tiploc": "SINFINN", + "name": "Private Charter", + "crs": "SIR", + "toc": "PC", + "lon": 0.0 + }, + { + "lat": 55.86154970103413, + "tiploc": "EXHIBTC", + "name": "Exhibition Centre", + "crs": "EXG", + "toc": "SR", + "lon": -4.283588682142815 + }, + { + "lat": 53.62210445117547, + "tiploc": "HILLSID", + "name": "Hillside", + "crs": "HIL", + "toc": "ME", + "lon": -3.0247163439543088 + }, + { + "lat": 53.40069088158731, + "tiploc": "MARPLE", + "name": "Marple", + "crs": "MPL", + "toc": "NT", + "lon": -2.0572633095536417 + }, + { + "lat": 51.33022872231719, + "tiploc": "SNODLND", + "name": "Snodland", + "crs": "SDA", + "toc": "SE", + "lon": 0.44824123983778225 + }, + { + "lat": 51.288736829389016, + "tiploc": "BOOKHAM", + "name": "Bookham", + "crs": "BKA", + "toc": "SW", + "lon": -0.38402067131111095 + }, + { + "lat": 53.432114847602904, + "tiploc": "BRNGTN", + "name": "Brinnington", + "crs": "BNT", + "toc": "NT", + "lon": -2.1351198799067452 + }, + { + "lat": 51.54340859032718, + "tiploc": "HACKNYW", + "name": "Hackney Wick", + "crs": "HKW", + "toc": "LO", + "lon": -0.02491985130768602 + }, + { + "lat": 53.75296957669655, + "tiploc": "ACRNGTN", + "name": "Accrington", + "crs": "ACR", + "toc": "NT", + "lon": -2.369547770205079 + }, + { + "lat": 51.4735643467626, + "tiploc": "PCKHMQD", + "name": "Queens Road Peckham", + "crs": "QRP", + "toc": "SN", + "lon": -0.0573135676937522 + }, + { + "lat": 51.395973166177534, + "tiploc": "MIDGHAM", + "name": "Midgham", + "crs": "MDG", + "toc": "GW", + "lon": -1.1777111832007257 + }, + { + "lat": 0.0, + "tiploc": "MUCK", + "name": "Muck (Bus)", + "crs": "MUK", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.331579805088744, + "tiploc": "BCKWATR", + "name": "Blackwater", + "crs": "BAW", + "toc": "GW", + "lon": -0.7767409865931416 + }, + { + "lat": 53.4909906778526, + "tiploc": "MEXBRGH", + "name": "Mexborough", + "crs": "MEX", + "toc": "NT", + "lon": -1.2885613401038845 + }, + { + "lat": 53.47134226395536, + "tiploc": "ARDWICK", + "name": "Ardwick", + "crs": "ADK", + "toc": "NT", + "lon": -2.2138838842383604 + }, + { + "lat": 54.46615164504401, + "tiploc": "DANBY", + "name": "Danby", + "crs": "DNY", + "toc": "NT", + "lon": -0.9109557967312526 + }, + { + "lat": 0.0, + "tiploc": "GOURPIE", + "name": "Gourock Pier (Bus)", + "crs": "GXX", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.5422351078765, + "tiploc": "HINDLEY", + "name": "Hindley", + "crs": "HIN", + "toc": "NT", + "lon": -2.5755016316590877 + }, + { + "lat": 55.84734834169205, + "tiploc": "PSLYGST", + "name": "Paisley Gilmour Street", + "crs": "PYG", + "toc": "SR", + "lon": -4.424506320272606 + }, + { + "lat": 55.50903413058006, + "tiploc": "PWCKAPT", + "name": "Prestwick Intl Airport", + "crs": "PRA", + "toc": "SR", + "lon": -4.614169982175123 + }, + { + "lat": 52.52464968997138, + "tiploc": "DUDLPT", + "name": "Dudley Port", + "crs": "DDP", + "toc": "LM", + "lon": -2.0494795543777355 + }, + { + "lat": 52.23794223147221, + "tiploc": "NWMKET", + "name": "Newmarket", + "crs": "NMK", + "toc": "LE", + "lon": 0.40620825657474535 + }, + { + "lat": 51.70635407333809, + "tiploc": "KLGL", + "name": "Kings Langley", + "crs": "KGL", + "toc": "LM", + "lon": -0.4384219336413307 + }, + { + "lat": 55.94136407239755, + "tiploc": "MLGV", + "name": "Milngavie", + "crs": "MLN", + "toc": "SR", + "lon": -4.314580331436929 + }, + { + "lat": 51.311860193864256, + "tiploc": "FRIMLEY", + "name": "Frimley", + "crs": "FML", + "toc": "SW", + "lon": -0.746991327287048 + }, + { + "lat": 54.33307043315577, + "tiploc": "NLRTN", + "name": "Northallerton", + "crs": "NTR", + "toc": "TP", + "lon": -1.441273014849191 + }, + { + "lat": 51.269901433041206, + "tiploc": "SWCH", + "name": "Sandwich", + "crs": "SDW", + "toc": "SE", + "lon": 1.3425680679307108 + }, + { + "lat": 53.621039094222894, + "tiploc": "BERRYB", + "name": "Berry Brow", + "crs": "BBW", + "toc": "NT", + "lon": -1.7934320912285353 + }, + { + "lat": 51.61095262813155, + "tiploc": "DIDCOTP", + "name": "Didcot Parkway", + "crs": "DID", + "toc": "GW", + "lon": -1.2428934666610905 + }, + { + "lat": 51.01996573156394, + "tiploc": "SNGT", + "name": "Stonegate", + "crs": "SOG", + "toc": "SE", + "lon": 0.3638681279567043 + }, + { + "lat": 0.0, + "tiploc": "HTRW", + "name": "Heathrow Airport (Bus)", + "crs": "LHR", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.35247585238718, + "tiploc": "HALG", + "name": "Halling", + "crs": "HAI", + "toc": "SE", + "lon": 0.4449317874378512 + }, + { + "lat": 52.887832505759135, + "tiploc": "PWLHELI", + "name": "Pwllheli", + "crs": "PWL", + "toc": "AW", + "lon": -4.416697424598288 + }, + { + "lat": 51.53733148675008, + "tiploc": "WCLIFF", + "name": "Westcliff", + "crs": "WCF", + "toc": "CC", + "lon": 0.6914658883353497 + }, + { + "lat": 51.53870359463006, + "tiploc": "HAGGERS", + "name": "Haggerston", + "crs": "HGG", + "toc": "LO", + "lon": -0.07566654543225616 + }, + { + "lat": 52.93008230803056, + "tiploc": "CMER", + "name": "Cromer", + "crs": "CMR", + "toc": "LE", + "lon": 1.2928244096264836 + }, + { + "lat": 55.98508194911676, + "tiploc": "ALXANDR", + "name": "Alexandria", + "crs": "ALX", + "toc": "SR", + "lon": -4.577484177013137 + }, + { + "lat": 0.0, + "tiploc": "BRWCGAL", + "name": "Galashiels (Bus)", + "crs": "XAA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.557460949042174, + "tiploc": "COOKHAM", + "name": "Cookham", + "crs": "COO", + "toc": "GW", + "lon": -0.7220790379968764 + }, + { + "lat": 51.735760586118694, + "tiploc": "MNKRISB", + "name": "Monks Risborough", + "crs": "MRS", + "toc": "CH", + "lon": -0.8293336932226391 + }, + { + "lat": 52.80895537337625, + "tiploc": "YORTON", + "name": "Yorton", + "crs": "YRT", + "toc": "AW", + "lon": -2.7364610874438946 + }, + { + "lat": 54.115515689327516, + "tiploc": "BNTHAM", + "name": "Bentham", + "crs": "BEN", + "toc": "NT", + "lon": -2.510676138109706 + }, + { + "lat": 52.89351311557426, + "tiploc": "GOBOWEN", + "name": "Gobowen", + "crs": "GOB", + "toc": "AW", + "lon": -3.0371725415984145 + }, + { + "lat": 53.37871596370728, + "tiploc": "HALE", + "name": "Hale", + "crs": "HAL", + "toc": "NT", + "lon": -2.347356752923866 + }, + { + "lat": 55.85487150193085, + "tiploc": "CNTY", + "name": "Carntyne", + "crs": "CAY", + "toc": "SR", + "lon": -4.178572149943831 + }, + { + "lat": 0.0, + "tiploc": "SEATNSF", + "name": "Seaton, Devon (Bus)", + "crs": "SSF", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 55.816925074960515, + "tiploc": "BRSDE", + "name": "Burnside", + "crs": "BUI", + "toc": "SR", + "lon": -4.2023893240217705 + }, + { + "lat": 54.416583603684806, + "tiploc": "SELAFLD", + "name": "Sellafield", + "crs": "SEL", + "toc": "NT", + "lon": -3.5104564274443253 + }, + { + "lat": 51.42127371866525, + "tiploc": "WDNLUL", + "name": "Wimbledon", + "crs": "WIM", + "toc": "SW", + "lon": -0.2063686576928071 + }, + { + "lat": 52.421500818440244, + "tiploc": "YRDLYWD", + "name": "Yardley Wood", + "crs": "YRD", + "toc": "LM", + "lon": -1.8543803043900209 + }, + { + "lat": 51.70287431734244, + "tiploc": "CHESHNT", + "name": "Cheshunt", + "crs": "CHN", + "toc": "LE", + "lon": -0.02395971939804669 + }, + { + "lat": 53.720959084760786, + "tiploc": "HLFX", + "name": "Halifax", + "crs": "HFX", + "toc": "NT", + "lon": -1.8535747288747542 + }, + { + "lat": 51.22732659082749, + "tiploc": "EARLSWD", + "name": "Earlswood (Surrey)", + "crs": "ELD", + "toc": "SN", + "lon": -0.17082306188471091 + }, + { + "lat": 0.0, + "tiploc": "STOKHAN", + "name": "Hanley (Bus)", + "crs": "HNY", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.90111338242382, + "tiploc": "THOKLB", + "name": "Three Oaks", + "crs": "TOK", + "toc": "SN", + "lon": 0.6130509716152298 + }, + { + "lat": 48.8809, + "tiploc": "PARISND", + "name": "Paris Nord", + "crs": "PBN", + "toc": "ES", + "lon": 2.3553 + }, + { + "lat": 51.42447885135472, + "tiploc": "TEDNGTN", + "name": "Teddington", + "crs": "TED", + "toc": "SW", + "lon": -0.3327059798315425 + }, + { + "lat": 53.19500333369731, + "tiploc": "HYKEHAM", + "name": "Hykeham", + "crs": "HKM", + "toc": "EM", + "lon": -0.6001964539283414 + }, + { + "lat": 55.887693410701466, + "tiploc": "GSCD", + "name": "Garscadden", + "crs": "GRS", + "toc": "SR", + "lon": -4.365004452962736 + }, + { + "lat": 53.358181062848054, + "tiploc": "DISLEY", + "name": "Disley", + "crs": "DSL", + "toc": "NT", + "lon": -2.0424815232310087 + }, + { + "lat": 50.93231779614968, + "tiploc": "HEDGEND", + "name": "Hedge End", + "crs": "HDE", + "toc": "SW", + "lon": -1.2945033499725416 + }, + { + "lat": 51.07396761736103, + "tiploc": "BRNSTPL", + "name": "Barnstaple", + "crs": "BNP", + "toc": "GW", + "lon": -4.06311678114852 + }, + { + "lat": 55.813314491870216, + "tiploc": "KENISHD", + "name": "Kennishead", + "crs": "KNS", + "toc": "SR", + "lon": -4.325246101222722 + }, + { + "lat": 52.44739876026481, + "tiploc": "LAKNHTH", + "name": "Lakenheath", + "crs": "LAK", + "toc": "LE", + "lon": 0.5351976282324373 + }, + { + "lat": 51.43985930266687, + "tiploc": "TULSEH", + "name": "Tulse Hill", + "crs": "TUH", + "toc": "SN", + "lon": -0.10507676152175217 + }, + { + "lat": 51.54516384536102, + "tiploc": "BRBY", + "name": "Brondesbury", + "crs": "BSY", + "toc": "LO", + "lon": -0.20230872661681343 + }, + { + "lat": 54.25866629865523, + "tiploc": "FOXFILD", + "name": "Foxfield", + "crs": "FOX", + "toc": "NT", + "lon": -3.2160614708759887 + }, + { + "lat": 52.71192676795479, + "tiploc": "SHRWBY", + "name": "Shrewsbury", + "crs": "SHR", + "toc": "AW", + "lon": -2.749761144951977 + }, + { + "lat": 51.73635033380392, + "tiploc": "WELHAMG", + "name": "Welham Green", + "crs": "WMG", + "toc": "GN", + "lon": -0.21069174517156944 + }, + { + "lat": 55.920091301901486, + "tiploc": "HLFT", + "name": "Hillfoot", + "crs": "HLF", + "toc": "SR", + "lon": -4.320274100697253 + }, + { + "lat": 51.470032278229645, + "tiploc": "PCKHMRY", + "name": "Peckham Rye", + "crs": "PMR", + "toc": "SN", + "lon": -0.06941440763101693 + }, + { + "lat": 0.0, + "tiploc": "PEMBFTM", + "name": "Pembroke Dock Ferry Term", + "crs": "PDK", + "toc": "ZF", + "lon": 0.0 + }, + { + "lat": 51.467784228261124, + "tiploc": "SLADEGN", + "name": "Slade Green", + "crs": "SGR", + "toc": "SE", + "lon": 0.19049134611864152 + }, + { + "lat": 53.566051487778815, + "tiploc": "FRSHFLD", + "name": "Freshfield", + "crs": "FRE", + "toc": "ME", + "lon": -3.071829394658652 + }, + { + "lat": 51.09036856293132, + "tiploc": "SDLG", + "name": "Sandling", + "crs": "SDG", + "toc": "SE", + "lon": 1.0660427704251827 + }, + { + "lat": 55.91192805573142, + "tiploc": "DALMUIR", + "name": "Dalmuir", + "crs": "DMR", + "toc": "SR", + "lon": -4.426680836378344 + }, + { + "lat": 51.59146041493193, + "tiploc": "TREFRST", + "name": "Trefforest", + "crs": "TRF", + "toc": "AW", + "lon": -3.3251177491921586 + }, + { + "lat": 54.75043515788677, + "tiploc": "LAZKRKO", + "name": "Lazonby & Kirkoswald", + "crs": "LZB", + "toc": "NT", + "lon": -2.703208593363997 + }, + { + "lat": 51.34578762936398, + "tiploc": "KNCKHLT", + "name": "Knockholt", + "crs": "KCK", + "toc": "SE", + "lon": 0.13084706073294605 + }, + { + "lat": 52.666779626471325, + "tiploc": "LYNGRIL", + "name": "Llwyngwril", + "crs": "LLW", + "toc": "AW", + "lon": -4.087678883867072 + }, + { + "lat": 51.50050408040968, + "tiploc": "DANESCT", + "name": "Danescourt", + "crs": "DCT", + "toc": "AW", + "lon": -3.2339167786478193 + }, + { + "lat": 51.24483081366307, + "tiploc": "HRSM", + "name": "Harrietsham", + "crs": "HRM", + "toc": "SE", + "lon": 0.6723993422194765 + }, + { + "lat": 52.15109797890159, + "tiploc": "WCKHMMR", + "name": "Wickham Market", + "crs": "WCM", + "toc": "LE", + "lon": 1.3986801343035622 + }, + { + "lat": 53.679064725180496, + "tiploc": "FTHRSTN", + "name": "Featherstone", + "crs": "FEA", + "toc": "NT", + "lon": -1.3584441326728776 + }, + { + "lat": 51.45330316857944, + "tiploc": "HERNEH", + "name": "Herne Hill", + "crs": "HNH", + "toc": "SE", + "lon": -0.10228916719167419 + }, + { + "lat": 53.47403006615655, + "tiploc": "MNCROXR", + "name": "Manchester Oxford Road", + "crs": "MCO", + "toc": "NT", + "lon": -2.241995406797514 + }, + { + "lat": 51.56355261158478, + "tiploc": "LYTNSHR", + "name": "Leytonstone High Road", + "crs": "LER", + "toc": "LO", + "lon": 0.008416396367203939 + }, + { + "lat": 0.0, + "tiploc": "HLSTCOI", + "name": "Helston (Bus)", + "crs": "XAV", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.98520279700324, + "tiploc": "RAUCEBY", + "name": "Rauceby", + "crs": "RAU", + "toc": "EM", + "lon": -0.4566061907096192 + }, + { + "lat": 51.41452265176211, + "tiploc": "HAMWICK", + "name": "Hampton Wick", + "crs": "HMW", + "toc": "SW", + "lon": -0.31248952837907124 + }, + { + "lat": 51.580979040166206, + "tiploc": "STJMSST", + "name": "St James Street", + "crs": "SJS", + "toc": "LO", + "lon": -0.0329184538416972 + }, + { + "lat": 54.5181309447667, + "tiploc": "TSDARPR", + "name": "Tees-side Airport", + "crs": "TEA", + "toc": "NT", + "lon": -1.4253114371461526 + }, + { + "lat": 0.0, + "tiploc": "CUMBRAE", + "name": "Cumbrae Slip (Bus)", + "crs": "CUL", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.962584894366564, + "tiploc": "LLWRDA", + "name": "Llanwrda", + "crs": "LNR", + "toc": "AW", + "lon": -3.8716737984036493 + }, + { + "lat": 52.92075314328905, + "tiploc": "BESTON", + "name": "Beeston", + "crs": "BEE", + "toc": "EM", + "lon": -1.2076579248609383 + }, + { + "lat": 55.84020059808293, + "tiploc": "MNTVRNN", + "name": "Mount Vernon", + "crs": "MTV", + "toc": "SR", + "lon": -4.133669128525143 + }, + { + "lat": 53.673339376161884, + "tiploc": "CHORBUK", + "name": "Buckshaw Parkway", + "crs": "BSV", + "toc": "NT", + "lon": -2.660829852861463 + }, + { + "lat": 56.40118807919738, + "tiploc": "DLMALLY", + "name": "Dalmally", + "crs": "DAL", + "toc": "SR", + "lon": -4.983552010156044 + }, + { + "lat": 51.5504930446158, + "tiploc": "KNTSHTN", + "name": "Kentish Town", + "crs": "KTN", + "toc": "LT", + "lon": -0.14036498220597016 + }, + { + "lat": 53.45481560670526, + "tiploc": "TRFDPK", + "name": "Trafford Park", + "crs": "TRA", + "toc": "NT", + "lon": -2.3106311180483594 + }, + { + "lat": 53.06051468384517, + "tiploc": "AMBERGT", + "name": "Ambergate", + "crs": "AMB", + "toc": "EM", + "lon": -1.4806974498607373 + }, + { + "lat": 53.676700979783654, + "tiploc": "GOXHILL", + "name": "Goxhill", + "crs": "GOX", + "toc": "NT", + "lon": -0.3371204815499558 + }, + { + "lat": 51.74663017090287, + "tiploc": "PNTLTYN", + "name": "Pontlottyn", + "crs": "PLT", + "toc": "AW", + "lon": -3.278955816478878 + }, + { + "lat": 57.395035629376764, + "tiploc": "ATADALE", + "name": "Attadale", + "crs": "ATT", + "toc": "SR", + "lon": -5.455577000042555 + }, + { + "lat": 50.731086084416, + "tiploc": "POKSDWN", + "name": "Pokesdown", + "crs": "POK", + "toc": "SW", + "lon": -1.8251020610348874 + }, + { + "lat": 54.9182, + "tiploc": "STDI", + "name": "Stadium of Light (T & W Metro)", + "crs": "STI", + "toc": "TW", + "lon": -1.3829 + }, + { + "lat": 53.297197164029875, + "tiploc": "HOOTON", + "name": "Hooton", + "crs": "HOO", + "toc": "ME", + "lon": -2.977009255328369 + }, + { + "lat": 52.02134961477059, + "tiploc": "KINSSTN", + "name": "Kings Sutton", + "crs": "KGS", + "toc": "CH", + "lon": -1.280930579507839 + }, + { + "lat": 51.54654598126563, + "tiploc": "KNTSHTW", + "name": "Kentish Town West", + "crs": "KTW", + "toc": "LO", + "lon": -0.1466555103053037 + }, + { + "lat": 51.5101, + "tiploc": "PICDYCR", + "name": "Piccadilly Circus Underground", + "crs": "ZPC", + "toc": "LT", + "lon": -0.134 + }, + { + "lat": 52.89678930342233, + "tiploc": "UTOXETR", + "name": "Uttoxeter", + "crs": "UTT", + "toc": "EM", + "lon": -1.8572546362577007 + }, + { + "lat": 55.81706228689023, + "tiploc": "BLSHL", + "name": "Bellshill", + "crs": "BLH", + "toc": "SR", + "lon": -4.0244990359818775 + }, + { + "lat": 52.62344106360133, + "tiploc": "BRUNDLG", + "name": "Brundall Gardens", + "crs": "BGA", + "toc": "LE", + "lon": 1.4184162496752097 + }, + { + "lat": 0.0, + "tiploc": "DRTMPON", + "name": "Dartmouth (Bus)", + "crs": "XAP", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.33649590144468, + "tiploc": "PSTA", + "name": "Prestatyn", + "crs": "PRT", + "toc": "AW", + "lon": -3.4071316897149937 + }, + { + "lat": 51.56164206099666, + "tiploc": "CLAPTON", + "name": "Clapton", + "crs": "CPT", + "toc": "LO", + "lon": -0.05702465189169915 + }, + { + "lat": 51.97996217934114, + "tiploc": "LTCE", + "name": "Letchworth Garden City", + "crs": "LET", + "toc": "GN", + "lon": -0.22926415297673805 + }, + { + "lat": 51.43331766141778, + "tiploc": "PARSNST", + "name": "Parson Street", + "crs": "PSN", + "toc": "GW", + "lon": -2.607741549711272 + }, + { + "lat": 51.41933204379695, + "tiploc": "PNGEE", + "name": "Penge East", + "crs": "PNE", + "toc": "SE", + "lon": -0.05422053050646928 + }, + { + "lat": 52.40819011437692, + "tiploc": "NRTF", + "name": "Northfield", + "crs": "NFD", + "toc": "LM", + "lon": -1.965851441002928 + }, + { + "lat": 52.68689237966971, + "tiploc": "LCHTTVH", + "name": "Lichfield Trent Valley", + "crs": "LTV", + "toc": "LM", + "lon": -1.800228902318383 + }, + { + "lat": 52.19406538737189, + "tiploc": "CAMBDGE", + "name": "Cambridge", + "crs": "CBG", + "toc": "LE", + "lon": 0.13745646801078112 + }, + { + "lat": 53.80448227500784, + "tiploc": "NPUD", + "name": "New Pudsey", + "crs": "NPD", + "toc": "NT", + "lon": -1.6807923189311682 + }, + { + "lat": 51.484829382760225, + "tiploc": "ETILBRY", + "name": "East Tilbury", + "crs": "ETL", + "toc": "CC", + "lon": 0.4129277981342489 + }, + { + "lat": 52.68689237966971, + "tiploc": "LCHTTVL", + "name": "Lichfield Trent Valley", + "crs": "LTV", + "toc": "LM", + "lon": -1.800228902318383 + }, + { + "lat": 53.69311240846523, + "tiploc": "SNAITH", + "name": "Snaith", + "crs": "SNI", + "toc": "NT", + "lon": -1.0284597678243106 + }, + { + "lat": 51.50036043142757, + "tiploc": "AVONMTH", + "name": "Avonmouth", + "crs": "AVN", + "toc": "GW", + "lon": -2.699466087928703 + }, + { + "lat": 51.672942788019206, + "tiploc": "TENBY", + "name": "Tenby", + "crs": "TEN", + "toc": "AW", + "lon": -4.706695850623448 + }, + { + "lat": 55.93351370491778, + "tiploc": "PTGLSGW", + "name": "Port Glasgow", + "crs": "PTG", + "toc": "SR", + "lon": -4.689825643491073 + }, + { + "lat": 56.294969399104104, + "tiploc": "SPFD", + "name": "Springfield", + "crs": "SPF", + "toc": "SR", + "lon": -3.0524480742426587 + }, + { + "lat": 51.116921878664904, + "tiploc": "THBDGS", + "name": "Three Bridges", + "crs": "TBD", + "toc": "SN", + "lon": -0.16118407605786683 + }, + { + "lat": 53.48658566966817, + "tiploc": "SLFDCT", + "name": "Salford Crescent", + "crs": "SLD", + "toc": "NT", + "lon": -2.2757492966098565 + }, + { + "lat": 53.53418775884395, + "tiploc": "GLDTHRP", + "name": "Goldthorpe", + "crs": "GOE", + "toc": "NT", + "lon": -1.3128076810712688 + }, + { + "lat": 51.39474740698485, + "tiploc": "STMRYC", + "name": "St Mary Cray", + "crs": "SMY", + "toc": "SE", + "lon": 0.10638359303547118 + }, + { + "lat": 52.916546205330725, + "tiploc": "DRBY", + "name": "Derby", + "crs": "DBY", + "toc": "EM", + "lon": -1.4633546510970457 + }, + { + "lat": 51.47140387039747, + "tiploc": "HTRWAPT", + "name": "Heathrow Airport T123", + "crs": "HXX", + "toc": "HX", + "lon": -0.4543326813487261 + }, + { + "lat": 50.91057448043982, + "tiploc": "THFORD", + "name": "Thornford", + "crs": "THO", + "toc": "GW", + "lon": -2.5789871712917596 + }, + { + "lat": 53.75685774699433, + "tiploc": "PRSTFGT", + "name": "Preston", + "crs": "PRE", + "toc": "VT", + "lon": -2.7081278479201925 + }, + { + "lat": 55.655949795828704, + "tiploc": "KILWNNG", + "name": "Kilwinning", + "crs": "KWN", + "toc": "SR", + "lon": -4.710018539496418 + }, + { + "lat": 53.75685774699433, + "tiploc": "PRSTN4B", + "name": "Preston", + "crs": "PRE", + "toc": "VT", + "lon": -2.7081278479201925 + }, + { + "lat": 54.967847642210856, + "tiploc": "HLTWHST", + "name": "Haltwhistle", + "crs": "HWH", + "toc": "NT", + "lon": -2.463564961481619 + }, + { + "lat": 51.54873038160693, + "tiploc": "CNNBELL", + "name": "Canonbury", + "crs": "CNN", + "toc": "LO", + "lon": -0.09219092385023264 + }, + { + "lat": 50.84274583190151, + "tiploc": "BOSHAM", + "name": "Bosham", + "crs": "BOH", + "toc": "SN", + "lon": -0.8474311893773843 + }, + { + "lat": 53.461896316121724, + "tiploc": "ORELPKH", + "name": "Orrell Park", + "crs": "OPK", + "toc": "ME", + "lon": -2.9633154375890705 + }, + { + "lat": 53.44097215219012, + "tiploc": "BRBM", + "name": "Broadbottom", + "crs": "BDB", + "toc": "NT", + "lon": -2.016520775436163 + }, + { + "lat": 0.0, + "tiploc": "PCWLJST", + "name": "Porthcawl (Bus)", + "crs": "XEO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.634731633888244, + "tiploc": "LKWD", + "name": "Lockwood", + "crs": "LCK", + "toc": "NT", + "lon": -1.8007907560092655 + }, + { + "lat": 51.445844388643934, + "tiploc": "NRTHFLT", + "name": "Northfleet", + "crs": "NFL", + "toc": "SE", + "lon": 0.3243334785110315 + }, + { + "lat": 51.61976102867766, + "tiploc": "TNYPNDY", + "name": "Tonypandy", + "crs": "TNP", + "toc": "AW", + "lon": -3.448869179147853 + }, + { + "lat": 56.39388185142366, + "tiploc": "FLSCRHN", + "name": "Falls of Cruachan", + "crs": "FOC", + "toc": "SR", + "lon": -5.112477644075156 + }, + { + "lat": 55.94580677316036, + "tiploc": "HAYMRKT", + "name": "Haymarket", + "crs": "HYM", + "toc": "SR", + "lon": -3.218449423339208 + }, + { + "lat": 51.95328071619504, + "tiploc": "HITCHIN", + "name": "Hitchin", + "crs": "HIT", + "toc": "GN", + "lon": -0.2634808343784135 + }, + { + "lat": 53.56190435620549, + "tiploc": "CLTHRPS", + "name": "Cleethorpes", + "crs": "CLE", + "toc": "TP", + "lon": -0.02922092460659578 + }, + { + "lat": 51.61831245275923, + "tiploc": "PALMRSG", + "name": "Palmers Green", + "crs": "PAL", + "toc": "GN", + "lon": -0.11043663654680623 + }, + { + "lat": 57.88145185839395, + "tiploc": "ARDGAY", + "name": "Ardgay", + "crs": "ARD", + "toc": "SR", + "lon": -4.362089188567635 + }, + { + "lat": 55.78033815722443, + "tiploc": "BUSBY", + "name": "Busby", + "crs": "BUS", + "toc": "SR", + "lon": -4.262200692286819 + }, + { + "lat": 0.0, + "tiploc": "EIGG", + "name": "Eigg (Bus)", + "crs": "EIG", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.88498606260129, + "tiploc": "LNGEATN", + "name": "Long Eaton", + "crs": "LGE", + "toc": "EM", + "lon": -1.28752053359377 + }, + { + "lat": 56.884277708797306, + "tiploc": "TULLOCH", + "name": "Tulloch", + "crs": "TUL", + "toc": "SR", + "lon": -4.701321035135001 + }, + { + "lat": 57.14370353025304, + "tiploc": "ABRDEEN", + "name": "Aberdeen", + "crs": "ABD", + "toc": "SR", + "lon": -2.098685127567237 + }, + { + "lat": 56.515865976726694, + "tiploc": "BOORCHY", + "name": "Bridge of Orchy", + "crs": "BRO", + "toc": "SR", + "lon": -4.762992730363308 + }, + { + "lat": 53.575752224853, + "tiploc": "GTCOATS", + "name": "Great Coates", + "crs": "GCT", + "toc": "NT", + "lon": -0.13023045918101425 + }, + { + "lat": 53.27660584377633, + "tiploc": "INEL", + "name": "Ince & Elton", + "crs": "INE", + "toc": "NT", + "lon": -2.8165222811548722 + }, + { + "lat": 0.0, + "tiploc": "RADSVHL", + "name": "Radstock (Bus)", + "crs": "XEQ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.51237771516032, + "tiploc": "WITTON", + "name": "Witton", + "crs": "WTT", + "toc": "LM", + "lon": -1.8844345981100743 + }, + { + "lat": 0.0, + "tiploc": "PBROSTI", + "name": "Swaffham Tourist Inf Ctr (Bus)", + "crs": "SWB", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.25000132000426, + "tiploc": "THUSTON", + "name": "Thurston", + "crs": "TRS", + "toc": "LE", + "lon": 0.8086527177788811 + }, + { + "lat": 51.19715204383635, + "tiploc": "FRNCMB", + "name": "Farncombe", + "crs": "FNC", + "toc": "SW", + "lon": -0.6045488525446758 + }, + { + "lat": 51.442971247900026, + "tiploc": "EBSFLTI", + "name": "Ebbsfleet International", + "crs": "EBD", + "toc": "SE", + "lon": 0.32092084452941283 + }, + { + "lat": 50.817526019506936, + "tiploc": "DRNGTOS", + "name": "Durrington-on-Sea", + "crs": "DUR", + "toc": "SN", + "lon": -0.4114686925718698 + }, + { + "lat": 50.84192234916986, + "tiploc": "COSHAM", + "name": "Cosham", + "crs": "CSA", + "toc": "SW", + "lon": -1.067328723664641 + }, + { + "lat": 55.178127814198085, + "tiploc": "PEGSWD", + "name": "Pegswood", + "crs": "PEG", + "toc": "NT", + "lon": -1.6441657964740504 + }, + { + "lat": 55.804646464062124, + "tiploc": "CLELAND", + "name": "Cleland", + "crs": "CEA", + "toc": "SR", + "lon": -3.910243951681394 + }, + { + "lat": 51.8655568612833, + "tiploc": "GLOSTER", + "name": "Gloucester", + "crs": "GCR", + "toc": "GW", + "lon": -2.2384876080416016 + }, + { + "lat": 51.881236199354866, + "tiploc": "TACKLEY", + "name": "Tackley", + "crs": "TAC", + "toc": "GW", + "lon": -1.2975355391077772 + }, + { + "lat": 51.71497093109255, + "tiploc": "MLFDHVN", + "name": "Milford Haven", + "crs": "MFH", + "toc": "AW", + "lon": -5.040968379059169 + }, + { + "lat": 52.51648389973053, + "tiploc": "PRYBR", + "name": "Perry Barr", + "crs": "PRY", + "toc": "LM", + "lon": -1.9019600442781845 + }, + { + "lat": 53.318420628970856, + "tiploc": "RHYL", + "name": "Rhyl", + "crs": "RHL", + "toc": "AW", + "lon": -3.489105212383419 + }, + { + "lat": 52.50537140494586, + "tiploc": "HNDSHWT", + "name": "The Hawthorns", + "crs": "THW", + "toc": "LM", + "lon": -1.9640088540705205 + }, + { + "lat": 54.55302988423088, + "tiploc": "WHITHVN", + "name": "Whitehaven", + "crs": "WTH", + "toc": "NT", + "lon": -3.586933067703845 + }, + { + "lat": 51.41274940926815, + "tiploc": "KGSTON", + "name": "Kingston", + "crs": "KNG", + "toc": "SW", + "lon": -0.3011657769480034 + }, + { + "lat": 53.788835190606726, + "tiploc": "MCKLFLD", + "name": "Micklefield", + "crs": "MIK", + "toc": "NT", + "lon": -1.3267931022102366 + }, + { + "lat": 58.001828751738465, + "tiploc": "LAIRG", + "name": "Lairg", + "crs": "LRG", + "toc": "SR", + "lon": -4.399888797119743 + }, + { + "lat": 51.33439088535499, + "tiploc": "EPSM", + "name": "Epsom", + "crs": "EPS", + "toc": "SN", + "lon": -0.2687776712499157 + }, + { + "lat": 53.386006662850924, + "tiploc": "WRGTNBQ", + "name": "Warrington Bank Quay", + "crs": "WBQ", + "toc": "VT", + "lon": -2.6023641535867097 + }, + { + "lat": 51.8405377621609, + "tiploc": "CLYNDRW", + "name": "Clunderwen", + "crs": "CUW", + "toc": "AW", + "lon": -4.731841705223198 + }, + { + "lat": 53.44932899870097, + "tiploc": "DNTG", + "name": "Dinting", + "crs": "DTG", + "toc": "NT", + "lon": -1.9702985554190955 + }, + { + "lat": 51.40624186725653, + "tiploc": "ASCOT", + "name": "Ascot", + "crs": "ACT", + "toc": "SW", + "lon": -0.6758332238760294 + }, + { + "lat": 53.40913486672331, + "tiploc": "BDSTON", + "name": "Bidston", + "crs": "BID", + "toc": "ME", + "lon": -3.078560544088112 + }, + { + "lat": 55.931078198331456, + "tiploc": "BOWLING", + "name": "Bowling", + "crs": "BWG", + "toc": "SR", + "lon": -4.493841467520096 + }, + { + "lat": 54.93238879627023, + "tiploc": "BRMPTNC", + "name": "Brampton (Cumbria)", + "crs": "BMP", + "toc": "NT", + "lon": -2.702947172784327 + }, + { + "lat": 51.79400062557835, + "tiploc": "CLACTON", + "name": "Clacton-on-Sea", + "crs": "CLT", + "toc": "LE", + "lon": 1.1540916941899868 + }, + { + "lat": 51.37749032788524, + "tiploc": "BCNGNOS", + "name": "Birchington-on-Sea", + "crs": "BCH", + "toc": "SE", + "lon": 1.301408462707313 + }, + { + "lat": 0.0, + "tiploc": "PLYMSAL", + "name": "Plymouth Saltash Road (Bus)", + "crs": "XDJ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.54394305582183, + "tiploc": "BENFLET", + "name": "Benfleet", + "crs": "BEF", + "toc": "CC", + "lon": 0.5617133707099743 + }, + { + "lat": 58.11743837217153, + "tiploc": "HELMSDL", + "name": "Helmsdale", + "crs": "HMS", + "toc": "SR", + "lon": -3.6586875663052796 + }, + { + "lat": 50.38987792799004, + "tiploc": "KEYHAM", + "name": "Keyham", + "crs": "KEY", + "toc": "GW", + "lon": -4.179599118407663 + }, + { + "lat": 53.76497454423751, + "tiploc": "MSSD", + "name": "Moss Side", + "crs": "MOS", + "toc": "NT", + "lon": -2.942934486838571 + }, + { + "lat": 55.86988679324576, + "tiploc": "PTCK", + "name": "Partick", + "crs": "PTK", + "toc": "SR", + "lon": -4.3088062490911 + }, + { + "lat": 51.533747652663806, + "tiploc": "SGFORD", + "name": "South Greenford", + "crs": "SGN", + "toc": "GW", + "lon": -0.33670439340257413 + }, + { + "lat": 51.383143587660655, + "tiploc": "SOLEST", + "name": "Sole Street", + "crs": "SOR", + "toc": "SE", + "lon": 0.37809691905408566 + }, + { + "lat": 53.572629419788655, + "tiploc": "DNDL", + "name": "Denby Dale", + "crs": "DBD", + "toc": "NT", + "lon": -1.6632103594393473 + }, + { + "lat": 51.54069727523689, + "tiploc": "BRBYPK", + "name": "Brondesbury Park", + "crs": "BSP", + "toc": "LO", + "lon": -0.210127657445777 + }, + { + "lat": 50.831263409770195, + "tiploc": "SESABUS", + "name": "Southease", + "crs": "SEE", + "toc": "SN", + "lon": 0.030641251314194845 + }, + { + "lat": 0.0, + "tiploc": "ALTT", + "name": "Alton Towers (Bus)", + "crs": "ATW", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 56.39047510440467, + "tiploc": "CRNLRCH", + "name": "Crianlarich", + "crs": "CNR", + "toc": "SR", + "lon": -4.618433482170724 + }, + { + "lat": 51.257263703857966, + "tiploc": "CHARTHM", + "name": "Chartham", + "crs": "CRT", + "toc": "SE", + "lon": 1.0180392815707564 + }, + { + "lat": 52.08226812613961, + "tiploc": "SGRLOAF", + "name": "Sugar Loaf", + "crs": "SUG", + "toc": "AW", + "lon": -3.686948750962121 + }, + { + "lat": 51.42655712784943, + "tiploc": "HIGM", + "name": "Higham", + "crs": "HGM", + "toc": "SE", + "lon": 0.46627771137257834 + }, + { + "lat": 51.48819395882897, + "tiploc": "WAUNGRN", + "name": "Waun-gron Park", + "crs": "WNG", + "toc": "AW", + "lon": -3.229652282501059 + }, + { + "lat": 55.84464767661762, + "tiploc": "DUMBRCK", + "name": "Dumbreck", + "crs": "DUM", + "toc": "SR", + "lon": -4.301238978621025 + }, + { + "lat": 51.470032278229645, + "tiploc": "PKHMRYC", + "name": "Peckham Rye", + "crs": "PMR", + "toc": "SN", + "lon": -0.06941440763101693 + }, + { + "lat": 54.966259427577626, + "tiploc": "CRBG", + "name": "Corbridge", + "crs": "CRB", + "toc": "NT", + "lon": -2.0184000800629076 + }, + { + "lat": 51.6485816994866, + "tiploc": "FAMBDGE", + "name": "North Fambridge", + "crs": "NFA", + "toc": "LE", + "lon": 0.681658806123495 + }, + { + "lat": 51.81668808803388, + "tiploc": "ABRGVNY", + "name": "Abergavenny", + "crs": "AGV", + "toc": "AW", + "lon": -3.0096467667070144 + }, + { + "lat": 52.422488087376465, + "tiploc": "HAGLEY", + "name": "Hagley", + "crs": "HAG", + "toc": "LM", + "lon": -2.14641708606898 + }, + { + "lat": 53.270308211359996, + "tiploc": "CHELFD", + "name": "Chelford", + "crs": "CEL", + "toc": "NT", + "lon": -2.280577001806842 + }, + { + "lat": 0.0, + "tiploc": "HAWICK", + "name": "Hawick (Bus)", + "crs": "HWK", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.414908545734725, + "tiploc": "HUNGRFD", + "name": "Hungerford", + "crs": "HGD", + "toc": "GW", + "lon": -1.5122869950944067 + }, + { + "lat": 52.625434581024855, + "tiploc": "BLOXN", + "name": "Bloxwich North", + "crs": "BWN", + "toc": "LM", + "lon": -2.0176843687870076 + }, + { + "lat": 55.893554631769526, + "tiploc": "DAWSHLM", + "name": "Kelvindale", + "crs": "KVD", + "toc": "SR", + "lon": -4.309572525486528 + }, + { + "lat": 54.470189097071874, + "tiploc": "RUSWARP", + "name": "Ruswarp", + "crs": "RUS", + "toc": "NT", + "lon": -0.6277717087195566 + }, + { + "lat": 52.27708876003458, + "tiploc": "CLAVRDN", + "name": "Claverdon", + "crs": "CLV", + "toc": "LM", + "lon": -1.696559841761354 + }, + { + "lat": 53.41712000449921, + "tiploc": "RHIL", + "name": "Rainhill", + "crs": "RNH", + "toc": "NT", + "lon": -2.7664002129641996 + }, + { + "lat": 0.0, + "tiploc": "CIVI", + "name": "Park Lane (Bus)", + "crs": "CIC", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.350043013973966, + "tiploc": "EWELW", + "name": "Ewell West", + "crs": "EWW", + "toc": "SW", + "lon": -0.25698661099604886 + }, + { + "lat": 51.546175290908955, + "tiploc": "HGHI", + "name": "Highbury & Islington", + "crs": "HHY", + "toc": "LT", + "lon": -0.103763713575122 + }, + { + "lat": 54.58034486473816, + "tiploc": "APBY", + "name": "Appleby", + "crs": "APP", + "toc": "NT", + "lon": -2.486692218601386 + }, + { + "lat": 53.03828239753967, + "tiploc": "HUCKNAL", + "name": "Hucknall", + "crs": "HKN", + "toc": "EM", + "lon": -1.1958115023503497 + }, + { + "lat": 53.60318457300066, + "tiploc": "MRSN", + "name": "Marsden", + "crs": "MSN", + "toc": "NT", + "lon": -1.9307497923692394 + }, + { + "lat": 0.0, + "tiploc": "PARRSTA", + "name": "Par (Bus)", + "crs": "XDR", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.12309002024613, + "tiploc": "TCULVRT", + "name": "Thorpe Culvert", + "crs": "TPC", + "toc": "EM", + "lon": 0.19941515305401458 + }, + { + "lat": 51.34529769645007, + "tiploc": "EWELLE", + "name": "Ewell East", + "crs": "EWE", + "toc": "SN", + "lon": -0.24152963050335974 + }, + { + "lat": 51.46760976771803, + "tiploc": "GNTN", + "name": "Grangetown", + "crs": "GTN", + "toc": "AW", + "lon": -3.189723829542629 + }, + { + "lat": 52.225680212305456, + "tiploc": "LEOMNST", + "name": "Leominster", + "crs": "LEO", + "toc": "AW", + "lon": -2.730341041504309 + }, + { + "lat": 52.29534863071503, + "tiploc": "DOLAU", + "name": "Dolau", + "crs": "DOL", + "toc": "AW", + "lon": -3.2636202890723816 + }, + { + "lat": 55.9005643212014, + "tiploc": "CURRIEH", + "name": "Curriehill", + "crs": "CUH", + "toc": "SR", + "lon": -3.318751338914658 + }, + { + "lat": 54.1729007162217, + "tiploc": "KTBK", + "name": "Kents Bank", + "crs": "KBK", + "toc": "NT", + "lon": -2.925229156653102 + }, + { + "lat": 53.34783, + "tiploc": "DUBLFST", + "name": "Dublin Port (Stena)", + "crs": "DPS", + "toc": "ZF", + "lon": -6.19848 + }, + { + "lat": 54.9128, + "tiploc": "PALL", + "name": "Pallion (T & W Metro)", + "crs": "PAI", + "toc": "TW", + "lon": -1.4177 + }, + { + "lat": 50.84672010063687, + "tiploc": "MLSECMB", + "name": "Moulsecoomb", + "crs": "MCB", + "toc": "SN", + "lon": -0.11884180852573299 + }, + { + "lat": 52.15258744418492, + "tiploc": "NEEDHAM", + "name": "Needham Market", + "crs": "NMT", + "toc": "LE", + "lon": 1.0552597830420583 + }, + { + "lat": 52.08098072822485, + "tiploc": "WSTRFLD", + "name": "Westerfield", + "crs": "WFI", + "toc": "LE", + "lon": 1.1659048048117573 + }, + { + "lat": 51.451328541958, + "tiploc": "STCR", + "name": "Stone Crossing", + "crs": "SCG", + "toc": "SE", + "lon": 0.26377116293959196 + }, + { + "lat": 54.9096003954831, + "tiploc": "STRNRR", + "name": "Stranraer", + "crs": "STR", + "toc": "SR", + "lon": -5.024737359866029 + }, + { + "lat": 51.5031428, + "tiploc": "WATRLLT", + "name": "Waterloo Underground", + "crs": "ZWA", + "toc": "LT", + "lon": -0.1143696 + }, + { + "lat": 51.55662520415751, + "tiploc": "PILNING", + "name": "Pilning", + "crs": "PIL", + "toc": "GW", + "lon": -2.6271116240513464 + }, + { + "lat": 53.169554154405425, + "tiploc": "SWNDRBY", + "name": "Swinderby", + "crs": "SWD", + "toc": "EM", + "lon": -0.7026794571211478 + }, + { + "lat": 54.587415763647456, + "tiploc": "MRSK", + "name": "Marske", + "crs": "MSK", + "toc": "NT", + "lon": -1.0189097180495523 + }, + { + "lat": 55.54280973813264, + "tiploc": "TROON", + "name": "Troon", + "crs": "TRN", + "toc": "SR", + "lon": -4.655299470397466 + }, + { + "lat": 53.37849495089055, + "tiploc": "WIDNES", + "name": "Widnes", + "crs": "WID", + "toc": "NT", + "lon": -2.733536646122137 + }, + { + "lat": 0.0, + "tiploc": "HRNSTPL", + "name": "Turnpike Lane", + "crs": "ZTL", + "toc": "LT", + "lon": 0.0 + }, + { + "lat": 51.29718520215101, + "tiploc": "KEMSING", + "name": "Kemsing", + "crs": "KMS", + "toc": "SE", + "lon": 0.24742833644614287 + }, + { + "lat": 0.0, + "tiploc": "SCRBSTR", + "name": "Scrabster (Bus)", + "crs": "SCB", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 54.91143860969103, + "tiploc": "SNDRMNK", + "name": "St Peters (T & W Metro)", + "crs": "STZ", + "toc": "TW", + "lon": -1.3838019376005097 + }, + { + "lat": 50.88984864429617, + "tiploc": "LYNDHRD", + "name": "Ashurst New Forest", + "crs": "ANF", + "toc": "SW", + "lon": -1.526630716454598 + }, + { + "lat": 51.44960545924762, + "tiploc": "WHTTON", + "name": "Whitton", + "crs": "WTN", + "toc": "SW", + "lon": -0.3576814035493384 + }, + { + "lat": 55.889349079512414, + "tiploc": "ANSL", + "name": "Anniesland", + "crs": "ANL", + "toc": "SR", + "lon": -4.321956775597159 + }, + { + "lat": 0.0, + "tiploc": "MEVATRE", + "name": "Mevagissey (Bus)", + "crs": "XEF", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.627795924647245, + "tiploc": "STRCROS", + "name": "Starcross", + "crs": "SCS", + "toc": "GW", + "lon": -3.447704174620955 + }, + { + "lat": 52.696039738099984, + "tiploc": "FRBN", + "name": "Fairbourne", + "crs": "FRB", + "toc": "AW", + "lon": -4.049413303274705 + }, + { + "lat": 54.56962066118294, + "tiploc": "STOCTON", + "name": "Stockton", + "crs": "STK", + "toc": "NT", + "lon": -1.3185431379169859 + }, + { + "lat": 0.0, + "tiploc": "CHNRLOW", + "name": "Chinnor (Bus)", + "crs": "XCQ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "LISMORE", + "name": "Lismore (Bus)", + "crs": "LSM", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.842271810532765, + "tiploc": "BEVERLY", + "name": "Beverley", + "crs": "BEV", + "toc": "NT", + "lon": -0.422980111596181 + }, + { + "lat": 53.7869136148135, + "tiploc": "KIRKHAM", + "name": "Kirkham & Wesham", + "crs": "KKM", + "toc": "NT", + "lon": -2.882940763982038 + }, + { + "lat": 51.1822648197371, + "tiploc": "PKWD", + "name": "Paddock Wood", + "crs": "PDW", + "toc": "SE", + "lon": 0.389148609285423 + }, + { + "lat": 56.50056262959535, + "tiploc": "CNST", + "name": "Carnoustie", + "crs": "CAN", + "toc": "SR", + "lon": -2.7066003596413 + }, + { + "lat": 57.42273253133806, + "tiploc": "STCN", + "name": "Strathcarron", + "crs": "STC", + "toc": "SR", + "lon": -5.428612504435078 + }, + { + "lat": 51.708719868490995, + "tiploc": "CUFFLEY", + "name": "Cuffley", + "crs": "CUF", + "toc": "GN", + "lon": -0.10978340711870266 + }, + { + "lat": 51.46834748599924, + "tiploc": "MONPELR", + "name": "Montpelier", + "crs": "MTP", + "toc": "GW", + "lon": -2.5886855625899994 + }, + { + "lat": 51.44906856046875, + "tiploc": "SWNSCMB", + "name": "Swanscombe", + "crs": "SWM", + "toc": "SE", + "lon": 0.30954319337013625 + }, + { + "lat": 51.27426563582661, + "tiploc": "CNTBE", + "name": "Canterbury East", + "crs": "CBE", + "toc": "SE", + "lon": 1.0759684443699573 + }, + { + "lat": 55.07255464419733, + "tiploc": "DUMFRES", + "name": "Dumfries", + "crs": "DMF", + "toc": "SR", + "lon": -3.604303222517603 + }, + { + "lat": 57.44448787023692, + "tiploc": "HNTL", + "name": "Huntly", + "crs": "HNT", + "toc": "SR", + "lon": -2.7757400038007205 + }, + { + "lat": 52.33642334759878, + "tiploc": "LLBSTRD", + "name": "Llanbister Road", + "crs": "LLT", + "toc": "AW", + "lon": -3.213420719302414 + }, + { + "lat": 51.50329674936403, + "tiploc": "WATRLMN", + "name": "London Waterloo", + "crs": "WAT", + "toc": "RT", + "lon": -0.11310894207247583 + }, + { + "lat": 51.60534020422431, + "tiploc": "MAESTER", + "name": "Maesteg (Ewenny Road)", + "crs": "MEW", + "toc": "AW", + "lon": -3.6489908684408863 + }, + { + "lat": 52.56494039990492, + "tiploc": "SUTCO", + "name": "Sutton Coldfield", + "crs": "SUT", + "toc": "LM", + "lon": -1.824844088929983 + }, + { + "lat": 53.79562496030203, + "tiploc": "LEEDS", + "name": "Leeds", + "crs": "LDS", + "toc": "RT", + "lon": -1.5480255300534769 + }, + { + "lat": 51.52350373946237, + "tiploc": "BNHAM", + "name": "Burnham", + "crs": "BNM", + "toc": "GW", + "lon": -0.6463737942754414 + }, + { + "lat": 0.0, + "tiploc": "CHIPNEW", + "name": "Chippenham New Road (Bus)", + "crs": "XDN", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 57.47828191167674, + "tiploc": "BEAULY", + "name": "Beauly", + "crs": "BEL", + "toc": "SR", + "lon": -4.469865753875628 + }, + { + "lat": 52.7155690274959, + "tiploc": "WROXHAM", + "name": "Hoveton & Wroxham", + "crs": "HXM", + "toc": "LE", + "lon": 1.4079971106674234 + }, + { + "lat": 51.60264716711857, + "tiploc": "HEDSTNL", + "name": "Headstone Lane", + "crs": "HDL", + "toc": "LO", + "lon": -0.35721983028717286 + }, + { + "lat": 53.69885286789663, + "tiploc": "LEYLAND", + "name": "Leyland", + "crs": "LEY", + "toc": "NT", + "lon": -2.687145071073239 + }, + { + "lat": 53.75685774699433, + "tiploc": "PRST", + "name": "Preston", + "crs": "PRE", + "toc": "VT", + "lon": -2.7081278479201925 + }, + { + "lat": 51.47028650205148, + "tiploc": "SUNYMDS", + "name": "Sunnymeads", + "crs": "SNY", + "toc": "SW", + "lon": -0.5593742155330887 + }, + { + "lat": 53.517103842548075, + "tiploc": "RNFD", + "name": "Rainford", + "crs": "RNF", + "toc": "NT", + "lon": -2.7894690302648972 + }, + { + "lat": 53.75515943344046, + "tiploc": "ESTRNGT", + "name": "Eastrington", + "crs": "EGN", + "toc": "NT", + "lon": -0.7876303708496243 + }, + { + "lat": 56.0693365741909, + "tiploc": "KGHN", + "name": "Kinghorn", + "crs": "KGH", + "toc": "SR", + "lon": -3.1741540590627064 + }, + { + "lat": 53.13840596935912, + "tiploc": "MATLOCK", + "name": "Matlock", + "crs": "MAT", + "toc": "EM", + "lon": -1.558910757002811 + }, + { + "lat": 55.40273817389456, + "tiploc": "NWCMNCK", + "name": "New Cumnock", + "crs": "NCK", + "toc": "SR", + "lon": -4.184340738805232 + }, + { + "lat": 51.58878724445292, + "tiploc": "NWPTRTG", + "name": "Newport (South Wales)", + "crs": "NWP", + "toc": "AW", + "lon": -3.000543439197105 + }, + { + "lat": 0.0, + "tiploc": "QUNTRD", + "name": "Quainton Road", + "crs": "QRD", + "toc": "CH", + "lon": 0.0 + }, + { + "lat": 51.53396432381903, + "tiploc": "QPRKAC", + "name": "Queens Park (London)", + "crs": "QPW", + "toc": "LT", + "lon": -0.20498484849503842 + }, + { + "lat": 53.516272459836465, + "tiploc": "MRSD", + "name": "Moorside", + "crs": "MSD", + "toc": "NT", + "lon": -2.3517994078969533 + }, + { + "lat": 55.79368487569888, + "tiploc": "WMWD", + "name": "Williamwood", + "crs": "WLM", + "toc": "SR", + "lon": -4.290334449432073 + }, + { + "lat": 53.0520105815927, + "tiploc": "DLWYDLN", + "name": "Dolwyddelan", + "crs": "DWD", + "toc": "AW", + "lon": -3.885132099556326 + }, + { + "lat": 51.81802803339013, + "tiploc": "WHLAND", + "name": "Whitland", + "crs": "WTL", + "toc": "AW", + "lon": -4.614390574154056 + }, + { + "lat": 55.84082818916882, + "tiploc": "MSSPARK", + "name": "Mosspark", + "crs": "MPK", + "toc": "SR", + "lon": -4.348292490575136 + }, + { + "lat": 53.43305948612599, + "tiploc": "MLDTHRD", + "name": "Mauldeth Road", + "crs": "MAU", + "toc": "NT", + "lon": -2.209251222664834 + }, + { + "lat": 54.973457609978276, + "tiploc": "HEXHAM", + "name": "Hexham", + "crs": "HEX", + "toc": "NT", + "lon": -2.09479457781364 + }, + { + "lat": 53.52248794808168, + "tiploc": "CLTN", + "name": "Clifton", + "crs": "CLI", + "toc": "NT", + "lon": -2.3147463293053487 + }, + { + "lat": 51.427246036084604, + "tiploc": "SYDENHM", + "name": "Sydenham", + "crs": "SYD", + "toc": "LO", + "lon": -0.05424397636870967 + }, + { + "lat": 51.45624244099812, + "tiploc": "LDYW", + "name": "Ladywell", + "crs": "LAD", + "toc": "SE", + "lon": -0.0190406887828526 + }, + { + "lat": 51.380376582423224, + "tiploc": "CHATHAM", + "name": "Chatham", + "crs": "CTM", + "toc": "SE", + "lon": 0.521150729131271 + }, + { + "lat": 50.78470131268121, + "tiploc": "SWAY", + "name": "Sway", + "crs": "SWY", + "toc": "SW", + "lon": -1.6099957657847423 + }, + { + "lat": 50.26383877470938, + "tiploc": "TRURO", + "name": "Truro", + "crs": "TRU", + "toc": "GW", + "lon": -5.064812188548286 + }, + { + "lat": 55.70621876262002, + "tiploc": "DALRY", + "name": "Dalry", + "crs": "DLY", + "toc": "SR", + "lon": -4.711079554881402 + }, + { + "lat": 50.84594208862136, + "tiploc": "PRSP", + "name": "Preston Park", + "crs": "PRP", + "toc": "SN", + "lon": -0.15516764211618436 + }, + { + "lat": 53.787950590160115, + "tiploc": "BLCKPB", + "name": "Blackpool Pleasure Beach", + "crs": "BPB", + "toc": "NT", + "lon": -3.0538759205250923 + }, + { + "lat": 0.0, + "tiploc": "DNSR", + "name": "Dunster (Bus)", + "crs": "XDY", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.80483019656719, + "tiploc": "LGHO", + "name": "Langho", + "crs": "LHO", + "toc": "NT", + "lon": -2.448658994557881 + }, + { + "lat": 55.89013524699054, + "tiploc": "STEPPS", + "name": "Stepps", + "crs": "SPS", + "toc": "SR", + "lon": -4.140807489803883 + }, + { + "lat": 50.68621453115502, + "tiploc": "TOPSHAM", + "name": "Topsham", + "crs": "TOP", + "toc": "GW", + "lon": -3.464422625896101 + }, + { + "lat": 54.65719371428514, + "tiploc": "BSAUKLD", + "name": "Bishop Auckland", + "crs": "BIA", + "toc": "NT", + "lon": -1.6777149289947757 + }, + { + "lat": 53.34649159428502, + "tiploc": "HNDFRTH", + "name": "Handforth", + "crs": "HTH", + "toc": "NT", + "lon": -2.213633292505922 + }, + { + "lat": 53.40720503635306, + "tiploc": "MOTO", + "name": "Moreton (Merseyside)", + "crs": "MRT", + "toc": "ME", + "lon": -3.113501934675201 + }, + { + "lat": 52.55989197830318, + "tiploc": "MRCH", + "name": "March", + "crs": "MCH", + "toc": "LE", + "lon": 0.09119774993689087 + }, + { + "lat": 51.54736033588723, + "tiploc": "TONDU", + "name": "Tondu", + "crs": "TDU", + "toc": "AW", + "lon": -3.595549417050111 + }, + { + "lat": 51.90348104529618, + "tiploc": "BCSTN", + "name": "Bicester North", + "crs": "BCS", + "toc": "CH", + "lon": -1.1503834405302182 + }, + { + "lat": 52.23749871810883, + "tiploc": "NMPTN", + "name": "Northampton", + "crs": "NMP", + "toc": "LM", + "lon": -0.9066530690124484 + }, + { + "lat": 53.58549911063959, + "tiploc": "ALTPE", + "name": "Althorpe", + "crs": "ALP", + "toc": "NT", + "lon": -0.7331822550943784 + }, + { + "lat": 52.25376132668849, + "tiploc": "BSTEDMS", + "name": "Bury St Edmunds", + "crs": "BSE", + "toc": "LE", + "lon": 0.7133066937728735 + }, + { + "lat": 0.0, + "tiploc": "CHNOBUS", + "name": "Chipping Norton West St (Bus)", + "crs": "CPG", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.00672454920928, + "tiploc": "PTRSFLD", + "name": "Petersfield", + "crs": "PTR", + "toc": "SW", + "lon": -0.9411367347918848 + }, + { + "lat": 52.597736141727765, + "tiploc": "BUCKNHM", + "name": "Buckenham", + "crs": "BUC", + "toc": "LE", + "lon": 1.470325361228022 + }, + { + "lat": 51.32477506779798, + "tiploc": "KNLYBUS", + "name": "Kenley", + "crs": "KLY", + "toc": "SN", + "lon": -0.10092541728047168 + }, + { + "lat": 51.45564162691863, + "tiploc": "ELTHAM", + "name": "Eltham", + "crs": "ELW", + "toc": "SE", + "lon": 0.05247233681788562 + }, + { + "lat": 51.09495867091396, + "tiploc": "WENHNGR", + "name": "Westenhanger", + "crs": "WHA", + "toc": "SE", + "lon": 1.0380495547375201 + }, + { + "lat": 0.0, + "tiploc": "LGHM", + "name": "Langholm (Bus)", + "crs": "LHL", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "STRNWPR", + "name": "Stranraer West Pier (Bus)", + "crs": "SWP", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "HLSTCUL", + "name": "Culdrose RNAS (Bus)", + "crs": "XAM", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.279958823188785, + "tiploc": "WHWLL", + "name": "Whitwell", + "crs": "WWL", + "toc": "EM", + "lon": -1.200207147112336 + }, + { + "lat": 51.46149260795376, + "tiploc": "EDULWCH", + "name": "East Dulwich", + "crs": "EDW", + "toc": "SN", + "lon": -0.080571695449775 + }, + { + "lat": 0.0, + "tiploc": "FOWESHT", + "name": "Fowey (Bus)", + "crs": "XAS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 54.53619805924649, + "tiploc": "NTRD", + "name": "North Road", + "crs": "NRD", + "toc": "NT", + "lon": -1.5539496863682962 + }, + { + "lat": 50.918219081812346, + "tiploc": "BITERNE", + "name": "Bitterne", + "crs": "BTE", + "toc": "SW", + "lon": -1.3769994993631978 + }, + { + "lat": 51.47494724298403, + "tiploc": "CSEAH", + "name": "Imperial Wharf", + "crs": "IMW", + "toc": "LO", + "lon": -0.18282274948706093 + }, + { + "lat": 54.98383376980931, + "tiploc": "ANNAN", + "name": "Annan", + "crs": "ANN", + "toc": "SR", + "lon": -3.262580418934523 + }, + { + "lat": 50.6783701623818, + "tiploc": "BRDING", + "name": "Brading", + "crs": "BDN", + "toc": "IL", + "lon": -1.1387223697297855 + }, + { + "lat": 51.85233470686106, + "tiploc": "CRESING", + "name": "Cressing", + "crs": "CES", + "toc": "LE", + "lon": 0.5779610666895125 + }, + { + "lat": 51.86685300203837, + "tiploc": "KNEBWTH", + "name": "Knebworth", + "crs": "KBW", + "toc": "GN", + "lon": -0.18728878463534784 + }, + { + "lat": 54.520446299983476, + "tiploc": "DLTN", + "name": "Darlington", + "crs": "DAR", + "toc": "GR", + "lon": -1.54732384767041 + }, + { + "lat": 53.18535688884502, + "tiploc": "HAWARDN", + "name": "Hawarden", + "crs": "HWD", + "toc": "AW", + "lon": -3.0320806992674627 + }, + { + "lat": 51.29163567610228, + "tiploc": "TADWBUS", + "name": "Tadworth", + "crs": "TAD", + "toc": "SN", + "lon": -0.23596466097434754 + }, + { + "lat": 51.36436573473389, + "tiploc": "BAGSHOT", + "name": "Bagshot", + "crs": "BAG", + "toc": "SW", + "lon": -0.6886619648913967 + }, + { + "lat": 51.5010221, + "tiploc": "KNSGHST", + "name": "Kensington High St Underground", + "crs": "ZHS", + "toc": "LT", + "lon": -0.1927364 + }, + { + "lat": 52.64783023613651, + "tiploc": "STAMFD", + "name": "Stamford", + "crs": "SMD", + "toc": "EM", + "lon": -0.48011521815778613 + }, + { + "lat": 54.35497818496414, + "tiploc": "BNSD", + "name": "Burneside", + "crs": "BUD", + "toc": "TP", + "lon": -2.7666768549764145 + }, + { + "lat": 54.95005380201105, + "tiploc": "DNSN", + "name": "Dunston", + "crs": "DOT", + "toc": "NT", + "lon": -1.6420444264848724 + }, + { + "lat": 51.653067525992235, + "tiploc": "ELTR", + "name": "Elstree & Borehamwood", + "crs": "ELS", + "toc": "TL", + "lon": -0.2800815308239107 + }, + { + "lat": 53.82659901587783, + "tiploc": "CHFN", + "name": "Church Fenton", + "crs": "CHF", + "toc": "NT", + "lon": -1.2275888075482686 + }, + { + "lat": 53.377541479402424, + "tiploc": "HAZL", + "name": "Hazel Grove", + "crs": "HAZ", + "toc": "NT", + "lon": -2.1220193539330725 + }, + { + "lat": 52.092216561792284, + "tiploc": "KMPSTNH", + "name": "Kempston Hardwick", + "crs": "KMH", + "toc": "LM", + "lon": -0.503913816357818 + }, + { + "lat": 51.649456315625315, + "tiploc": "WDHAMFR", + "name": "South Woodham Ferrers", + "crs": "SOF", + "toc": "LE", + "lon": 0.6065050721194083 + }, + { + "lat": 52.62715135671182, + "tiploc": "NRCH", + "name": "Norwich", + "crs": "NRW", + "toc": "LE", + "lon": 1.3068200692351606 + }, + { + "lat": 51.1286608654508, + "tiploc": "ASHUBUS", + "name": "Ashurst", + "crs": "AHS", + "toc": "SN", + "lon": 0.15265211905533932 + }, + { + "lat": 0.0, + "tiploc": "LCHMADY", + "name": "Lochmaddy, North Uist (Bus)", + "crs": "LCH", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.63249900754808, + "tiploc": "FITZWLM", + "name": "Fitzwilliam", + "crs": "FZW", + "toc": "NT", + "lon": -1.3742730514793733 + }, + { + "lat": 55.825110460976596, + "tiploc": "MILKNPK", + "name": "Milliken Park", + "crs": "MIN", + "toc": "SR", + "lon": -4.533357892965771 + }, + { + "lat": 53.33869308497395, + "tiploc": "RUNCORN", + "name": "Runcorn", + "crs": "RUN", + "toc": "VT", + "lon": -2.7392511191085096 + }, + { + "lat": 52.584396707348795, + "tiploc": "WALSALL", + "name": "Walsall", + "crs": "WSL", + "toc": "LM", + "lon": -1.9847549044354176 + }, + { + "lat": 52.67221309567236, + "tiploc": "OAKHAM", + "name": "Oakham", + "crs": "OKM", + "toc": "EM", + "lon": -0.734171179052045 + }, + { + "lat": 51.50329674936403, + "tiploc": "WATRLOO", + "name": "London Waterloo", + "crs": "WAT", + "toc": "RT", + "lon": -0.11310894207247583 + }, + { + "lat": 51.43545074209875, + "tiploc": "ALBNFCL", + "name": "Albany Park", + "crs": "AYP", + "toc": "SE", + "lon": 0.12573707258458985 + }, + { + "lat": 51.609936527991266, + "tiploc": "MAESTGW", + "name": "Maesteg", + "crs": "MST", + "toc": "AW", + "lon": -3.654645533229463 + }, + { + "lat": 52.35985976035295, + "tiploc": "KNUCKLS", + "name": "Knucklas", + "crs": "KNU", + "toc": "AW", + "lon": -3.0968773831008822 + }, + { + "lat": 52.63142346389848, + "tiploc": "LESTER", + "name": "Leicester", + "crs": "LEI", + "toc": "EM", + "lon": -1.1252754879979778 + }, + { + "lat": 51.50329674936403, + "tiploc": "WATRLOW", + "name": "London Waterloo", + "crs": "WAT", + "toc": "RT", + "lon": -0.11310894207247583 + }, + { + "lat": 55.79032095720713, + "tiploc": "WTCR", + "name": "Whitecraigs", + "crs": "WCR", + "toc": "SR", + "lon": -4.310156614120438 + }, + { + "lat": 53.59499450143558, + "tiploc": "MORTHRP", + "name": "Moorthorpe", + "crs": "MRP", + "toc": "NT", + "lon": -1.304947026200511 + }, + { + "lat": 53.453121347253756, + "tiploc": "STHLNSC", + "name": "St Helens Central", + "crs": "SNH", + "toc": "NT", + "lon": -2.7303047705164274 + }, + { + "lat": 52.68615917215587, + "tiploc": "CNCK", + "name": "Cannock", + "crs": "CAO", + "toc": "LM", + "lon": -2.0221472570810692 + }, + { + "lat": 0.0, + "tiploc": "DERKER", + "name": "Derker", + "crs": "DKR", + "toc": "NT", + "lon": 0.0 + }, + { + "lat": 51.36630390787879, + "tiploc": "RAINHMK", + "name": "Rainham (Kent)", + "crs": "RAI", + "toc": "SE", + "lon": 0.6113370928898443 + }, + { + "lat": 53.041461166001405, + "tiploc": "RSKNGTN", + "name": "Ruskington", + "crs": "RKT", + "toc": "EM", + "lon": -0.3807621721193936 + }, + { + "lat": 55.892585292511335, + "tiploc": "YOKER", + "name": "Yoker", + "crs": "YOK", + "toc": "SR", + "lon": -4.38628658381112 + }, + { + "lat": 54.08412954937161, + "tiploc": "BRDLNGT", + "name": "Bridlington", + "crs": "BDT", + "toc": "NT", + "lon": -0.19872038337975348 + }, + { + "lat": 0.0, + "tiploc": "SALE", + "name": "Sale Metrolink (Bus)", + "crs": "SLE", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "BOMOHAP", + "name": "Bournemouth Hurn Airport (Bus)", + "crs": "BHA", + "toc": "SW", + "lon": 0.0 + }, + { + "lat": 52.83615994624459, + "tiploc": "LNDW", + "name": "Llandanwg", + "crs": "LDN", + "toc": "AW", + "lon": -4.123856621788723 + }, + { + "lat": 53.43372393350581, + "tiploc": "STHLNSJ", + "name": "St Helens Junction", + "crs": "SHJ", + "toc": "NT", + "lon": -2.7002594271851814 + }, + { + "lat": 51.0506841706552, + "tiploc": "CHRSTSH", + "name": "Christs Hospital", + "crs": "CHH", + "toc": "SN", + "lon": -0.36355632706832447 + }, + { + "lat": 53.112930468306544, + "tiploc": "CROMFD", + "name": "Cromford", + "crs": "CMF", + "toc": "EM", + "lon": -1.54916186982457 + }, + { + "lat": 51.425446096759174, + "tiploc": "HYDNSRD", + "name": "Haydons Road", + "crs": "HYR", + "toc": "TL", + "lon": -0.18881470335824457 + }, + { + "lat": 52.98995111185622, + "tiploc": "LNTN", + "name": "Longton", + "crs": "LGN", + "toc": "EM", + "lon": -2.1370105616277058 + }, + { + "lat": 0.0, + "tiploc": "HSFTLBD", + "name": "Leeds Bradford Airport (Bus)", + "crs": "XLB", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.46349823744814, + "tiploc": "BXLYHTH", + "name": "Bexleyheath", + "crs": "BXH", + "toc": "SE", + "lon": 0.1337348778241144 + }, + { + "lat": 51.46248625932685, + "tiploc": "CHIPNHM", + "name": "Chippenham", + "crs": "CPM", + "toc": "GW", + "lon": -2.1153938890659556 + }, + { + "lat": 55.941246405469805, + "tiploc": "DRMFCHR", + "name": "Drumfrochar", + "crs": "DFR", + "toc": "SR", + "lon": -4.774765971658116 + }, + { + "lat": 50.70504003016696, + "tiploc": "NWCOURT", + "name": "Newcourt", + "crs": "NCO", + "toc": "GW", + "lon": -3.472784146827907 + }, + { + "lat": 53.92317632209905, + "tiploc": "WEETON", + "name": "Weeton", + "crs": "WET", + "toc": "NT", + "lon": -1.5812156292965975 + }, + { + "lat": 52.862498885323696, + "tiploc": "EMPKWAY", + "name": "East Midlands Parkway", + "crs": "EMD", + "toc": "EM", + "lon": -1.26323188758685 + }, + { + "lat": 53.975896235224596, + "tiploc": "POPLTON", + "name": "Poppleton", + "crs": "POP", + "toc": "NT", + "lon": -1.1485966423467293 + }, + { + "lat": 51.227252059475255, + "tiploc": "ALSHAM", + "name": "Aylesham", + "crs": "AYH", + "toc": "SE", + "lon": 1.2094527769953805 + }, + { + "lat": 51.55902, + "tiploc": "UPMNLT", + "name": "Upminster Underground", + "crs": "ZUM", + "toc": "LT", + "lon": 0.25091 + }, + { + "lat": 53.23821850589172, + "tiploc": "CHFD", + "name": "Chesterfield", + "crs": "CHD", + "toc": "EM", + "lon": -1.420115849660338 + }, + { + "lat": 54.9516, + "tiploc": "HEWOMTR", + "name": "Heworth (T & W Metro)", + "crs": "HEZ", + "toc": "TW", + "lon": -1.5558 + }, + { + "lat": 53.293381254894896, + "tiploc": "PSBY", + "name": "Prestbury", + "crs": "PRB", + "toc": "NT", + "lon": -2.1454824995677475 + }, + { + "lat": 53.22255049235597, + "tiploc": "GOOSTRY", + "name": "Goostrey", + "crs": "GTR", + "toc": "NT", + "lon": -2.3264703017229444 + }, + { + "lat": 55.30709696561217, + "tiploc": "ACKLNGT", + "name": "Acklington", + "crs": "ACK", + "toc": "NT", + "lon": -1.6518346310188625 + }, + { + "lat": 51.530538360749865, + "tiploc": "KENSLG", + "name": "Kensal Green", + "crs": "KNL", + "toc": "LT", + "lon": -0.22508765697178096 + }, + { + "lat": 50.6568695899189, + "tiploc": "SNDOWN", + "name": "Sandown", + "crs": "SAN", + "toc": "IL", + "lon": -1.162387329475566 + }, + { + "lat": 52.39510215739684, + "tiploc": "TILEH", + "name": "Tile Hill", + "crs": "THL", + "toc": "LM", + "lon": -1.596848383361263 + }, + { + "lat": 51.86565245368683, + "tiploc": "SPTN", + "name": "Shipton", + "crs": "SIP", + "toc": "GW", + "lon": -1.5926933114150619 + }, + { + "lat": 51.54482631414697, + "tiploc": "STFODOM", + "name": "Stratford International", + "crs": "SFA", + "toc": "SE", + "lon": -0.008777643917449477 + }, + { + "lat": 50.64826995604226, + "tiploc": "UPWEY", + "name": "Upwey", + "crs": "UPW", + "toc": "SW", + "lon": -2.4661380602376135 + }, + { + "lat": 51.42445124677126, + "tiploc": "GIPSYH", + "name": "Gipsy Hill", + "crs": "GIP", + "toc": "SN", + "lon": -0.08383591360508093 + }, + { + "lat": 55.8305912637968, + "tiploc": "RTHGLEN", + "name": "Rutherglen", + "crs": "RUT", + "toc": "SR", + "lon": -4.212104062445232 + }, + { + "lat": 53.59460651720795, + "tiploc": "SELMSAL", + "name": "South Elmsall", + "crs": "SES", + "toc": "NT", + "lon": -1.2848582759782057 + }, + { + "lat": 50.54806028653963, + "tiploc": "TEINMTH", + "name": "Teignmouth", + "crs": "TGM", + "toc": "GW", + "lon": -3.4946627198399445 + }, + { + "lat": 55.639870802970464, + "tiploc": "ARDRSHB", + "name": "Ardrossan Harbour", + "crs": "ADS", + "toc": "SR", + "lon": -4.821110298922474 + }, + { + "lat": 51.52155442514465, + "tiploc": "BCHGRV", + "name": "Birchgrove", + "crs": "BCG", + "toc": "AW", + "lon": -3.2018531942588697 + }, + { + "lat": 51.581726649867726, + "tiploc": "ROCHFD", + "name": "Rochford", + "crs": "RFD", + "toc": "LE", + "lon": 0.7023032471095719 + }, + { + "lat": 52.830704368555146, + "tiploc": "PSRN", + "name": "Pensarn", + "crs": "PES", + "toc": "AW", + "lon": -4.11215964079145 + }, + { + "lat": 55.866449660569266, + "tiploc": "BLAIRHL", + "name": "Blairhill", + "crs": "BAI", + "toc": "SR", + "lon": -4.0432902652816365 + }, + { + "lat": 52.77262827673167, + "tiploc": "TALB", + "name": "Talybont", + "crs": "TLB", + "toc": "AW", + "lon": -4.096596334047657 + }, + { + "lat": 0.0, + "tiploc": "PBROBST", + "name": "Peterborough Queensgate (Bus)", + "crs": "PBU", + "toc": "GR", + "lon": 0.0 + }, + { + "lat": 51.9016857038412, + "tiploc": "STEVNGE", + "name": "Stevenage", + "crs": "SVG", + "toc": "GN", + "lon": -0.20710945828705363 + }, + { + "lat": 51.50438617978932, + "tiploc": "WAPPING", + "name": "Wapping", + "crs": "WPE", + "toc": "LO", + "lon": -0.055930892717841074 + }, + { + "lat": 55.848961401443525, + "tiploc": "BRIDGTN", + "name": "Bridgeton", + "crs": "BDG", + "toc": "SR", + "lon": -4.226056226001148 + }, + { + "lat": 53.43658058761494, + "tiploc": "THHT", + "name": "Thatto Heath", + "crs": "THH", + "toc": "NT", + "lon": -2.759374449745876 + }, + { + "lat": 52.90621128767135, + "tiploc": "ATNBRO", + "name": "Attenborough", + "crs": "ATB", + "toc": "EM", + "lon": -1.2314155150633759 + }, + { + "lat": 55.79167296299882, + "tiploc": "MOTHRWL", + "name": "Motherwell", + "crs": "MTH", + "toc": "SR", + "lon": -3.9943252695432 + }, + { + "lat": 51.41121673362042, + "tiploc": "WOKNGHM", + "name": "Wokingham", + "crs": "WKM", + "toc": "SW", + "lon": -0.8425432228969281 + }, + { + "lat": 54.43611152004637, + "tiploc": "GROSMNT", + "name": "Grosmont", + "crs": "GMT", + "toc": "NT", + "lon": -0.724965617265729 + }, + { + "lat": 52.026029445794435, + "tiploc": "ARLSEY", + "name": "Arlesey", + "crs": "ARL", + "toc": "GN", + "lon": -0.2663198291330011 + }, + { + "lat": 51.69230742284197, + "tiploc": "BARGOED", + "name": "Bargoed", + "crs": "BGD", + "toc": "AW", + "lon": -3.22967951657234 + }, + { + "lat": 52.564501418728966, + "tiploc": "RDHAMN", + "name": "Reedham (Norfolk)", + "crs": "REE", + "toc": "LE", + "lon": 1.5596512495088084 + }, + { + "lat": 51.44998710641613, + "tiploc": "HONROPK", + "name": "Honor Oak Park", + "crs": "HPA", + "toc": "LO", + "lon": -0.04550544912470422 + }, + { + "lat": 52.5263688981183, + "tiploc": "NNTN", + "name": "Nuneaton", + "crs": "NUN", + "toc": "LM", + "lon": -1.4638752026538313 + }, + { + "lat": 0.0, + "tiploc": "GLGAPT", + "name": "Glasgow Airport (Bus)", + "crs": "GGT", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.97652670643963, + "tiploc": "TRIMLEY", + "name": "Trimley", + "crs": "TRM", + "toc": "LE", + "lon": 1.3195363791898391 + }, + { + "lat": 51.13316017797117, + "tiploc": "WITLEY", + "name": "Witley", + "crs": "WTY", + "toc": "SW", + "lon": -0.64578302156456 + }, + { + "lat": 51.21529792638638, + "tiploc": "SNWDNAN", + "name": "Snowdown", + "crs": "SWO", + "toc": "SE", + "lon": 1.2137051135102668 + }, + { + "lat": 51.27716747493778, + "tiploc": "MSTONEB", + "name": "Maidstone Barracks", + "crs": "MDB", + "toc": "SE", + "lon": 0.5139601567481406 + }, + { + "lat": 51.67092021469247, + "tiploc": "ENFLDLK", + "name": "Enfield Lock", + "crs": "ENL", + "toc": "LE", + "lon": -0.028532460355955296 + }, + { + "lat": 51.392948269315035, + "tiploc": "MITCHMJ", + "name": "Mitcham Junction", + "crs": "MIJ", + "toc": "SN", + "lon": -0.15775664034617784 + }, + { + "lat": 51.2778281023892, + "tiploc": "MSTONEE", + "name": "Maidstone East", + "crs": "MDE", + "toc": "SE", + "lon": 0.5212950677735491 + }, + { + "lat": 51.18658481958653, + "tiploc": "GDLMING", + "name": "Godalming", + "crs": "GOD", + "toc": "SW", + "lon": -0.6188623046937117 + }, + { + "lat": 51.45202339017424, + "tiploc": "HTHRGRN", + "name": "Hither Green", + "crs": "HGR", + "toc": "SE", + "lon": -0.0009442471374142076 + }, + { + "lat": 52.91221758576444, + "tiploc": "SPDN", + "name": "Spondon", + "crs": "SPO", + "toc": "EM", + "lon": -1.4110939241799283 + }, + { + "lat": 51.46104594249781, + "tiploc": "WDWTOWN", + "name": "Wandsworth Town", + "crs": "WNT", + "toc": "SW", + "lon": -0.188125474815238 + }, + { + "lat": 51.37545193081551, + "tiploc": "ECROYDN", + "name": "East Croydon", + "crs": "ECR", + "toc": "SN", + "lon": -0.09277969498286084 + }, + { + "lat": 54.85459289744248, + "tiploc": "CLST", + "name": "Chester-le-Street", + "crs": "CLS", + "toc": "NT", + "lon": -1.5780152721263159 + }, + { + "lat": 51.66072355028108, + "tiploc": "QUAKRSY", + "name": "Quakers Yard", + "crs": "QYD", + "toc": "AW", + "lon": -3.3228003923143334 + }, + { + "lat": 52.262303562822524, + "tiploc": "WATBECH", + "name": "Waterbeach", + "crs": "WBC", + "toc": "GN", + "lon": 0.19679051029094718 + }, + { + "lat": 53.29184946362797, + "tiploc": "NESTON", + "name": "Neston", + "crs": "NES", + "toc": "AW", + "lon": -3.0630760899384444 + }, + { + "lat": 55.840075825798415, + "tiploc": "PSLYCAN", + "name": "Paisley Canal", + "crs": "PCN", + "toc": "SR", + "lon": -4.424117325023884 + }, + { + "lat": 53.3691230163462, + "tiploc": "WALERTN", + "name": "West Allerton", + "crs": "WSA", + "toc": "NT", + "lon": -2.9069642052524043 + }, + { + "lat": 55.91993785573309, + "tiploc": "SHWFAIR", + "name": "Shawfair", + "crs": "SFI", + "toc": "SR", + "lon": -3.078711960200709 + }, + { + "lat": 54.46105113543207, + "tiploc": "SLEGHTS", + "name": "Sleights", + "crs": "SLH", + "toc": "NT", + "lon": -0.6624808188996181 + }, + { + "lat": 52.29527614704971, + "tiploc": "HATTON", + "name": "Hatton", + "crs": "HTN", + "toc": "CH", + "lon": -1.6729751598647165 + }, + { + "lat": 53.34095624342764, + "tiploc": "KVTNBDG", + "name": "Kiveton Bridge", + "crs": "KIV", + "toc": "NT", + "lon": -1.2671793921663597 + }, + { + "lat": 53.763813165444645, + "tiploc": "RISHTON", + "name": "Rishton", + "crs": "RIS", + "toc": "NT", + "lon": -2.4201576603398367 + }, + { + "lat": 51.1557898965699, + "tiploc": "DORMANS", + "name": "Dormans", + "crs": "DMS", + "toc": "SN", + "lon": -0.004308260216713552 + }, + { + "lat": 53.226085430844996, + "tiploc": "LINCLNC", + "name": "Lincoln Central", + "crs": "LCN", + "toc": "EM", + "lon": -0.5399219252458871 + }, + { + "lat": 51.43545074209875, + "tiploc": "ALBNHV", + "name": "Albany Park", + "crs": "AYP", + "toc": "SE", + "lon": 0.12573707258458985 + }, + { + "lat": 51.0889636957593, + "tiploc": "ERIDBUS", + "name": "Eridge", + "crs": "ERI", + "toc": "SN", + "lon": 0.20143172133156884 + }, + { + "lat": 0.0, + "tiploc": "LHRBHC", + "name": "Hatton Cross (Bus)", + "crs": "XHC", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "BRNAMKT", + "name": "Burnham Market (Bus)", + "crs": "BMK", + "toc": "LE", + "lon": 0.0 + }, + { + "lat": 51.68505910708776, + "tiploc": "WALHAMX", + "name": "Waltham Cross", + "crs": "WLC", + "toc": "LE", + "lon": -0.02655839253652893 + }, + { + "lat": 0.0, + "tiploc": "WKNTBS", + "name": "Workington Bus Station", + "crs": "WOX", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "HLSTWOO", + "name": "Helston (Bus)", + "crs": "XAV", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 55.16237484350375, + "tiploc": "MRPTHRP", + "name": "Morpeth", + "crs": "MPT", + "toc": "NT", + "lon": -1.6830745047493623 + }, + { + "lat": 51.27046418283473, + "tiploc": "MSTONEW", + "name": "Maidstone West", + "crs": "MDW", + "toc": "SE", + "lon": 0.5157734395383977 + }, + { + "lat": 52.303780941686156, + "tiploc": "WLNGBRO", + "name": "Wellingborough", + "crs": "WEL", + "toc": "EM", + "lon": -0.6766509178766319 + }, + { + "lat": 51.577180346683036, + "tiploc": "HRGYSTD", + "name": "Harringay Green Lanes", + "crs": "HRY", + "toc": "LO", + "lon": -0.09814377245064193 + }, + { + "lat": 53.3291375834264, + "tiploc": "MOBERLY", + "name": "Mobberley", + "crs": "MOB", + "toc": "NT", + "lon": -2.3336654262450476 + }, + { + "lat": 51.389234243243365, + "tiploc": "SWALE", + "name": "Swale", + "crs": "SWL", + "toc": "SE", + "lon": 0.747133634237231 + }, + { + "lat": 53.485356902115, + "tiploc": "ECCLES", + "name": "Eccles", + "crs": "ECC", + "toc": "NT", + "lon": -2.334514273749063 + }, + { + "lat": 54.951566653928026, + "tiploc": "HEWORTH", + "name": "Heworth", + "crs": "HEW", + "toc": "NT", + "lon": -1.5557661266150986 + }, + { + "lat": 51.691134265350954, + "tiploc": "LLGNNCH", + "name": "Llangennech", + "crs": "LLH", + "toc": "AW", + "lon": -4.078929312526799 + }, + { + "lat": 51.30375613303132, + "tiploc": "BRKWOOD", + "name": "Brookwood", + "crs": "BKO", + "toc": "SW", + "lon": -0.6357478718960062 + }, + { + "lat": 53.87593267425971, + "tiploc": "GUISELY", + "name": "Guiseley", + "crs": "GSY", + "toc": "NT", + "lon": -1.7150799174402407 + }, + { + "lat": 53.78278333014686, + "tiploc": "SELBY", + "name": "Selby", + "crs": "SBY", + "toc": "TP", + "lon": -1.0637859417157975 + }, + { + "lat": 0.0, + "tiploc": "WEMBNEX", + "name": "Wembley Stadium (Bus)", + "crs": "WCS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.26698437441283, + "tiploc": "WSTBRYW", + "name": "Westbury", + "crs": "WSB", + "toc": "GW", + "lon": -2.1991816776934567 + }, + { + "lat": 51.010544161933936, + "tiploc": "ETCHNGM", + "name": "Etchingham", + "crs": "ETC", + "toc": "SE", + "lon": 0.4423562844585348 + }, + { + "lat": 55.797324406118534, + "tiploc": "BLANTYR", + "name": "Blantyre", + "crs": "BLT", + "toc": "SR", + "lon": -4.086970693586628 + }, + { + "lat": 51.888589131846814, + "tiploc": "STANAIR", + "name": "Stansted Airport", + "crs": "SSD", + "toc": "LE", + "lon": 0.2608155053439712 + }, + { + "lat": 53.32763268084741, + "tiploc": "DORE", + "name": "Dore", + "crs": "DOR", + "toc": "NT", + "lon": -1.5152976184887708 + }, + { + "lat": 53.39537429978985, + "tiploc": "NAVGTNR", + "name": "Navigation Road", + "crs": "NVR", + "toc": "NT", + "lon": -2.343417127044364 + }, + { + "lat": 55.818255201893635, + "tiploc": "CFFT", + "name": "Croftfoot", + "crs": "CFF", + "toc": "SR", + "lon": -4.228324589497558 + }, + { + "lat": 50.87353383773213, + "tiploc": "CRKRN", + "name": "Crewkerne", + "crs": "CKN", + "toc": "SW", + "lon": -2.778495992018508 + }, + { + "lat": 56.16235603856619, + "tiploc": "GLNRTHS", + "name": "Glenrothes with Thornton", + "crs": "GLT", + "toc": "SR", + "lon": -3.1430152965050335 + }, + { + "lat": 52.67316965969954, + "tiploc": "WATLGTN", + "name": "Watlington", + "crs": "WTG", + "toc": "GN", + "lon": 0.3833160874992912 + }, + { + "lat": 52.0603064839711, + "tiploc": "BNBR", + "name": "Banbury", + "crs": "BAN", + "toc": "CH", + "lon": -1.328132787927425 + }, + { + "lat": 51.376331958057854, + "tiploc": "HAYS", + "name": "Hayes (Kent)", + "crs": "HYS", + "toc": "SE", + "lon": 0.010556711722336817 + }, + { + "lat": 52.1693204295619, + "tiploc": "BUILTHR", + "name": "Builth Road", + "crs": "BHR", + "toc": "AW", + "lon": -3.4270325387198746 + }, + { + "lat": 51.29472286699221, + "tiploc": "KGWD", + "name": "Kingswood", + "crs": "KND", + "toc": "SN", + "lon": -0.21124755322648878 + }, + { + "lat": 52.41428899731029, + "tiploc": "KNORTON", + "name": "Kings Norton", + "crs": "KNN", + "toc": "LM", + "lon": -1.9323257367263669 + }, + { + "lat": 52.06587601199757, + "tiploc": "WLVR", + "name": "Wolverton", + "crs": "WOL", + "toc": "LM", + "lon": -0.8042669764303993 + }, + { + "lat": 52.518583408775875, + "tiploc": "WTRORTN", + "name": "Water Orton", + "crs": "WTO", + "toc": "LM", + "lon": -1.743090383782568 + }, + { + "lat": 55.86397765192855, + "tiploc": "AIRDRIE", + "name": "Airdrie", + "crs": "ADR", + "toc": "SR", + "lon": -3.982912018304417 + }, + { + "lat": 52.92068301295179, + "tiploc": "LNDC", + "name": "Llandecwyn", + "crs": "LLC", + "toc": "AW", + "lon": -4.057034603026822 + }, + { + "lat": 50.722977068126426, + "tiploc": "PSTONE", + "name": "Parkstone (Dorset)", + "crs": "PKS", + "toc": "SW", + "lon": -1.9479564877146922 + }, + { + "lat": 51.21939670761506, + "tiploc": "GOMSHAL", + "name": "Gomshall", + "crs": "GOM", + "toc": "GW", + "lon": -0.44185217851218306 + }, + { + "lat": 56.433341008113324, + "tiploc": "TYNDRML", + "name": "Tyndrum Lower", + "crs": "TYL", + "toc": "SR", + "lon": -4.714820993052909 + }, + { + "lat": 51.607010020708174, + "tiploc": "BOWESPK", + "name": "Bowes Park", + "crs": "BOP", + "toc": "GN", + "lon": -0.12058194853157841 + }, + { + "lat": 51.577180346683036, + "tiploc": "HRGYGL", + "name": "Harringay Green Lanes", + "crs": "HRY", + "toc": "LO", + "lon": -0.09814377245064193 + }, + { + "lat": 51.37681022187493, + "tiploc": "HERSHAM", + "name": "Hersham", + "crs": "HER", + "toc": "SW", + "lon": -0.38995925073186316 + }, + { + "lat": 50.81849699250669, + "tiploc": "WORTHNG", + "name": "Worthing", + "crs": "WRH", + "toc": "SN", + "lon": -0.3761714517710371 + }, + { + "lat": 53.57414163728072, + "tiploc": "BOLTON", + "name": "Bolton", + "crs": "BON", + "toc": "NT", + "lon": -2.42582462778998 + }, + { + "lat": 51.344912468175174, + "tiploc": "BRDFDOA", + "name": "Bradford-on-Avon", + "crs": "BOA", + "toc": "GW", + "lon": -2.252326638203564 + }, + { + "lat": 51.485555292364644, + "tiploc": "CHADHDD", + "name": "Chafford Hundred", + "crs": "CFH", + "toc": "CC", + "lon": 0.2874469313652822 + }, + { + "lat": 56.43466206759634, + "tiploc": "TYNDRMU", + "name": "Upper Tyndrum", + "crs": "UTY", + "toc": "SR", + "lon": -4.7037213782878 + }, + { + "lat": 51.79936657249062, + "tiploc": "NRBERTH", + "name": "Narberth", + "crs": "NAR", + "toc": "AW", + "lon": -4.7271750023046595 + }, + { + "lat": 53.63404793441169, + "tiploc": "BKDLE", + "name": "Birkdale", + "crs": "BDL", + "toc": "ME", + "lon": -3.0144495759766166 + }, + { + "lat": 51.068376486863706, + "tiploc": "HMST", + "name": "Ham Street", + "crs": "HMT", + "toc": "SN", + "lon": 0.8545063323635825 + }, + { + "lat": 51.37982121343915, + "tiploc": "MELKSHM", + "name": "Melksham", + "crs": "MKM", + "toc": "GW", + "lon": -2.144496977876013 + }, + { + "lat": 51.86733908563591, + "tiploc": "ASCTUWD", + "name": "Ascott-under-Wychwood", + "crs": "AUW", + "toc": "GW", + "lon": -1.564052662346737 + }, + { + "lat": 51.514839622384564, + "tiploc": "EALINGB", + "name": "Ealing Broadway", + "crs": "EAL", + "toc": "GW", + "lon": -0.3017517585183477 + }, + { + "lat": 51.514839622384564, + "tiploc": "EALINGC", + "name": "Ealing Broadway", + "crs": "EAL", + "toc": "GW", + "lon": -0.3017517585183477 + }, + { + "lat": 54.48460825807038, + "tiploc": "WTBY", + "name": "Whitby", + "crs": "WTB", + "toc": "NT", + "lon": -0.6154029094098699 + }, + { + "lat": 51.51138045355871, + "tiploc": "CANONST", + "name": "London Cannon Street", + "crs": "CST", + "toc": "RT", + "lon": -0.09029297465945531 + }, + { + "lat": 53.69803429849242, + "tiploc": "DARWEN", + "name": "Darwen", + "crs": "DWN", + "toc": "NT", + "lon": -2.464939658082388 + }, + { + "lat": 53.80534713159386, + "tiploc": "BRMLYSR", + "name": "Bramley (West Yorkshire)", + "crs": "BLE", + "toc": "NT", + "lon": -1.6372061939166054 + }, + { + "lat": 51.597922137232686, + "tiploc": "ALEXNDP", + "name": "Alexandra Palace", + "crs": "AAP", + "toc": "GN", + "lon": -0.12023521403096685 + }, + { + "lat": 51.22681170138709, + "tiploc": "NUTFILD", + "name": "Nutfield", + "crs": "NUF", + "toc": "SN", + "lon": -0.1325313182123676 + }, + { + "lat": 56.119815732043165, + "tiploc": "STIRLNG", + "name": "Stirling", + "crs": "STG", + "toc": "SR", + "lon": -3.9356194947899046 + }, + { + "lat": 0.0, + "tiploc": "CULLMKH", + "name": "Cullompton (Bus)", + "crs": "XDX", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.796579350564876, + "tiploc": "HONITNS", + "name": "Honiton", + "crs": "HON", + "toc": "SW", + "lon": -3.186717808982303 + }, + { + "lat": 51.51379949629592, + "tiploc": "BRSTPWY", + "name": "Bristol Parkway", + "crs": "BPW", + "toc": "GW", + "lon": -2.5421630495274155 + }, + { + "lat": 51.40252025632986, + "tiploc": "KNTBRY", + "name": "Kintbury", + "crs": "KIT", + "toc": "GW", + "lon": -1.445988871669746 + }, + { + "lat": 51.68620419548325, + "tiploc": "RDLEY", + "name": "Radley", + "crs": "RAD", + "toc": "GW", + "lon": -1.2404820423060487 + }, + { + "lat": 54.95874771106297, + "tiploc": "GTSHDMC", + "name": "Metro Centre", + "crs": "MCE", + "toc": "NT", + "lon": -1.6656259024557258 + }, + { + "lat": 53.27836089130091, + "tiploc": "STNLWAT", + "name": "Stanlow & Thornton", + "crs": "SNT", + "toc": "NT", + "lon": -2.8420514306856375 + }, + { + "lat": 51.40243987810458, + "tiploc": "BARRYDK", + "name": "Barry Docks", + "crs": "BYD", + "toc": "AW", + "lon": -3.260703306488731 + }, + { + "lat": 55.986317614615565, + "tiploc": "DLMYJN", + "name": "Dalmeny", + "crs": "DAM", + "toc": "SR", + "lon": -3.3816195779071316 + }, + { + "lat": 51.85278044770955, + "tiploc": "FINSTCK", + "name": "Finstock", + "crs": "FIN", + "toc": "GW", + "lon": -1.4693429732145418 + }, + { + "lat": 51.440086163268816, + "tiploc": "BDMNSTR", + "name": "Bedminster", + "crs": "BMT", + "toc": "GW", + "lon": -2.594148928636209 + }, + { + "lat": 51.08864639716551, + "tiploc": "HASLEMR", + "name": "Haslemere", + "crs": "HSL", + "toc": "SW", + "lon": -0.7191626210215357 + }, + { + "lat": 51.88645380447573, + "tiploc": "CLCHRTN", + "name": "Colchester Town", + "crs": "CET", + "toc": "LE", + "lon": 0.9047625215849444 + }, + { + "lat": 53.36941407075436, + "tiploc": "HLDG", + "name": "Heald Green", + "crs": "HDG", + "toc": "NT", + "lon": -2.23666733735219 + }, + { + "lat": 54.661803634077664, + "tiploc": "PNTH", + "name": "Penrith", + "crs": "PNR", + "toc": "VT", + "lon": -2.758880666238205 + }, + { + "lat": 0.0, + "tiploc": "ABNGSTR", + "name": "Abingdon (Bus)", + "crs": "XAE", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.26415234420119, + "tiploc": "MERSTHM", + "name": "Merstham", + "crs": "MHM", + "toc": "SN", + "lon": -0.1502256766212361 + }, + { + "lat": 53.59776652284931, + "tiploc": "HOSCAR", + "name": "Hoscar", + "crs": "HSC", + "toc": "NT", + "lon": -2.8044208500644543 + }, + { + "lat": 52.23156579091593, + "tiploc": "STNEOTS", + "name": "St Neots", + "crs": "SNO", + "toc": "GN", + "lon": -0.2474139037283939 + }, + { + "lat": 51.43291117408614, + "tiploc": "BELNGHM", + "name": "Bellingham", + "crs": "BGM", + "toc": "SE", + "lon": -0.019330802656895463 + }, + { + "lat": 50.87490750220824, + "tiploc": "NETLEY", + "name": "Netley", + "crs": "NTL", + "toc": "SW", + "lon": -1.3419028362101204 + }, + { + "lat": 51.88563742478688, + "tiploc": "CLCHHYT", + "name": "Hythe", + "crs": "HYH", + "toc": "LE", + "lon": 0.927527574991041 + }, + { + "lat": 52.30632405278029, + "tiploc": "RDIT", + "name": "Redditch", + "crs": "RDC", + "toc": "LM", + "lon": -1.9452496138594386 + }, + { + "lat": 51.75223006263435, + "tiploc": "LTLKMBL", + "name": "Little Kimble", + "crs": "LTK", + "toc": "CH", + "lon": -0.8084523861022592 + }, + { + "lat": 0.0, + "tiploc": "ELSN", + "name": "Earlston, Borders (Bus)", + "crs": "EAS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.82939198683349, + "tiploc": "FORD", + "name": "Ford", + "crs": "FOD", + "toc": "SN", + "lon": -0.5784100056675577 + }, + { + "lat": 51.464185044292044, + "tiploc": "CLPHMJ1", + "name": "Clapham Junction", + "crs": "CLJ", + "toc": "SW", + "lon": -0.17022147185427008 + }, + { + "lat": 50.796579350564876, + "tiploc": "HONITON", + "name": "Honiton", + "crs": "HON", + "toc": "SW", + "lon": -3.186717808982303 + }, + { + "lat": 51.464185044292044, + "tiploc": "CLPHMJ2", + "name": "Clapham Junction", + "crs": "CLJ", + "toc": "SW", + "lon": -0.17022147185427008 + }, + { + "lat": 51.417553286206925, + "tiploc": "PENEW", + "name": "Penge West", + "crs": "PNW", + "toc": "LO", + "lon": -0.0608399036443729 + }, + { + "lat": 51.66390585817985, + "tiploc": "WATFJDC", + "name": "Watford Junction", + "crs": "WFJ", + "toc": "LM", + "lon": -0.3959253002195836 + }, + { + "lat": 53.19892941659841, + "tiploc": "HCHP", + "name": "Holmes Chapel", + "crs": "HCH", + "toc": "NT", + "lon": -2.351139781283837 + }, + { + "lat": 51.07974938367373, + "tiploc": "LHVN", + "name": "Littlehaven", + "crs": "LVN", + "toc": "SN", + "lon": -0.3079805260172531 + }, + { + "lat": 53.70993973413908, + "tiploc": "BATLEY", + "name": "Batley", + "crs": "BTL", + "toc": "NT", + "lon": -1.6229524740761403 + }, + { + "lat": 51.4921183, + "tiploc": "ELCT", + "name": "Earl's Court Underground", + "crs": "ZET", + "toc": "LT", + "lon": -0.193179 + }, + { + "lat": 55.931204970726995, + "tiploc": "WHHL", + "name": "Woodhall", + "crs": "WDL", + "toc": "SR", + "lon": -4.6554009609180556 + }, + { + "lat": 52.618198617116136, + "tiploc": "BLOXWCH", + "name": "Bloxwich", + "crs": "BLX", + "toc": "LM", + "lon": -2.0114778320535556 + }, + { + "lat": 50.82827483676501, + "tiploc": "HILSEA", + "name": "Hilsea", + "crs": "HLS", + "toc": "SW", + "lon": -1.0587973705850062 + }, + { + "lat": 51.88093688949532, + "tiploc": "MRKSTEY", + "name": "Marks Tey", + "crs": "MKT", + "toc": "LE", + "lon": 0.7833273987947587 + }, + { + "lat": 50.7323785320102, + "tiploc": "OKHMPTN", + "name": "Okehampton", + "crs": "OKE", + "toc": "GW", + "lon": -3.9962148243654285 + }, + { + "lat": 51.62958420450421, + "tiploc": "HWYCOMB", + "name": "High Wycombe", + "crs": "HWY", + "toc": "CH", + "lon": -0.7454098639982839 + }, + { + "lat": 52.51022837209213, + "tiploc": "SMRLYTN", + "name": "Somerleyton", + "crs": "SYT", + "toc": "LE", + "lon": 1.6522601256090639 + }, + { + "lat": 54.71131776313742, + "tiploc": "MPRT", + "name": "Maryport", + "crs": "MRY", + "toc": "NT", + "lon": -3.4940743336681073 + }, + { + "lat": 52.12473193956827, + "tiploc": "SNDY", + "name": "Sandy", + "crs": "SDY", + "toc": "GN", + "lon": -0.28119044061350945 + }, + { + "lat": 51.464185044292044, + "tiploc": "CLPHMJC", + "name": "Clapham Junction", + "crs": "CLJ", + "toc": "SW", + "lon": -0.17022147185427008 + }, + { + "lat": 53.31222920924015, + "tiploc": "CHEF", + "name": "Chapel-en-le-Frith", + "crs": "CEF", + "toc": "NT", + "lon": -1.9187623892255339 + }, + { + "lat": 52.46237861986811, + "tiploc": "LTLPORT", + "name": "Littleport", + "crs": "LTP", + "toc": "GN", + "lon": 0.31655923210117 + }, + { + "lat": 55.92470019029322, + "tiploc": "KLPTRCK", + "name": "Kilpatrick", + "crs": "KPT", + "toc": "SR", + "lon": -4.4534119004764445 + }, + { + "lat": 55.24130478469192, + "tiploc": "WDRNGTN", + "name": "Widdrington", + "crs": "WDD", + "toc": "NT", + "lon": -1.6164734253298823 + }, + { + "lat": 50.7680259433738, + "tiploc": "WHIMPLE", + "name": "Whimple", + "crs": "WHM", + "toc": "SW", + "lon": -3.3543220123297184 + }, + { + "lat": 51.40555464393463, + "tiploc": "CHSLHRS", + "name": "Chislehurst", + "crs": "CIT", + "toc": "SE", + "lon": 0.05741797453482365 + }, + { + "lat": 53.69188002549768, + "tiploc": "PTFTBHL", + "name": "Pontefract Baghill", + "crs": "PFR", + "toc": "NT", + "lon": -1.3033528107530727 + }, + { + "lat": 53.38831173025184, + "tiploc": "BRKNHDC", + "name": "Birkenhead Central", + "crs": "BKC", + "toc": "ME", + "lon": -3.020820620812249 + }, + { + "lat": 53.60822667638778, + "tiploc": "HONLEY", + "name": "Honley", + "crs": "HOY", + "toc": "NT", + "lon": -1.780965313622745 + }, + { + "lat": 53.53891030543832, + "tiploc": "INCE", + "name": "Ince", + "crs": "INC", + "toc": "NT", + "lon": -2.6115196452253455 + }, + { + "lat": 0.0, + "tiploc": "MINEBUT", + "name": "Minehead Butlins (Bus)", + "crs": "XBV", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "WITEHIL", + "name": "Whitehill Prince of Wales (Bus", + "crs": "WHH", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.464185044292044, + "tiploc": "CLPHMJM", + "name": "Clapham Junction", + "crs": "CLJ", + "toc": "SW", + "lon": -0.17022147185427008 + }, + { + "lat": 52.059808956017484, + "tiploc": "GTCHSFD", + "name": "Great Chesterford", + "crs": "GRC", + "toc": "LE", + "lon": 0.19352101455663573 + }, + { + "lat": 52.05059017669498, + "tiploc": "IPSWICH", + "name": "Ipswich", + "crs": "IPS", + "toc": "LE", + "lon": 1.1444255837190085 + }, + { + "lat": 51.48420081201716, + "tiploc": "WCOMBEP", + "name": "Westcombe Park", + "crs": "WCB", + "toc": "SE", + "lon": 0.018394658237240825 + }, + { + "lat": 51.464185044292044, + "tiploc": "CLPHMJN", + "name": "Clapham Junction", + "crs": "CLJ", + "toc": "SW", + "lon": -0.17022147185427008 + }, + { + "lat": 50.75829871652525, + "tiploc": "LMTNPIR", + "name": "Lymington Pier", + "crs": "LYP", + "toc": "SW", + "lon": -1.5294469142520057 + }, + { + "lat": 51.4444048406528, + "tiploc": "CATFORD", + "name": "Catford", + "crs": "CTF", + "toc": "SE", + "lon": -0.02631659262797845 + }, + { + "lat": 55.765217543212984, + "tiploc": "CHTLRT", + "name": "Chatelherault", + "crs": "CTE", + "toc": "SR", + "lon": -4.0046743292636275 + }, + { + "lat": 52.47109327777176, + "tiploc": "FIVEWYS", + "name": "Five Ways", + "crs": "FWY", + "toc": "LM", + "lon": -1.912954302035028 + }, + { + "lat": 51.454508459590684, + "tiploc": "NDULWCH", + "name": "North Dulwich", + "crs": "NDL", + "toc": "SN", + "lon": -0.08791754841046912 + }, + { + "lat": 51.705426076187635, + "tiploc": "BCWD", + "name": "Bricket Wood", + "crs": "BWO", + "toc": "LM", + "lon": -0.35911502806959045 + }, + { + "lat": 53.40443297808625, + "tiploc": "BRKNHDN", + "name": "Birkenhead North", + "crs": "BKN", + "toc": "ME", + "lon": -3.057533108487536 + }, + { + "lat": 53.70784481292234, + "tiploc": "MLNRYDJ", + "name": "Sowerby Bridge", + "crs": "SOW", + "toc": "NT", + "lon": -1.9070215307148306 + }, + { + "lat": 51.181231310705144, + "tiploc": "BNTEY", + "name": "Bentley (Hampshire)", + "crs": "BTY", + "toc": "SW", + "lon": -0.8681268517205992 + }, + { + "lat": 54.477755987784136, + "tiploc": "KLDL", + "name": "Kildale", + "crs": "KLD", + "toc": "NT", + "lon": -1.0681434642426464 + }, + { + "lat": 50.415092982165206, + "tiploc": "NEWQUAY", + "name": "Newquay", + "crs": "NQY", + "toc": "GW", + "lon": -5.075654147500133 + }, + { + "lat": 54.279790184073654, + "tiploc": "SCARBRO", + "name": "Scarborough", + "crs": "SCA", + "toc": "TP", + "lon": -0.40570304887481745 + }, + { + "lat": 51.20470673743428, + "tiploc": "BLTRNAB", + "name": "Beltring", + "crs": "BEG", + "toc": "SE", + "lon": 0.4034955027056103 + }, + { + "lat": 53.397403658974255, + "tiploc": "BRKNHDP", + "name": "Birkenhead Park", + "crs": "BKP", + "toc": "ME", + "lon": -3.039100744789531 + }, + { + "lat": 51.464185044292044, + "tiploc": "CLPHMJW", + "name": "Clapham Junction", + "crs": "CLJ", + "toc": "SW", + "lon": -0.17022147185427008 + }, + { + "lat": 53.44446810084924, + "tiploc": "GLSP", + "name": "Glossop", + "crs": "GLO", + "toc": "NT", + "lon": -1.949073727293084 + }, + { + "lat": 55.88565950704439, + "tiploc": "GRTCSH", + "name": "Gartcosh", + "crs": "GRH", + "toc": "SR", + "lon": -4.079494082272045 + }, + { + "lat": 52.86413362147269, + "tiploc": "TUTBURY", + "name": "Tutbury & Hatton", + "crs": "TUT", + "toc": "EM", + "lon": -1.6822349347751935 + }, + { + "lat": 51.41309011270726, + "tiploc": "BRACKNL", + "name": "Bracknell", + "crs": "BCE", + "toc": "SW", + "lon": -0.7517036127618004 + }, + { + "lat": 0.0, + "tiploc": "DUNT", + "name": "Dunstable (Bus)", + "crs": "XAD", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 54.52787896719481, + "tiploc": "NUNTHRP", + "name": "Nunthorpe", + "crs": "NNT", + "toc": "NT", + "lon": -1.1694488357772803 + }, + { + "lat": 51.5756402, + "tiploc": "ILFENBP", + "name": "Newbury Park Underground", + "crs": "ZNP", + "toc": "LT", + "lon": 0.0901747 + }, + { + "lat": 51.3469291320605, + "tiploc": "SNDHRST", + "name": "Sandhurst", + "crs": "SND", + "toc": "GW", + "lon": -0.8045905369205458 + }, + { + "lat": 0.0, + "tiploc": "ABDATRE", + "name": "Trecynon (Bus)", + "crs": "XTO", + "toc": "AW", + "lon": 0.0 + }, + { + "lat": 50.8390495891515, + "tiploc": "FSHBBUS", + "name": "Fishbourne (West Sussex)", + "crs": "FSB", + "toc": "SN", + "lon": -0.8150842088986902 + }, + { + "lat": 0.0, + "tiploc": "TINTLNG", + "name": "Tintagel (Bus)", + "crs": "XCY", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "DUNS", + "name": "Duns (Bus)", + "crs": "DUU", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.78153854843201, + "tiploc": "SALWICK", + "name": "Salwick", + "crs": "SLW", + "toc": "NT", + "lon": -2.8170384438027374 + }, + { + "lat": 50.713987518551185, + "tiploc": "DIGBY", + "name": "Digby & Sowton", + "crs": "DIG", + "toc": "GW", + "lon": -3.4735603873953713 + }, + { + "lat": 53.4026144946035, + "tiploc": "EDGH", + "name": "Edge Hill", + "crs": "EDG", + "toc": "NT", + "lon": -2.946482929482947 + }, + { + "lat": 57.92486855191955, + "tiploc": "INVRSHN", + "name": "Invershin", + "crs": "INH", + "toc": "SR", + "lon": -4.399477817627322 + }, + { + "lat": 53.575119282040156, + "tiploc": "BNTBY", + "name": "Barnetby", + "crs": "BTB", + "toc": "TP", + "lon": -0.40967969173583857 + }, + { + "lat": 54.9743, + "tiploc": "SNTJ", + "name": "St James (T & W Metro)", + "crs": "SJN", + "toc": "TW", + "lon": -1.6208 + }, + { + "lat": 52.03627614443659, + "tiploc": "SUDBURY", + "name": "Sudbury", + "crs": "SUY", + "toc": "LE", + "lon": 0.7354443059923774 + }, + { + "lat": 53.36456326605283, + "tiploc": "AIGBURT", + "name": "Aigburth", + "crs": "AIG", + "toc": "ME", + "lon": -2.9271548961754306 + }, + { + "lat": 53.498657422835144, + "tiploc": "ELSC", + "name": "Elsecar", + "crs": "ELR", + "toc": "NT", + "lon": -1.4274237920741177 + }, + { + "lat": 52.501779267495095, + "tiploc": "GALTILL", + "name": "Smethwick Galton Bridge", + "crs": "SGB", + "toc": "LM", + "lon": -1.980510905335912 + }, + { + "lat": 50.185560339134085, + "tiploc": "HAYLE", + "name": "Hayle", + "crs": "HYL", + "toc": "GW", + "lon": -5.419836076121626 + }, + { + "lat": 51.676993865675875, + "tiploc": "KEMBLE", + "name": "Kemble", + "crs": "KEM", + "toc": "GW", + "lon": -2.022817089260325 + }, + { + "lat": 0.0, + "tiploc": "LARNEHB", + "name": "Larne Harbour (Bus)", + "crs": "LRN", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.42127371866525, + "tiploc": "WIMBLDN", + "name": "Wimbledon", + "crs": "WIM", + "toc": "SW", + "lon": -0.2063686576928071 + }, + { + "lat": 53.75303006691447, + "tiploc": "STAS", + "name": "St Annes-on-the-Sea", + "crs": "SAS", + "toc": "NT", + "lon": -3.0290992554741063 + }, + { + "lat": 52.941425071909514, + "tiploc": "SHRGHAM", + "name": "Sheringham", + "crs": "SHM", + "toc": "LE", + "lon": 1.210320184103691 + }, + { + "lat": 54.88383881064871, + "tiploc": "WETHERL", + "name": "Wetheral", + "crs": "WRL", + "toc": "NT", + "lon": -2.8317131226840764 + }, + { + "lat": 51.41377967976933, + "tiploc": "SNDP", + "name": "Sundridge Park", + "crs": "SUP", + "toc": "SE", + "lon": 0.021446330105330483 + }, + { + "lat": 52.030770306040736, + "tiploc": "ASHWELC", + "name": "Ashwell & Morden", + "crs": "AWM", + "toc": "GN", + "lon": -0.10978891215736522 + }, + { + "lat": 53.81202857585881, + "tiploc": "BRLEYPK", + "name": "Burley Park", + "crs": "BUY", + "toc": "NT", + "lon": -1.5777675401775513 + }, + { + "lat": 51.715056119437754, + "tiploc": "ABDARE", + "name": "Aberdare", + "crs": "ABA", + "toc": "AW", + "lon": -3.443083397349216 + }, + { + "lat": 55.955676222091135, + "tiploc": "CROY", + "name": "Croy", + "crs": "CRO", + "toc": "SR", + "lon": -4.035975914111834 + }, + { + "lat": 51.48307507408469, + "tiploc": "DATCHET", + "name": "Datchet", + "crs": "DAT", + "toc": "SW", + "lon": -0.5794218864944385 + }, + { + "lat": 0.0, + "tiploc": "UIGG", + "name": "Uig, Skye (Bus)", + "crs": "UIG", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 55.821131759790376, + "tiploc": "LNSD", + "name": "Langside", + "crs": "LGS", + "toc": "SR", + "lon": -4.277340000962994 + }, + { + "lat": 54.379601367515676, + "tiploc": "WMER", + "name": "Windermere", + "crs": "WDM", + "toc": "TP", + "lon": -2.90339141449734 + }, + { + "lat": 51.56557706757199, + "tiploc": "GODMAYS", + "name": "Goodmayes", + "crs": "GMY", + "toc": "XR", + "lon": 0.11080707363485241 + }, + { + "lat": 53.79692281409099, + "tiploc": "BRADFS", + "name": "Bradford Forster Square", + "crs": "BDQ", + "toc": "NT", + "lon": -1.752961554492052 + }, + { + "lat": 51.54143031674889, + "tiploc": "SHMPSTD", + "name": "South Hampstead", + "crs": "SOH", + "toc": "LO", + "lon": -0.17887776404576233 + }, + { + "lat": 51.6426054854684, + "tiploc": "GRPK", + "name": "Grange Park", + "crs": "GPK", + "toc": "GN", + "lon": -0.09735850032025233 + }, + { + "lat": 55.92754975919547, + "tiploc": "EDINPRK", + "name": "Edinburgh Park", + "crs": "EDP", + "toc": "SR", + "lon": -3.307664119642849 + }, + { + "lat": 51.562594013709756, + "tiploc": "NWEMBLY", + "name": "North Wembley", + "crs": "NWB", + "toc": "LT", + "lon": -0.3039841112773398 + }, + { + "lat": 51.979867660370196, + "tiploc": "NEWPRTE", + "name": "Newport (Essex)", + "crs": "NWE", + "toc": "LE", + "lon": 0.21514048159220597 + }, + { + "lat": 53.73286880218122, + "tiploc": "CHTR", + "name": "Cherry Tree", + "crs": "CYT", + "toc": "NT", + "lon": -2.5183788156172153 + }, + { + "lat": 0.0, + "tiploc": "RSAY", + "name": "Rothesay, Bute (Bus)", + "crs": "RTY", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.40968239584766, + "tiploc": "HUYTON", + "name": "Huyton", + "crs": "HUY", + "toc": "NT", + "lon": -2.8429888014330884 + }, + { + "lat": 52.666069635519996, + "tiploc": "SHIFNAL", + "name": "Shifnal", + "crs": "SFN", + "toc": "LM", + "lon": -2.371839725518402 + }, + { + "lat": 51.588307972860186, + "tiploc": "TTNHMHL", + "name": "Tottenham Hale", + "crs": "TOM", + "toc": "LE", + "lon": -0.059929181231884905 + }, + { + "lat": 50.78330083311776, + "tiploc": "CREDITN", + "name": "Crediton", + "crs": "CDI", + "toc": "GW", + "lon": -3.646777513375312 + }, + { + "lat": 53.9558533272603, + "tiploc": "HTNCRNS", + "name": "Hutton Cranswick", + "crs": "HUT", + "toc": "NT", + "lon": -0.4338615767625369 + }, + { + "lat": 51.49106055880448, + "tiploc": "ABWD", + "name": "Abbey Wood", + "crs": "ABW", + "toc": "SE", + "lon": 0.12139403194956183 + }, + { + "lat": 53.451701897352855, + "tiploc": "GODLY", + "name": "Godley", + "crs": "GDL", + "toc": "NT", + "lon": -2.0547723524901165 + }, + { + "lat": 54.20584318634286, + "tiploc": "RIBLHED", + "name": "Ribblehead", + "crs": "RHD", + "toc": "NT", + "lon": -2.360855779362194 + }, + { + "lat": 55.0173, + "tiploc": "TYNEMTH", + "name": "Tynemouth (T & W Metro)", + "crs": "TYP", + "toc": "TW", + "lon": -1.4282 + }, + { + "lat": 53.66755845047332, + "tiploc": "CROT", + "name": "Croston", + "crs": "CSO", + "toc": "NT", + "lon": -2.777749682193032 + }, + { + "lat": 51.19733568117289, + "tiploc": "PNSHRST", + "name": "Penshurst", + "crs": "PHR", + "toc": "SN", + "lon": 0.1734721836027448 + }, + { + "lat": 50.82708141983747, + "tiploc": "LNCG", + "name": "Lancing", + "crs": "LAC", + "toc": "SN", + "lon": -0.3231092537856478 + }, + { + "lat": 52.58222272408389, + "tiploc": "WGSTS", + "name": "South Wigston", + "crs": "SWS", + "toc": "EM", + "lon": -1.1340771171174457 + }, + { + "lat": 53.260719625455785, + "tiploc": "BUXTON", + "name": "Buxton", + "crs": "BUX", + "toc": "NT", + "lon": -1.912863372264596 + }, + { + "lat": 53.23180399676514, + "tiploc": "MLDSWTH", + "name": "Mouldsworth", + "crs": "MLD", + "toc": "NT", + "lon": -2.7322244128191473 + }, + { + "lat": 51.29063303931328, + "tiploc": "FLEET", + "name": "Fleet", + "crs": "FLE", + "toc": "SW", + "lon": -0.8308056526281209 + }, + { + "lat": 53.383910941061195, + "tiploc": "MKTR", + "name": "Market Rasen", + "crs": "MKR", + "toc": "EM", + "lon": -0.3368988070380555 + }, + { + "lat": 53.426807910088584, + "tiploc": "LEGR", + "name": "Lea Green", + "crs": "LEG", + "toc": "NT", + "lon": -2.7249774744000903 + }, + { + "lat": 51.70192549254625, + "tiploc": "CMBH", + "name": "Cwmbach", + "crs": "CMH", + "toc": "AW", + "lon": -3.413723034786939 + }, + { + "lat": 51.00150142703705, + "tiploc": "TMPCMB", + "name": "Templecombe", + "crs": "TMC", + "toc": "SW", + "lon": -2.417724652703909 + }, + { + "lat": 51.45002933895997, + "tiploc": "TWCKNHM", + "name": "Twickenham", + "crs": "TWI", + "toc": "SW", + "lon": -0.33039381097425463 + }, + { + "lat": 51.85309676778638, + "tiploc": "WEELEY", + "name": "Weeley", + "crs": "WEE", + "toc": "LE", + "lon": 1.1154817038974802 + }, + { + "lat": 53.59742111697776, + "tiploc": "HITW", + "name": "Hall I' Th' Wood", + "crs": "HID", + "toc": "NT", + "lon": -2.413109651687609 + }, + { + "lat": 52.41912332963895, + "tiploc": "THETFD", + "name": "Thetford", + "crs": "TTF", + "toc": "LE", + "lon": 0.7450729796058626 + }, + { + "lat": 0.0, + "tiploc": "CANNA", + "name": "Canna (Bus)", + "crs": "CNA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.91858616735163, + "tiploc": "DOLEHAM", + "name": "Doleham", + "crs": "DLH", + "toc": "SN", + "lon": 0.6099747594552558 + }, + { + "lat": 0.0, + "tiploc": "YORKWHT", + "name": "Whitby Bus Station", + "crs": "WTZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.944612820466155, + "tiploc": "BOTESFD", + "name": "Bottesford", + "crs": "BTF", + "toc": "EM", + "lon": -0.7948426704750984 + }, + { + "lat": 55.88270526728976, + "tiploc": "JORDANH", + "name": "Jordanhill", + "crs": "JOR", + "toc": "SR", + "lon": -4.324917807294129 + }, + { + "lat": 51.46235659857992, + "tiploc": "TLBYTWN", + "name": "Tilbury Town", + "crs": "TIL", + "toc": "CC", + "lon": 0.3540384716958386 + }, + { + "lat": 53.32990453159433, + "tiploc": "BRMBRK", + "name": "Bromborough Rake", + "crs": "BMR", + "toc": "ME", + "lon": -2.9894688946764045 + }, + { + "lat": 51.238802347901434, + "tiploc": "DEPDENE", + "name": "Dorking Deepdene", + "crs": "DPD", + "toc": "GW", + "lon": -0.324643174439908 + }, + { + "lat": 52.805813846732654, + "tiploc": "BURTNOT", + "name": "Burton-on-Trent", + "crs": "BUT", + "toc": "EM", + "lon": -1.6424598105473451 + }, + { + "lat": 52.225680212305456, + "tiploc": "LEOMBUS", + "name": "Leominster", + "crs": "LEO", + "toc": "AW", + "lon": -2.730341041504309 + }, + { + "lat": 57.77814184611306, + "tiploc": "FEARN", + "name": "Fearn", + "crs": "FRN", + "toc": "SR", + "lon": -3.9939356685022256 + }, + { + "lat": 0.0, + "tiploc": "OKHMPWS", + "name": "Okehampton (Bus)", + "crs": "XCG", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.11409110237281, + "tiploc": "STTNPWY", + "name": "Sutton Parkway", + "crs": "SPK", + "toc": "EM", + "lon": -1.245568270938903 + }, + { + "lat": 51.50595477997535, + "tiploc": "STHALL", + "name": "Southall", + "crs": "STL", + "toc": "GW", + "lon": -0.37861036076285076 + }, + { + "lat": 51.48618800363548, + "tiploc": "VAUXHAL", + "name": "Vauxhall", + "crs": "VXH", + "toc": "SW", + "lon": -0.12288954430372094 + }, + { + "lat": 55.392776345360865, + "tiploc": "ALNMOTH", + "name": "Alnmouth", + "crs": "ALM", + "toc": "NT", + "lon": -1.6366376765272381 + }, + { + "lat": 51.54701018803535, + "tiploc": "HOMRTON", + "name": "Homerton", + "crs": "HMN", + "toc": "LO", + "lon": -0.04235983064588065 + }, + { + "lat": 53.52554453281007, + "tiploc": "PENISTN", + "name": "Penistone", + "crs": "PNS", + "toc": "NT", + "lon": -1.6227807230799627 + }, + { + "lat": 53.29684, + "tiploc": "DUBLINF", + "name": "Dublin Ferryport", + "crs": "DFP", + "toc": "ZF", + "lon": -6.13244 + }, + { + "lat": 52.14882592771181, + "tiploc": "SHELFD", + "name": "Shelford", + "crs": "SED", + "toc": "LE", + "lon": 0.13998091632675305 + }, + { + "lat": 52.053834891323014, + "tiploc": "MLBRKB", + "name": "Millbrook (Bedfordshire)", + "crs": "MLB", + "toc": "LM", + "lon": -0.5327030979774946 + }, + { + "lat": 51.47021459550889, + "tiploc": "WNDSWRD", + "name": "Wandsworth Road", + "crs": "WWR", + "toc": "LO", + "lon": -0.13851965920733952 + }, + { + "lat": 53.33023308733041, + "tiploc": "WHALYBG", + "name": "Whaley Bridge", + "crs": "WBR", + "toc": "NT", + "lon": -1.984645049683381 + }, + { + "lat": 53.48930740339781, + "tiploc": "CONBRGH", + "name": "Conisbrough", + "crs": "CNS", + "toc": "NT", + "lon": -1.2343314145685553 + }, + { + "lat": 55.83470742885272, + "tiploc": "JOHNSTN", + "name": "Johnstone", + "crs": "JHN", + "toc": "SR", + "lon": -4.503637196228283 + }, + { + "lat": 55.97648337086695, + "tiploc": "LNGNDRY", + "name": "Longniddry", + "crs": "LND", + "toc": "SR", + "lon": -2.8883430330940367 + }, + { + "lat": 57.35229680247863, + "tiploc": "STRMFRY", + "name": "Stromeferry", + "crs": "STF", + "toc": "SR", + "lon": -5.551160621369436 + }, + { + "lat": 55.940594364768884, + "tiploc": "BRNCHTN", + "name": "Branchton", + "crs": "BCN", + "toc": "SR", + "lon": -4.803548043669568 + }, + { + "lat": 51.38861689016607, + "tiploc": "PETSWD", + "name": "Petts Wood", + "crs": "PET", + "toc": "SE", + "lon": 0.0744808485999071 + }, + { + "lat": 53.78619189006001, + "tiploc": "ROSG", + "name": "Rose Grove", + "crs": "RSG", + "toc": "NT", + "lon": -2.282796363987881 + }, + { + "lat": 53.72192279479565, + "tiploc": "SLTMRSH", + "name": "Saltmarshe", + "crs": "SAM", + "toc": "NT", + "lon": -0.809485669499829 + }, + { + "lat": 51.4670842425151, + "tiploc": "BARNES", + "name": "Barnes", + "crs": "BNS", + "toc": "SW", + "lon": -0.24216428165323942 + }, + { + "lat": 52.72349782039062, + "tiploc": "PNKRBUS", + "name": "Penkridge", + "crs": "PKG", + "toc": "LM", + "lon": -2.1192935936874617 + }, + { + "lat": 52.501779267495095, + "tiploc": "GALTINT", + "name": "Smethwick Galton Bridge", + "crs": "SGB", + "toc": "LM", + "lon": -1.980510905335912 + }, + { + "lat": 53.46219154904826, + "tiploc": "MNCRUFG", + "name": "Manchester United FC", + "crs": "MUF", + "toc": "NT", + "lon": -2.2906528307684377 + }, + { + "lat": 51.758835634710806, + "tiploc": "RHYMNEY", + "name": "Rhymney", + "crs": "RHY", + "toc": "AW", + "lon": -3.2892982965808906 + }, + { + "lat": 51.67420401701059, + "tiploc": "AMERSHM", + "name": "Amersham", + "crs": "AMR", + "toc": "LT", + "lon": -0.6075961131060326 + }, + { + "lat": 51.46211940398707, + "tiploc": "KIDBROK", + "name": "Kidbrooke", + "crs": "KDB", + "toc": "SE", + "lon": 0.02749754518505761 + }, + { + "lat": 51.156470939044475, + "tiploc": "PLUCKLY", + "name": "Pluckley", + "crs": "PLC", + "toc": "SE", + "lon": 0.7473958699858082 + }, + { + "lat": 0.0, + "tiploc": "BUDESTD", + "name": "Bude Strand (Bus)", + "crs": "BUA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "HTRBUS1", + "name": "Heathrow Airport T1 (Bus)", + "crs": "HWO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 54.46714198587033, + "tiploc": "CTNM", + "name": "Castleton Moor", + "crs": "CSM", + "toc": "NT", + "lon": -0.9466483458429673 + }, + { + "lat": 0.0, + "tiploc": "HTRBUS2", + "name": "Heathrow Airport T2 (Bus)", + "crs": "HWA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "HTRBUS3", + "name": "Heathrow Airport T3 (Bus)", + "crs": "HWE", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.45932887671939, + "tiploc": "HTRBUS4", + "name": "Heathrow Airport T4 (Bus)", + "crs": "HWF", + "toc": "ZB", + "lon": -0.44696755900678276 + }, + { + "lat": 51.29163567610228, + "tiploc": "TADWTH", + "name": "Tadworth", + "crs": "TAD", + "toc": "SN", + "lon": -0.23596466097434754 + }, + { + "lat": 53.39290297135726, + "tiploc": "GATLEY", + "name": "Gatley", + "crs": "GTY", + "toc": "NT", + "lon": -2.231233963199063 + }, + { + "lat": 51.47124897944876, + "tiploc": "HTRBUS5", + "name": "Heathrow Airport T5 (Bus)", + "crs": "HWX", + "toc": "ZB", + "lon": -0.48936883239726786 + }, + { + "lat": 53.591520360071634, + "tiploc": "BLRD", + "name": "Blackrod", + "crs": "BLK", + "toc": "NT", + "lon": -2.5695239275653226 + }, + { + "lat": 53.53491555956226, + "tiploc": "SKSCMN", + "name": "Silkstone Common", + "crs": "SLK", + "toc": "NT", + "lon": -1.5634785621668785 + }, + { + "lat": 53.04136337889629, + "tiploc": "BLEASBY", + "name": "Bleasby", + "crs": "BSB", + "toc": "EM", + "lon": -0.943687481982894 + }, + { + "lat": 55.85730274153278, + "tiploc": "ARGYLST", + "name": "Argyle Street", + "crs": "AGS", + "toc": "SR", + "lon": -4.250693830719555 + }, + { + "lat": 55.80945757184603, + "tiploc": "MUIREND", + "name": "Muirend", + "crs": "MUI", + "toc": "SR", + "lon": -4.274391674826019 + }, + { + "lat": 0.0, + "tiploc": "YORKCSH", + "name": "Castle Howard (Bus)", + "crs": "CAQ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.455234204927145, + "tiploc": "STMGTS", + "name": "St Margarets (London)", + "crs": "SMG", + "toc": "SW", + "lon": -0.3202004901170939 + }, + { + "lat": 53.47735977842919, + "tiploc": "MNCRPIC", + "name": "Manchester Piccadilly", + "crs": "MAN", + "toc": "RT", + "lon": -2.230909897379996 + }, + { + "lat": 0.0, + "tiploc": "OLDHAMM", + "name": "Oldham Mumps", + "crs": "OLM", + "toc": "NT", + "lon": 0.0 + }, + { + "lat": 51.27735293176348, + "tiploc": "SELLING", + "name": "Selling", + "crs": "SEG", + "toc": "SE", + "lon": 0.9408702889479182 + }, + { + "lat": 57.06137538018419, + "tiploc": "PLTH", + "name": "Portlethen", + "crs": "PLN", + "toc": "SR", + "lon": -2.1266113028317726 + }, + { + "lat": 50.72696287294959, + "tiploc": "BRANKSM", + "name": "Branksome", + "crs": "BSM", + "toc": "SW", + "lon": -1.919758208549545 + }, + { + "lat": 53.61166087755192, + "tiploc": "NEWLANE", + "name": "New Lane", + "crs": "NLN", + "toc": "NT", + "lon": -2.8677159578905544 + }, + { + "lat": 53.52510413622679, + "tiploc": "HITN", + "name": "Hightown", + "crs": "HTO", + "toc": "ME", + "lon": -3.057067911491543 + }, + { + "lat": 51.39241164456526, + "tiploc": "BARRYIS", + "name": "Barry Island", + "crs": "BYI", + "toc": "AW", + "lon": -3.2733633778131077 + }, + { + "lat": 50.71140681075952, + "tiploc": "HOLTONH", + "name": "Holton Heath", + "crs": "HOL", + "toc": "SW", + "lon": -2.077844782939743 + }, + { + "lat": 53.466266777797706, + "tiploc": "SFRTHAL", + "name": "Seaforth & Litherland", + "crs": "SFL", + "toc": "ME", + "lon": -3.0056232115980612 + }, + { + "lat": 56.89001268719423, + "tiploc": "SPEANBD", + "name": "Spean Bridge", + "crs": "SBR", + "toc": "SR", + "lon": -4.921606728675756 + }, + { + "lat": 0.0, + "tiploc": "OLDHAMW", + "name": "Oldham Werneth", + "crs": "OLW", + "toc": "NT", + "lon": 0.0 + }, + { + "lat": 52.02134961477059, + "tiploc": "KINSVSQ", + "name": "Kings Sutton", + "crs": "KGS", + "toc": "CH", + "lon": -1.280930579507839 + }, + { + "lat": 0.0, + "tiploc": "PRSTNCS", + "name": "Preston C S (Ferry)", + "crs": "XPT", + "toc": "ZF", + "lon": 0.0 + }, + { + "lat": 50.836661033064274, + "tiploc": "BRGHBUS", + "name": "London Road (Brighton)", + "crs": "LRB", + "toc": "SN", + "lon": -0.1365023384309572 + }, + { + "lat": 55.89733673727189, + "tiploc": "LAMBH", + "name": "Gilshochill", + "crs": "GSC", + "toc": "SR", + "lon": -4.282684400965512 + }, + { + "lat": 54.07031736861126, + "tiploc": "MORCAME", + "name": "Morecambe", + "crs": "MCM", + "toc": "NT", + "lon": -2.869308010950888 + }, + { + "lat": 51.532511717678545, + "tiploc": "STPX", + "name": "London St Pancras (Intl)", + "crs": "STP", + "toc": "RT", + "lon": -0.12646346391460586 + }, + { + "lat": 51.0958887822712, + "tiploc": "FAYGATE", + "name": "Faygate", + "crs": "FGT", + "toc": "SN", + "lon": -0.2630186615244634 + }, + { + "lat": 53.30377850428155, + "tiploc": "ALDEDGE", + "name": "Alderley Edge", + "crs": "ALD", + "toc": "NT", + "lon": -2.2367990663779427 + }, + { + "lat": 0.0, + "tiploc": "TOBRMRY", + "name": "Tobermory, Mull (Bus)", + "crs": "TOB", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.046379621899774, + "tiploc": "CBGH", + "name": "Crowborough", + "crs": "COH", + "toc": "SN", + "lon": 0.1880124190309766 + }, + { + "lat": 50.88984864429617, + "tiploc": "LYNDPKH", + "name": "Ashurst New Forest", + "crs": "ANF", + "toc": "SW", + "lon": -1.526630716454598 + }, + { + "lat": 51.52199016579505, + "tiploc": "OCKENDN", + "name": "Ockendon", + "crs": "OCK", + "toc": "CC", + "lon": 0.290469084512924 + }, + { + "lat": 51.37304385267722, + "tiploc": "ADLESTN", + "name": "Addlestone", + "crs": "ASN", + "toc": "SW", + "lon": -0.48445677851836116 + }, + { + "lat": 50.83928701794075, + "tiploc": "CTNG", + "name": "Collington", + "crs": "CLL", + "toc": "SN", + "lon": 0.45786140669634484 + }, + { + "lat": 51.39519456632093, + "tiploc": "MOTSPRP", + "name": "Motspur Park", + "crs": "MOT", + "toc": "SW", + "lon": -0.2395307665179422 + }, + { + "lat": 53.42993503441735, + "tiploc": "SANDH", + "name": "Sandhills", + "crs": "SDL", + "toc": "ME", + "lon": -2.991490221117785 + }, + { + "lat": 53.100097152874675, + "tiploc": "KRKYCEN", + "name": "Kirkby in Ashfield", + "crs": "KKB", + "toc": "EM", + "lon": -1.253056665363922 + }, + { + "lat": 51.51599365024708, + "tiploc": "PADTON", + "name": "London Paddington", + "crs": "PAD", + "toc": "RT", + "lon": -0.17617397175493335 + }, + { + "lat": 52.01814978446624, + "tiploc": "WOBURNS", + "name": "Woburn Sands", + "crs": "WOB", + "toc": "LM", + "lon": -0.6540840122700328 + }, + { + "lat": 51.47200667950595, + "tiploc": "BNSBDGE", + "name": "Barnes Bridge", + "crs": "BNI", + "toc": "SW", + "lon": -0.25263022569101534 + }, + { + "lat": 51.53396432381903, + "tiploc": "QPRK", + "name": "Queens Park (London)", + "crs": "QPW", + "toc": "LT", + "lon": -0.20498484849503842 + }, + { + "lat": 53.554299166839556, + "tiploc": "BNSLY", + "name": "Barnsley", + "crs": "BNY", + "toc": "NT", + "lon": -1.477164708915118 + }, + { + "lat": 53.821913173762844, + "tiploc": "BLCKPLN", + "name": "Blackpool North", + "crs": "BPN", + "toc": "NT", + "lon": -3.049274619478222 + }, + { + "lat": 55.854187322461904, + "tiploc": "KRKWOOD", + "name": "Kirkwood", + "crs": "KWD", + "toc": "SR", + "lon": -4.048398208327805 + }, + { + "lat": 55.88513951985147, + "tiploc": "SCTSTNH", + "name": "Scotstounhill", + "crs": "SCH", + "toc": "SR", + "lon": -4.352887733485542 + }, + { + "lat": 51.581799710154385, + "tiploc": "KTON", + "name": "Kenton", + "crs": "KNT", + "toc": "LT", + "lon": -0.3169809206380547 + }, + { + "lat": 51.29881597994272, + "tiploc": "LETHRHD", + "name": "Leatherhead", + "crs": "LHD", + "toc": "SN", + "lon": -0.33323196562668683 + }, + { + "lat": 0.0, + "tiploc": "NEWAHYK", + "name": "Hykeham Crossroads (Bus)", + "crs": "HCR", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.301367232783825, + "tiploc": "DRONFLD", + "name": "Dronfield", + "crs": "DRO", + "toc": "NT", + "lon": -1.4687785523032995 + }, + { + "lat": 0.0, + "tiploc": "DONCRHA", + "name": "Robin Hood Airport (Bus)", + "crs": "RHA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.831896545298626, + "tiploc": "MOCHARD", + "name": "Morchard Road", + "crs": "MRD", + "toc": "GW", + "lon": -3.7763657488869278 + }, + { + "lat": 53.37592712364794, + "tiploc": "CHDH", + "name": "Cheadle Hulme", + "crs": "CHU", + "toc": "NT", + "lon": -2.188302698832799 + }, + { + "lat": 52.680144905272144, + "tiploc": "LCHC", + "name": "Lichfield City", + "crs": "LIC", + "toc": "LM", + "lon": -1.825419698918054 + }, + { + "lat": 52.27299685612543, + "tiploc": "DARSHAM", + "name": "Darsham", + "crs": "DSM", + "toc": "LE", + "lon": 1.52346996807785 + }, + { + "lat": 51.65202369433221, + "tiploc": "ENFLDTN", + "name": "Enfield Town", + "crs": "ENF", + "toc": "LO", + "lon": -0.07932763714412303 + }, + { + "lat": 50.83442550524643, + "tiploc": "SHRHMBS", + "name": "Shoreham-by-Sea", + "crs": "SSE", + "toc": "SN", + "lon": -0.27172049265054704 + }, + { + "lat": 51.39615329266344, + "tiploc": "LGFD", + "name": "Longfield", + "crs": "LGF", + "toc": "SE", + "lon": 0.30036415229744207 + }, + { + "lat": 51.071314437912584, + "tiploc": "LIPHOOK", + "name": "Liphook", + "crs": "LIP", + "toc": "SW", + "lon": -0.8002284526369142 + }, + { + "lat": 51.50871443962463, + "tiploc": "ACTNCTL", + "name": "Acton Central", + "crs": "ACC", + "toc": "LO", + "lon": -0.262970684219002 + }, + { + "lat": 51.31300094594664, + "tiploc": "NWHYTHE", + "name": "New Hythe", + "crs": "NHE", + "toc": "SE", + "lon": 0.45492950851071323 + }, + { + "lat": 56.079862846453835, + "tiploc": "GRLCHHD", + "name": "Garelochhead", + "crs": "GCH", + "toc": "SR", + "lon": -4.825716393655523 + }, + { + "lat": 51.68661394721793, + "tiploc": "GRSTH", + "name": "Garston (Hertfordshire)", + "crs": "GSN", + "toc": "LM", + "lon": -0.38174120024118896 + }, + { + "lat": 51.457706570327595, + "tiploc": "WRYSBRY", + "name": "Wraysbury", + "crs": "WRY", + "toc": "SW", + "lon": -0.5419218829366624 + }, + { + "lat": 52.026401078388474, + "tiploc": "RIDGMNT", + "name": "Ridgmont", + "crs": "RID", + "toc": "LM", + "lon": -0.5945570074134094 + }, + { + "lat": 53.301788917919545, + "tiploc": "KNUTSFD", + "name": "Knutsford", + "crs": "KNF", + "toc": "NT", + "lon": -2.3717905990564785 + }, + { + "lat": 56.96682283593231, + "tiploc": "SHVN", + "name": "Stonehaven", + "crs": "STN", + "toc": "SR", + "lon": -2.225297054119262 + }, + { + "lat": 51.54847398705616, + "tiploc": "WHMPSTM", + "name": "West Hampstead Thameslink", + "crs": "WHP", + "toc": "TL", + "lon": -0.19183691154179555 + }, + { + "lat": 52.37365576715723, + "tiploc": "DISS", + "name": "Diss", + "crs": "DIS", + "toc": "LE", + "lon": 1.1236974280674772 + }, + { + "lat": 57.00598766736421, + "tiploc": "MLAIG", + "name": "Mallaig", + "crs": "MLG", + "toc": "SR", + "lon": -5.829596463245445 + }, + { + "lat": 51.24195652793345, + "tiploc": "REIGATE", + "name": "Reigate", + "crs": "REI", + "toc": "SN", + "lon": -0.20382512984910203 + }, + { + "lat": 51.29648833020244, + "tiploc": "DTNG", + "name": "Dunton Green", + "crs": "DNG", + "toc": "SE", + "lon": 0.1709371239366099 + }, + { + "lat": 50.39003327837521, + "tiploc": "LUXULYN", + "name": "Luxulyan", + "crs": "LUX", + "toc": "GW", + "lon": -4.747383793301871 + }, + { + "lat": 51.54232949388747, + "tiploc": "GFORD", + "name": "Greenford", + "crs": "GFD", + "toc": "LT", + "lon": -0.34583719181057704 + }, + { + "lat": 54.244523511117414, + "tiploc": "GREENRD", + "name": "Green Road", + "crs": "GNR", + "toc": "NT", + "lon": -3.2455707910340688 + }, + { + "lat": 52.11415990123172, + "tiploc": "SHPRTH", + "name": "Shepreth", + "crs": "STH", + "toc": "GN", + "lon": 0.03131918521643455 + }, + { + "lat": 0.0, + "tiploc": "DEVIZES", + "name": "Devizes (Bus)", + "crs": "XAQ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.25401001426, + "tiploc": "BOXHBUS", + "name": "Boxhill & Westhumble", + "crs": "BXW", + "toc": "SN", + "lon": -0.32848994172738305 + }, + { + "lat": 52.4883611686461, + "tiploc": "DUDESTN", + "name": "Duddeston", + "crs": "DUD", + "toc": "LM", + "lon": -1.871390470136355 + }, + { + "lat": 51.686493181837044, + "tiploc": "FERNHIL", + "name": "Fernhill", + "crs": "FER", + "toc": "AW", + "lon": -3.3958826026890154 + }, + { + "lat": 51.63308479094865, + "tiploc": "CHINGFD", + "name": "Chingford", + "crs": "CHI", + "toc": "LO", + "lon": 0.009897045179767461 + }, + { + "lat": 53.394691841445216, + "tiploc": "HAMTSQ", + "name": "Hamilton Square", + "crs": "BKQ", + "toc": "ME", + "lon": -3.0136796306772218 + }, + { + "lat": 55.93358986520147, + "tiploc": "MSELBGH", + "name": "Musselburgh", + "crs": "MUB", + "toc": "SR", + "lon": -3.073200777235896 + }, + { + "lat": 53.85360986413015, + "tiploc": "ULESKLF", + "name": "Ulleskelf", + "crs": "ULL", + "toc": "NT", + "lon": -1.2139720870433033 + }, + { + "lat": 51.46547904318773, + "tiploc": "CLPHHS", + "name": "Clapham High Street", + "crs": "CLP", + "toc": "LO", + "lon": -0.1325216799237259 + }, + { + "lat": 56.11209066035217, + "tiploc": "CWDNBTH", + "name": "Cowdenbeath", + "crs": "COW", + "toc": "SR", + "lon": -3.3431857147170323 + }, + { + "lat": 53.70904140109718, + "tiploc": "GLASHTN", + "name": "Glasshoughton", + "crs": "GLH", + "toc": "NT", + "lon": -1.342005093978192 + }, + { + "lat": 52.51454584573035, + "tiploc": "ATTLBON", + "name": "Attleborough", + "crs": "ATL", + "toc": "LE", + "lon": 1.02234762458976 + }, + { + "lat": 52.95418897858109, + "tiploc": "BINGHAM", + "name": "Bingham", + "crs": "BIN", + "toc": "EM", + "lon": -0.9515432964669754 + }, + { + "lat": 52.34962341452597, + "tiploc": "LLGUNLO", + "name": "Llangynllo", + "crs": "LGO", + "toc": "AW", + "lon": -3.1613691596196687 + }, + { + "lat": 50.836661033064274, + "tiploc": "BRGHLRD", + "name": "London Road (Brighton)", + "crs": "LRB", + "toc": "SN", + "lon": -0.1365023384309572 + }, + { + "lat": 0.0, + "tiploc": "NHEY", + "name": "New Hey", + "crs": "NHY", + "toc": "NT", + "lon": 0.0 + }, + { + "lat": 53.5197733895093, + "tiploc": "WALKDEN", + "name": "Walkden", + "crs": "WKD", + "toc": "NT", + "lon": -2.3963210097984113 + }, + { + "lat": 51.59216686045377, + "tiploc": "HROW", + "name": "Harrow & Wealdstone", + "crs": "HRW", + "toc": "LT", + "lon": -0.3345714670242 + }, + { + "lat": 53.44826869457681, + "tiploc": "URMSTON", + "name": "Urmston", + "crs": "URM", + "toc": "NT", + "lon": -2.3537965267335945 + }, + { + "lat": 57.91951249578761, + "tiploc": "CULRAIN", + "name": "Culrain", + "crs": "CUA", + "toc": "SR", + "lon": -4.404270606123433 + }, + { + "lat": 56.05703523812637, + "tiploc": "NBERWCK", + "name": "North Berwick", + "crs": "NBW", + "toc": "SR", + "lon": -2.7307416000222147 + }, + { + "lat": 55.9048108187882, + "tiploc": "DRMCHPL", + "name": "Drumchapel", + "crs": "DMC", + "toc": "SR", + "lon": -4.362878775347092 + }, + { + "lat": 51.568640500674064, + "tiploc": "EMRSPKH", + "name": "Emerson Park", + "crs": "EMP", + "toc": "LO", + "lon": 0.22011323797894808 + }, + { + "lat": 55.85418128718488, + "tiploc": "HLNGTNE", + "name": "Hillington East", + "crs": "HLE", + "toc": "SR", + "lon": -4.355010178766367 + }, + { + "lat": 52.46718732153973, + "tiploc": "MRSTNGR", + "name": "Marston Green", + "crs": "MGN", + "toc": "LM", + "lon": -1.755606895281473 + }, + { + "lat": 51.308509892133955, + "tiploc": "UWRLNGH", + "name": "Upper Warlingham", + "crs": "UWL", + "toc": "SN", + "lon": -0.07795174129070001 + }, + { + "lat": 51.40974595339603, + "tiploc": "LLNWTMR", + "name": "Llantwit Major", + "crs": "LWM", + "toc": "AW", + "lon": -3.481617127894739 + }, + { + "lat": 51.54409, + "tiploc": "DGNHELT", + "name": "Dagenham East Underground", + "crs": "ZDE", + "toc": "LT", + "lon": 0.16604 + }, + { + "lat": 51.149403004440025, + "tiploc": "HBROOMS", + "name": "High Brooms", + "crs": "HIB", + "toc": "SE", + "lon": 0.27733220758714416 + }, + { + "lat": 50.461132118599686, + "tiploc": "TORQUAY", + "name": "Torquay", + "crs": "TQY", + "toc": "GW", + "lon": -3.5432752069494815 + }, + { + "lat": 56.37510183328032, + "tiploc": "LEUCHRS", + "name": "Leuchars", + "crs": "LEU", + "toc": "SR", + "lon": -2.8937130378314957 + }, + { + "lat": 51.51798916063051, + "tiploc": "LIVST", + "name": "London Liverpool Street", + "crs": "LST", + "toc": "RT", + "lon": -0.08142601994463783 + }, + { + "lat": 51.4951816, + "tiploc": "TRNHMGN", + "name": "Turnham Green Underground", + "crs": "ZTG", + "toc": "LT", + "lon": -0.2545245 + }, + { + "lat": 55.94221187008438, + "tiploc": "CRTSDYK", + "name": "Cartsdyke", + "crs": "CDY", + "toc": "SR", + "lon": -4.731590650517077 + }, + { + "lat": 51.40773718929977, + "tiploc": "ESTFLDS", + "name": "Mitcham Eastfields", + "crs": "MTC", + "toc": "SN", + "lon": -0.15464602955118525 + }, + { + "lat": 51.802629954044384, + "tiploc": "HAVRFDW", + "name": "Haverfordwest", + "crs": "HVF", + "toc": "AW", + "lon": -4.9602030958943075 + }, + { + "lat": 51.36023906762108, + "tiploc": "CHSW", + "name": "Chestfield & Swalecliffe", + "crs": "CSW", + "toc": "SE", + "lon": 1.066930596667253 + }, + { + "lat": 51.72090461175557, + "tiploc": "TIRPHIL", + "name": "Tir-phil", + "crs": "TIR", + "toc": "AW", + "lon": -3.2463800972794687 + }, + { + "lat": 53.45113509235423, + "tiploc": "ERLSTWN", + "name": "Earlestown", + "crs": "ERL", + "toc": "NT", + "lon": -2.6376632389640506 + }, + { + "lat": 50.400346576754984, + "tiploc": "GNBARWJ", + "name": "Bugle", + "crs": "BGL", + "toc": "GW", + "lon": -4.792100098018207 + }, + { + "lat": 51.79036356217871, + "tiploc": "HRLWMIL", + "name": "Harlow Mill", + "crs": "HWM", + "toc": "LE", + "lon": 0.13230755666858368 + }, + { + "lat": 53.48457772997378, + "tiploc": "SBYD", + "name": "Stalybridge", + "crs": "SYB", + "toc": "TP", + "lon": -2.0627415307863792 + }, + { + "lat": 0.0, + "tiploc": "KYLEAKN", + "name": "Kyleakin, Skye (Bus)", + "crs": "KYK", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 55.474051858619866, + "tiploc": "NWTOA", + "name": "Newton-on-Ayr", + "crs": "NOA", + "toc": "SR", + "lon": -4.62582621774235 + }, + { + "lat": 51.10402674187687, + "tiploc": "FRANT", + "name": "Frant", + "crs": "FRT", + "toc": "SE", + "lon": 0.29454305904359723 + }, + { + "lat": 53.47462574358045, + "tiploc": "GIDB", + "name": "Guide Bridge", + "crs": "GUI", + "toc": "NT", + "lon": -2.1137105695054945 + }, + { + "lat": 55.85601995792058, + "tiploc": "HLNGTNW", + "name": "Hillington West", + "crs": "HLW", + "toc": "SR", + "lon": -4.371579953327208 + }, + { + "lat": 0.0, + "tiploc": "KESWCOK", + "name": "Cockermouth (Bus)", + "crs": "COX", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.72900126375009, + "tiploc": "MYTHLMR", + "name": "Mytholmroyd", + "crs": "MYT", + "toc": "NT", + "lon": -1.9814257613789317 + }, + { + "lat": 51.76313207101577, + "tiploc": "BERKHMD", + "name": "Berkhamsted", + "crs": "BKM", + "toc": "LM", + "lon": -0.5620129585824665 + }, + { + "lat": 53.835004752031196, + "tiploc": "NLSN", + "name": "Nelson", + "crs": "NEL", + "toc": "NT", + "lon": -2.2137592953161276 + }, + { + "lat": 51.55753785635675, + "tiploc": "NTHOLTP", + "name": "Northolt Park", + "crs": "NLT", + "toc": "CH", + "lon": -0.35946593128034127 + }, + { + "lat": 53.62385062795671, + "tiploc": "BESCRLA", + "name": "Bescar Lane", + "crs": "BES", + "toc": "NT", + "lon": -2.9146105015382786 + }, + { + "lat": 53.42116519872851, + "tiploc": "BAGE", + "name": "Burnage", + "crs": "BNA", + "toc": "NT", + "lon": -2.215678112363267 + }, + { + "lat": 51.530970744716846, + "tiploc": "SHBRYNS", + "name": "Shoeburyness", + "crs": "SRY", + "toc": "CC", + "lon": 0.7953446606478879 + }, + { + "lat": 51.329172027954044, + "tiploc": "MINSTER", + "name": "Minster", + "crs": "MSR", + "toc": "SE", + "lon": 1.3172166058651509 + }, + { + "lat": 51.46495721073781, + "tiploc": "BRNHRST", + "name": "Barnehurst", + "crs": "BNH", + "toc": "SE", + "lon": 0.15964622320845853 + }, + { + "lat": 0.0, + "tiploc": "DMTHKWR", + "name": "Kingswear", + "crs": "KWR", + "toc": "PC", + "lon": 0.0 + }, + { + "lat": 55.998292727760926, + "tiploc": "DUNBAR", + "name": "Dunbar", + "crs": "DUN", + "toc": "GR", + "lon": -2.5133461339942476 + }, + { + "lat": 51.940211203422734, + "tiploc": "LLGADOG", + "name": "Llangadog", + "crs": "LLG", + "toc": "AW", + "lon": -3.89314696012135 + }, + { + "lat": 50.73778306347932, + "tiploc": "PINHOE", + "name": "Pinhoe", + "crs": "PIN", + "toc": "SW", + "lon": -3.4693328818220057 + }, + { + "lat": 51.61253512342329, + "tiploc": "PORH", + "name": "Porth", + "crs": "POR", + "toc": "AW", + "lon": -3.407188274504348 + }, + { + "lat": 53.19669347798854, + "tiploc": "CHST", + "name": "Chester", + "crs": "CTR", + "toc": "AW", + "lon": -2.8795935103797943 + }, + { + "lat": 48.869722, + "tiploc": "MARNELV", + "name": "Marne La Vallee", + "crs": "MCK", + "toc": "ES", + "lon": 2.782778 + }, + { + "lat": 50.883686444416945, + "tiploc": "BURSLDN", + "name": "Bursledon", + "crs": "BUO", + "toc": "SW", + "lon": -1.3050322569206019 + }, + { + "lat": 53.3599571528738, + "tiploc": "MDWD", + "name": "Middlewood", + "crs": "MDL", + "toc": "NT", + "lon": -2.0833530735208807 + }, + { + "lat": 51.33111782336528, + "tiploc": "REEDHMS", + "name": "Reedham (Surrey)", + "crs": "RHM", + "toc": "SN", + "lon": -0.12341582759152507 + }, + { + "lat": 51.547465775328085, + "tiploc": "WHMDSTD", + "name": "West Hampstead", + "crs": "WHD", + "toc": "LO", + "lon": -0.19118459051911804 + }, + { + "lat": 50.85395495147748, + "tiploc": "BDHMPTN", + "name": "Bedhampton", + "crs": "BDH", + "toc": "SW", + "lon": -0.9958283730032234 + }, + { + "lat": 53.41003972807231, + "tiploc": "ROBY", + "name": "Roby", + "crs": "ROB", + "toc": "NT", + "lon": -2.8559335109982977 + }, + { + "lat": 54.23270766825501, + "tiploc": "KRKBYIF", + "name": "Kirkby-in-Furness", + "crs": "KBF", + "toc": "NT", + "lon": -3.1873756637320914 + }, + { + "lat": 51.38554750625735, + "tiploc": "RCHT", + "name": "Rochester", + "crs": "RTR", + "toc": "SE", + "lon": 0.5102813655520141 + }, + { + "lat": 0.0, + "tiploc": "ROSLARE", + "name": "Rosslare Europort", + "crs": "RSB", + "toc": "ZF", + "lon": 0.0 + }, + { + "lat": 55.63427752918563, + "tiploc": "STVNSTN", + "name": "Stevenston", + "crs": "STV", + "toc": "SR", + "lon": -4.750789509258109 + }, + { + "lat": 52.53044023810667, + "tiploc": "TIPTON", + "name": "Tipton", + "crs": "TIP", + "toc": "LM", + "lon": -2.0657011571640767 + }, + { + "lat": 55.641414752384435, + "tiploc": "ARDRSSB", + "name": "Ardrossan South Beach", + "crs": "ASB", + "toc": "SR", + "lon": -4.8012113175932365 + }, + { + "lat": 52.05055265126936, + "tiploc": "DERBYRD", + "name": "Derby Road", + "crs": "DBR", + "toc": "LE", + "lon": 1.1826433546805795 + }, + { + "lat": 0.0, + "tiploc": "DOUGLAS", + "name": "Douglas (Isle of Man)", + "crs": "DGS", + "toc": "ZF", + "lon": 0.0 + }, + { + "lat": 52.284488710149816, + "tiploc": "LMNGTNS", + "name": "Leamington Spa", + "crs": "LMS", + "toc": "CH", + "lon": -1.536210017554687 + }, + { + "lat": 53.060272216576024, + "tiploc": "FISKRTN", + "name": "Fiskerton", + "crs": "FSK", + "toc": "EM", + "lon": -0.9121875574126016 + }, + { + "lat": 53.5781043151631, + "tiploc": "HORWICH", + "name": "Horwich Parkway", + "crs": "HWI", + "toc": "NT", + "lon": -2.5396659309701106 + }, + { + "lat": 51.46479657422046, + "tiploc": "WELLING", + "name": "Welling", + "crs": "WLI", + "toc": "SE", + "lon": 0.10168955832751733 + }, + { + "lat": 51.80104625201181, + "tiploc": "WLWYNGC", + "name": "Welwyn Garden City", + "crs": "WGC", + "toc": "GN", + "lon": -0.20407048185741852 + }, + { + "lat": 50.90744670759174, + "tiploc": "SOTONB", + "name": "Southampton Central", + "crs": "SOU", + "toc": "SW", + "lon": -1.4135958989967008 + }, + { + "lat": 53.32756660632855, + "tiploc": "RUNCRNE", + "name": "Runcorn East", + "crs": "RUE", + "toc": "AW", + "lon": -2.6656974126939357 + }, + { + "lat": 51.211902863830865, + "tiploc": "FARNHAM", + "name": "Farnham", + "crs": "FNH", + "toc": "SW", + "lon": -0.7924271553832175 + }, + { + "lat": 52.44341440941516, + "tiploc": "SPRD", + "name": "Spring Road", + "crs": "SRI", + "toc": "LM", + "lon": -1.8373894945710554 + }, + { + "lat": 51.02330066185743, + "tiploc": "TAUNTON", + "name": "Taunton", + "crs": "TAU", + "toc": "GW", + "lon": -3.1027415190892373 + }, + { + "lat": 53.387714943823724, + "tiploc": "ALTRNHM", + "name": "Altrincham", + "crs": "ALT", + "toc": "NT", + "lon": -2.3468887785179584 + }, + { + "lat": 0.0, + "tiploc": "HAWORTH", + "name": "Haworth (Bus)", + "crs": "HWT", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "WEDGORB", + "name": "Wedgwood Old Road Bridge (Bus)", + "crs": "WER", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.75678559677054, + "tiploc": "WDLESFD", + "name": "Woodlesford", + "crs": "WDS", + "toc": "NT", + "lon": -1.4428794193519712 + }, + { + "lat": 50.18412197312835, + "tiploc": "LELANT", + "name": "Lelant", + "crs": "LEL", + "toc": "GW", + "lon": -5.436546537018403 + }, + { + "lat": 53.39477598822368, + "tiploc": "MNRD", + "name": "Manor Road", + "crs": "MNR", + "toc": "ME", + "lon": -3.171437584913661 + }, + { + "lat": 51.69796216756474, + "tiploc": "PONTYPL", + "name": "Pontypool & New Inn", + "crs": "PPL", + "toc": "AW", + "lon": -3.014236269163924 + }, + { + "lat": 51.45878439187583, + "tiploc": "RDNGSTN", + "name": "Reading", + "crs": "RDG", + "toc": "RT", + "lon": -0.9718632259471497 + }, + { + "lat": 51.48564835806406, + "tiploc": "WSORAER", + "name": "Windsor & Eton Riverside", + "crs": "WNR", + "toc": "SW", + "lon": -0.606534040464875 + }, + { + "lat": 0.0, + "tiploc": "BODMNMF", + "name": "Bodmin TSB Bank (Bus)", + "crs": "BDF", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "CALLNRD", + "name": "Callington (Bus)", + "crs": "XAH", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.62382806537812, + "tiploc": "SLTHWTE", + "name": "Slaithwaite", + "crs": "SWT", + "toc": "NT", + "lon": -1.8815786921097353 + }, + { + "lat": 53.61030523721506, + "tiploc": "RCHDALE", + "name": "Rochdale", + "crs": "RCD", + "toc": "NT", + "lon": -2.1535241469045205 + }, + { + "lat": 51.41810715965108, + "tiploc": "CRYSTLP", + "name": "Crystal Palace", + "crs": "CYP", + "toc": "LO", + "lon": -0.0726098733028968 + }, + { + "lat": 52.372066748784874, + "tiploc": "DORIDGE", + "name": "Dorridge", + "crs": "DDG", + "toc": "CH", + "lon": -1.7529002656790356 + }, + { + "lat": 51.84139568105624, + "tiploc": "KIRBYX", + "name": "Kirby Cross", + "crs": "KBX", + "toc": "LE", + "lon": 1.2149925753184174 + }, + { + "lat": 52.44754022003073, + "tiploc": "STRBDG1", + "name": "Stourbridge Junction", + "crs": "SBJ", + "toc": "LM", + "lon": -2.1338762897330907 + }, + { + "lat": 51.55845111487435, + "tiploc": "CRKLWD", + "name": "Cricklewood", + "crs": "CRI", + "toc": "TL", + "lon": -0.21267662761960174 + }, + { + "lat": 51.44071605857351, + "tiploc": "WDULWCH", + "name": "West Dulwich", + "crs": "WDU", + "toc": "SE", + "lon": -0.09137150686502754 + }, + { + "lat": 53.51483073064104, + "tiploc": "SWNT", + "name": "Swinton (Manchester)", + "crs": "SNN", + "toc": "NT", + "lon": -2.337461019985937 + }, + { + "lat": 52.395432724865756, + "tiploc": "BRAMPTN", + "name": "Brampton (Suffolk)", + "crs": "BRP", + "toc": "LE", + "lon": 1.5438106160759602 + }, + { + "lat": 52.400811970692594, + "tiploc": "COVNNY", + "name": "Coventry", + "crs": "COV", + "toc": "VT", + "lon": -1.5134596382344596 + }, + { + "lat": 51.440051830045846, + "tiploc": "DGLROAD", + "name": "Dingle Road", + "crs": "DGL", + "toc": "AW", + "lon": -3.1805904973244687 + }, + { + "lat": 51.5237658808022, + "tiploc": "PONYCLN", + "name": "Pontyclun", + "crs": "PYC", + "toc": "AW", + "lon": -3.392917772558393 + }, + { + "lat": 51.50806049702241, + "tiploc": "LANGLEY", + "name": "Langley", + "crs": "LNY", + "toc": "GW", + "lon": -0.5417561473932335 + }, + { + "lat": 51.430861228777154, + "tiploc": "GRVPK", + "name": "Grove Park", + "crs": "GRP", + "toc": "SE", + "lon": 0.021725487147800482 + }, + { + "lat": 51.46194430225437, + "tiploc": "HOUNSLW", + "name": "Hounslow", + "crs": "HOU", + "toc": "SW", + "lon": -0.36227694333117894 + }, + { + "lat": 53.838491480065834, + "tiploc": "SAIR", + "name": "Saltaire", + "crs": "SAE", + "toc": "NT", + "lon": -1.7904804245138628 + }, + { + "lat": 52.47929502749831, + "tiploc": "BEDWRTH", + "name": "Bedworth", + "crs": "BEH", + "toc": "LM", + "lon": -1.4673921033144934 + }, + { + "lat": 51.362963013136714, + "tiploc": "SCROYDN", + "name": "South Croydon", + "crs": "SCY", + "toc": "SN", + "lon": -0.0934565833568988 + }, + { + "lat": 51.464646966535895, + "tiploc": "BROCKLY", + "name": "Brockley", + "crs": "BCY", + "toc": "LO", + "lon": -0.03753668702955639 + }, + { + "lat": 43.9419, + "tiploc": "AVIGCMT", + "name": "Avignon", + "crs": "AVI", + "toc": "ES", + "lon": 4.8047 + }, + { + "lat": 51.49525563890046, + "tiploc": "VICTRIA", + "name": "London Victoria", + "crs": "VIC", + "toc": "RT", + "lon": -0.14455880269236793 + }, + { + "lat": 53.41271651677355, + "tiploc": "BIRCHWD", + "name": "Birchwood", + "crs": "BWD", + "toc": "TP", + "lon": -2.52530787015349 + }, + { + "lat": 51.78106844955175, + "tiploc": "HRLWTWN", + "name": "Harlow Town", + "crs": "HWN", + "toc": "LE", + "lon": 0.0951317996751488 + }, + { + "lat": 51.49525563890046, + "tiploc": "VICTRIC", + "name": "London Victoria", + "crs": "VIC", + "toc": "RT", + "lon": -0.14455880269236793 + }, + { + "lat": 51.227268788696605, + "tiploc": "FROME", + "name": "Frome", + "crs": "FRO", + "toc": "GW", + "lon": -2.3099967432791106 + }, + { + "lat": 51.49525563890046, + "tiploc": "VICTRIE", + "name": "London Victoria", + "crs": "VIC", + "toc": "RT", + "lon": -0.14455880269236793 + }, + { + "lat": 54.80946359408572, + "tiploc": "ARMTHWT", + "name": "Armathwaite", + "crs": "AWT", + "toc": "NT", + "lon": -2.7720710200388354 + }, + { + "lat": 51.28213961376616, + "tiploc": "CATERHM", + "name": "Caterham", + "crs": "CAT", + "toc": "SN", + "lon": -0.07830711646483042 + }, + { + "lat": 50.83337047471541, + "tiploc": "CODNBCH", + "name": "Cooden Beach", + "crs": "COB", + "toc": "SN", + "lon": 0.4268587554332613 + }, + { + "lat": 0.0, + "tiploc": "EMPKAIR", + "name": "East Midlands Airport (Bus)", + "crs": "XMT", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.58784310741937, + "tiploc": "WVRMPTN", + "name": "Wolverhampton", + "crs": "WVH", + "toc": "VT", + "lon": -2.1195145108759155 + }, + { + "lat": 50.87137286844975, + "tiploc": "HMBLE", + "name": "Hamble", + "crs": "HME", + "toc": "SW", + "lon": -1.3291620567174394 + }, + { + "lat": 53.55424577389036, + "tiploc": "AGHTNPH", + "name": "Aughton Park", + "crs": "AUG", + "toc": "ME", + "lon": -2.895220786409457 + }, + { + "lat": 50.84104040638698, + "tiploc": "BEXHILL", + "name": "Bexhill", + "crs": "BEX", + "toc": "SN", + "lon": 0.4770166122051743 + }, + { + "lat": 0.0, + "tiploc": "SELKIRK", + "name": "Selkirk (Bus)", + "crs": "SKK", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.644706893477576, + "tiploc": "ABRCYNS", + "name": "Abercynon", + "crs": "ACY", + "toc": "AW", + "lon": -3.3269879002796015 + }, + { + "lat": 55.83433559364591, + "tiploc": "CARMYLE", + "name": "Carmyle", + "crs": "CML", + "toc": "SR", + "lon": -4.158180141692261 + }, + { + "lat": 51.69706552938791, + "tiploc": "POTRSBR", + "name": "Potters Bar", + "crs": "PBR", + "toc": "GN", + "lon": -0.1926055313129271 + }, + { + "lat": 51.37685837988999, + "tiploc": "TOLWTH", + "name": "Tolworth", + "crs": "TOL", + "toc": "SW", + "lon": -0.27946146069525535 + }, + { + "lat": 55.03594765180627, + "tiploc": "AIRP", + "name": "Newcastle Airport", + "crs": "APN", + "toc": "TW", + "lon": -1.7110465264354298 + }, + { + "lat": 55.63970504432614, + "tiploc": "ARDRSTN", + "name": "Ardrossan Town", + "crs": "ADN", + "toc": "SR", + "lon": -4.812675122030914 + }, + { + "lat": 51.58190207482915, + "tiploc": "GIDEAPK", + "name": "Gidea Park", + "crs": "GDP", + "toc": "XR", + "lon": 0.20596430843825325 + }, + { + "lat": 52.44754022003073, + "tiploc": "STRBDGJ", + "name": "Stourbridge Junction", + "crs": "SBJ", + "toc": "LM", + "lon": -2.1338762897330907 + }, + { + "lat": 51.5324947720042, + "tiploc": "WLSDWLJ", + "name": "Willesden Junction", + "crs": "WIJ", + "toc": "LO", + "lon": -0.24454788456345455 + }, + { + "lat": 55.777489632701624, + "tiploc": "SHILDMR", + "name": "Shieldmuir", + "crs": "SDM", + "toc": "SR", + "lon": -3.9569898070640517 + }, + { + "lat": 51.27686349165835, + "tiploc": "SVNOAKS", + "name": "Sevenoaks", + "crs": "SEV", + "toc": "SE", + "lon": 0.18166893068781173 + }, + { + "lat": 0.0, + "tiploc": "HOLSCHR", + "name": "Holsworthy (Bus)", + "crs": "XEE", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.85303184026841, + "tiploc": "FAREHAM", + "name": "Fareham", + "crs": "FRM", + "toc": "SW", + "lon": -1.192037154763411 + }, + { + "lat": 50.752638308401785, + "tiploc": "HINTONA", + "name": "Hinton Admiral", + "crs": "HNA", + "toc": "SW", + "lon": -1.7141265382807624 + }, + { + "lat": 51.17517381872756, + "tiploc": "MARDEN", + "name": "Marden", + "crs": "MRN", + "toc": "SE", + "lon": 0.4931692536513513 + }, + { + "lat": 53.365039908385704, + "tiploc": "MNCRIAP", + "name": "Manchester Airport", + "crs": "MIA", + "toc": "TP", + "lon": -2.272979517172078 + }, + { + "lat": 0.0, + "tiploc": "CORSNEW", + "name": "Corsham (Bus)", + "crs": "XAO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.45557700438667, + "tiploc": "STRBDGT", + "name": "Stourbridge Town", + "crs": "SBT", + "toc": "LM", + "lon": -2.141817896637573 + }, + { + "lat": 51.51866719523926, + "tiploc": "MDNHEAD", + "name": "Maidenhead", + "crs": "MAI", + "toc": "GW", + "lon": -0.7226604976858217 + }, + { + "lat": 51.465794352762444, + "tiploc": "BLKHTH", + "name": "Blackheath", + "crs": "BKH", + "toc": "SE", + "lon": 0.008871876395285557 + }, + { + "lat": 54.43935833795628, + "tiploc": "BRYSTNS", + "name": "Braystones", + "crs": "BYS", + "toc": "NT", + "lon": -3.5418257017467623 + }, + { + "lat": 0.0, + "tiploc": "GRNGMTH", + "name": "Grangemouth (Bus)", + "crs": "GGM", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.99317523459277, + "tiploc": "HAGT", + "name": "Harrogate", + "crs": "HGT", + "toc": "NT", + "lon": -1.537607778500121 + }, + { + "lat": 54.6056045253215, + "tiploc": "BLNGHM", + "name": "Billingham", + "crs": "BIL", + "toc": "NT", + "lon": -1.2797195866426176 + }, + { + "lat": 53.37559746045812, + "tiploc": "STMCHLS", + "name": "St Michaels", + "crs": "STM", + "toc": "ME", + "lon": -2.9527982343716386 + }, + { + "lat": 51.49211628444234, + "tiploc": "BELVEDR", + "name": "Belvedere", + "crs": "BVD", + "toc": "SE", + "lon": 0.15228610604339052 + }, + { + "lat": 50.17877425770083, + "tiploc": "LELANTS", + "name": "Lelant Saltings", + "crs": "LTS", + "toc": "GW", + "lon": -5.440925649016763 + }, + { + "lat": 56.402014963838944, + "tiploc": "LOCHAWE", + "name": "Loch Awe", + "crs": "LHA", + "toc": "SR", + "lon": -5.041975309959833 + }, + { + "lat": 51.32934699121679, + "tiploc": "BANSBUS", + "name": "Banstead", + "crs": "BAD", + "toc": "SN", + "lon": -0.21315892351957755 + }, + { + "lat": 51.66704112037551, + "tiploc": "INGTSTN", + "name": "Ingatestone", + "crs": "INT", + "toc": "LE", + "lon": 0.38424673263822856 + }, + { + "lat": 52.034286521366845, + "tiploc": "MKNSCEN", + "name": "Milton Keynes Central", + "crs": "MKC", + "toc": "LM", + "lon": -0.7741460673783995 + }, + { + "lat": 51.62492688923062, + "tiploc": "EDMNGRN", + "name": "Edmonton Green", + "crs": "EDR", + "toc": "LO", + "lon": -0.06111248976372162 + }, + { + "lat": 56.84330728981699, + "tiploc": "BANAVIE", + "name": "Banavie", + "crs": "BNV", + "toc": "SR", + "lon": -5.095425534166192 + }, + { + "lat": 51.86941414247077, + "tiploc": "BRAINFP", + "name": "Braintree Freeport", + "crs": "BTP", + "toc": "LE", + "lon": 0.5684347137326432 + }, + { + "lat": 50.41854000418808, + "tiploc": "RCHE", + "name": "Roche", + "crs": "ROC", + "toc": "GW", + "lon": -4.830197510621231 + }, + { + "lat": 51.30927544955767, + "tiploc": "CHSD", + "name": "Chipstead", + "crs": "CHP", + "toc": "SN", + "lon": -0.16950321875423316 + }, + { + "lat": 53.55000225546477, + "tiploc": "FRNW", + "name": "Farnworth", + "crs": "FNW", + "toc": "NT", + "lon": -2.387849635257022 + }, + { + "lat": 57.81441909003711, + "tiploc": "TAIN", + "name": "Tain", + "crs": "TAI", + "toc": "SR", + "lon": -4.052049101768375 + }, + { + "lat": 55.6183500964786, + "tiploc": "GALASLS", + "name": "Galashiels", + "crs": "GAL", + "toc": "SR", + "lon": -2.8069004820388157 + }, + { + "lat": 51.2080972208819, + "tiploc": "CRNG", + "name": "Charing", + "crs": "CHG", + "toc": "SE", + "lon": 0.7903311688262336 + }, + { + "lat": 51.463058788772635, + "tiploc": "RICHMND", + "name": "Richmond", + "crs": "RMD", + "toc": "SW", + "lon": -0.3015584162159877 + }, + { + "lat": 50.70102899478129, + "tiploc": "MOREWWR", + "name": "Moreton (Dorset)", + "crs": "MTN", + "toc": "SW", + "lon": -2.3134496593317087 + }, + { + "lat": 0.0, + "tiploc": "STETLEI", + "name": "Street (Bus)", + "crs": "XCU", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.488849655714745, + "tiploc": "CORBY", + "name": "Corby", + "crs": "COR", + "toc": "EM", + "lon": -0.6883353714607977 + }, + { + "lat": 55.69241966378132, + "tiploc": "STOW", + "name": "Stow", + "crs": "SOI", + "toc": "SR", + "lon": -2.86594900062061 + }, + { + "lat": 55.856703028807985, + "tiploc": "BLGRVE", + "name": "Bellgrove", + "crs": "BLG", + "toc": "SR", + "lon": -4.224373880382592 + }, + { + "lat": 54.129676360005966, + "tiploc": "CRNF", + "name": "Carnforth", + "crs": "CNF", + "toc": "TP", + "lon": -2.7712323807948307 + }, + { + "lat": 55.953097509928504, + "tiploc": "PPAN", + "name": "Prestonpans", + "crs": "PST", + "toc": "SR", + "lon": -2.9747678335016 + }, + { + "lat": 0.0, + "tiploc": "RHUM", + "name": "Rhum (Bus)", + "crs": "RHU", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.72545640876359, + "tiploc": "PKST", + "name": "Park Street", + "crs": "PKT", + "toc": "LM", + "lon": -0.3402765580937978 + }, + { + "lat": 54.947046959404354, + "tiploc": "STCKSFL", + "name": "Stocksfield", + "crs": "SKS", + "toc": "NT", + "lon": -1.916759208165213 + }, + { + "lat": 51.39845892517432, + "tiploc": "NEWBRYR", + "name": "Newbury Racecourse", + "crs": "NRC", + "toc": "GW", + "lon": -1.307799086062038 + }, + { + "lat": 52.27394127809002, + "tiploc": "PYBONT", + "name": "Pen-y-bont", + "crs": "PNY", + "toc": "AW", + "lon": -3.3219310010572696 + }, + { + "lat": 55.76600217397102, + "tiploc": "EKILBRD", + "name": "East Kilbride", + "crs": "EKL", + "toc": "SR", + "lon": -4.180226956296233 + }, + { + "lat": 51.55691846497534, + "tiploc": "SRUISLP", + "name": "South Ruislip", + "crs": "SRU", + "toc": "CH", + "lon": -0.39925913444151706 + }, + { + "lat": 51.717617209728914, + "tiploc": "DURSLEY", + "name": "Cam & Dursley", + "crs": "CDU", + "toc": "GW", + "lon": -2.359082657752493 + }, + { + "lat": 52.426961456622834, + "tiploc": "BOURNVL", + "name": "Bournville", + "crs": "BRV", + "toc": "LM", + "lon": -1.9264238384040766 + }, + { + "lat": 55.87614289489275, + "tiploc": "WEMYSSB", + "name": "Wemyss Bay", + "crs": "WMS", + "toc": "SR", + "lon": -4.889079839580337 + }, + { + "lat": 55.82352659686553, + "tiploc": "UDNGSTN", + "name": "Uddingston", + "crs": "UDD", + "toc": "SR", + "lon": -4.0866975956523826 + }, + { + "lat": 51.71030072579194, + "tiploc": "BRITHDR", + "name": "Brithdir", + "crs": "BHD", + "toc": "AW", + "lon": -3.2287201650940682 + }, + { + "lat": 51.37207691869696, + "tiploc": "MTIMER", + "name": "Mortimer", + "crs": "MOR", + "toc": "GW", + "lon": -1.0355100105715322 + }, + { + "lat": 0.0, + "tiploc": "PICKRNG", + "name": "Pickering", + "crs": "XPK", + "toc": "NY", + "lon": 0.0 + }, + { + "lat": 51.653791512448535, + "tiploc": "CULHAM", + "name": "Culham", + "crs": "CUM", + "toc": "GW", + "lon": -1.2365137415428615 + }, + { + "lat": 0.0, + "tiploc": "YORKPCK", + "name": "Pickering Eastgate (Bus)", + "crs": "PIZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.55846355049781, + "tiploc": "SDBRYHH", + "name": "Sudbury Hill Harrow", + "crs": "SDH", + "toc": "CH", + "lon": -0.33580287914728835 + }, + { + "lat": 52.80388839032615, + "tiploc": "STAFFRD", + "name": "Stafford", + "crs": "STA", + "toc": "VT", + "lon": -2.122035618690583 + }, + { + "lat": 51.55068526946004, + "tiploc": "PRITLWL", + "name": "Prittlewell", + "crs": "PRL", + "toc": "LE", + "lon": 0.7106760342843769 + }, + { + "lat": 51.68518616174999, + "tiploc": "RADLETT", + "name": "Radlett", + "crs": "RDT", + "toc": "TL", + "lon": -0.3172437687434339 + }, + { + "lat": 51.39680296168379, + "tiploc": "SHEPRTN", + "name": "Shepperton", + "crs": "SHP", + "toc": "SW", + "lon": -0.44678589178478756 + }, + { + "lat": 53.393356689741935, + "tiploc": "BRKNCPK", + "name": "Conway Park", + "crs": "CNP", + "toc": "ME", + "lon": -3.022670752457864 + }, + { + "lat": 52.359142120700255, + "tiploc": "THELAKS", + "name": "The Lakes", + "crs": "TLK", + "toc": "LM", + "lon": -1.844673361739761 + }, + { + "lat": 51.46329705980726, + "tiploc": "BRIXTON", + "name": "Brixton", + "crs": "BRX", + "toc": "SE", + "lon": -0.11418347331870085 + }, + { + "lat": 53.12235254590556, + "tiploc": "MATLCKB", + "name": "Matlock Bath", + "crs": "MTB", + "toc": "EM", + "lon": -1.556758883872373 + }, + { + "lat": 53.462334627550874, + "tiploc": "CHPLTWN", + "name": "Chapeltown", + "crs": "CLN", + "toc": "NT", + "lon": -1.4662752550043205 + }, + { + "lat": 51.41797524150266, + "tiploc": "KEYNSHM", + "name": "Keynsham", + "crs": "KYN", + "toc": "GW", + "lon": -2.4956288970987397 + }, + { + "lat": 52.81688376379332, + "tiploc": "NWALSHM", + "name": "North Walsham", + "crs": "NWA", + "toc": "LE", + "lon": 1.3844543331534465 + }, + { + "lat": 52.58978481119377, + "tiploc": "BRNYARM", + "name": "Berney Arms", + "crs": "BYA", + "toc": "LE", + "lon": 1.6303754992221777 + }, + { + "lat": 0.0, + "tiploc": "PDSTWBT", + "name": "Padstow Bus Terminus", + "crs": "PDT", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.558500459478424, + "tiploc": "RCTRYRD", + "name": "Rectory Road", + "crs": "REC", + "toc": "LO", + "lon": -0.06826695340292915 + }, + { + "lat": 53.45657742653989, + "tiploc": "RYDRBRW", + "name": "Ryder Brow", + "crs": "RRB", + "toc": "NT", + "lon": -2.1730880049183496 + }, + { + "lat": 51.55439664180045, + "tiploc": "SDBRYHR", + "name": "Sudbury & Harrow Road", + "crs": "SUD", + "toc": "CH", + "lon": -0.3154682031905174 + }, + { + "lat": 51.66062223626291, + "tiploc": "SMINSTR", + "name": "Southminster", + "crs": "SMN", + "toc": "LE", + "lon": 0.8351925447053581 + }, + { + "lat": 51.39101224736843, + "tiploc": "YATTON", + "name": "Yatton", + "crs": "YAT", + "toc": "GW", + "lon": -2.827778810457479 + }, + { + "lat": 51.149373394144604, + "tiploc": "KSNY", + "name": "Kearsney", + "crs": "KSN", + "toc": "SE", + "lon": 1.2720613173886148 + }, + { + "lat": 51.778875684138, + "tiploc": "PNTYFYN", + "name": "Pantyffynnon", + "crs": "PTF", + "toc": "AW", + "lon": -3.997429367928893 + }, + { + "lat": 53.486238277534376, + "tiploc": "SWINTN", + "name": "Swinton (South Yorkshire)", + "crs": "SWN", + "toc": "NT", + "lon": -1.3058212820561104 + }, + { + "lat": 53.375037462901986, + "tiploc": "STRINES", + "name": "Strines", + "crs": "SRN", + "toc": "NT", + "lon": -2.033915721791404 + }, + { + "lat": 51.62514395646447, + "tiploc": "SWANSEA", + "name": "Swansea", + "crs": "SWA", + "toc": "AW", + "lon": -3.9415459814438165 + }, + { + "lat": 0.0, + "tiploc": "SWANSED", + "name": "Swansea Docks (Bus)", + "crs": "SWF", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.47318691777409, + "tiploc": "TORRE", + "name": "Torre", + "crs": "TRR", + "toc": "GW", + "lon": -3.5464158653162077 + }, + { + "lat": 54.39587342613633, + "tiploc": "SEASCAL", + "name": "Seascale", + "crs": "SSC", + "toc": "NT", + "lon": -3.4845107569335534 + }, + { + "lat": 51.53417834075589, + "tiploc": "HNLYOT", + "name": "Henley-on-Thames", + "crs": "HOT", + "toc": "GW", + "lon": -0.9002121995527654 + }, + { + "lat": 52.12546650259239, + "tiploc": "MLVRNLK", + "name": "Malvern Link", + "crs": "MVL", + "toc": "LM", + "lon": -2.319511537012909 + }, + { + "lat": 53.88434198377973, + "tiploc": "ARRAM", + "name": "Arram", + "crs": "ARR", + "toc": "NT", + "lon": -0.4265701167771191 + }, + { + "lat": 55.633880819293175, + "tiploc": "SLCT", + "name": "Saltcoats", + "crs": "SLT", + "toc": "SR", + "lon": -4.78429028782078 + }, + { + "lat": 51.41215110895147, + "tiploc": "ANERLEY", + "name": "Anerley", + "crs": "ANZ", + "toc": "LO", + "lon": -0.06588591642381092 + }, + { + "lat": 0.0, + "tiploc": "SDONBUS", + "name": "Swindon Bus Station", + "crs": "XDK", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.56429990995437, + "tiploc": "FNPK", + "name": "Finsbury Park", + "crs": "FPK", + "toc": "GN", + "lon": -0.1062849729456553 + }, + { + "lat": 54.0487283539794, + "tiploc": "LANCSTR", + "name": "Lancaster", + "crs": "LAN", + "toc": "VT", + "lon": -2.807457575074958 + }, + { + "lat": 51.393842506001754, + "tiploc": "THATCHM", + "name": "Thatcham", + "crs": "THA", + "toc": "GW", + "lon": -1.2431900440018857 + }, + { + "lat": 52.56309148001835, + "tiploc": "BSCTSTA", + "name": "Bescot Stadium", + "crs": "BSC", + "toc": "LM", + "lon": -1.9911054829835924 + }, + { + "lat": 54.54434151377073, + "tiploc": "MARTON", + "name": "Marton", + "crs": "MTO", + "toc": "NT", + "lon": -1.1984849109781301 + }, + { + "lat": 50.887734825727165, + "tiploc": "EGGESFD", + "name": "Eggesford", + "crs": "EGG", + "toc": "GW", + "lon": -3.874745049284398 + }, + { + "lat": 57.5508987389752, + "tiploc": "KEITH", + "name": "Keith", + "crs": "KEH", + "toc": "SR", + "lon": -2.9540687946285593 + }, + { + "lat": 51.37842588252322, + "tiploc": "WCROYDN", + "name": "West Croydon", + "crs": "WCY", + "toc": "LO", + "lon": -0.1025855456885621 + }, + { + "lat": 50.445860669831006, + "tiploc": "BODMNPW", + "name": "Bodmin Parkway", + "crs": "BOD", + "toc": "GW", + "lon": -4.662928254771414 + }, + { + "lat": 53.34610853454431, + "tiploc": "HOPD", + "name": "Hope (Derbyshire)", + "crs": "HOP", + "toc": "NT", + "lon": -1.7298867329808243 + }, + { + "lat": 51.59216686045377, + "tiploc": "HROWDC", + "name": "Harrow & Wealdstone", + "crs": "HRW", + "toc": "LT", + "lon": -0.3345714670242 + }, + { + "lat": 52.968058347364966, + "tiploc": "WCHR", + "name": "Whitchurch (Shropshire)", + "crs": "WTC", + "toc": "AW", + "lon": -2.6716981724216686 + }, + { + "lat": 51.508025531925895, + "tiploc": "CHRX", + "name": "London Charing Cross", + "crs": "CHX", + "toc": "RT", + "lon": -0.12480218319497094 + }, + { + "lat": 53.486189041793786, + "tiploc": "KKBY", + "name": "Kirkby", + "crs": "KIR", + "toc": "ME", + "lon": -2.9028291727981834 + }, + { + "lat": 51.381443542562835, + "tiploc": "WESGTOS", + "name": "Westgate-on-Sea", + "crs": "WGA", + "toc": "SE", + "lon": 1.338361813922414 + }, + { + "lat": 51.34431801628919, + "tiploc": "WSMARE", + "name": "Weston-super-Mare", + "crs": "WSM", + "toc": "GW", + "lon": -2.971662448960398 + }, + { + "lat": 51.261355352216825, + "tiploc": "BEKSBRN", + "name": "Bekesbourne", + "crs": "BKS", + "toc": "SE", + "lon": 1.1367077156851415 + }, + { + "lat": 51.24641659566073, + "tiploc": "ALDRSHT", + "name": "Aldershot", + "crs": "AHT", + "toc": "SW", + "lon": -0.7598598502045172 + }, + { + "lat": 52.98839902986142, + "tiploc": "DUFIELD", + "name": "Duffield", + "crs": "DFI", + "toc": "EM", + "lon": -1.4859717365694651 + }, + { + "lat": 55.246310873599306, + "tiploc": "GIRVAN", + "name": "Girvan", + "crs": "GIR", + "toc": "SR", + "lon": -4.848381219898441 + }, + { + "lat": 51.521387, + "tiploc": "BRBCNLT", + "name": "Barbican Underground", + "crs": "ZBB", + "toc": "LT", + "lon": -0.0969742 + }, + { + "lat": 53.117355780844285, + "tiploc": "HOPC", + "name": "Hope (Flintshire)", + "crs": "HPE", + "toc": "AW", + "lon": -3.0368757582484913 + }, + { + "lat": 51.654246822039134, + "tiploc": "CHRW", + "name": "Chorleywood", + "crs": "CLW", + "toc": "LT", + "lon": -0.5183200421878957 + }, + { + "lat": 51.51642864620709, + "tiploc": "HEATHHL", + "name": "Heath High Level", + "crs": "HHL", + "toc": "AW", + "lon": -3.1815413908476327 + }, + { + "lat": 53.56387646720163, + "tiploc": "KKSNDAL", + "name": "Kirk Sandall", + "crs": "KKS", + "toc": "NT", + "lon": -1.0740610675896438 + }, + { + "lat": 51.332483919999426, + "tiploc": "RDLSDWN", + "name": "Riddlesdown", + "crs": "RDD", + "toc": "SN", + "lon": -0.09938670001246921 + }, + { + "lat": 53.37264808294333, + "tiploc": "ROCKFRY", + "name": "Rock Ferry", + "crs": "RFY", + "toc": "ME", + "lon": -3.0108262386595834 + }, + { + "lat": 51.574963768611504, + "tiploc": "ABER", + "name": "Aber", + "crs": "ABE", + "toc": "AW", + "lon": -3.2298284369319292 + }, + { + "lat": 50.92461393828061, + "tiploc": "HASOCKS", + "name": "Hassocks", + "crs": "HSK", + "toc": "SN", + "lon": -0.14595305396415686 + }, + { + "lat": 53.213534392056495, + "tiploc": "SHOTTHL", + "name": "Shotton", + "crs": "SHT", + "toc": "AW", + "lon": -3.037699762526365 + }, + { + "lat": 53.404598098702515, + "tiploc": "LVRPLCH", + "name": "Liverpool Central", + "crs": "LVC", + "toc": "ME", + "lon": -2.9791680779332728 + }, + { + "lat": 53.47390797299743, + "tiploc": "AINTREE", + "name": "Aintree", + "crs": "AIN", + "toc": "ME", + "lon": -2.956280283779667 + }, + { + "lat": 51.64740705130558, + "tiploc": "HENGOED", + "name": "Hengoed", + "crs": "HNG", + "toc": "AW", + "lon": -3.2241278797895907 + }, + { + "lat": 51.043569303197295, + "tiploc": "LISS", + "name": "Liss", + "crs": "LIS", + "toc": "SW", + "lon": -0.892867141520852 + }, + { + "lat": 55.88570866342967, + "tiploc": "ARMDALE", + "name": "Armadale", + "crs": "ARM", + "toc": "SR", + "lon": -3.695412561631599 + }, + { + "lat": 51.87247259565053, + "tiploc": "FFAIRFC", + "name": "Ffairfach", + "crs": "FFA", + "toc": "AW", + "lon": -3.9928593391464284 + }, + { + "lat": 51.377869933181465, + "tiploc": "HKBG", + "name": "Hackbridge", + "crs": "HCB", + "toc": "SN", + "lon": -0.15390755071166515 + }, + { + "lat": 53.404598098702515, + "tiploc": "LVRPLCL", + "name": "Liverpool Central", + "crs": "LVC", + "toc": "ME", + "lon": -2.9791680779332728 + }, + { + "lat": 53.282189306247744, + "tiploc": "ELSMPRT", + "name": "Ellesmere Port", + "crs": "ELP", + "toc": "ME", + "lon": -2.89642254463153 + }, + { + "lat": 0.0, + "tiploc": "EYNMSHC", + "name": "Eynsham Church (Bus)", + "crs": "EYM", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.78884956644368, + "tiploc": "DYFRYNA", + "name": "Dyffryn Ardudwy", + "crs": "DYF", + "toc": "AW", + "lon": -4.1046435663092575 + }, + { + "lat": 52.58557423036232, + "tiploc": "TYWYN", + "name": "Tywyn", + "crs": "TYW", + "toc": "AW", + "lon": -4.093559095967574 + }, + { + "lat": 51.15563532018468, + "tiploc": "COWDBUS", + "name": "Cowden", + "crs": "CWN", + "toc": "SN", + "lon": 0.11003272944845444 + }, + { + "lat": 51.429644974137204, + "tiploc": "EGHAM", + "name": "Egham", + "crs": "EGH", + "toc": "SW", + "lon": -0.546512211500115 + }, + { + "lat": 53.31515227974162, + "tiploc": "RTFDLL", + "name": "Retford", + "crs": "RET", + "toc": "GR", + "lon": -0.947884024701815 + }, + { + "lat": 51.50309379580721, + "tiploc": "HAYESAH", + "name": "Hayes & Harlington", + "crs": "HAY", + "toc": "GW", + "lon": -0.42068353984991785 + }, + { + "lat": 51.499693389310046, + "tiploc": "SACTON", + "name": "South Acton", + "crs": "SAT", + "toc": "LO", + "lon": -0.2701572600242995 + }, + { + "lat": 55.984735988865374, + "tiploc": "POLMONT", + "name": "Polmont", + "crs": "PMT", + "toc": "SR", + "lon": -3.7149728953058836 + }, + { + "lat": 51.94728728492152, + "tiploc": "PRKSTON", + "name": "Harwich International", + "crs": "HPQ", + "toc": "LE", + "lon": 1.2551243596824369 + }, + { + "lat": 52.95104687109883, + "tiploc": "WEDGWD", + "name": "Wedgwood", + "crs": "WED", + "toc": "LM", + "lon": -2.17082190157122 + }, + { + "lat": 55.8444998159057, + "tiploc": "BALISTN", + "name": "Baillieston", + "crs": "BIO", + "toc": "SR", + "lon": -4.113698350590747 + }, + { + "lat": 51.23754246547989, + "tiploc": "WHTCHRH", + "name": "Whitchurch (Hampshire)", + "crs": "WCH", + "toc": "SW", + "lon": -1.337747005088922 + }, + { + "lat": 52.497836944075864, + "tiploc": "MANEA", + "name": "Manea", + "crs": "MNE", + "toc": "LE", + "lon": 0.17769366539255474 + }, + { + "lat": 51.63087539888219, + "tiploc": "SHENFLD", + "name": "Shenfield", + "crs": "SNF", + "toc": "LE", + "lon": 0.32985122757606117 + }, + { + "lat": 50.992527234489586, + "tiploc": "ROMSEY", + "name": "Romsey", + "crs": "ROM", + "toc": "GW", + "lon": -1.4931435064082728 + }, + { + "lat": 51.21521135674787, + "tiploc": "CHLWTH", + "name": "Chilworth", + "crs": "CHL", + "toc": "GW", + "lon": -0.5248241165069352 + }, + { + "lat": 51.32204077463982, + "tiploc": "COLSTWN", + "name": "Coulsdon Town", + "crs": "CDN", + "toc": "SN", + "lon": -0.13446422478962416 + }, + { + "lat": 0.0, + "tiploc": "CALNSTR", + "name": "Calne (Bus)", + "crs": "XAI", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.84763442552331, + "tiploc": "THPLESK", + "name": "Thorpe-le-Soken", + "crs": "TLS", + "toc": "LE", + "lon": 1.1614004205982131 + }, + { + "lat": 53.772921949406445, + "tiploc": "WRESSLE", + "name": "Wressle", + "crs": "WRS", + "toc": "NT", + "lon": -0.9243490527562666 + }, + { + "lat": 53.42315170454506, + "tiploc": "BREDBRY", + "name": "Bredbury", + "crs": "BDY", + "toc": "NT", + "lon": -2.1104880388431546 + }, + { + "lat": 54.22820955257914, + "tiploc": "THIRSK", + "name": "Thirsk", + "crs": "THI", + "toc": "TP", + "lon": -1.372588027383527 + }, + { + "lat": 55.90480588975189, + "tiploc": "WEST530", + "name": "Westerton", + "crs": "WES", + "toc": "SR", + "lon": -4.334879988382598 + }, + { + "lat": 0.0, + "tiploc": "BRSTSTA", + "name": "Bristol Temple Gate (Bus)", + "crs": "XDU", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.26017191944764, + "tiploc": "CPNHRST", + "name": "Capenhurst", + "crs": "CPU", + "toc": "ME", + "lon": -2.942284752425281 + }, + { + "lat": 55.73859411733843, + "tiploc": "LARKHAL", + "name": "Larkhall", + "crs": "LRH", + "toc": "SR", + "lon": -3.975511594975804 + }, + { + "lat": 51.52582983907229, + "tiploc": "OLDST", + "name": "Old Street", + "crs": "OLD", + "toc": "LT", + "lon": -0.08853516359514431 + }, + { + "lat": 53.47418214715562, + "tiploc": "MNCRDGT", + "name": "Deansgate", + "crs": "DGT", + "toc": "NT", + "lon": -2.2510509431510095 + }, + { + "lat": 54.24075021249243, + "tiploc": "SEAMER", + "name": "Seamer", + "crs": "SEM", + "toc": "TP", + "lon": -0.41702982932093363 + }, + { + "lat": 51.56002508745658, + "tiploc": "SVRNBCH", + "name": "Severn Beach", + "crs": "SVB", + "toc": "GW", + "lon": -2.664476705132391 + }, + { + "lat": 53.61403913757114, + "tiploc": "BRMCRSS", + "name": "Bromley Cross", + "crs": "BMC", + "toc": "NT", + "lon": -2.4108987708292147 + }, + { + "lat": 54.658309986195725, + "tiploc": "SETNCRW", + "name": "Seaton Carew", + "crs": "SEC", + "toc": "NT", + "lon": -1.2004292495896778 + }, + { + "lat": 51.51946719200348, + "tiploc": "WCHAPEL", + "name": "Whitechapel", + "crs": "ZLW", + "toc": "LO", + "lon": -0.059757120098615765 + }, + { + "lat": 50.831263409770195, + "tiploc": "SESARDM", + "name": "Southease", + "crs": "SEE", + "toc": "SN", + "lon": 0.030641251314194845 + }, + { + "lat": 50.95081368540991, + "tiploc": "SOTPKWY", + "name": "Southampton Airpt Parkway", + "crs": "SOA", + "toc": "SW", + "lon": -1.3630968801209937 + }, + { + "lat": 51.36739595544326, + "tiploc": "WADDON", + "name": "Waddon", + "crs": "WDO", + "toc": "SN", + "lon": -0.11733590639282093 + }, + { + "lat": 53.08331200779175, + "tiploc": "WATSTND", + "name": "Whatstandwell", + "crs": "WTS", + "toc": "EM", + "lon": -1.5040862034780493 + }, + { + "lat": 53.357742438721885, + "tiploc": "LVRPSPY", + "name": "Liverpool South Parkway", + "crs": "LPY", + "toc": "ME", + "lon": -2.8891277373182462 + }, + { + "lat": 51.7988548466476, + "tiploc": "HFDN", + "name": "Hertford North", + "crs": "HFN", + "toc": "GN", + "lon": -0.09178854411961306 + }, + { + "lat": 51.90224793107258, + "tiploc": "KINGHAM", + "name": "Kingham", + "crs": "KGM", + "toc": "GW", + "lon": -1.6287862064787075 + }, + { + "lat": 53.10512476885601, + "tiploc": "WAINFLT", + "name": "Wainfleet", + "crs": "WFL", + "toc": "EM", + "lon": 0.234727284714514 + }, + { + "lat": 50.42303818491887, + "tiploc": "STKEYNE", + "name": "St Keyne Wishing Well Halt", + "crs": "SKN", + "toc": "GW", + "lon": -4.463519792779508 + }, + { + "lat": 50.37853141548717, + "tiploc": "DEVNPRT", + "name": "Devonport", + "crs": "DPT", + "toc": "GW", + "lon": -4.170709788317093 + }, + { + "lat": 53.70784481292234, + "tiploc": "SWRBBDG", + "name": "Sowerby Bridge", + "crs": "SOW", + "toc": "NT", + "lon": -1.9070215307148306 + }, + { + "lat": 51.44071605857351, + "tiploc": "WDULCRD", + "name": "West Dulwich", + "crs": "WDU", + "toc": "SE", + "lon": -0.09137150686502754 + }, + { + "lat": 53.60525492231526, + "tiploc": "BRSCGHB", + "name": "Burscough Bridge", + "crs": "BCB", + "toc": "NT", + "lon": -2.840879808797975 + }, + { + "lat": 55.85956290998651, + "tiploc": "GLGHST", + "name": "High Street", + "crs": "HST", + "toc": "SR", + "lon": -4.240117907625365 + }, + { + "lat": 51.5697234846579, + "tiploc": "LEYTNMR", + "name": "Leyton Midland Road", + "crs": "LEM", + "toc": "LO", + "lon": -0.008050629708851597 + }, + { + "lat": 51.52573347577754, + "tiploc": "PYLE", + "name": "Pyle", + "crs": "PYL", + "toc": "AW", + "lon": -3.6980521605488517 + }, + { + "lat": 51.56975666584567, + "tiploc": "WRUISLP", + "name": "West Ruislip", + "crs": "WRU", + "toc": "CH", + "lon": -0.437767739412622 + }, + { + "lat": 0.0, + "tiploc": "HURSLEY", + "name": "Hursley Post Office (Bus)", + "crs": "HSE", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.361769475805616, + "tiploc": "WEYBDGB", + "name": "Weybridge", + "crs": "WYB", + "toc": "SW", + "lon": -0.4577386569696696 + }, + { + "lat": 52.55293093995794, + "tiploc": "TAMEBDG", + "name": "Tame Bridge Parkway", + "crs": "TAB", + "toc": "LM", + "lon": -1.976211493866694 + }, + { + "lat": 51.56829033826107, + "tiploc": "TRFRSTE", + "name": "Trefforest Estate", + "crs": "TRE", + "toc": "AW", + "lon": -3.2902480830482856 + }, + { + "lat": 51.361769475805616, + "tiploc": "WEYBDGE", + "name": "Weybridge", + "crs": "WYB", + "toc": "SW", + "lon": -0.4577386569696696 + }, + { + "lat": 51.82515640836257, + "tiploc": "HANDBRO", + "name": "Hanborough", + "crs": "HND", + "toc": "GW", + "lon": -1.3735254436478632 + }, + { + "lat": 51.82349561118905, + "tiploc": "WLWYNN", + "name": "Welwyn North", + "crs": "WLW", + "toc": "GN", + "lon": -0.19209155506653655 + }, + { + "lat": 52.479077553379206, + "tiploc": "BHAMMRS", + "name": "Birmingham Moor Street", + "crs": "BMO", + "toc": "CH", + "lon": -1.8924725174055936 + }, + { + "lat": 53.597517721213265, + "tiploc": "BRSCGHJ", + "name": "Burscough Junction", + "crs": "BCJ", + "toc": "NT", + "lon": -2.8406052205393455 + }, + { + "lat": 50.71095180168878, + "tiploc": "DRCHW", + "name": "Dorchester West", + "crs": "DCW", + "toc": "GW", + "lon": -2.442540949104579 + }, + { + "lat": 53.40476217683638, + "tiploc": "JAMESST", + "name": "James Street", + "crs": "LVJ", + "toc": "ME", + "lon": -2.9919576086030903 + }, + { + "lat": 52.9487836866114, + "tiploc": "RADNOT", + "name": "Radcliffe (Nottinghamshire)", + "crs": "RDF", + "toc": "EM", + "lon": -1.0373279822136585 + }, + { + "lat": 54.10538422118254, + "tiploc": "CLPM", + "name": "Clapham (North Yorkshire)", + "crs": "CPY", + "toc": "NT", + "lon": -2.410375929851645 + }, + { + "lat": 51.574827138719535, + "tiploc": "ROMFORD", + "name": "Romford", + "crs": "RMF", + "toc": "XR", + "lon": 0.18323735368656954 + }, + { + "lat": 52.19424664807218, + "tiploc": "SOAV", + "name": "Stratford-upon-Avon", + "crs": "SAV", + "toc": "LM", + "lon": -1.7162884496751025 + }, + { + "lat": 55.78715465513636, + "tiploc": "LCHWNCH", + "name": "Lochwinnoch", + "crs": "LHW", + "toc": "SR", + "lon": -4.616075205908452 + }, + { + "lat": 52.947072719374724, + "tiploc": "NTNG", + "name": "Nottingham", + "crs": "NOT", + "toc": "EM", + "lon": -1.1463817644997505 + }, + { + "lat": 0.0, + "tiploc": "ROMSEYB", + "name": "Romsey Bus Station", + "crs": "REB", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.23991762756517, + "tiploc": "CUDNGTN", + "name": "Cuddington", + "crs": "CUD", + "toc": "NT", + "lon": -2.5993062264378013 + }, + { + "lat": 52.741501164040365, + "tiploc": "LNAB", + "name": "Llanaber", + "crs": "LLA", + "toc": "AW", + "lon": -4.077175663753939 + }, + { + "lat": 52.908324509860094, + "tiploc": "STONE", + "name": "Stone", + "crs": "SNE", + "toc": "LM", + "lon": -2.1550411653028947 + }, + { + "lat": 55.829211387178496, + "tiploc": "SHWLNDS", + "name": "Shawlands", + "crs": "SHL", + "toc": "SR", + "lon": -4.29234303431442 + }, + { + "lat": 51.34202793613081, + "tiploc": "FRESVIL", + "name": "Freshford", + "crs": "FFD", + "toc": "GW", + "lon": -2.3010084162679516 + }, + { + "lat": 53.37821824336251, + "tiploc": "SHEFFLD", + "name": "Sheffield", + "crs": "SHF", + "toc": "EM", + "lon": -1.4621108594074015 + }, + { + "lat": 53.95796426172391, + "tiploc": "YORK", + "name": "York", + "crs": "YRK", + "toc": "GR", + "lon": -1.0931821299776603 + }, + { + "lat": 51.31809891070597, + "tiploc": "CBHMSDA", + "name": "Cobham & Stoke d'Abernon", + "crs": "CSD", + "toc": "SW", + "lon": -0.38934635973749654 + }, + { + "lat": 53.65597481764209, + "tiploc": "ENTWISL", + "name": "Entwistle", + "crs": "ENT", + "toc": "NT", + "lon": -2.4145447104336215 + }, + { + "lat": 54.57036701780882, + "tiploc": "PARTON", + "name": "Parton", + "crs": "PRN", + "toc": "NT", + "lon": -3.5808002015100002 + }, + { + "lat": 53.06528121174706, + "tiploc": "ROLSTN", + "name": "Rolleston", + "crs": "ROL", + "toc": "EM", + "lon": -0.8996747470554215 + }, + { + "lat": 52.49102514989203, + "tiploc": "BORTH", + "name": "Borth", + "crs": "BRH", + "toc": "AW", + "lon": -4.050176117935306 + }, + { + "lat": 51.593957254803534, + "tiploc": "BRUCGRV", + "name": "Bruce Grove", + "crs": "BCV", + "toc": "LO", + "lon": -0.06986706469620323 + }, + { + "lat": 0.0, + "tiploc": "TLBYRSD", + "name": "Tilbury Riverside (Bus)", + "crs": "TBR", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.49638329596442, + "tiploc": "SMTHKRS", + "name": "Smethwick Rolfe Street", + "crs": "SMR", + "toc": "LM", + "lon": -1.9706444463415558 + }, + { + "lat": 57.579288897226284, + "tiploc": "ACHNSHN", + "name": "Achnasheen", + "crs": "ACN", + "toc": "SR", + "lon": -5.072332104357353 + }, + { + "lat": 51.489511022634986, + "tiploc": "KEWBDGE", + "name": "Kew Bridge", + "crs": "KWB", + "toc": "SW", + "lon": -0.28710761895083814 + }, + { + "lat": 51.512769627804715, + "tiploc": "SADWRD", + "name": "St Andrews Road", + "crs": "SAR", + "toc": "GW", + "lon": -2.696312975305945 + }, + { + "lat": 55.88892063042423, + "tiploc": "ASFIELD", + "name": "Ashfield", + "crs": "ASF", + "toc": "SR", + "lon": -4.249214063058524 + }, + { + "lat": 54.68968533512308, + "tiploc": "FLIMBY", + "name": "Flimby", + "crs": "FLM", + "toc": "NT", + "lon": -3.5207399751560517 + }, + { + "lat": 56.0227030526013, + "tiploc": "LARBERT", + "name": "Larbert", + "crs": "LBT", + "toc": "SR", + "lon": -3.8305806392077733 + }, + { + "lat": 51.35803449669364, + "tiploc": "WORLE", + "name": "Worle", + "crs": "WOR", + "toc": "GW", + "lon": -2.9096216163514987 + }, + { + "lat": 0.0, + "tiploc": "BHAMAIR", + "name": "Birmingham Airpot (Bus)", + "crs": "XFG", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.079866711818795, + "tiploc": "CLWALL", + "name": "Colwall", + "crs": "CWL", + "toc": "LM", + "lon": -2.356950046421181 + }, + { + "lat": 50.72648232585798, + "tiploc": "EXETERC", + "name": "Exeter Central", + "crs": "EXC", + "toc": "GW", + "lon": -3.533276356522675 + }, + { + "lat": 52.866697056835335, + "tiploc": "NTNB", + "name": "Norton Bridge", + "crs": "NTB", + "toc": "LM", + "lon": -2.1905437400087955 + }, + { + "lat": 51.475532329179686, + "tiploc": "TWYFORD", + "name": "Twyford", + "crs": "TWY", + "toc": "GW", + "lon": -0.8632925930843293 + }, + { + "lat": 51.59561443124005, + "tiploc": "ROGRSTN", + "name": "Rogerstone", + "crs": "ROR", + "toc": "AW", + "lon": -3.0666124546194196 + }, + { + "lat": 53.791073649724275, + "tiploc": "BRADIN", + "name": "Bradford Interchange", + "crs": "BDI", + "toc": "NT", + "lon": -1.7495957169490364 + }, + { + "lat": 55.938370295366795, + "tiploc": "WHINH", + "name": "Whinhill", + "crs": "WNL", + "toc": "SR", + "lon": -4.746694281410374 + }, + { + "lat": 56.76554523564054, + "tiploc": "BLARATH", + "name": "Blair Atholl", + "crs": "BLA", + "toc": "SR", + "lon": -3.8502279352194098 + }, + { + "lat": 51.36243819897213, + "tiploc": "KMSLY", + "name": "Kemsley", + "crs": "KML", + "toc": "SE", + "lon": 0.7353576975500029 + }, + { + "lat": 51.67590102728858, + "tiploc": "SUNDRTN", + "name": "Saunderton", + "crs": "SDR", + "toc": "CH", + "lon": -0.8254684950251026 + }, + { + "lat": 55.962317708954394, + "tiploc": "GOURSTN", + "name": "Gourock", + "crs": "GRK", + "toc": "SR", + "lon": -4.8166576176577465 + }, + { + "lat": 51.48618800363548, + "tiploc": "VAUXHLM", + "name": "Vauxhall", + "crs": "VXH", + "toc": "SW", + "lon": -0.12288954430372094 + }, + { + "lat": 56.82044311434639, + "tiploc": "FRTWLM", + "name": "Fort William", + "crs": "FTW", + "toc": "SR", + "lon": -5.10614326107883 + }, + { + "lat": 50.810107071598146, + "tiploc": "LTLHMPT", + "name": "Littlehampton", + "crs": "LIT", + "toc": "SN", + "lon": -0.5459948033257435 + }, + { + "lat": 50.209042100550576, + "tiploc": "STIVES", + "name": "St Ives", + "crs": "SIV", + "toc": "GW", + "lon": -5.4779122532029225 + }, + { + "lat": 0.0, + "tiploc": "YORKFLM", + "name": "Flamingo Land (Bus)", + "crs": "FLZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.850222693306044, + "tiploc": "BAILDON", + "name": "Baildon", + "crs": "BLD", + "toc": "NT", + "lon": -1.7536362045948284 + }, + { + "lat": 51.38656344381679, + "tiploc": "GLNGHMK", + "name": "Gillingham (Kent)", + "crs": "GLM", + "toc": "SE", + "lon": 0.5498500001547579 + }, + { + "lat": 55.81864633325069, + "tiploc": "SHTT", + "name": "Shotts", + "crs": "SHS", + "toc": "SR", + "lon": -3.79831911042692 + }, + { + "lat": 50.96873719462089, + "tiploc": "UCKFILD", + "name": "Uckfield", + "crs": "UCK", + "toc": "SN", + "lon": 0.09638089113273858 + }, + { + "lat": 0.0, + "tiploc": "WTNBHST", + "name": "Wootton Bassett (Bus)", + "crs": "XDI", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.361086602404484, + "tiploc": "BGRN", + "name": "Barnt Green", + "crs": "BTG", + "toc": "LM", + "lon": -1.9924665023576738 + }, + { + "lat": 0.0, + "tiploc": "CAMVBUS", + "name": "Cambridge (Bus)", + "crs": "XEC", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.32184469578951, + "tiploc": "BRMB", + "name": "Bromborough", + "crs": "BOM", + "toc": "ME", + "lon": -2.98689532984427 + }, + { + "lat": 57.48207340206741, + "tiploc": "ACHHSHL", + "name": "Achnashellach", + "crs": "ACH", + "toc": "SR", + "lon": -5.333055210950533 + }, + { + "lat": 55.91904132752055, + "tiploc": "UPHALL", + "name": "Uphall", + "crs": "UHA", + "toc": "SR", + "lon": -3.5021194113865675 + }, + { + "lat": 51.48618800363548, + "tiploc": "VAUXHLW", + "name": "Vauxhall", + "crs": "VXH", + "toc": "SW", + "lon": -0.12288954430372094 + }, + { + "lat": 57.594234754132295, + "tiploc": "DINGWAL", + "name": "Dingwall", + "crs": "DIN", + "toc": "SR", + "lon": -4.42219878428353 + }, + { + "lat": 51.66849500301051, + "tiploc": "HADLYWD", + "name": "Hadley Wood", + "crs": "HDW", + "toc": "GN", + "lon": -0.17617255141830326 + }, + { + "lat": 0.0, + "tiploc": "FROMPOM", + "name": "Frome Town (Bus)", + "crs": "XAU", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.848275273875615, + "tiploc": "SBOUBUS", + "name": "Southbourne", + "crs": "SOB", + "toc": "SN", + "lon": -0.9081067437912493 + }, + { + "lat": 51.44975292043337, + "tiploc": "LEEE", + "name": "Lee", + "crs": "LEE", + "toc": "SE", + "lon": 0.013492795379879 + }, + { + "lat": 51.41563487940931, + "tiploc": "QUENBRO", + "name": "Queenborough", + "crs": "QBR", + "toc": "SE", + "lon": 0.7496660931485557 + }, + { + "lat": 55.123051693351556, + "tiploc": "LCKRBIE", + "name": "Lockerbie", + "crs": "LOC", + "toc": "SR", + "lon": -3.3535327750116437 + }, + { + "lat": 52.46375997642761, + "tiploc": "SMLHTH", + "name": "Small Heath", + "crs": "SMA", + "toc": "LM", + "lon": -1.8593927009015208 + }, + { + "lat": 52.09044439577308, + "tiploc": "WODBDGE", + "name": "Woodbridge", + "crs": "WDB", + "toc": "LE", + "lon": 1.3177711526049503 + }, + { + "lat": 54.14938435715057, + "tiploc": "HTNRIBL", + "name": "Horton-in-Ribblesdale", + "crs": "HIR", + "toc": "NT", + "lon": -2.3020326653827716 + }, + { + "lat": 0.0, + "tiploc": "BUCVBUS", + "name": "Buckingham (Bus)", + "crs": "XEY", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.642254164930975, + "tiploc": "PNDRSEN", + "name": "Ponders End", + "crs": "PON", + "toc": "LE", + "lon": -0.03508046263079493 + }, + { + "lat": 51.83768028456733, + "tiploc": "FRINTON", + "name": "Frinton-on-Sea", + "crs": "FRI", + "toc": "LE", + "lon": 1.2431706402899951 + }, + { + "lat": 51.070546676256825, + "tiploc": "SLSBRY", + "name": "Salisbury", + "crs": "SAL", + "toc": "SW", + "lon": -1.806386749442046 + }, + { + "lat": 51.438190883088915, + "tiploc": "STRHILL", + "name": "Streatham Hill", + "crs": "SRH", + "toc": "SN", + "lon": -0.1271601090251838 + }, + { + "lat": 52.93308549240978, + "tiploc": "CHIRK", + "name": "Chirk", + "crs": "CRK", + "toc": "AW", + "lon": -3.065643072679398 + }, + { + "lat": 51.54070347863087, + "tiploc": "ESSEXRD", + "name": "Essex Road", + "crs": "EXR", + "toc": "GN", + "lon": -0.09627605375327228 + }, + { + "lat": 51.279996478539374, + "tiploc": "HOOK", + "name": "Hook", + "crs": "HOK", + "toc": "SW", + "lon": -0.9616357508072081 + }, + { + "lat": 51.479991653376615, + "tiploc": "SEMILLS", + "name": "Sea Mills", + "crs": "SML", + "toc": "GW", + "lon": -2.6499492899909445 + }, + { + "lat": 55.81289685686426, + "tiploc": "HOLYTWN", + "name": "Holytown", + "crs": "HLY", + "toc": "SR", + "lon": -3.9739288662513657 + }, + { + "lat": 51.39701717359622, + "tiploc": "NORWDJ", + "name": "Norwood Junction", + "crs": "NWD", + "toc": "LO", + "lon": -0.07522157589794916 + }, + { + "lat": 53.3557220364629, + "tiploc": "ASHLEY", + "name": "Ashley", + "crs": "ASY", + "toc": "NT", + "lon": -2.341460419051057 + }, + { + "lat": 52.23803818963223, + "tiploc": "ELMSWEL", + "name": "Elmswell", + "crs": "ESW", + "toc": "LE", + "lon": 0.9125894595014362 + }, + { + "lat": 51.57918379544568, + "tiploc": "HAROOTH", + "name": "Harrow-on-the-Hill", + "crs": "HOH", + "toc": "LT", + "lon": -0.33722542767383573 + }, + { + "lat": 51.61240305665192, + "tiploc": "ANGELRD", + "name": "Angel Road", + "crs": "AGR", + "toc": "LE", + "lon": -0.04879141791589993 + }, + { + "lat": 53.06998062440184, + "tiploc": "NWSTEAD", + "name": "Newstead", + "crs": "NSD", + "toc": "EM", + "lon": -1.2217876677569832 + }, + { + "lat": 53.74414867919683, + "tiploc": "HULL", + "name": "Hull", + "crs": "HUL", + "toc": "TP", + "lon": -0.3456800205224876 + }, + { + "lat": 51.515660035730846, + "tiploc": "HEATHLL", + "name": "Heath Low Level", + "crs": "HLL", + "toc": "AW", + "lon": -3.18196826324058 + }, + { + "lat": 53.59075247855203, + "tiploc": "PARBOLD", + "name": "Parbold", + "crs": "PBL", + "toc": "NT", + "lon": -2.770748226780114 + }, + { + "lat": 51.75674456503355, + "tiploc": "JHNSTND", + "name": "Johnston", + "crs": "JOH", + "toc": "AW", + "lon": -4.996328162026189 + }, + { + "lat": 53.633251971769866, + "tiploc": "SMBG", + "name": "Smithy Bridge", + "crs": "SMB", + "toc": "NT", + "lon": -2.1135024751765745 + }, + { + "lat": 51.465152850893936, + "tiploc": "NSHEEN", + "name": "North Sheen", + "crs": "NSH", + "toc": "SW", + "lon": -0.2878758817449091 + }, + { + "lat": 53.528377749761034, + "tiploc": "UPHOLND", + "name": "Upholland", + "crs": "UPL", + "toc": "NT", + "lon": -2.7414048693145294 + }, + { + "lat": 53.40650163900855, + "tiploc": "BROADGR", + "name": "Broad Green", + "crs": "BGE", + "toc": "NT", + "lon": -2.893483884769133 + }, + { + "lat": 51.872425839520766, + "tiploc": "CHBURY", + "name": "Charlbury", + "crs": "CBY", + "toc": "GW", + "lon": -1.4896937968761397 + }, + { + "lat": 51.319018172597644, + "tiploc": "WDMNSTR", + "name": "Woodmansterne", + "crs": "WME", + "toc": "SN", + "lon": -0.1542621219481536 + }, + { + "lat": 55.79274187396672, + "tiploc": "LARGS", + "name": "Largs", + "crs": "LAR", + "toc": "SR", + "lon": -4.867197427203269 + }, + { + "lat": 52.76102924060622, + "tiploc": "MLTNSDG", + "name": "Melton Mowbray", + "crs": "MMO", + "toc": "EM", + "lon": -0.8858692783125097 + }, + { + "lat": 55.9764513192507, + "tiploc": "LNLTHGW", + "name": "Linlithgow", + "crs": "LIN", + "toc": "SR", + "lon": -3.595852092479971 + }, + { + "lat": 51.510053114735555, + "tiploc": "WDRYTON", + "name": "West Drayton", + "crs": "WDT", + "toc": "GW", + "lon": -0.47223429722298466 + }, + { + "lat": 51.79903300376953, + "tiploc": "HERTFDE", + "name": "Hertford East", + "crs": "HFE", + "toc": "LE", + "lon": -0.07294142330464518 + }, + { + "lat": 52.39355325903368, + "tiploc": "KETR", + "name": "Kettering", + "crs": "KET", + "toc": "EM", + "lon": -0.7315622508485231 + }, + { + "lat": 50.95735707035577, + "tiploc": "PULBRO", + "name": "Pulborough", + "crs": "PUL", + "toc": "SN", + "lon": -0.516557788147395 + }, + { + "lat": 51.474966016013354, + "tiploc": "QTRDBAT", + "name": "Queenstown Road Battersea", + "crs": "QRB", + "toc": "SW", + "lon": -0.14667821289730698 + }, + { + "lat": 51.55232335996688, + "tiploc": "WMBY", + "name": "Wembley Central", + "crs": "WMB", + "toc": "LT", + "lon": -0.2964328588567176 + }, + { + "lat": 51.29321728483504, + "tiploc": "BORWGAW", + "name": "Borough Green & Wrotham", + "crs": "BRG", + "toc": "SE", + "lon": 0.30624497127440714 + }, + { + "lat": 55.00104521795669, + "tiploc": "GRETGRN", + "name": "Gretna Green", + "crs": "GEA", + "toc": "SR", + "lon": -3.0651979789454527 + }, + { + "lat": 51.497896965174824, + "tiploc": "KENOLYM", + "name": "Kensington Olympia", + "crs": "KPA", + "toc": "LO", + "lon": -0.2103641321634652 + }, + { + "lat": 52.15052777585891, + "tiploc": "CILMERY", + "name": "Cilmeri", + "crs": "CIM", + "toc": "AW", + "lon": -3.4565410082823638 + }, + { + "lat": 52.06907788981116, + "tiploc": "STWRTBY", + "name": "Stewartby", + "crs": "SWR", + "toc": "LM", + "lon": -0.5206922215291366 + }, + { + "lat": 56.00609051290901, + "tiploc": "CAMELON", + "name": "Camelon", + "crs": "CMO", + "toc": "SR", + "lon": -3.8176051253868675 + }, + { + "lat": 55.86218695863235, + "tiploc": "GLGQLL", + "name": "Glasgow Queen Street", + "crs": "GLQ", + "toc": "SR", + "lon": -4.251455813529946 + }, + { + "lat": 55.94250973010696, + "tiploc": "BRUSTAN", + "name": "Brunstane", + "crs": "BSU", + "toc": "SR", + "lon": -3.1009859882017357 + }, + { + "lat": 0.0, + "tiploc": "CHNRRED", + "name": "Chinnor (Bus)", + "crs": "XCQ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.1156210358546, + "tiploc": "IFIELD", + "name": "Ifield", + "crs": "IFI", + "toc": "SN", + "lon": -0.2147721482724796 + }, + { + "lat": 54.20272697395889, + "tiploc": "ARNSIDE", + "name": "Arnside", + "crs": "ARN", + "toc": "TP", + "lon": -2.828241420107305 + }, + { + "lat": 51.493904814463356, + "tiploc": "FRWATER", + "name": "Fairwater", + "crs": "FRW", + "toc": "AW", + "lon": -3.233839374294991 + }, + { + "lat": 50.64647514049878, + "tiploc": "LAKEIOW", + "name": "Lake", + "crs": "LKE", + "toc": "IL", + "lon": -1.1663485068471906 + }, + { + "lat": 53.99743844344116, + "tiploc": "CATTAL", + "name": "Cattal", + "crs": "CTL", + "toc": "NT", + "lon": -1.320535030338396 + }, + { + "lat": 51.248985469874384, + "tiploc": "DILTONM", + "name": "Dilton Marsh", + "crs": "DMH", + "toc": "GW", + "lon": -2.207915289063328 + }, + { + "lat": 51.49112516109962, + "tiploc": "WOLWCDY", + "name": "Woolwich Dockyard", + "crs": "WWD", + "toc": "SE", + "lon": 0.05464195030518653 + }, + { + "lat": 56.05707969409087, + "tiploc": "BISLND", + "name": "Burntisland", + "crs": "BTS", + "toc": "SR", + "lon": -3.2331977224497055 + }, + { + "lat": 53.3297153941575, + "tiploc": "HESWALL", + "name": "Heswall", + "crs": "HSW", + "toc": "AW", + "lon": -3.0737026931833493 + }, + { + "lat": 51.84070028181794, + "tiploc": "KELVEDN", + "name": "Kelvedon", + "crs": "KEL", + "toc": "LE", + "lon": 0.7023855807971966 + }, + { + "lat": 56.18588868805, + "tiploc": "DUNANE", + "name": "Dunblane", + "crs": "DBL", + "toc": "SR", + "lon": -3.965485951194168 + }, + { + "lat": 53.14382012762833, + "tiploc": "NLANRST", + "name": "North Llanrwst", + "crs": "NLR", + "toc": "AW", + "lon": -3.8027273068861565 + }, + { + "lat": 54.17392407658536, + "tiploc": "HUNMNBY", + "name": "Hunmanby", + "crs": "HUB", + "toc": "NT", + "lon": -0.314556810886648 + }, + { + "lat": 51.201746128985334, + "tiploc": "SALFDS", + "name": "Salfords", + "crs": "SAF", + "toc": "SN", + "lon": -0.16248917386452588 + }, + { + "lat": 52.61070998095612, + "tiploc": "WILNECT", + "name": "Wilnecote", + "crs": "WNE", + "toc": "LM", + "lon": -1.6797144738725693 + }, + { + "lat": 55.83530307785785, + "tiploc": "QUNPARK", + "name": "Queens Park (Glasgow)", + "crs": "QPK", + "toc": "SR", + "lon": -4.266749904075353 + }, + { + "lat": 51.80596662264937, + "tiploc": "WITHAME", + "name": "Witham", + "crs": "WTM", + "toc": "LE", + "lon": 0.6391300807762625 + }, + { + "lat": 51.83115727196437, + "tiploc": "AYLSPWY", + "name": "Aylesbury Vale Parkway", + "crs": "AVP", + "toc": "CH", + "lon": -0.8601823903485555 + }, + { + "lat": 51.71761894776158, + "tiploc": "PNTADLS", + "name": "Pontarddulais", + "crs": "PTD", + "toc": "AW", + "lon": -4.045543283460701 + }, + { + "lat": 51.45878439187583, + "tiploc": "RDNGBUS", + "name": "Reading", + "crs": "RDG", + "toc": "RT", + "lon": -0.9718632259471497 + }, + { + "lat": 50.62163301592162, + "tiploc": "EXMOUTH", + "name": "Exmouth", + "crs": "EXM", + "toc": "GW", + "lon": -3.4149715886252143 + }, + { + "lat": 50.875668124282164, + "tiploc": "SWNWICK", + "name": "Swanwick", + "crs": "SNW", + "toc": "SW", + "lon": -1.2658524147566854 + }, + { + "lat": 51.459152570743235, + "tiploc": "FALCNWD", + "name": "Falconwood", + "crs": "FCN", + "toc": "SE", + "lon": 0.0793044830062197 + }, + { + "lat": 53.70491268263263, + "tiploc": "GOOLE", + "name": "Goole", + "crs": "GOO", + "toc": "NT", + "lon": -0.8742134580083702 + }, + { + "lat": 52.77895282821185, + "tiploc": "LOGHBRO", + "name": "Loughborough", + "crs": "LBO", + "toc": "EM", + "lon": -1.1959285213489308 + }, + { + "lat": 53.27519971003419, + "tiploc": "HELSBY", + "name": "Helsby", + "crs": "HSB", + "toc": "AW", + "lon": -2.7712065883311046 + }, + { + "lat": 54.626163055605936, + "tiploc": "SHDN", + "name": "Shildon", + "crs": "SHD", + "toc": "NT", + "lon": -1.6366054000842938 + }, + { + "lat": 0.0, + "tiploc": "WATCHET", + "name": "Watchet (Bus)", + "crs": "WCT", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 56.43080659173312, + "tiploc": "TAYNULT", + "name": "Taynuilt", + "crs": "TAY", + "toc": "SR", + "lon": -5.239609902207719 + }, + { + "lat": 51.432453604104914, + "tiploc": "STAINES", + "name": "Staines", + "crs": "SNS", + "toc": "SW", + "lon": -0.5031645138036541 + }, + { + "lat": 0.0, + "tiploc": "SHAFTTH", + "name": "Shaftesbury Town Hall (Bus)", + "crs": "SWH", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.28426715211149, + "tiploc": "CNTBW", + "name": "Canterbury West", + "crs": "CBW", + "toc": "SE", + "lon": 1.0753031460525475 + }, + { + "lat": 53.79197585847224, + "tiploc": "EGRFRTH", + "name": "East Garforth", + "crs": "EGF", + "toc": "NT", + "lon": -1.3705368480902331 + }, + { + "lat": 56.054590940404935, + "tiploc": "ABDO", + "name": "Aberdour", + "crs": "AUR", + "toc": "SR", + "lon": -3.3005599928451685 + }, + { + "lat": 51.240927998446466, + "tiploc": "DORKING", + "name": "Dorking", + "crs": "DKG", + "toc": "SN", + "lon": -0.32425077100039285 + }, + { + "lat": 55.85523722959123, + "tiploc": "GARROWH", + "name": "Garrowhill", + "crs": "GAR", + "toc": "SR", + "lon": -4.129460422820528 + }, + { + "lat": 52.32864714152267, + "tiploc": "HNTNGDN", + "name": "Huntingdon", + "crs": "HUN", + "toc": "GN", + "lon": -0.19206805167366756 + }, + { + "lat": 51.63400077319766, + "tiploc": "LLWYNYP", + "name": "Llwynypia", + "crs": "LLY", + "toc": "AW", + "lon": -3.453513396538396 + }, + { + "lat": 51.39338489313966, + "tiploc": "SWLY", + "name": "Swanley", + "crs": "SAY", + "toc": "SE", + "lon": 0.16922535618818682 + }, + { + "lat": 51.398775447809, + "tiploc": "THTH", + "name": "Thornton Heath", + "crs": "TTH", + "toc": "SN", + "lon": -0.10030594147084491 + }, + { + "lat": 50.4468625798625, + "tiploc": "LISKARD", + "name": "Liskeard", + "crs": "LSK", + "toc": "GW", + "lon": -4.469574956865423 + }, + { + "lat": 53.40804408704889, + "tiploc": "LEASOWE", + "name": "Leasowe", + "crs": "LSW", + "toc": "ME", + "lon": -3.0995936659990417 + }, + { + "lat": 50.928661300154474, + "tiploc": "PLMPTON", + "name": "Plumpton", + "crs": "PMP", + "toc": "SN", + "lon": -0.06018110683953217 + }, + { + "lat": 0.0, + "tiploc": "SNDGNG", + "name": "Sandringham (Bus)", + "crs": "XSA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.67865712533664, + "tiploc": "WKFLDKG", + "name": "Wakefield Kirkgate", + "crs": "WKK", + "toc": "NT", + "lon": -1.4885705678410648 + }, + { + "lat": 53.37264808294333, + "tiploc": "ROCKFY1", + "name": "Rock Ferry", + "crs": "RFY", + "toc": "ME", + "lon": -3.0108262386595834 + }, + { + "lat": 51.52608776169119, + "tiploc": "DGNHMDC", + "name": "Dagenham Dock", + "crs": "DDK", + "toc": "CC", + "lon": 0.1461028950538956 + }, + { + "lat": 53.78161250107267, + "tiploc": "HAPTON", + "name": "Hapton", + "crs": "HPN", + "toc": "NT", + "lon": -2.3169113831490855 + }, + { + "lat": 51.603254150055015, + "tiploc": "LLBRDCH", + "name": "Llanbradach", + "crs": "LNB", + "toc": "AW", + "lon": -3.2330475376162298 + }, + { + "lat": 51.32934699121679, + "tiploc": "BANSTED", + "name": "Banstead", + "crs": "BAD", + "toc": "SN", + "lon": -0.21315892351957755 + }, + { + "lat": 51.8930217065884, + "tiploc": "BCSTRTN", + "name": "Bicester Village", + "crs": "BIT", + "toc": "CH", + "lon": -1.1487641706012368 + }, + { + "lat": 0.0, + "tiploc": "MNCRDLN", + "name": "Dean Lane", + "crs": "DNN", + "toc": "NT", + "lon": 0.0 + }, + { + "lat": 54.57910438303301, + "tiploc": "MDLSBRO", + "name": "Middlesbrough", + "crs": "MBR", + "toc": "TP", + "lon": -1.2347172388799112 + }, + { + "lat": 57.60959513028409, + "tiploc": "ACHANLT", + "name": "Achanalt", + "crs": "AAT", + "toc": "SR", + "lon": -4.913851227222016 + }, + { + "lat": 51.60834830335583, + "tiploc": "HGHMSPK", + "name": "Highams Park", + "crs": "HIP", + "toc": "LO", + "lon": -0.00022226507131348368 + }, + { + "lat": 55.90767044674343, + "tiploc": "SINGER", + "name": "Singer", + "crs": "SIN", + "toc": "SR", + "lon": -4.405485996822315 + }, + { + "lat": 52.893783354484206, + "tiploc": "TYGWYN", + "name": "Tygwyn", + "crs": "TYG", + "toc": "AW", + "lon": -4.0786546323728645 + }, + { + "lat": 56.31698637885094, + "tiploc": "CUPAR", + "name": "Cupar", + "crs": "CUP", + "toc": "SR", + "lon": -3.008756151811759 + }, + { + "lat": 51.082885353675444, + "tiploc": "FLKSTNC", + "name": "Folkestone Central", + "crs": "FKC", + "toc": "SE", + "lon": 1.1694823533769907 + }, + { + "lat": 52.731592385125985, + "tiploc": "SILEBY", + "name": "Sileby", + "crs": "SIL", + "toc": "EM", + "lon": -1.1099886769052438 + }, + { + "lat": 51.92054361311675, + "tiploc": "ELSENHM", + "name": "Elsenham", + "crs": "ESM", + "toc": "LE", + "lon": 0.22807027905214902 + }, + { + "lat": 51.32368565377566, + "tiploc": "EPSDNS", + "name": "Epsom Downs", + "crs": "EPD", + "toc": "SN", + "lon": -0.23895484159398014 + }, + { + "lat": 53.97986734127717, + "tiploc": "HRNBPK", + "name": "Hornbeam Park", + "crs": "HBP", + "toc": "NT", + "lon": -1.5268222742076827 + }, + { + "lat": 55.81056301220288, + "tiploc": "HOWOOD", + "name": "Howwood", + "crs": "HOZ", + "toc": "SR", + "lon": -4.563057935271975 + }, + { + "lat": 0.0, + "tiploc": "LUTOBUS", + "name": "Luton (Bus)", + "crs": "LUB", + "toc": "TL", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "FLKSTNH", + "name": "Folkestone Harbour (Bus)", + "crs": "FKH", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.37264808294333, + "tiploc": "ROCKFYB", + "name": "Rock Ferry", + "crs": "RFY", + "toc": "ME", + "lon": -3.0108262386595834 + }, + { + "lat": 51.386421860591305, + "tiploc": "MEOPHAM", + "name": "Meopham", + "crs": "MEP", + "toc": "SE", + "lon": 0.35695150316411756 + }, + { + "lat": 50.94114668839557, + "tiploc": "SWYTHLN", + "name": "Swaythling", + "crs": "SWG", + "toc": "SW", + "lon": -1.3764086163792675 + }, + { + "lat": 57.18851120051241, + "tiploc": "AVIEMRE", + "name": "Aviemore", + "crs": "AVM", + "toc": "SR", + "lon": -3.828867160386869 + }, + { + "lat": 51.64151667339538, + "tiploc": "BHILLPK", + "name": "Bush Hill Park", + "crs": "BHK", + "toc": "LO", + "lon": -0.06922110902787378 + }, + { + "lat": 52.89699339261157, + "tiploc": "PEARTRE", + "name": "Peartree", + "crs": "PEA", + "toc": "EM", + "lon": -1.4732138884206603 + }, + { + "lat": 54.123703247039465, + "tiploc": "WENNGTN", + "name": "Wennington", + "crs": "WNN", + "toc": "NT", + "lon": -2.5875103769509464 + }, + { + "lat": 0.0, + "tiploc": "ABDAPEN", + "name": "Penywaun (Bus)", + "crs": "XPZ", + "toc": "AW", + "lon": 0.0 + }, + { + "lat": 51.301315847442964, + "tiploc": "AYLESFD", + "name": "Aylesford", + "crs": "AYL", + "toc": "SE", + "lon": 0.4661705874661065 + }, + { + "lat": 56.70250030717076, + "tiploc": "PTLCHRY", + "name": "Pitlochry", + "crs": "PIT", + "toc": "SR", + "lon": -3.735570235305168 + }, + { + "lat": 53.28404577656829, + "tiploc": "OPOL", + "name": "Overpool", + "crs": "OVE", + "toc": "ME", + "lon": -2.9240605749460955 + }, + { + "lat": 51.64705, + "tiploc": "CRXLEY", + "name": "Croxley Underground", + "crs": "ZCO", + "toc": "LT", + "lon": -0.4417 + }, + { + "lat": 52.61215749935578, + "tiploc": "YARMTH", + "name": "Great Yarmouth", + "crs": "GYM", + "toc": "LE", + "lon": 1.7208861774505473 + }, + { + "lat": 51.62834933667867, + "tiploc": "CRPNDPK", + "name": "Carpenders Park", + "crs": "CPK", + "toc": "LO", + "lon": -0.38593909666123744 + }, + { + "lat": 55.859754790338684, + "tiploc": "GLGCLL", + "name": "Glasgow Central", + "crs": "GLC", + "toc": "RT", + "lon": -4.257643235656933 + }, + { + "lat": 51.66150074015484, + "tiploc": "LLNSMLT", + "name": "Llansamlet", + "crs": "LAS", + "toc": "AW", + "lon": -3.884685163766156 + }, + { + "lat": 52.534994895075634, + "tiploc": "SPONRRW", + "name": "Spooner Row", + "crs": "SPN", + "toc": "LE", + "lon": 1.0864756138801872 + }, + { + "lat": 51.08458433724094, + "tiploc": "FLKSTNW", + "name": "Folkestone West", + "crs": "FKW", + "toc": "SE", + "lon": 1.153903393957199 + }, + { + "lat": 58.25831224913277, + "tiploc": "KINBRAC", + "name": "Kinbrace", + "crs": "KBC", + "toc": "SR", + "lon": -3.9412079160872953 + }, + { + "lat": 55.85989576934023, + "tiploc": "ANDRSTN", + "name": "Anderston", + "crs": "AND", + "toc": "SR", + "lon": -4.270978989362122 + }, + { + "lat": 51.49798821273669, + "tiploc": "CNDAW", + "name": "Canada Water", + "crs": "ZCW", + "toc": "LO", + "lon": -0.049719831198544395 + }, + { + "lat": 53.5221478427483, + "tiploc": "DONC", + "name": "Doncaster", + "crs": "DON", + "toc": "GR", + "lon": -1.1398452456883053 + }, + { + "lat": 51.4410982034263, + "tiploc": "ERLY", + "name": "Earley", + "crs": "EAR", + "toc": "SW", + "lon": -0.9179881897937948 + }, + { + "lat": 0.0, + "tiploc": "CAEUPK", + "name": "Caerau Park (Bus)", + "crs": "XKC", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.48681139648067, + "tiploc": "CRLN", + "name": "Charlton", + "crs": "CTN", + "toc": "SE", + "lon": 0.03125749652390087 + }, + { + "lat": 51.52016522721183, + "tiploc": "FNTLSR", + "name": "Farringdon Underground", + "crs": "ZFD", + "toc": "LT", + "lon": -0.10520466394888697 + }, + { + "lat": 0.0, + "tiploc": "MINEHED", + "name": "Minehead", + "crs": "MHD", + "toc": "ZM", + "lon": 0.0 + }, + { + "lat": 50.40139023005185, + "tiploc": "STBDXFR", + "name": "St Budeaux Ferry Road", + "crs": "SBF", + "toc": "GW", + "lon": -4.186811742547568 + }, + { + "lat": 51.52460610963733, + "tiploc": "PENCOED", + "name": "Pencoed", + "crs": "PCD", + "toc": "AW", + "lon": -3.500478959811622 + }, + { + "lat": 51.505017171569044, + "tiploc": "LNDNBDC", + "name": "London Bridge", + "crs": "LBG", + "toc": "RT", + "lon": -0.08609208068415171 + }, + { + "lat": 51.48262276894391, + "tiploc": "MAZEH", + "name": "Maze Hill", + "crs": "MZH", + "toc": "SE", + "lon": 0.002914129481692617 + }, + { + "lat": 51.43673988198309, + "tiploc": "WINETGL", + "name": "Winnersh Triangle", + "crs": "WTI", + "toc": "SW", + "lon": -0.8913316447464974 + }, + { + "lat": 51.81464308012097, + "tiploc": "HRPNDN", + "name": "Harpenden", + "crs": "HPD", + "toc": "TL", + "lon": -0.3514805175302329 + }, + { + "lat": 53.213534392056495, + "tiploc": "SHOTTON", + "name": "Shotton", + "crs": "SHT", + "toc": "AW", + "lon": -3.037699762526365 + }, + { + "lat": 51.505017171569044, + "tiploc": "LNDNBDE", + "name": "London Bridge", + "crs": "LBG", + "toc": "RT", + "lon": -0.08609208068415171 + }, + { + "lat": 54.45641436395624, + "tiploc": "NETHRTN", + "name": "Nethertown", + "crs": "NRT", + "toc": "NT", + "lon": -3.5658376101560236 + }, + { + "lat": 51.505017171569044, + "tiploc": "LNDNBDG", + "name": "London Bridge", + "crs": "LBG", + "toc": "RT", + "lon": -0.08609208068415171 + }, + { + "lat": 55.761964307532644, + "tiploc": "HARMYRS", + "name": "Hairmyres", + "crs": "HMY", + "toc": "SR", + "lon": -4.2200107703065 + }, + { + "lat": 54.0331422320676, + "tiploc": "HEYMST", + "name": "Heysham Port", + "crs": "HHB", + "toc": "NT", + "lon": -2.9131142929580163 + }, + { + "lat": 52.13055325432909, + "tiploc": "PERSHOR", + "name": "Pershore", + "crs": "PSH", + "toc": "GW", + "lon": -2.0715367869950816 + }, + { + "lat": 51.48539968320976, + "tiploc": "PANGBRN", + "name": "Pangbourne", + "crs": "PAN", + "toc": "GW", + "lon": -1.0904703603874077 + }, + { + "lat": 55.73126370108772, + "tiploc": "CRLK", + "name": "Carluke", + "crs": "CLU", + "toc": "SR", + "lon": -3.848924795424056 + }, + { + "lat": 51.53706254983037, + "tiploc": "STHCENT", + "name": "Southend Central", + "crs": "SOC", + "toc": "CC", + "lon": 0.7117266026695884 + }, + { + "lat": 52.92612992312576, + "tiploc": "MINFORD", + "name": "Minffordd", + "crs": "MFF", + "toc": "AW", + "lon": -4.084965369261354 + }, + { + "lat": 53.82397880119736, + "tiploc": "BRIERFL", + "name": "Brierfield", + "crs": "BRF", + "toc": "NT", + "lon": -2.2364899095810973 + }, + { + "lat": 53.767815026655235, + "tiploc": "COTNGLY", + "name": "Cottingley", + "crs": "COT", + "toc": "NT", + "lon": -1.5877080642433 + }, + { + "lat": 51.72501226909214, + "tiploc": "PNTRBCH", + "name": "Pentre-bach", + "crs": "PTB", + "toc": "AW", + "lon": -3.362320519286333 + }, + { + "lat": 53.14317747653023, + "tiploc": "SKEGNES", + "name": "Skegness", + "crs": "SKG", + "toc": "EM", + "lon": 0.33434712983708953 + }, + { + "lat": 57.33749807537043, + "tiploc": "INSCH", + "name": "Insch", + "crs": "INS", + "toc": "SR", + "lon": -2.6171121950158813 + }, + { + "lat": 50.66830175043035, + "tiploc": "EXTON", + "name": "Exton", + "crs": "EXN", + "toc": "GW", + "lon": -3.444096151599658 + }, + { + "lat": 50.359223336368686, + "tiploc": "LOOE", + "name": "Looe", + "crs": "LOO", + "toc": "GW", + "lon": -4.456163638723978 + }, + { + "lat": 0.0, + "tiploc": "YOVILBS", + "name": "Yeovil Bus Station", + "crs": "YVB", + "toc": "SW", + "lon": 0.0 + }, + { + "lat": 51.48990703706689, + "tiploc": "WOLWCHA", + "name": "Woolwich Arsenal", + "crs": "WWA", + "toc": "SE", + "lon": 0.06919391230200989 + }, + { + "lat": 51.408584532134554, + "tiploc": "CLOCKHS", + "name": "Clock House", + "crs": "CLK", + "toc": "SE", + "lon": -0.040657059334233414 + }, + { + "lat": 55.9022627601644, + "tiploc": "BISHPTN", + "name": "Bishopton", + "crs": "BPT", + "toc": "SR", + "lon": -4.500486406712439 + }, + { + "lat": 0.0, + "tiploc": "BUXTMP", + "name": "Buxton (Bus)", + "crs": "BUZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.48559166797781, + "tiploc": "BEREALS", + "name": "Bere Alston", + "crs": "BAS", + "toc": "GW", + "lon": -4.200354400388433 + }, + { + "lat": 56.85540590002322, + "tiploc": "LCHESDE", + "name": "Locheilside", + "crs": "LCS", + "toc": "SR", + "lon": -5.290036395189766 + }, + { + "lat": 0.0, + "tiploc": "MARBORO", + "name": "Marlborough (Bus)", + "crs": "XBH", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.68664364609522, + "tiploc": "MERTHRV", + "name": "Merthyr Vale", + "crs": "MEV", + "toc": "AW", + "lon": -3.336575545127666 + }, + { + "lat": 50.85395495147748, + "tiploc": "BDHMNRD", + "name": "Bedhampton", + "crs": "BDH", + "toc": "SW", + "lon": -0.9958283730032234 + }, + { + "lat": 51.511282158326736, + "tiploc": "SHADWEL", + "name": "Shadwell", + "crs": "SDE", + "toc": "LO", + "lon": -0.05693436773841817 + }, + { + "lat": 51.532511717678545, + "tiploc": "STPANCI", + "name": "London St Pancras (Intl)", + "crs": "STP", + "toc": "RT", + "lon": -0.12646346391460586 + }, + { + "lat": 51.52848743315825, + "tiploc": "WHAMHL", + "name": "West Ham", + "crs": "WEH", + "toc": "CC", + "lon": 0.005431070328466123 + }, + { + "lat": 53.45222666875945, + "tiploc": "HMPHRYP", + "name": "Humphrey Park", + "crs": "HUP", + "toc": "NT", + "lon": -2.327537699147025 + }, + { + "lat": 51.24818735936198, + "tiploc": "BTCHBUS", + "name": "Betchworth", + "crs": "BTO", + "toc": "GW", + "lon": -0.26697300601745594 + }, + { + "lat": 52.09839538403627, + "tiploc": "EVESHAM", + "name": "Evesham", + "crs": "EVE", + "toc": "GW", + "lon": -1.947313480595687 + }, + { + "lat": 0.0, + "tiploc": "NEWASCH", + "name": "Southwell (Bus)", + "crs": "SLZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.772841773859746, + "tiploc": "SEAFORD", + "name": "Seaford", + "crs": "SEF", + "toc": "SN", + "lon": 0.10013367164678144 + }, + { + "lat": 51.85399866389018, + "tiploc": "ALRESFD", + "name": "Alresford", + "crs": "ALR", + "toc": "LE", + "lon": 0.9974364692443276 + }, + { + "lat": 0.0, + "tiploc": "CNRYNP", + "name": "Cairnyan Port", + "crs": "CRP", + "toc": "ZF", + "lon": 0.0 + }, + { + "lat": 52.291485487995935, + "tiploc": "HENLYIA", + "name": "Henley-in-Arden", + "crs": "HNL", + "toc": "LM", + "lon": -1.7839910346008712 + }, + { + "lat": 52.403419111097506, + "tiploc": "SHIRLEY", + "name": "Shirley", + "crs": "SRL", + "toc": "LM", + "lon": -1.8451796153325712 + }, + { + "lat": 52.99454656989963, + "tiploc": "BLAENAU", + "name": "Blaenau Ffestiniog", + "crs": "BFF", + "toc": "AW", + "lon": -3.9385948609335224 + }, + { + "lat": 51.30204315962734, + "tiploc": "FRBRNTH", + "name": "Farnborough North", + "crs": "FNN", + "toc": "GW", + "lon": -0.7430268923419622 + }, + { + "lat": 53.45305888890774, + "tiploc": "NWTNLW", + "name": "Newton-le-Willows", + "crs": "NLW", + "toc": "NT", + "lon": -2.6135980671697085 + }, + { + "lat": 51.226481699831986, + "tiploc": "YALDING", + "name": "Yalding", + "crs": "YAL", + "toc": "SE", + "lon": 0.4121640901444737 + }, + { + "lat": 50.72727158979792, + "tiploc": "BOMO", + "name": "Bournemouth", + "crs": "BMH", + "toc": "SW", + "lon": -1.8645029575567693 + }, + { + "lat": 54.46059022858817, + "tiploc": "LEALHLM", + "name": "Lealholm", + "crs": "LHM", + "toc": "NT", + "lon": -0.8257153014821905 + }, + { + "lat": 50.91717572199152, + "tiploc": "TIVIPW", + "name": "Tiverton Parkway", + "crs": "TVP", + "toc": "GW", + "lon": -3.359644038061984 + }, + { + "lat": 52.084678035792265, + "tiploc": "BIGLSWD", + "name": "Biggleswade", + "crs": "BIW", + "toc": "GN", + "lon": -0.2611871841698095 + }, + { + "lat": 50.89892151631444, + "tiploc": "WOLSTON", + "name": "Woolston", + "crs": "WLS", + "toc": "SW", + "lon": -1.3770578480675153 + }, + { + "lat": 50.78014159961512, + "tiploc": "BSSNBUS", + "name": "Bishopstone", + "crs": "BIP", + "toc": "SN", + "lon": 0.08275692749959099 + }, + { + "lat": 51.75714173536308, + "tiploc": "EBWVPWY", + "name": "Ebbw Vale Parkway", + "crs": "EBV", + "toc": "AW", + "lon": -3.196102672155522 + }, + { + "lat": 53.08175625523415, + "tiploc": "NEWANG", + "name": "Newark North Gate", + "crs": "NNG", + "toc": "GR", + "lon": -0.7998545641994306 + }, + { + "lat": 52.5456846062746, + "tiploc": "PENHELG", + "name": "Penhelig", + "crs": "PHG", + "toc": "AW", + "lon": -4.035025140971754 + }, + { + "lat": 51.94904938148011, + "tiploc": "MANNGTR", + "name": "Manningtree", + "crs": "MNG", + "toc": "LE", + "lon": 1.0452398927559219 + }, + { + "lat": 51.30918141879936, + "tiploc": "TATNHMC", + "name": "Tattenham Corner", + "crs": "TAT", + "toc": "SN", + "lon": -0.24260928303066237 + }, + { + "lat": 50.42622667179045, + "tiploc": "MENHENT", + "name": "Menheniot", + "crs": "MEN", + "toc": "GW", + "lon": -4.409222942660071 + }, + { + "lat": 50.8390495891515, + "tiploc": "FSHBORN", + "name": "Fishbourne (West Sussex)", + "crs": "FSB", + "toc": "SN", + "lon": -0.8150842088986902 + }, + { + "lat": 51.54873038160693, + "tiploc": "CNNB", + "name": "Canonbury", + "crs": "CNN", + "toc": "LO", + "lon": -0.09219092385023264 + }, + { + "lat": 51.59276421213517, + "tiploc": "HRLDWOD", + "name": "Harold Wood", + "crs": "HRO", + "toc": "XR", + "lon": 0.23312860672153374 + }, + { + "lat": 51.41103322280916, + "tiploc": "BCKNBUS", + "name": "Beckenham Junction", + "crs": "BKJ", + "toc": "SE", + "lon": -0.025812819497362458 + }, + { + "lat": 0.0, + "tiploc": "LCHBSDL", + "name": "Lochboisdale, South Uist (Bus)", + "crs": "LCB", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 54.01122092897267, + "tiploc": "NAFERTN", + "name": "Nafferton", + "crs": "NFN", + "toc": "NT", + "lon": -0.3860760635331869 + }, + { + "lat": 0.0, + "tiploc": "TARBERT", + "name": "Tarbert, Harris (Bus)", + "crs": "TBT", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 55.014, + "tiploc": "BENTMET", + "name": "Benton (T & W Metro)", + "crs": "BNO", + "toc": "TW", + "lon": -1.5674 + }, + { + "lat": 51.44134635932124, + "tiploc": "GRVSEND", + "name": "Gravesend", + "crs": "GRV", + "toc": "SE", + "lon": 0.3666429975312738 + }, + { + "lat": 51.39764770817456, + "tiploc": "NEWBURY", + "name": "Newbury", + "crs": "NBY", + "toc": "GW", + "lon": -1.3228611201789433 + }, + { + "lat": 51.52337337876631, + "tiploc": "SHRDHST", + "name": "Shoreditch High Street", + "crs": "SDC", + "toc": "LO", + "lon": -0.07524617751528465 + }, + { + "lat": 55.863169730724046, + "tiploc": "ALXPD", + "name": "Alexandra Parade", + "crs": "AXP", + "toc": "SR", + "lon": -4.210647955711269 + }, + { + "lat": 52.11921173125472, + "tiploc": "FOXTON", + "name": "Foxton", + "crs": "FXN", + "toc": "GN", + "lon": 0.056308097565726994 + }, + { + "lat": 56.712797672611394, + "tiploc": "MONTRSE", + "name": "Montrose", + "crs": "MTS", + "toc": "SR", + "lon": -2.4720741654650396 + }, + { + "lat": 50.82900288362236, + "tiploc": "BRGHTN", + "name": "Brighton", + "crs": "BTN", + "toc": "SN", + "lon": -0.141280356200382 + }, + { + "lat": 51.45878439187583, + "tiploc": "RDNG4AB", + "name": "Reading", + "crs": "RDG", + "toc": "RT", + "lon": -0.9718632259471497 + }, + { + "lat": 51.54303893367126, + "tiploc": "CLDNNRB", + "name": "Caledonian Rd & Barnsbury", + "crs": "CIR", + "toc": "LO", + "lon": -0.11672924377856939 + }, + { + "lat": 52.90430627328845, + "tiploc": "TLSRNAU", + "name": "Talsarnau", + "crs": "TAL", + "toc": "AW", + "lon": -4.068154571984958 + }, + { + "lat": 0.0, + "tiploc": "CRDFBUS", + "name": "Cardiff Central Bus Stn", + "crs": "CCB", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.15563532018468, + "tiploc": "COWDEN", + "name": "Cowden", + "crs": "CWN", + "toc": "SN", + "lon": 0.11003272944845444 + }, + { + "lat": 51.41940647453188, + "tiploc": "NAILSEA", + "name": "Nailsea & Backwell", + "crs": "NLS", + "toc": "GW", + "lon": -2.7506338177951224 + }, + { + "lat": 0.0, + "tiploc": "NUTFBUS", + "name": "Nutfield Memorial Hall (Bus)", + "crs": "XET", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.092900246917985, + "tiploc": "WARNHAM", + "name": "Warnham", + "crs": "WNH", + "toc": "SN", + "lon": -0.32946416074255075 + }, + { + "lat": 53.218072309347114, + "tiploc": "HAWDNBG", + "name": "Hawarden Bridge", + "crs": "HWB", + "toc": "AW", + "lon": -3.0327174098002017 + }, + { + "lat": 51.50843670362875, + "tiploc": "LLANDAF", + "name": "Llandaf", + "crs": "LLN", + "toc": "AW", + "lon": -3.228612258337764 + }, + { + "lat": 51.41144393097285, + "tiploc": "NORBURY", + "name": "Norbury", + "crs": "NRB", + "toc": "SN", + "lon": -0.12192611784748165 + }, + { + "lat": 52.545080839219054, + "tiploc": "COSELEY", + "name": "Coseley", + "crs": "CSY", + "toc": "LM", + "lon": -2.0857774857054556 + }, + { + "lat": 51.885342472636374, + "tiploc": "LLDEILO", + "name": "Llandeilo", + "crs": "LLL", + "toc": "AW", + "lon": -3.986889733847265 + }, + { + "lat": 51.64024497323662, + "tiploc": "RCKMNSW", + "name": "Rickmansworth", + "crs": "RIC", + "toc": "LT", + "lon": -0.4732825086739239 + }, + { + "lat": 51.55232335996688, + "tiploc": "WMBYDC", + "name": "Wembley Central", + "crs": "WMB", + "toc": "LT", + "lon": -0.2964328588567176 + }, + { + "lat": 51.21154515562209, + "tiploc": "ANDOVER", + "name": "Andover", + "crs": "ADV", + "toc": "SW", + "lon": -1.4922329378035202 + }, + { + "lat": 51.48101144482848, + "tiploc": "PURFLET", + "name": "Purfleet", + "crs": "PFL", + "toc": "CC", + "lon": 0.23676693087116327 + }, + { + "lat": 52.96980182498278, + "tiploc": "SWSHEAD", + "name": "Swineshead", + "crs": "SWE", + "toc": "EM", + "lon": -0.18716743119072277 + }, + { + "lat": 53.20424109292062, + "tiploc": "SHRBROK", + "name": "Shirebrook", + "crs": "SHB", + "toc": "EM", + "lon": -1.202440565432625 + }, + { + "lat": 51.447368746153835, + "tiploc": "DARTFD", + "name": "Dartford", + "crs": "DFD", + "toc": "SE", + "lon": 0.2192478038681272 + }, + { + "lat": 51.51183311984752, + "tiploc": "HANWELL", + "name": "Hanwell", + "crs": "HAN", + "toc": "GW", + "lon": -0.3385834931562813 + }, + { + "lat": 50.84606775891297, + "tiploc": "NUTBBUS", + "name": "Nutbourne", + "crs": "NUT", + "toc": "SN", + "lon": -0.8829455368610173 + }, + { + "lat": 51.57099165243804, + "tiploc": "MARLOW", + "name": "Marlow", + "crs": "MLW", + "toc": "GW", + "lon": -0.7664307508031057 + }, + { + "lat": 50.85344399038104, + "tiploc": "WRBLNGT", + "name": "Warblington", + "crs": "WBL", + "toc": "SN", + "lon": -0.9671563878613345 + }, + { + "lat": 51.52117790399521, + "tiploc": "RHIWBNA", + "name": "Rhiwbina", + "crs": "RHI", + "toc": "AW", + "lon": -3.2139650800245643 + }, + { + "lat": 51.478846145810465, + "tiploc": "DEPTFD", + "name": "Deptford", + "crs": "DEP", + "toc": "SE", + "lon": -0.02627020864664817 + }, + { + "lat": 0.0, + "tiploc": "MRLBHST", + "name": "Marlborough (Bus)", + "crs": "XBH", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 55.942024732324626, + "tiploc": "CMBRNLD", + "name": "Cumbernauld", + "crs": "CUB", + "toc": "SR", + "lon": -3.980334288052051 + }, + { + "lat": 51.165712206059304, + "tiploc": "HEADCRN", + "name": "Headcorn", + "crs": "HCN", + "toc": "SE", + "lon": 0.6274817431382238 + }, + { + "lat": 52.656538484088884, + "tiploc": "LNDYW", + "name": "Landywood", + "crs": "LAW", + "toc": "LM", + "lon": -2.0207276893451533 + }, + { + "lat": 53.54504070458675, + "tiploc": "TRNO", + "name": "Thurnscoe", + "crs": "THC", + "toc": "NT", + "lon": -1.308783654047214 + }, + { + "lat": 50.86636128966634, + "tiploc": "CHETNOL", + "name": "Chetnole", + "crs": "CNO", + "toc": "GW", + "lon": -2.5729255610258117 + }, + { + "lat": 55.833283948764056, + "tiploc": "CROSSHL", + "name": "Crosshill", + "crs": "COI", + "toc": "SR", + "lon": -4.256811226797742 + }, + { + "lat": 51.022123245833356, + "tiploc": "SHAWFD", + "name": "Shawford", + "crs": "SHW", + "toc": "SW", + "lon": -1.3277738023764432 + }, + { + "lat": 51.615538905412606, + "tiploc": "BGLAN", + "name": "Baglan", + "crs": "BAJ", + "toc": "AW", + "lon": -3.8111356916145334 + }, + { + "lat": 51.39245785234889, + "tiploc": "SURBITN", + "name": "Surbiton", + "crs": "SUR", + "toc": "SW", + "lon": -0.3039585518620104 + }, + { + "lat": 55.47027187053148, + "tiploc": "ACHILCK", + "name": "Auchinleck", + "crs": "AUK", + "toc": "SR", + "lon": -4.2953491225918 + }, + { + "lat": 53.48483823515415, + "tiploc": "KRTNLND", + "name": "Kirton Lindsey", + "crs": "KTL", + "toc": "NT", + "lon": -0.5939134147243593 + }, + { + "lat": 52.041534691308726, + "tiploc": "LDLNGTN", + "name": "Lidlington", + "crs": "LID", + "toc": "LM", + "lon": -0.558928378154838 + }, + { + "lat": 55.96037742056812, + "tiploc": "CDRS", + "name": "Cardross", + "crs": "CDR", + "toc": "SR", + "lon": -4.653073140664795 + }, + { + "lat": 51.481783140993294, + "tiploc": "SYONLA", + "name": "Syon Lane", + "crs": "SYL", + "toc": "SW", + "lon": -0.32484190470212915 + }, + { + "lat": 53.46479800310708, + "tiploc": "HYDEN", + "name": "Hyde North", + "crs": "HYT", + "toc": "NT", + "lon": -2.085456838239302 + }, + { + "lat": 51.56752161439187, + "tiploc": "LAINDON", + "name": "Laindon", + "crs": "LAI", + "toc": "CC", + "lon": 0.4242889247821993 + }, + { + "lat": 0.0, + "tiploc": "SANWBUS", + "name": "St Andrews (Bus)", + "crs": "SAO", + "toc": "SR", + "lon": 0.0 + }, + { + "lat": 51.53150979933159, + "tiploc": "HOXTON", + "name": "Hoxton", + "crs": "HOX", + "toc": "LO", + "lon": -0.07568157055471507 + }, + { + "lat": 51.465689856742266, + "tiploc": "LEWISHM", + "name": "Lewisham", + "crs": "LEW", + "toc": "SE", + "lon": -0.01402441814284706 + }, + { + "lat": 51.26835516454522, + "tiploc": "BSNGSEB", + "name": "Basingstoke", + "crs": "BSK", + "toc": "SW", + "lon": -1.0872637584233416 + }, + { + "lat": 51.112211934491015, + "tiploc": "CRAWLEY", + "name": "Crawley", + "crs": "CRW", + "toc": "SN", + "lon": -0.1866729282450407 + }, + { + "lat": 50.817719380969976, + "tiploc": "GORNGBS", + "name": "Goring-by-Sea", + "crs": "GBS", + "toc": "SN", + "lon": -0.4330831000472915 + }, + { + "lat": 51.30338496679747, + "tiploc": "WHYTLFS", + "name": "Whyteleafe South", + "crs": "WHS", + "toc": "SN", + "lon": -0.0769177272479134 + }, + { + "lat": 52.47972007923267, + "tiploc": "MRKTHRB", + "name": "Market Harborough", + "crs": "MHR", + "toc": "EM", + "lon": -0.9093322199287176 + }, + { + "lat": 52.52828250226662, + "tiploc": "ERDNGTN", + "name": "Erdington", + "crs": "ERD", + "toc": "LM", + "lon": -1.8395088884828819 + }, + { + "lat": 53.55940088717334, + "tiploc": "GATHRST", + "name": "Gathurst", + "crs": "GST", + "toc": "NT", + "lon": -2.694393169739969 + }, + { + "lat": 0.0, + "tiploc": "OKHMGOP", + "name": "Okehampton (Bus)", + "crs": "XCG", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.49386957472026, + "tiploc": "LGRN", + "name": "Langley Green", + "crs": "LGG", + "toc": "LM", + "lon": -2.004964047756738 + }, + { + "lat": 51.25429201062932, + "tiploc": "OVTNVPO", + "name": "Overton", + "crs": "OVR", + "toc": "SW", + "lon": -1.2592676033460328 + }, + { + "lat": 51.43805772545971, + "tiploc": "NWELTHM", + "name": "New Eltham", + "crs": "NEH", + "toc": "SE", + "lon": 0.07053317160080035 + }, + { + "lat": 50.922187692919124, + "tiploc": "STDENYS", + "name": "St Denys", + "crs": "SDN", + "toc": "SW", + "lon": -1.3877591603101767 + }, + { + "lat": 51.44021628879491, + "tiploc": "MOTNGHM", + "name": "Mottingham", + "crs": "MTG", + "toc": "SE", + "lon": 0.05005395079142224 + }, + { + "lat": 51.24973311931952, + "tiploc": "WTRNGBY", + "name": "Wateringbury", + "crs": "WTR", + "toc": "SE", + "lon": 0.422466498221319 + }, + { + "lat": 51.467106795236575, + "tiploc": "CARDFBR", + "name": "Cardiff Bay", + "crs": "CDB", + "toc": "AW", + "lon": -3.1664028552755012 + }, + { + "lat": 50.78667510169609, + "tiploc": "FENITON", + "name": "Feniton", + "crs": "FNT", + "toc": "SW", + "lon": -3.2854176613293653 + }, + { + "lat": 53.02375674464935, + "tiploc": "BELPER", + "name": "Belper", + "crs": "BLP", + "toc": "EM", + "lon": -1.4825103672764781 + }, + { + "lat": 53.325771497030644, + "tiploc": "HATHRSG", + "name": "Hathersage", + "crs": "HSG", + "toc": "NT", + "lon": -1.6517186245381683 + }, + { + "lat": 51.978056, + "tiploc": "HOEKVHL", + "name": "Hoek Van Holland", + "crs": "HVH", + "toc": "ZF", + "lon": 4.128333 + }, + { + "lat": 0.0, + "tiploc": "LAUNWST", + "name": "Launceston (Bus)", + "crs": "XAZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.39089878046411, + "tiploc": "DAVNPRT", + "name": "Davenport", + "crs": "DVN", + "toc": "NT", + "lon": -2.152957753419366 + }, + { + "lat": 51.458009548522874, + "tiploc": "LAWRNCH", + "name": "Lawrence Hill", + "crs": "LWH", + "toc": "GW", + "lon": -2.564429678549995 + }, + { + "lat": 58.441568074555946, + "tiploc": "WICK", + "name": "Wick", + "crs": "WCK", + "toc": "SR", + "lon": -3.096858696365006 + }, + { + "lat": 53.72686489390784, + "tiploc": "BMBRBDG", + "name": "Bamber Bridge", + "crs": "BMB", + "toc": "NT", + "lon": -2.6607749586701237 + }, + { + "lat": 54.376957768533515, + "tiploc": "DRIGG", + "name": "Drigg", + "crs": "DRI", + "toc": "NT", + "lon": -3.4434129256189836 + }, + { + "lat": 53.54280538461706, + "tiploc": "TOWNGRN", + "name": "Town Green", + "crs": "TWN", + "toc": "ME", + "lon": -2.9044865534346473 + }, + { + "lat": 51.355477066080425, + "tiploc": "CHEAM", + "name": "Cheam", + "crs": "CHE", + "toc": "SN", + "lon": -0.21416751546037838 + }, + { + "lat": 52.21489325279996, + "tiploc": "SXMNDHM", + "name": "Saxmundham", + "crs": "SAX", + "toc": "LE", + "lon": 1.4901648923647661 + }, + { + "lat": 53.5064683639546, + "tiploc": "MAGHULL", + "name": "Maghull", + "crs": "MAG", + "toc": "ME", + "lon": -2.9308528915691827 + }, + { + "lat": 53.99899732123943, + "tiploc": "STARBCK", + "name": "Starbeck", + "crs": "SBE", + "toc": "NT", + "lon": -1.5011296550037452 + }, + { + "lat": 52.59513484784047, + "tiploc": "MCHYNLT", + "name": "Machynlleth", + "crs": "MCN", + "toc": "AW", + "lon": -3.8545273842146517 + }, + { + "lat": 55.862504351284386, + "tiploc": "COATBDC", + "name": "Coatbridge Central", + "crs": "CBC", + "toc": "SR", + "lon": -4.031896720454755 + }, + { + "lat": 56.493148143985124, + "tiploc": "BRRYLNK", + "name": "Barry Links", + "crs": "BYL", + "toc": "SR", + "lon": -2.7454417165261353 + }, + { + "lat": 54.12765763574252, + "tiploc": "BEMPTON", + "name": "Bempton", + "crs": "BEM", + "toc": "NT", + "lon": -0.180456836720207 + }, + { + "lat": 51.21432116679862, + "tiploc": "SHALFD", + "name": "Shalford", + "crs": "SFR", + "toc": "GW", + "lon": -0.5668037592993374 + }, + { + "lat": 51.62888169105425, + "tiploc": "BILERCY", + "name": "Billericay", + "crs": "BIC", + "toc": "LE", + "lon": 0.41862962710619933 + }, + { + "lat": 51.87538969144335, + "tiploc": "BRAINTR", + "name": "Braintree", + "crs": "BTR", + "toc": "LE", + "lon": 0.5566870077648775 + }, + { + "lat": 51.47476099269291, + "tiploc": "ISLEWTH", + "name": "Isleworth", + "crs": "ISL", + "toc": "SW", + "lon": -0.33690679277695906 + }, + { + "lat": 51.96206027284562, + "tiploc": "HRLG", + "name": "Harlington", + "crs": "HLN", + "toc": "TL", + "lon": -0.4956899234318452 + }, + { + "lat": 53.59408553234575, + "tiploc": "STKSMR", + "name": "Stocksmoor", + "crs": "SSM", + "toc": "NT", + "lon": -1.7232478640409987 + }, + { + "lat": 51.70351676497267, + "tiploc": "GTMSNDN", + "name": "Great Missenden", + "crs": "GMN", + "toc": "CH", + "lon": -0.7091410624697992 + }, + { + "lat": 52.27726227886467, + "tiploc": "KENNETT", + "name": "Kennett", + "crs": "KNE", + "toc": "LE", + "lon": 0.4904644240943126 + }, + { + "lat": 50.71942631137599, + "tiploc": "POOLE", + "name": "Poole", + "crs": "POO", + "toc": "SW", + "lon": -1.9833175090030806 + }, + { + "lat": 52.91801755668724, + "tiploc": "RGHTNRD", + "name": "Roughton Road", + "crs": "RNR", + "toc": "LE", + "lon": 1.299794088509385 + }, + { + "lat": 53.924762718863256, + "tiploc": "ILKLEY", + "name": "Ilkley", + "crs": "ILK", + "toc": "NT", + "lon": -1.82202750252926 + }, + { + "lat": 50.79696059300257, + "tiploc": "PHBR", + "name": "Portsmouth Harbour", + "crs": "PMH", + "toc": "SW", + "lon": -1.1078402176271482 + }, + { + "lat": 51.46838451455308, + "tiploc": "REDLAND", + "name": "Redland", + "crs": "RDA", + "toc": "GW", + "lon": -2.5991234065466124 + }, + { + "lat": 58.356898851675936, + "tiploc": "FORSNRD", + "name": "Forsinard", + "crs": "FRS", + "toc": "SR", + "lon": -3.896880248955856 + }, + { + "lat": 51.58645908865896, + "tiploc": "HRNSY", + "name": "Hornsey", + "crs": "HRN", + "toc": "GN", + "lon": -0.11197505929068735 + }, + { + "lat": 52.44198025355933, + "tiploc": "SELYOAK", + "name": "Selly Oak", + "crs": "SLY", + "toc": "LM", + "lon": -1.9358142227237407 + }, + { + "lat": 51.25790633727494, + "tiploc": "OXTED", + "name": "Oxted", + "crs": "OXT", + "toc": "SN", + "lon": -0.004833575342926261 + }, + { + "lat": 55.8668327241547, + "tiploc": "COATBDS", + "name": "Coatbridge Sunnyside", + "crs": "CBS", + "toc": "SR", + "lon": -4.02828705312099 + }, + { + "lat": 52.56541012370724, + "tiploc": "WYMNDHM", + "name": "Wymondham", + "crs": "WMD", + "toc": "LE", + "lon": 1.118025400991784 + }, + { + "lat": 51.33339043178732, + "tiploc": "TEYNDVC", + "name": "Teynham", + "crs": "TEY", + "toc": "SE", + "lon": 0.8074255287095726 + }, + { + "lat": 53.69741920793611, + "tiploc": "BARWHVN", + "name": "Barrow Haven", + "crs": "BAV", + "toc": "NT", + "lon": -0.3929552256248345 + }, + { + "lat": 51.67202980533984, + "tiploc": "BYNEA", + "name": "Bynea", + "crs": "BYE", + "toc": "AW", + "lon": -4.098880660327368 + }, + { + "lat": 55.69615369248066, + "tiploc": "WKILBRD", + "name": "West Kilbride", + "crs": "WKB", + "toc": "SR", + "lon": -4.851745475421279 + }, + { + "lat": 50.81683921637205, + "tiploc": "BKNHRST", + "name": "Brockenhurst", + "crs": "BCU", + "toc": "SW", + "lon": -1.5735310242111957 + }, + { + "lat": 51.401959959119075, + "tiploc": "ALDMSTN", + "name": "Aldermaston", + "crs": "AMT", + "toc": "GW", + "lon": -1.1374238473102631 + }, + { + "lat": 55.924518292611715, + "tiploc": "LGBK", + "name": "Langbank", + "crs": "LGB", + "toc": "SR", + "lon": -4.585274457988717 + }, + { + "lat": 53.40856051293236, + "tiploc": "MORFNL", + "name": "Moorfields", + "crs": "MRF", + "toc": "ME", + "lon": -2.9891877509386093 + }, + { + "lat": 50.79696059300257, + "tiploc": "POMOHSP", + "name": "Portsmouth Harbour", + "crs": "PMH", + "toc": "SW", + "lon": -1.1078402176271482 + }, + { + "lat": 54.11516337082187, + "tiploc": "ROOSE", + "name": "Roose", + "crs": "ROO", + "toc": "NT", + "lon": -3.194568648548293 + }, + { + "lat": 58.17080903824734, + "tiploc": "KILDONN", + "name": "Kildonan", + "crs": "KIL", + "toc": "SR", + "lon": -3.8691060743999692 + }, + { + "lat": 56.002932479098575, + "tiploc": "BALLOCH", + "name": "Balloch", + "crs": "BHC", + "toc": "SR", + "lon": -4.583485347263787 + }, + { + "lat": 51.85652843881759, + "tiploc": "WIVENHO", + "name": "Wivenhoe", + "crs": "WIV", + "toc": "LE", + "lon": 0.9561376277050972 + }, + { + "lat": 54.45767840073483, + "tiploc": "BTRSBY", + "name": "Battersby", + "crs": "BTT", + "toc": "NT", + "lon": -1.092971789087036 + }, + { + "lat": 55.81766712500752, + "tiploc": "CCRT", + "name": "Cathcart", + "crs": "CCT", + "toc": "SR", + "lon": -4.260536014752955 + }, + { + "lat": 52.861326737316254, + "tiploc": "HRLC", + "name": "Harlech", + "crs": "HRL", + "toc": "AW", + "lon": -4.109190404610749 + }, + { + "lat": 0.0, + "tiploc": "WSTBSTA", + "name": "Westbury (Bus)", + "crs": "XDS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.77977438707303, + "tiploc": "RMSWILP", + "name": "Ramsgreave & Wilpshire", + "crs": "RGW", + "toc": "NT", + "lon": -2.478135231534168 + }, + { + "lat": 50.964294827135, + "tiploc": "WVLSFLD", + "name": "Wivelsfield", + "crs": "WVF", + "toc": "SN", + "lon": -0.12079001253663456 + }, + { + "lat": 51.46938893808623, + "tiploc": "STJOHNS", + "name": "St Johns", + "crs": "SAJ", + "toc": "SE", + "lon": -0.022718822929253615 + }, + { + "lat": 53.363742039561004, + "tiploc": "WDHOUSE", + "name": "Woodhouse", + "crs": "WDH", + "toc": "NT", + "lon": -1.3575534534212303 + }, + { + "lat": 0.0, + "tiploc": "PBROCOR", + "name": "Corby George Street (Bus)", + "crs": "CBZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.54943005360448, + "tiploc": "FRSTGT", + "name": "Forest Gate", + "crs": "FOG", + "toc": "XR", + "lon": 0.02435282274912169 + }, + { + "lat": 53.24175661750373, + "tiploc": "HARTFD", + "name": "Hartford", + "crs": "HTF", + "toc": "LM", + "lon": -2.5536294064202605 + }, + { + "lat": 51.43174575044785, + "tiploc": "WNORWOD", + "name": "West Norwood", + "crs": "WNW", + "toc": "SN", + "lon": -0.1038299897800983 + }, + { + "lat": 53.35874733451682, + "tiploc": "CRSNGTN", + "name": "Cressington", + "crs": "CSG", + "toc": "ME", + "lon": -2.912002836320792 + }, + { + "lat": 51.7458859587636, + "tiploc": "STNHPO", + "name": "Stonehouse", + "crs": "SHU", + "toc": "GW", + "lon": -2.2794985053444314 + }, + { + "lat": 53.69625823784833, + "tiploc": "WDEN", + "name": "Walsden", + "crs": "WDN", + "toc": "NT", + "lon": -2.10446403358227 + }, + { + "lat": 0.0, + "tiploc": "DNSRSTP", + "name": "Dunster (Bus)", + "crs": "XDY", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.75047133880028, + "tiploc": "STALBCY", + "name": "St Albans", + "crs": "SAC", + "toc": "TL", + "lon": -0.32753829456350386 + }, + { + "lat": 55.85369045498843, + "tiploc": "WHIFLET", + "name": "Whifflet", + "crs": "WFF", + "toc": "SR", + "lon": -4.018655095177306 + }, + { + "lat": 53.76470958063962, + "tiploc": "HOWDEN", + "name": "Howden", + "crs": "HOW", + "toc": "NT", + "lon": -0.8604630517806611 + }, + { + "lat": 53.7499219548284, + "tiploc": "MRLY", + "name": "Morley", + "crs": "MLY", + "toc": "NT", + "lon": -1.5909767328348539 + }, + { + "lat": 53.09300170113358, + "tiploc": "ALSAGER", + "name": "Alsager", + "crs": "ASG", + "toc": "EM", + "lon": -2.299057527860423 + }, + { + "lat": 52.39641653044746, + "tiploc": "LONB", + "name": "Longbridge", + "crs": "LOB", + "toc": "LM", + "lon": -1.9812915374608553 + }, + { + "lat": 53.51734405928839, + "tiploc": "WOMBWEL", + "name": "Wombwell", + "crs": "WOM", + "toc": "NT", + "lon": -1.4161625113462808 + }, + { + "lat": 0.0, + "tiploc": "HNSTNTN", + "name": "Hunstanton (Bus)", + "crs": "HUS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.37903598027012, + "tiploc": "MSLH", + "name": "Mossley Hill", + "crs": "MSH", + "toc": "NT", + "lon": -2.91544299343646 + }, + { + "lat": 51.5832110905272, + "tiploc": "ERGNCHP", + "name": "Energlyn & Churchill Park", + "crs": "ECP", + "toc": "AW", + "lon": -3.2287954521508535 + }, + { + "lat": 51.49402690998356, + "tiploc": "ELPHNAC", + "name": "Elephant & Castle", + "crs": "EPH", + "toc": "TL", + "lon": -0.09872557058357602 + }, + { + "lat": 51.45549922739157, + "tiploc": "REDGWST", + "name": "Reading West", + "crs": "RDW", + "toc": "GW", + "lon": -0.9901293231371543 + }, + { + "lat": 55.881801388043755, + "tiploc": "ESKBANK", + "name": "Eskbank", + "crs": "EKB", + "toc": "SR", + "lon": -3.083072991413753 + }, + { + "lat": 51.11163719933177, + "tiploc": "BRUTON", + "name": "Bruton", + "crs": "BRU", + "toc": "GW", + "lon": -2.447073460295349 + }, + { + "lat": 51.83259174099203, + "tiploc": "COMBE", + "name": "Combe", + "crs": "CME", + "toc": "GW", + "lon": -1.394073218318579 + }, + { + "lat": 53.55130856740928, + "tiploc": "MLSHILL", + "name": "Mills Hill", + "crs": "MIH", + "toc": "NT", + "lon": -2.171512768432471 + }, + { + "lat": 51.59936839353285, + "tiploc": "PTYPRID", + "name": "Pontypridd", + "crs": "PPD", + "toc": "AW", + "lon": -3.341374665062448 + }, + { + "lat": 52.508657523064976, + "tiploc": "SNDWDUD", + "name": "Sandwell & Dudley", + "crs": "SAD", + "toc": "LM", + "lon": -2.0115959553372256 + }, + { + "lat": 0.0, + "tiploc": "CRGURE", + "name": "Craignure, Mull (Bus)", + "crs": "CRU", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.73210441331106, + "tiploc": "KILGETY", + "name": "Kilgetty", + "crs": "KGT", + "toc": "AW", + "lon": -4.7151556055344 + }, + { + "lat": 51.449142181782044, + "tiploc": "BRSTLTM", + "name": "Bristol Temple Meads", + "crs": "BRI", + "toc": "RT", + "lon": -2.5813152338125662 + }, + { + "lat": 51.603554192579594, + "tiploc": "HOCKLEY", + "name": "Hockley", + "crs": "HOC", + "toc": "LE", + "lon": 0.6590010947587442 + }, + { + "lat": 52.820849105851316, + "tiploc": "LBDR", + "name": "Llanbedr", + "crs": "LBR", + "toc": "AW", + "lon": -4.110197336573351 + }, + { + "lat": 51.614111707848735, + "tiploc": "NEWSGAT", + "name": "New Southgate", + "crs": "NSG", + "toc": "GN", + "lon": -0.1430379053816086 + }, + { + "lat": 51.580595869624034, + "tiploc": "DENHMGC", + "name": "Denham Golf Club", + "crs": "DGC", + "toc": "CH", + "lon": -0.5177866621504909 + }, + { + "lat": 50.15032869245624, + "tiploc": "PENMERE", + "name": "Penmere", + "crs": "PNM", + "toc": "GW", + "lon": -5.083192487572821 + }, + { + "lat": 53.417464598872435, + "tiploc": "MEADWHL", + "name": "Meadowhall", + "crs": "MHS", + "toc": "NT", + "lon": -1.4128514966433925 + }, + { + "lat": 53.349249539786015, + "tiploc": "PSLT", + "name": "Port Sunlight", + "crs": "PSL", + "toc": "ME", + "lon": -2.998029096713107 + }, + { + "lat": 50.59870875719702, + "tiploc": "DAWLSHW", + "name": "Dawlish Warren", + "crs": "DWW", + "toc": "GW", + "lon": -3.4435614341009244 + }, + { + "lat": 55.97042996896657, + "tiploc": "RENTON", + "name": "Renton", + "crs": "RTN", + "toc": "SR", + "lon": -4.5861256483864095 + }, + { + "lat": 52.98344016412939, + "tiploc": "BRTJYC", + "name": "Burton Joyce", + "crs": "BUJ", + "toc": "EM", + "lon": -1.040877548270448 + }, + { + "lat": 51.24442878028358, + "tiploc": "HRSTGRN", + "name": "Hurst Green", + "crs": "HUR", + "toc": "SN", + "lon": 0.00393932966230098 + }, + { + "lat": 51.99286938028391, + "tiploc": "BALDOCK", + "name": "Baldock", + "crs": "BDK", + "toc": "GN", + "lon": -0.18756374634001644 + }, + { + "lat": 51.50806049702241, + "tiploc": "LANGTCR", + "name": "Langley", + "crs": "LNY", + "toc": "GW", + "lon": -0.5417561473932335 + }, + { + "lat": 51.64557976173152, + "tiploc": "BUSHYDC", + "name": "Bushey", + "crs": "BSH", + "toc": "LO", + "lon": -0.384749143235515 + }, + { + "lat": 52.60410693456725, + "tiploc": "DOWNHAM", + "name": "Downham Market", + "crs": "DOW", + "toc": "GN", + "lon": 0.36568107160787816 + }, + { + "lat": 57.07778105889898, + "tiploc": "KGUSSIE", + "name": "Kingussie", + "crs": "KIN", + "toc": "SR", + "lon": -4.052192174710323 + }, + { + "lat": 54.96578706526013, + "tiploc": "BLAYDON", + "name": "Blaydon", + "crs": "BLO", + "toc": "NT", + "lon": -1.7125807130572366 + }, + { + "lat": 52.564357024833626, + "tiploc": "DOVYJN", + "name": "Dovey Junction", + "crs": "DVY", + "toc": "AW", + "lon": -3.9239020699414056 + }, + { + "lat": 52.74933397083148, + "tiploc": "BAROWOS", + "name": "Barrow Upon Soar", + "crs": "BWS", + "toc": "EM", + "lon": -1.1448429781761056 + }, + { + "lat": 55.93635249675491, + "tiploc": "STHGYLE", + "name": "South Gyle", + "crs": "SGL", + "toc": "SR", + "lon": -3.299476129158007 + }, + { + "lat": 51.52074872161017, + "tiploc": "WHCH", + "name": "Whitchurch (Glamorgan)", + "crs": "WHT", + "toc": "AW", + "lon": -3.223250329369723 + }, + { + "lat": 0.0, + "tiploc": "TVSTBUS", + "name": "Tavistock (Bus)", + "crs": "XCV", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.26650555722681, + "tiploc": "ACBG", + "name": "Acton Bridge", + "crs": "ACB", + "toc": "LM", + "lon": -2.6031265072669565 + }, + { + "lat": 51.4935053, + "tiploc": "HAMDLUL", + "name": "Hammersmith Underground", + "crs": "ZHA", + "toc": "LT", + "lon": -0.2248937 + }, + { + "lat": 51.939507321913176, + "tiploc": "WRABNES", + "name": "Wrabness", + "crs": "WRB", + "toc": "LE", + "lon": 1.171497992952505 + }, + { + "lat": 56.01249964283203, + "tiploc": "NQNSFRY", + "name": "North Queensferry", + "crs": "NQU", + "toc": "SR", + "lon": -3.3945845568474677 + }, + { + "lat": 53.222555635945916, + "tiploc": "TYCROES", + "name": "Ty Croes", + "crs": "TYC", + "toc": "AW", + "lon": -4.474732672019603 + }, + { + "lat": 52.9876856271343, + "tiploc": "ANCASTR", + "name": "Ancaster", + "crs": "ANC", + "toc": "EM", + "lon": -0.5356237126810014 + }, + { + "lat": 0.0, + "tiploc": "MENSTOB", + "name": "Otley Bus Station", + "crs": "OTL", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.43739897520659, + "tiploc": "NBTN", + "name": "New Brighton", + "crs": "NBN", + "toc": "ME", + "lon": -3.0479646423889917 + }, + { + "lat": 0.0, + "tiploc": "COLL", + "name": "Coll (Bus)", + "crs": "CLO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.97731595531982, + "tiploc": "HCKNGTN", + "name": "Heckington", + "crs": "HEC", + "toc": "EM", + "lon": -0.2939444265595075 + }, + { + "lat": 50.404052550936896, + "tiploc": "QNTRLDW", + "name": "Quintrell Downs", + "crs": "QUI", + "toc": "GW", + "lon": -5.028491230701886 + }, + { + "lat": 51.55441377021311, + "tiploc": "WEMBLSM", + "name": "Wembley Stadium", + "crs": "WCX", + "toc": "CH", + "lon": -0.28560829697046425 + }, + { + "lat": 52.474435411197284, + "tiploc": "LOWSTFT", + "name": "Lowestoft", + "crs": "LWT", + "toc": "LE", + "lon": 1.749707879976239 + }, + { + "lat": 56.68604495710254, + "tiploc": "RANNOCH", + "name": "Rannoch", + "crs": "RAN", + "toc": "SR", + "lon": -4.576869570309894 + }, + { + "lat": 53.02894145945124, + "tiploc": "THRGRTN", + "name": "Thurgarton", + "crs": "THU", + "toc": "EM", + "lon": -0.9622569826389294 + }, + { + "lat": 50.497795218786415, + "tiploc": "CALSTCK", + "name": "Calstock", + "crs": "CSK", + "toc": "GW", + "lon": -4.2089874599166714 + }, + { + "lat": 51.74461993264113, + "tiploc": "MERTHYR", + "name": "Merthyr Tydfil", + "crs": "MER", + "toc": "AW", + "lon": -3.377250348479283 + }, + { + "lat": 55.78303644495591, + "tiploc": "NEILSTN", + "name": "Neilston", + "crs": "NEI", + "toc": "SR", + "lon": -4.426952193024858 + }, + { + "lat": 57.56175084526406, + "tiploc": "CONONBR", + "name": "Conon Bridge", + "crs": "CBD", + "toc": "SR", + "lon": -4.44040529467032 + }, + { + "lat": 57.98553306787981, + "tiploc": "DNROBIN", + "name": "Dunrobin Castle", + "crs": "DNO", + "toc": "SR", + "lon": -3.948920846999143 + }, + { + "lat": 53.648500697334256, + "tiploc": "HDRSFLD", + "name": "Huddersfield", + "crs": "HUD", + "toc": "TP", + "lon": -1.7846902087574927 + }, + { + "lat": 51.56523090628251, + "tiploc": "STKNWNG", + "name": "Stoke Newington", + "crs": "SKW", + "toc": "LO", + "lon": -0.07288742776240566 + }, + { + "lat": 56.91254514206759, + "tiploc": "ARISAIG", + "name": "Arisaig", + "crs": "ARG", + "toc": "SR", + "lon": -5.8390775911400645 + }, + { + "lat": 53.28009994316907, + "tiploc": "CONWY", + "name": "Conwy", + "crs": "CNW", + "toc": "AW", + "lon": -3.830524137960213 + }, + { + "lat": 53.89233727826788, + "tiploc": "MENSTON", + "name": "Menston", + "crs": "MNN", + "toc": "NT", + "lon": -1.7355100580289875 + }, + { + "lat": 55.84106585779766, + "tiploc": "PLKLHDE", + "name": "Pollokshields East", + "crs": "PLE", + "toc": "SR", + "lon": -4.268602782364022 + }, + { + "lat": 0.0, + "tiploc": "BDICK", + "name": "Brodick (Bus)", + "crs": "BDC", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.24235790914998, + "tiploc": "LLDODW", + "name": "Llandrindod", + "crs": "LLO", + "toc": "AW", + "lon": -3.3791379017153305 + }, + { + "lat": 0.0, + "tiploc": "WITYNE", + "name": "Witney Market Place (Bus)", + "crs": "WMP", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 56.836346270675264, + "tiploc": "LRNCKRK", + "name": "Laurencekirk", + "crs": "LAU", + "toc": "SR", + "lon": -2.4659255626159795 + }, + { + "lat": 53.51497691776964, + "tiploc": "MOSSLEY", + "name": "Mossley", + "crs": "MSL", + "toc": "NT", + "lon": -2.041281914726495 + }, + { + "lat": 53.79715048419647, + "tiploc": "SHBN", + "name": "Sherburn-in-Elmet", + "crs": "SIE", + "toc": "NT", + "lon": -1.2326844251738298 + }, + { + "lat": 51.53197083162409, + "tiploc": "CAMHTH", + "name": "Cambridge Heath", + "crs": "CBH", + "toc": "LO", + "lon": -0.05727906104402057 + }, + { + "lat": 51.53727562089934, + "tiploc": "KLBRNHR", + "name": "Kilburn High Road", + "crs": "KBN", + "toc": "LO", + "lon": -0.1922374917313329 + }, + { + "lat": 51.43386823736487, + "tiploc": "SIDCUP", + "name": "Sidcup", + "crs": "SID", + "toc": "SE", + "lon": 0.103794573085056 + }, + { + "lat": 51.44789655929224, + "tiploc": "FELTHAM", + "name": "Feltham", + "crs": "FEL", + "toc": "SW", + "lon": -0.40983822608523196 + }, + { + "lat": 52.91840863156702, + "tiploc": "CRICCTH", + "name": "Criccieth", + "crs": "CCC", + "toc": "AW", + "lon": -4.237511840597323 + }, + { + "lat": 51.58037038533973, + "tiploc": "STOTNHM", + "name": "South Tottenham", + "crs": "STO", + "toc": "LO", + "lon": -0.07210266983418818 + }, + { + "lat": 50.68163609187993, + "tiploc": "WOOL", + "name": "Wool", + "crs": "WOO", + "toc": "SW", + "lon": -2.221459855593553 + }, + { + "lat": 55.962317708954394, + "tiploc": "GOUROCK", + "name": "Gourock", + "crs": "GRK", + "toc": "SR", + "lon": -4.8166576176577465 + }, + { + "lat": 51.82103359614473, + "tiploc": "LLDYBIE", + "name": "Llandybie", + "crs": "LLI", + "toc": "AW", + "lon": -4.003647196834895 + }, + { + "lat": 50.779269425678294, + "tiploc": "AXMNSSA", + "name": "Axminster", + "crs": "AXM", + "toc": "SW", + "lon": -3.0047230656376973 + }, + { + "lat": 51.49815740520126, + "tiploc": "WARGRAV", + "name": "Wargrave", + "crs": "WGV", + "toc": "GW", + "lon": -0.8765166844487325 + }, + { + "lat": 52.53106676178153, + "tiploc": "HAMSTED", + "name": "Hamstead", + "crs": "HSD", + "toc": "LM", + "lon": -1.9289777181858643 + }, + { + "lat": 55.837698226205625, + "tiploc": "PLKLHDW", + "name": "Pollokshields West", + "crs": "PLW", + "toc": "SR", + "lon": -4.275753350169875 + }, + { + "lat": 50.840376344605374, + "tiploc": "BERWICK", + "name": "Berwick (Sussex)", + "crs": "BRK", + "toc": "SN", + "lon": 0.16601761622781203 + }, + { + "lat": 53.75051894082849, + "tiploc": "CHOS", + "name": "Church & Oswaldtwistle", + "crs": "CTW", + "toc": "NT", + "lon": -2.3912118511199556 + }, + { + "lat": 45.6168981, + "tiploc": "BORGSTM", + "name": "Bourg St Maurice", + "crs": "XIB", + "toc": "ES", + "lon": 6.7734105 + }, + { + "lat": 53.958685244229095, + "tiploc": "SKPT", + "name": "Skipton", + "crs": "SKI", + "toc": "NT", + "lon": -2.0258720691237784 + }, + { + "lat": 52.136185582923986, + "tiploc": "BEDFDM", + "name": "Bedford", + "crs": "BDM", + "toc": "TL", + "lon": -0.4794423617997975 + }, + { + "lat": 53.27467260724958, + "tiploc": "PLUMLEY", + "name": "Plumley", + "crs": "PLM", + "toc": "NT", + "lon": -2.419661725382496 + }, + { + "lat": 50.924746625155294, + "tiploc": "YOVILJN", + "name": "Yeovil Junction", + "crs": "YVJ", + "toc": "SW", + "lon": -2.6124564883696113 + }, + { + "lat": 51.04245920894082, + "tiploc": "DEAN", + "name": "Dean", + "crs": "DEN", + "toc": "GW", + "lon": -1.6348670484386258 + }, + { + "lat": 55.986317614615565, + "tiploc": "DLMY", + "name": "Dalmeny", + "crs": "DAM", + "toc": "SR", + "lon": -3.3816195779071316 + }, + { + "lat": 53.543659818153195, + "tiploc": "WIGANNW", + "name": "Wigan North Western", + "crs": "WGN", + "toc": "VT", + "lon": -2.633273730933068 + }, + { + "lat": 53.01938683541114, + "tiploc": "WRENBRY", + "name": "Wrenbury", + "crs": "WRE", + "toc": "AW", + "lon": -2.5959463328213985 + }, + { + "lat": 51.77548485920765, + "tiploc": "ROYDON", + "name": "Roydon", + "crs": "RYN", + "toc": "LE", + "lon": 0.03625171041586327 + }, + { + "lat": 50.924746625155294, + "tiploc": "YOVILJS", + "name": "Yeovil Junction", + "crs": "YVJ", + "toc": "SW", + "lon": -2.6124564883696113 + }, + { + "lat": 52.89858117260769, + "tiploc": "ABRE", + "name": "Abererch", + "crs": "ABH", + "toc": "AW", + "lon": -4.374175350332273 + }, + { + "lat": 52.45124043088226, + "tiploc": "UNVRSYB", + "name": "University", + "crs": "UNI", + "toc": "LM", + "lon": -1.9366836877020914 + }, + { + "lat": 50.89667819978829, + "tiploc": "AMLY", + "name": "Amberley", + "crs": "AMY", + "toc": "SN", + "lon": -0.5419923859179901 + }, + { + "lat": 0.0, + "tiploc": "TIREE", + "name": "Tiree (Bus)", + "crs": "TEE", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.35740909584514, + "tiploc": "CRSHLTB", + "name": "Carshalton Beeches", + "crs": "CSB", + "toc": "SN", + "lon": -0.16979703783394365 + }, + { + "lat": 51.29149351171419, + "tiploc": "EFNGHMJ", + "name": "Effingham Junction", + "crs": "EFF", + "toc": "SW", + "lon": -0.4199654031708064 + }, + { + "lat": 51.5640243257577, + "tiploc": "SVNKNGS", + "name": "Seven Kings", + "crs": "SVK", + "toc": "XR", + "lon": 0.09710014993767166 + }, + { + "lat": 51.22304220934069, + "tiploc": "DEAL", + "name": "Deal", + "crs": "DEA", + "toc": "SE", + "lon": 1.3988468759706754 + }, + { + "lat": 51.55169106697211, + "tiploc": "WNSTDPK", + "name": "Wanstead Park", + "crs": "WNP", + "toc": "LO", + "lon": 0.02621299375786686 + }, + { + "lat": 52.95154807078071, + "tiploc": "ASLCKTN", + "name": "Aslockton", + "crs": "ALK", + "toc": "EM", + "lon": -0.8980975705095559 + }, + { + "lat": 54.19158278368638, + "tiploc": "ULVRSTN", + "name": "Ulverston", + "crs": "ULV", + "toc": "TP", + "lon": -3.097915124860428 + }, + { + "lat": 0.0, + "tiploc": "LVRPLSG", + "name": "Liverpool Landing Stage", + "crs": "LVS", + "toc": "ZF", + "lon": 0.0 + }, + { + "lat": 53.407306596199135, + "tiploc": "LVRPLSH", + "name": "Liverpool Lime Street", + "crs": "LIV", + "toc": "RT", + "lon": -2.977725996933913 + }, + { + "lat": 0.0, + "tiploc": "NTNBSD", + "name": "Norton Bridge (Bus)", + "crs": "NBS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 58.38814787958891, + "tiploc": "ALTNBRC", + "name": "Altnabreac", + "crs": "ABC", + "toc": "SR", + "lon": -3.706280210337666 + }, + { + "lat": 50.857000687711086, + "tiploc": "LAPFORD", + "name": "Lapford", + "crs": "LAP", + "toc": "GW", + "lon": -3.8106387600721527 + }, + { + "lat": 55.811933938960436, + "tiploc": "NITSH", + "name": "Nitshill", + "crs": "NIT", + "toc": "SR", + "lon": -4.359958616761234 + }, + { + "lat": 51.340802202736725, + "tiploc": "RAMSGTE", + "name": "Ramsgate", + "crs": "RAM", + "toc": "SE", + "lon": 1.4064670157368406 + }, + { + "lat": 0.0, + "tiploc": "AVEBRED", + "name": "Avebury (Bus)", + "crs": "XAF", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.70653569194112, + "tiploc": "KNTNGLY", + "name": "Knottingley", + "crs": "KNO", + "toc": "NT", + "lon": -1.2591781808044296 + }, + { + "lat": 53.407306596199135, + "tiploc": "LVRPLSL", + "name": "Liverpool Lime Street", + "crs": "LIV", + "toc": "RT", + "lon": -2.977725996933913 + }, + { + "lat": 51.36845245305479, + "tiploc": "CRSHLTN", + "name": "Carshalton", + "crs": "CSH", + "toc": "SN", + "lon": -0.16636852925437895 + }, + { + "lat": 50.451274977911226, + "tiploc": "BEREFRS", + "name": "Bere Ferrers", + "crs": "BFE", + "toc": "GW", + "lon": -4.181434153467657 + }, + { + "lat": 52.54395475356752, + "tiploc": "ABDVY", + "name": "Aberdovey", + "crs": "AVY", + "toc": "AW", + "lon": -4.057066994733155 + }, + { + "lat": 50.75008953193563, + "tiploc": "CBRK", + "name": "Cranbrook (Devon)", + "crs": "CBK", + "toc": "SW", + "lon": -3.420415303661956 + }, + { + "lat": 52.70130347190311, + "tiploc": "WELNGTN", + "name": "Wellington (Shropshire)", + "crs": "WLN", + "toc": "LM", + "lon": -2.5171653869463864 + }, + { + "lat": 51.44599053310968, + "tiploc": "COGAN", + "name": "Cogan", + "crs": "CGN", + "toc": "AW", + "lon": -3.189089791180799 + }, + { + "lat": 51.998902358091094, + "tiploc": "ASHCHRC", + "name": "Ashchurch for Tewkesbury", + "crs": "ASC", + "toc": "GW", + "lon": -2.108759945467761 + }, + { + "lat": 51.339649134153966, + "tiploc": "AVNCLFF", + "name": "Avoncliff", + "crs": "AVF", + "toc": "GW", + "lon": -2.281325274061334 + }, + { + "lat": 51.52292867432608, + "tiploc": "CBARPAR", + "name": "Castle Bar Park", + "crs": "CBP", + "toc": "GW", + "lon": -0.33154892925880985 + }, + { + "lat": 50.51608020984431, + "tiploc": "GUNISLK", + "name": "Gunnislake", + "crs": "GSL", + "toc": "GW", + "lon": -4.219405471683249 + }, + { + "lat": 51.40255383979543, + "tiploc": "HCRT", + "name": "Hampton Court", + "crs": "HMC", + "toc": "SW", + "lon": -0.3427477191778498 + }, + { + "lat": 50.37782537158407, + "tiploc": "PLYMTH", + "name": "Plymouth", + "crs": "PLY", + "toc": "GW", + "lon": -4.143320387872722 + }, + { + "lat": 51.26400344432891, + "tiploc": "CLANDON", + "name": "Clandon", + "crs": "CLA", + "toc": "SW", + "lon": -0.502766089705852 + }, + { + "lat": 53.85474091075212, + "tiploc": "COLNE", + "name": "Colne", + "crs": "CNE", + "toc": "NT", + "lon": -2.1818590590791196 + }, + { + "lat": 51.47512659857249, + "tiploc": "NEWXGEL", + "name": "New Cross Gate", + "crs": "NXG", + "toc": "LO", + "lon": -0.04041337950416533 + }, + { + "lat": 51.244608897041196, + "tiploc": "CLMN", + "name": "Chilham", + "crs": "CIL", + "toc": "SE", + "lon": 0.9758956030171974 + }, + { + "lat": 53.443806142717, + "tiploc": "FLIXTON", + "name": "Flixton", + "crs": "FLI", + "toc": "NT", + "lon": -2.38424642260673 + }, + { + "lat": 51.47634198254675, + "tiploc": "NWCRELL", + "name": "New Cross", + "crs": "NWX", + "toc": "SE", + "lon": -0.03244096566593311 + }, + { + "lat": 51.33029149574264, + "tiploc": "BMLY", + "name": "Bramley (Hampshire)", + "crs": "BMY", + "toc": "GW", + "lon": -1.061002714232191 + }, + { + "lat": 52.51612225995739, + "tiploc": "CARSWS", + "name": "Caersws", + "crs": "CWS", + "toc": "AW", + "lon": -3.4324980992593193 + }, + { + "lat": 51.58660360902082, + "tiploc": "BLCHSRD", + "name": "Blackhorse Road", + "crs": "BHO", + "toc": "LT", + "lon": -0.04123573787396949 + }, + { + "lat": 51.45518732227689, + "tiploc": "CFPK", + "name": "Crofton Park", + "crs": "CFT", + "toc": "SE", + "lon": -0.03650303997863888 + }, + { + "lat": 54.43937961417476, + "tiploc": "GLAISDL", + "name": "Glaisdale", + "crs": "GLS", + "toc": "NT", + "lon": -0.7937877923844805 + }, + { + "lat": 51.52086899236133, + "tiploc": "WLDMILL", + "name": "Wildmill", + "crs": "WMI", + "toc": "AW", + "lon": -3.5796325976859467 + }, + { + "lat": 52.50422899819156, + "tiploc": "ASTON", + "name": "Aston", + "crs": "AST", + "toc": "LM", + "lon": -1.8719335489045066 + }, + { + "lat": 51.5847885220961, + "tiploc": "CDCOT", + "name": "Caldicot", + "crs": "CDT", + "toc": "AW", + "lon": -2.760573456154642 + }, + { + "lat": 51.41711570682141, + "tiploc": "ELMW", + "name": "Elmstead Woods", + "crs": "ESD", + "toc": "SE", + "lon": 0.044274064875884256 + }, + { + "lat": 52.75392209611676, + "tiploc": "KLYNN", + "name": "Kings Lynn", + "crs": "KLN", + "toc": "GN", + "lon": 0.40344658800145455 + }, + { + "lat": 50.85569300087944, + "tiploc": "STLNRWS", + "name": "St Leonards Warrior Square", + "crs": "SLQ", + "toc": "SE", + "lon": 0.5602793767085146 + }, + { + "lat": 52.90288144608742, + "tiploc": "PENYCHN", + "name": "Penychain", + "crs": "PNC", + "toc": "AW", + "lon": -4.338721438815964 + }, + { + "lat": 53.79087649095846, + "tiploc": "BURNLYB", + "name": "Burnley Barracks", + "crs": "BUB", + "toc": "NT", + "lon": -2.258085706332914 + }, + { + "lat": 53.793510543278984, + "tiploc": "BURNLYC", + "name": "Burnley Central", + "crs": "BNC", + "toc": "NT", + "lon": -2.244971015682186 + }, + { + "lat": 50.779269425678294, + "tiploc": "AXMNSTR", + "name": "Axminster", + "crs": "AXM", + "toc": "SW", + "lon": -3.0047230656376973 + }, + { + "lat": 50.779269425678294, + "tiploc": "AXMNSTS", + "name": "Axminster", + "crs": "AXM", + "toc": "SW", + "lon": -3.0047230656376973 + }, + { + "lat": 55.93704031099448, + "tiploc": "BOGSTON", + "name": "Bogston", + "crs": "BGS", + "toc": "SR", + "lon": -4.711400911511412 + }, + { + "lat": 53.20878400276662, + "tiploc": "BACHE", + "name": "Bache", + "crs": "BAC", + "toc": "ME", + "lon": -2.8916700178689694 + }, + { + "lat": 51.717740316626305, + "tiploc": "HOWWOOD", + "name": "How Wood", + "crs": "HWW", + "toc": "LM", + "lon": -0.34467044164564925 + }, + { + "lat": 53.22228074714337, + "tiploc": "BANGOR", + "name": "Bangor (Gwynedd)", + "crs": "BNG", + "toc": "AW", + "lon": -4.135879855181822 + }, + { + "lat": 52.722888730759124, + "tiploc": "BRMOUTH", + "name": "Barmouth", + "crs": "BRM", + "toc": "AW", + "lon": -4.056595676796279 + }, + { + "lat": 55.71187856866053, + "tiploc": "DNLP", + "name": "Dunlop", + "crs": "DNL", + "toc": "SR", + "lon": -4.532388734911166 + }, + { + "lat": 51.28580782736943, + "tiploc": "EMALING", + "name": "East Malling", + "crs": "EML", + "toc": "SE", + "lon": 0.4392802849689505 + }, + { + "lat": 56.00609051290901, + "tiploc": "CRMRSEJ", + "name": "Camelon", + "crs": "CMO", + "toc": "SR", + "lon": -3.8176051253868675 + }, + { + "lat": 53.40930669536779, + "tiploc": "EDIDBRY", + "name": "East Didsbury", + "crs": "EDY", + "toc": "NT", + "lon": -2.2219963112186316 + }, + { + "lat": 55.88193592327889, + "tiploc": "SPRNGBN", + "name": "Springburn", + "crs": "SPR", + "toc": "SR", + "lon": -4.2305342109642075 + }, + { + "lat": 51.3984904700055, + "tiploc": "ELMERSE", + "name": "Elmers End", + "crs": "ELE", + "toc": "SE", + "lon": -0.0495703434911078 + }, + { + "lat": 53.37317027780064, + "tiploc": "WKIRBY", + "name": "West Kirby", + "crs": "WKI", + "toc": "ME", + "lon": -3.183771331297973 + }, + { + "lat": 51.916304005103896, + "tiploc": "LTNBZRD", + "name": "Leighton Buzzard", + "crs": "LBZ", + "toc": "LM", + "lon": -0.6770073449065156 + }, + { + "lat": 55.90480588975189, + "tiploc": "WESTRTN", + "name": "Westerton", + "crs": "WES", + "toc": "SR", + "lon": -4.334879988382598 + }, + { + "lat": 51.714134100151796, + "tiploc": "LYDNEY", + "name": "Lydney", + "crs": "LYD", + "toc": "AW", + "lon": -2.5308636558242568 + }, + { + "lat": 53.35038251660834, + "tiploc": "POYNTON", + "name": "Poynton", + "crs": "PYT", + "toc": "NT", + "lon": -2.134410123179083 + }, + { + "lat": 54.616225002543715, + "tiploc": "REDCARC", + "name": "Redcar Central", + "crs": "RCC", + "toc": "NT", + "lon": -1.0708676034405042 + }, + { + "lat": 53.58973147233849, + "tiploc": "CROWLE", + "name": "Crowle", + "crs": "CWE", + "toc": "NT", + "lon": -0.8173586085934094 + }, + { + "lat": 54.00902216873605, + "tiploc": "KNRSBGH", + "name": "Knaresborough", + "crs": "KNA", + "toc": "NT", + "lon": -1.470416184839105 + }, + { + "lat": 0.0, + "tiploc": "DONCNBS", + "name": "Doncaster North Bus Stn", + "crs": "DOZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "GROMBDG", + "name": "Groombridge (Bus)", + "crs": "GRO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 54.609250852276716, + "tiploc": "REDCARE", + "name": "Redcar East", + "crs": "RCE", + "toc": "NT", + "lon": -1.0522922153562535 + }, + { + "lat": 0.0, + "tiploc": "KESWICK", + "name": "Keswick Bus Station", + "crs": "KWK", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.72695872476356, + "tiploc": "BROUGH", + "name": "Brough", + "crs": "BUH", + "toc": "TP", + "lon": -0.5787242126661646 + }, + { + "lat": 53.38458256822084, + "tiploc": "DARNALL", + "name": "Darnall", + "crs": "DAN", + "toc": "NT", + "lon": -1.4125670961158743 + }, + { + "lat": 51.284948325317735, + "tiploc": "WNCFILD", + "name": "Winchfield", + "crs": "WNF", + "toc": "SW", + "lon": -0.9069773709501088 + }, + { + "lat": 0.0, + "tiploc": "WHRDWRD", + "name": "Leeds, Whitehall (Bus)", + "crs": "LZZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.683072014153844, + "tiploc": "WKFLDWG", + "name": "Wakefield Westgate", + "crs": "WKF", + "toc": "GR", + "lon": -1.5061104741237297 + }, + { + "lat": 51.52593127021181, + "tiploc": "PATCHWY", + "name": "Patchway", + "crs": "PWY", + "toc": "GW", + "lon": -2.562689273439019 + }, + { + "lat": 52.32481096525155, + "tiploc": "DANZEY", + "name": "Danzey", + "crs": "DZY", + "toc": "LM", + "lon": -1.8208771632152112 + }, + { + "lat": 0.0, + "tiploc": "ARMADLE", + "name": "Armadale (Bus)", + "crs": "ARA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 55.82247229272474, + "tiploc": "FAULDHS", + "name": "Fauldhouse", + "crs": "FLD", + "toc": "SR", + "lon": -3.719318572766661 + }, + { + "lat": 51.289015650987544, + "tiploc": "WRPLSDN", + "name": "Worplesdon", + "crs": "WPL", + "toc": "SW", + "lon": -0.582578189956747 + }, + { + "lat": 56.899552596028194, + "tiploc": "BEASDAL", + "name": "Beasdale", + "crs": "BSL", + "toc": "SR", + "lon": -5.763801391499565 + }, + { + "lat": 53.44089726897517, + "tiploc": "KRKDALE", + "name": "Kirkdale", + "crs": "KKD", + "toc": "ME", + "lon": -2.981116781568543 + }, + { + "lat": 54.52942993516549, + "tiploc": "EGLSCLF", + "name": "Eaglescliffe", + "crs": "EAG", + "toc": "NT", + "lon": -1.349437044008852 + }, + { + "lat": 55.08776661997003, + "tiploc": "CRMLNGT", + "name": "Cramlington", + "crs": "CRM", + "toc": "NT", + "lon": -1.5985949653991762 + }, + { + "lat": 51.389898950482056, + "tiploc": "SHLIER", + "name": "St Helier", + "crs": "SIH", + "toc": "TL", + "lon": -0.19877074179176502 + }, + { + "lat": 52.33449330616789, + "tiploc": "HBRY", + "name": "Hartlebury", + "crs": "HBY", + "toc": "LM", + "lon": -2.221118900383806 + }, + { + "lat": 55.86433887075568, + "tiploc": "COATDYK", + "name": "Coatdyke", + "crs": "COA", + "toc": "SR", + "lon": -4.004984335189533 + }, + { + "lat": 51.538717084132784, + "tiploc": "CHLKWEL", + "name": "Chalkwell", + "crs": "CHW", + "toc": "CC", + "lon": 0.6705925902664569 + }, + { + "lat": 0.0, + "tiploc": "KNGBQUY", + "name": "Kingsbridge (Bus)", + "crs": "XAW", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.05307822686583, + "tiploc": "ROYSTON", + "name": "Royston", + "crs": "RYS", + "toc": "GN", + "lon": -0.026921474626963537 + }, + { + "lat": 53.30002629755194, + "tiploc": "DVHL", + "name": "Dove Holes", + "crs": "DVH", + "toc": "NT", + "lon": -1.8897515486435814 + }, + { + "lat": 51.18140922944828, + "tiploc": "HEVER", + "name": "Hever", + "crs": "HEV", + "toc": "SN", + "lon": 0.09506932964831297 + }, + { + "lat": 0.0, + "tiploc": "BLFSTDQ", + "name": "Belfast Donegall Quay (Bus)", + "crs": "BFQ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.788804673487085, + "tiploc": "SPALDNG", + "name": "Spalding", + "crs": "SPA", + "toc": "EM", + "lon": -0.15688414438961742 + }, + { + "lat": 50.78655724650304, + "tiploc": "BOGNORR", + "name": "Bognor Regis", + "crs": "BOG", + "toc": "SN", + "lon": -0.6761782548027364 + }, + { + "lat": 51.528134384970876, + "tiploc": "EUSTON", + "name": "London Euston", + "crs": "EUS", + "toc": "RT", + "lon": -0.1339236297047451 + }, + { + "lat": 55.75194100786181, + "tiploc": "FAIRLIE", + "name": "Fairlie", + "crs": "FRL", + "toc": "SR", + "lon": -4.853267337621741 + }, + { + "lat": 55.95239181500993, + "tiploc": "EDINBUR", + "name": "Edinburgh", + "crs": "EDB", + "toc": "RT", + "lon": -3.18822766090509 + }, + { + "lat": 56.96971768232656, + "tiploc": "MORAR", + "name": "Morar", + "crs": "MRR", + "toc": "SR", + "lon": -5.821917614282628 + }, + { + "lat": 0.0, + "tiploc": "EDINBUS", + "name": "Edinburgh Bus Station", + "crs": "EBS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 55.77204126589908, + "tiploc": "WISHAW", + "name": "Wishaw", + "crs": "WSH", + "toc": "SR", + "lon": -3.926424810798876 + }, + { + "lat": 51.640177516956136, + "tiploc": "CHEPSTW", + "name": "Chepstow", + "crs": "CPW", + "toc": "AW", + "lon": -2.6719051889312517 + }, + { + "lat": 51.41831137987165, + "tiploc": "SUNBURY", + "name": "Sunbury", + "crs": "SUU", + "toc": "SW", + "lon": -0.41778266319648755 + }, + { + "lat": 51.77986237042604, + "tiploc": "HFLPEVL", + "name": "Hatfield Peverel", + "crs": "HAP", + "toc": "LE", + "lon": 0.5921237145720851 + }, + { + "lat": 52.477758191572576, + "tiploc": "OULTNBN", + "name": "Oulton Broad North", + "crs": "OUN", + "toc": "LE", + "lon": 1.7157107023103972 + }, + { + "lat": 51.182391424249, + "tiploc": "MCHLDVR", + "name": "Micheldever", + "crs": "MIC", + "toc": "SW", + "lon": -1.26067770660681 + }, + { + "lat": 0.0, + "tiploc": "YMTHIOW", + "name": "Yarmouth (Isle of Wight)", + "crs": "YMH", + "toc": "ZF", + "lon": 0.0 + }, + { + "lat": 52.19514269522277, + "tiploc": "WORCSFS", + "name": "Worcester Foregate Street", + "crs": "WOF", + "toc": "LM", + "lon": -2.221596358494276 + }, + { + "lat": 53.050230134111416, + "tiploc": "WREXGUB", + "name": "Wrexham General", + "crs": "WRX", + "toc": "AW", + "lon": -3.0024430064248198 + }, + { + "lat": 52.469600976962184, + "tiploc": "OULTNBS", + "name": "Oulton Broad South", + "crs": "OUS", + "toc": "LE", + "lon": 1.707658511941118 + }, + { + "lat": 54.17795316735571, + "tiploc": "CARK", + "name": "Cark", + "crs": "CAK", + "toc": "NT", + "lon": -2.9740635792717494 + }, + { + "lat": 53.71715289024272, + "tiploc": "FERRIBY", + "name": "Ferriby", + "crs": "FRY", + "toc": "NT", + "lon": -0.5078304537787082 + }, + { + "lat": 51.439278229395356, + "tiploc": "FORESTH", + "name": "Forest Hill", + "crs": "FOH", + "toc": "LO", + "lon": -0.053157100353196006 + }, + { + "lat": 52.2067773803387, + "tiploc": "SOAVPWY", + "name": "Stratford Parkway", + "crs": "STY", + "toc": "LM", + "lon": -1.7308423807202256 + }, + { + "lat": 51.37922905104889, + "tiploc": "OLDFLBR", + "name": "Oldfield Park", + "crs": "OLF", + "toc": "GW", + "lon": -2.380507931502354 + }, + { + "lat": 51.37292924933538, + "tiploc": "WONT", + "name": "Walton-on-Thames", + "crs": "WAL", + "toc": "SW", + "lon": -0.4146350231477327 + }, + { + "lat": 55.79060969525258, + "tiploc": "PATERTN", + "name": "Patterton", + "crs": "PTT", + "toc": "SR", + "lon": -4.3352983323593035 + }, + { + "lat": 55.86218695863235, + "tiploc": "CWLRSNJ", + "name": "Glasgow Queen Street", + "crs": "GLQ", + "toc": "SR", + "lon": -4.251455813529946 + }, + { + "lat": 53.66047767228144, + "tiploc": "EUXT", + "name": "Euxton Balshaw Lane", + "crs": "EBA", + "toc": "NT", + "lon": -2.67202343708635 + }, + { + "lat": 51.18119387224941, + "tiploc": "HLMW", + "name": "Holmwood", + "crs": "HLM", + "toc": "SN", + "lon": -0.3208089776053441 + }, + { + "lat": 51.31171162645364, + "tiploc": "FAVRSHM", + "name": "Faversham", + "crs": "FAV", + "toc": "SE", + "lon": 0.8910449029360549 + }, + { + "lat": 57.971464081002885, + "tiploc": "GOLSPIE", + "name": "Golspie", + "crs": "GOL", + "toc": "SR", + "lon": -3.987214891601885 + }, + { + "lat": 55.81391225698559, + "tiploc": "KRKH", + "name": "Kirkhill", + "crs": "KKH", + "toc": "SR", + "lon": -4.16710461510481 + }, + { + "lat": 53.38647187634863, + "tiploc": "WMOR", + "name": "Woodsmoor", + "crs": "WSR", + "toc": "NT", + "lon": -2.142086590138923 + }, + { + "lat": 52.39923924007309, + "tiploc": "CANLEY", + "name": "Canley", + "crs": "CNL", + "toc": "LM", + "lon": -1.5475747277897294 + }, + { + "lat": 53.40553682294367, + "tiploc": "STKP", + "name": "Stockport", + "crs": "SPT", + "toc": "VT", + "lon": -2.1630130861151984 + }, + { + "lat": 53.69912821812153, + "tiploc": "WHTBDGE", + "name": "Whitley Bridge", + "crs": "WBD", + "toc": "NT", + "lon": -1.1582803345209463 + }, + { + "lat": 52.429031462373736, + "tiploc": "HMPTNIA", + "name": "Hampton-in-Arden", + "crs": "HIA", + "toc": "LM", + "lon": -1.699930576600913 + }, + { + "lat": 53.46237299062664, + "tiploc": "BLLVUE", + "name": "Belle Vue", + "crs": "BLV", + "toc": "NT", + "lon": -2.1805069588118022 + }, + { + "lat": 51.46820080112854, + "tiploc": "DENMRKH", + "name": "Denmark Hill", + "crs": "DMK", + "toc": "SE", + "lon": -0.08936087878424137 + }, + { + "lat": 50.580818598474906, + "tiploc": "DAWLISH", + "name": "Dawlish", + "crs": "DWL", + "toc": "GW", + "lon": -3.464625161120145 + }, + { + "lat": 53.46185286503212, + "tiploc": "FLWRYFD", + "name": "Flowery Field", + "crs": "FLF", + "toc": "NT", + "lon": -2.0810529170256067 + }, + { + "lat": 53.29474568022537, + "tiploc": "DEGANWY", + "name": "Deganwy", + "crs": "DGY", + "toc": "AW", + "lon": -3.83338623930599 + }, + { + "lat": 52.694208911778254, + "tiploc": "SYSTON", + "name": "Syston", + "crs": "SYS", + "toc": "EM", + "lon": -1.082398751416932 + }, + { + "lat": 55.88868981227241, + "tiploc": "KRKNWTN", + "name": "Kirknewton", + "crs": "KKN", + "toc": "SR", + "lon": -3.4325115580787458 + }, + { + "lat": 51.40955652347535, + "tiploc": "WIMLCHS", + "name": "Wimbledon Chase", + "crs": "WBO", + "toc": "TL", + "lon": -0.21403122854119466 + }, + { + "lat": 52.6379405904178, + "tiploc": "ALBRGHT", + "name": "Albrighton", + "crs": "ALB", + "toc": "LM", + "lon": -2.2688999402660293 + }, + { + "lat": 52.501431961799675, + "tiploc": "BERMPRK", + "name": "Bermuda Park (Nuneaton)", + "crs": "BEP", + "toc": "LM", + "lon": -1.4721776240819617 + }, + { + "lat": 51.34979483484935, + "tiploc": "BYFLANH", + "name": "Byfleet & New Haw", + "crs": "BFN", + "toc": "SW", + "lon": -0.4813897493499641 + }, + { + "lat": 51.78779378125165, + "tiploc": "STKM", + "name": "Stoke Mandeville", + "crs": "SKM", + "toc": "CH", + "lon": -0.7840862555126559 + }, + { + "lat": 51.40407277268432, + "tiploc": "NEWMLDN", + "name": "New Malden", + "crs": "NEM", + "toc": "SW", + "lon": -0.2559396220689581 + }, + { + "lat": 50.170488801855186, + "tiploc": "STERTH", + "name": "St Erth", + "crs": "SER", + "toc": "GW", + "lon": -5.444251894050168 + }, + { + "lat": 0.0, + "tiploc": "DUNLGHR", + "name": "Dun Laoghaire", + "crs": "DLO", + "toc": "ZF", + "lon": 0.0 + }, + { + "lat": 53.38325257673159, + "tiploc": "GNLN", + "name": "Green Lane", + "crs": "GNL", + "toc": "ME", + "lon": -3.0164147255659204 + }, + { + "lat": 54.59695879520169, + "tiploc": "HGHNGTN", + "name": "Heighington", + "crs": "HEI", + "toc": "NT", + "lon": -1.581765086299188 + }, + { + "lat": 53.56927109657441, + "tiploc": "ORMSKRK", + "name": "Ormskirk", + "crs": "OMS", + "toc": "ME", + "lon": -2.8811929265001517 + }, + { + "lat": 51.26517688093694, + "tiploc": "HBRN", + "name": "Hollingbourne", + "crs": "HBN", + "toc": "SE", + "lon": 0.6278481921138669 + }, + { + "lat": 51.90071170421304, + "tiploc": "CLCHSTR", + "name": "Colchester", + "crs": "COL", + "toc": "LE", + "lon": 0.8925981123449201 + }, + { + "lat": 52.104436808829874, + "tiploc": "MELTON", + "name": "Melton", + "crs": "MES", + "toc": "LE", + "lon": 1.3382366319677994 + }, + { + "lat": 51.27224515559088, + "tiploc": "ASHVALE", + "name": "Ash Vale", + "crs": "AHV", + "toc": "SW", + "lon": -0.7216485614333036 + }, + { + "lat": 55.38830193964151, + "tiploc": "KRKC", + "name": "Kirkconnel", + "crs": "KRK", + "toc": "SR", + "lon": -3.9985002207760254 + }, + { + "lat": 53.499864900272556, + "tiploc": "BRYN", + "name": "Bryn", + "crs": "BYN", + "toc": "NT", + "lon": -2.6472135818397913 + }, + { + "lat": 51.92590392878232, + "tiploc": "CHPWKSC", + "name": "Chappel & Wakes Colne", + "crs": "CWC", + "toc": "LE", + "lon": 0.7585011769077833 + }, + { + "lat": 51.403889719793455, + "tiploc": "BIRKBCK", + "name": "Birkbeck", + "crs": "BIK", + "toc": "SN", + "lon": -0.05573873500409835 + }, + { + "lat": 51.44906856046875, + "tiploc": "SWNSGD", + "name": "Swanscombe", + "crs": "SWM", + "toc": "SE", + "lon": 0.30954319337013625 + }, + { + "lat": 52.00444066472262, + "tiploc": "AUDLEYE", + "name": "Audley End", + "crs": "AUD", + "toc": "LE", + "lon": 0.2071600363969979 + }, + { + "lat": 51.613603301825506, + "tiploc": "BRTWOOD", + "name": "Brentwood", + "crs": "BRE", + "toc": "XR", + "lon": 0.2995857906637495 + }, + { + "lat": 55.892585292511335, + "tiploc": "YOKERCS", + "name": "Yoker", + "crs": "YOK", + "toc": "SR", + "lon": -4.38628658381112 + }, + { + "lat": 51.1286608654508, + "tiploc": "ASHURST", + "name": "Ashurst", + "crs": "AHS", + "toc": "SN", + "lon": 0.15265211905533932 + }, + { + "lat": 53.48851853862891, + "tiploc": "GARW", + "name": "Garswood", + "crs": "GSW", + "toc": "NT", + "lon": -2.6721345435061608 + }, + { + "lat": 0.0, + "tiploc": "LEEDSFB", + "name": "Leeds Festival (Bus)", + "crs": "XLD", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.7458859587636, + "tiploc": "STNHSE", + "name": "Stonehouse", + "crs": "SHU", + "toc": "GW", + "lon": -2.2794985053444314 + }, + { + "lat": 51.3482814157046, + "tiploc": "SDSD", + "name": "Sanderstead", + "crs": "SNR", + "toc": "SN", + "lon": -0.0936783012454569 + }, + { + "lat": 0.0, + "tiploc": "BHAMNEC", + "name": "Birmingham NEC (Bus)", + "crs": "XNE", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 55.82731113421891, + "tiploc": "BREICH", + "name": "Breich", + "crs": "BRC", + "toc": "SR", + "lon": -3.668125098262075 + }, + { + "lat": 51.77085348677195, + "tiploc": "HADMATP", + "name": "Haddenham & Thame Parkway", + "crs": "HDM", + "toc": "CH", + "lon": -0.9421371074630799 + }, + { + "lat": 0.0, + "tiploc": "SFRD", + "name": "Stretford Metrolink (Bus)", + "crs": "SRF", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.437491708903856, + "tiploc": "BNKHALL", + "name": "Bank Hall", + "crs": "BAH", + "toc": "ME", + "lon": -2.9875113698333986 + }, + { + "lat": 51.71785855721568, + "tiploc": "PRINRIS", + "name": "Princes Risborough", + "crs": "PRR", + "toc": "CH", + "lon": -0.843881071474416 + }, + { + "lat": 53.34832812548796, + "tiploc": "STYAL", + "name": "Styal", + "crs": "SYA", + "toc": "NT", + "lon": -2.240456029885736 + }, + { + "lat": 51.55533357953167, + "tiploc": "GOSPLOK", + "name": "Gospel Oak", + "crs": "GPO", + "toc": "LO", + "lon": -0.1507701805111406 + }, + { + "lat": 51.614686620561976, + "tiploc": "SIVRST", + "name": "Silver Street", + "crs": "SLV", + "toc": "LO", + "lon": -0.06723999290615029 + }, + { + "lat": 51.53301849570127, + "tiploc": "FURZEP", + "name": "Furze Platt", + "crs": "FZP", + "toc": "GW", + "lon": -0.7284727929433746 + }, + { + "lat": 52.707126063720644, + "tiploc": "MFAM", + "name": "Morfa Mawddach", + "crs": "MFA", + "toc": "AW", + "lon": -4.032169435969763 + }, + { + "lat": 53.18634622278975, + "tiploc": "DOLGARG", + "name": "Dolgarrog", + "crs": "DLG", + "toc": "AW", + "lon": -3.822636059040577 + }, + { + "lat": 53.29635709150464, + "tiploc": "CBAY", + "name": "Colwyn Bay", + "crs": "CWB", + "toc": "AW", + "lon": -3.7254165125678163 + }, + { + "lat": 53.114466558634426, + "tiploc": "HAVENHS", + "name": "Havenhouse", + "crs": "HVN", + "toc": "EM", + "lon": 0.27316741409537076 + }, + { + "lat": 51.88230305180372, + "tiploc": "LUTON", + "name": "Luton", + "crs": "LUT", + "toc": "TL", + "lon": -0.41404020593611635 + }, + { + "lat": 54.061798819232756, + "tiploc": "GGLSWCK", + "name": "Giggleswick", + "crs": "GIG", + "toc": "NT", + "lon": -2.302847702501854 + }, + { + "lat": 55.81954185661637, + "tiploc": "KGPK", + "name": "Kings Park", + "crs": "KGP", + "toc": "SR", + "lon": -4.2465168918143865 + }, + { + "lat": 51.769411037639244, + "tiploc": "RYEHOUS", + "name": "Rye House", + "crs": "RYH", + "toc": "LE", + "lon": 0.005628173466745289 + }, + { + "lat": 51.52149101520949, + "tiploc": "GORASTR", + "name": "Goring & Streatley", + "crs": "GOR", + "toc": "GW", + "lon": -1.1330493769118803 + }, + { + "lat": 52.06116050081045, + "tiploc": "HEREFRD", + "name": "Hereford", + "crs": "HFD", + "toc": "AW", + "lon": -2.7082101600445587 + }, + { + "lat": 0.0, + "tiploc": "NEWALCN", + "name": "Lincoln Bus Station", + "crs": "LBS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.01520264603581, + "tiploc": "BILSHST", + "name": "Billingshurst", + "crs": "BIG", + "toc": "SN", + "lon": -0.45030221604794335 + }, + { + "lat": 51.584674986318596, + "tiploc": "SEVTNLJ", + "name": "Severn Tunnel Junction", + "crs": "STJ", + "toc": "AW", + "lon": -2.777891412790122 + }, + { + "lat": 50.3395149118652, + "tiploc": "STAUSTL", + "name": "St Austell", + "crs": "SAU", + "toc": "GW", + "lon": -4.78935876298188 + }, + { + "lat": 51.30338496679747, + "tiploc": "WHYTBUS", + "name": "Whyteleafe South", + "crs": "WHS", + "toc": "SN", + "lon": -0.0769177272479134 + }, + { + "lat": 51.58657852983884, + "tiploc": "WDST", + "name": "Wood Street", + "crs": "WST", + "toc": "LO", + "lon": -0.002405396141156839 + }, + { + "lat": 52.04524848109193, + "tiploc": "LDBURY", + "name": "Ledbury", + "crs": "LED", + "toc": "LM", + "lon": -2.4258602884953326 + }, + { + "lat": 53.40856051293236, + "tiploc": "MORFLDS", + "name": "Moorfields", + "crs": "MRF", + "toc": "ME", + "lon": -2.9891877509386093 + }, + { + "lat": 51.37922905104889, + "tiploc": "OLDFLDP", + "name": "Oldfield Park", + "crs": "OLF", + "toc": "GW", + "lon": -2.380507931502354 + }, + { + "lat": 53.52914226112311, + "tiploc": "ATHERTN", + "name": "Atherton", + "crs": "ATN", + "toc": "NT", + "lon": -2.4789719811317217 + }, + { + "lat": 51.39904334352805, + "tiploc": "BRLANDS", + "name": "Berrylands", + "crs": "BRS", + "toc": "SW", + "lon": -0.280713658246668 + }, + { + "lat": 51.26698437441283, + "tiploc": "HWRDJN", + "name": "Westbury", + "crs": "WSB", + "toc": "GW", + "lon": -2.1991816776934567 + }, + { + "lat": 51.48889727588689, + "tiploc": "CATHAYS", + "name": "Cathays", + "crs": "CYS", + "toc": "AW", + "lon": -3.1786832888681102 + }, + { + "lat": 53.26411079668057, + "tiploc": "CRWLL", + "name": "Creswell", + "crs": "CWD", + "toc": "EM", + "lon": -1.2163947742865822 + }, + { + "lat": 50.40717572490603, + "tiploc": "LSTWTHL", + "name": "Lostwithiel", + "crs": "LOS", + "toc": "GW", + "lon": -4.665965676657859 + }, + { + "lat": 53.59697019752162, + "tiploc": "BKHLS", + "name": "Brockholes", + "crs": "BHS", + "toc": "NT", + "lon": -1.7696912331819816 + }, + { + "lat": 55.76867731588761, + "tiploc": "THAL", + "name": "Thorntonhall", + "crs": "THT", + "toc": "SR", + "lon": -4.251162102810209 + }, + { + "lat": 51.51661479486901, + "tiploc": "DRAYGRN", + "name": "Drayton Green", + "crs": "DRG", + "toc": "GW", + "lon": -0.3301942411719093 + }, + { + "lat": 53.60203060431855, + "tiploc": "AINSDAL", + "name": "Ainsdale", + "crs": "ANS", + "toc": "ME", + "lon": -3.042651975276015 + }, + { + "lat": 51.55276801063751, + "tiploc": "DRYP", + "name": "Drayton Park", + "crs": "DYP", + "toc": "GN", + "lon": -0.10550900303568868 + }, + { + "lat": 51.32477506779798, + "tiploc": "KNLY", + "name": "Kenley", + "crs": "KLY", + "toc": "SN", + "lon": -0.10092541728047168 + }, + { + "lat": 52.480641233811326, + "tiploc": "LEAHALL", + "name": "Lea Hall", + "crs": "LEH", + "toc": "LM", + "lon": -1.7860118227294162 + }, + { + "lat": 54.01683570147705, + "tiploc": "LPRESTN", + "name": "Long Preston", + "crs": "LPR", + "toc": "NT", + "lon": -2.2555919675504525 + }, + { + "lat": 51.58226583997832, + "tiploc": "SEVNSIS", + "name": "Seven Sisters", + "crs": "SVS", + "toc": "LO", + "lon": -0.07527009427287029 + }, + { + "lat": 52.26689835567553, + "tiploc": "WOTONWN", + "name": "Wootton Wawen", + "crs": "WWW", + "toc": "LM", + "lon": -1.7846965342421663 + }, + { + "lat": 0.0, + "tiploc": "KLCRGGN", + "name": "Kilcreggan (Bus)", + "crs": "KCG", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.51146050746464, + "tiploc": "SHPLAKE", + "name": "Shiplake", + "crs": "SHI", + "toc": "GW", + "lon": -0.8826021562982881 + }, + { + "lat": 53.32684589575232, + "tiploc": "WLMSL", + "name": "Wilmslow", + "crs": "WML", + "toc": "NT", + "lon": -2.226326991473437 + }, + { + "lat": 0.0, + "tiploc": "OXHP", + "name": "Oxenhope", + "crs": "XOB", + "toc": "PC", + "lon": 0.0 + }, + { + "lat": 53.3649695054136, + "tiploc": "EDALE", + "name": "Edale", + "crs": "EDL", + "toc": "NT", + "lon": -1.8166262165440807 + }, + { + "lat": 51.967070129610796, + "tiploc": "FLXSTOW", + "name": "Felixstowe", + "crs": "FLX", + "toc": "LE", + "lon": 1.3504351073683898 + }, + { + "lat": 52.57129147102819, + "tiploc": "NARBRO", + "name": "Narborough", + "crs": "NBR", + "toc": "EM", + "lon": -1.203346086799947 + }, + { + "lat": 53.84842415520873, + "tiploc": "PLTNLFY", + "name": "Poulton-le-Fylde", + "crs": "PFY", + "toc": "NT", + "lon": -2.990624390704828 + }, + { + "lat": 50.84594208862136, + "tiploc": "PRSPBUS", + "name": "Preston Park", + "crs": "PRP", + "toc": "SN", + "lon": -0.15516764211618436 + }, + { + "lat": 50.445917636558676, + "tiploc": "COOMBE", + "name": "Coombe Junction Halt", + "crs": "COE", + "toc": "GW", + "lon": -4.48185114335539 + }, + { + "lat": 51.901436440474555, + "tiploc": "STANSTD", + "name": "Stansted Mountfitchet", + "crs": "SST", + "toc": "LE", + "lon": 0.19978087452933835 + }, + { + "lat": 50.85315166043625, + "tiploc": "WSLE", + "name": "West St Leonards", + "crs": "WLD", + "toc": "SE", + "lon": 0.539935225478786 + }, + { + "lat": 53.27046364535706, + "tiploc": "PNMNMWR", + "name": "Penmaenmawr", + "crs": "PMW", + "toc": "AW", + "lon": -3.9235107698526424 + }, + { + "lat": 50.77692229377759, + "tiploc": "YEOFORD", + "name": "Yeoford", + "crs": "YEO", + "toc": "GW", + "lon": -3.7271190711952804 + }, + { + "lat": 50.94452489908392, + "tiploc": "YOVILPM", + "name": "Yeovil Pen Mill", + "crs": "YVP", + "toc": "GW", + "lon": -2.6134281378439743 + }, + { + "lat": 53.79657604936852, + "tiploc": "GARFRTH", + "name": "Garforth", + "crs": "GRF", + "toc": "NT", + "lon": -1.3823095938718817 + }, + { + "lat": 56.48011165786759, + "tiploc": "MONIFTH", + "name": "Monifieth", + "crs": "MON", + "toc": "SR", + "lon": -2.8182474627590572 + }, + { + "lat": 53.700517308520425, + "tiploc": "NORMNTN", + "name": "Normanton", + "crs": "NOR", + "toc": "NT", + "lon": -1.423401337654892 + }, + { + "lat": 54.48127249573056, + "tiploc": "COMONDL", + "name": "Commondale", + "crs": "COM", + "toc": "NT", + "lon": -0.9751479600426709 + }, + { + "lat": 51.52016522721183, + "tiploc": "FRNDNLT", + "name": "Farringdon Underground", + "crs": "ZFD", + "toc": "LT", + "lon": -0.10520466394888697 + }, + { + "lat": 53.53031011362434, + "tiploc": "ORRELL", + "name": "Orrell", + "crs": "ORR", + "toc": "NT", + "lon": -2.7088372820182554 + }, + { + "lat": 53.00628317882779, + "tiploc": "LOWDHAM", + "name": "Lowdham", + "crs": "LOW", + "toc": "EM", + "lon": -0.9984190270240602 + }, + { + "lat": 50.94452489908392, + "tiploc": "YOVILPS", + "name": "Yeovil Pen Mill", + "crs": "YVP", + "toc": "GW", + "lon": -2.6134281378439743 + }, + { + "lat": 51.45932887671939, + "tiploc": "HTRWTE4", + "name": "Heathrow Airport T4 (Bus)", + "crs": "HWF", + "toc": "ZB", + "lon": -0.44696755900678276 + }, + { + "lat": 53.22094320803155, + "tiploc": "LFPW", + "name": "Llanfairpwll", + "crs": "LPG", + "toc": "AW", + "lon": -4.209215260530912 + }, + { + "lat": 53.13884849879202, + "tiploc": "LNRWST", + "name": "Llanrwst", + "crs": "LWR", + "toc": "AW", + "lon": -3.79440098121686 + }, + { + "lat": 51.36672576425677, + "tiploc": "CRWTHRN", + "name": "Crowthorne", + "crs": "CRN", + "toc": "GW", + "lon": -0.819273368423214 + }, + { + "lat": 54.55202895251287, + "tiploc": "JAMCOK", + "name": "James Cook", + "crs": "JCH", + "toc": "NT", + "lon": -1.2085693854143644 + }, + { + "lat": 51.5327444626925, + "tiploc": "LLISHEN", + "name": "Llanishen", + "crs": "LLS", + "toc": "AW", + "lon": -3.181978296156487 + }, + { + "lat": 53.574377245728094, + "tiploc": "NEWCLEE", + "name": "New Clee", + "crs": "NCE", + "toc": "NT", + "lon": -0.06081266401787153 + }, + { + "lat": 51.40917159218227, + "tiploc": "RAYNSPK", + "name": "Raynes Park", + "crs": "RAY", + "toc": "SW", + "lon": -0.23015084544981523 + }, + { + "lat": 51.814345949802124, + "tiploc": "SBDGWTH", + "name": "Sawbridgeworth", + "crs": "SAW", + "toc": "LE", + "lon": 0.1604110193509923 + }, + { + "lat": 53.47495151783724, + "tiploc": "WLOO", + "name": "Waterloo (Merseyside)", + "crs": "WLO", + "toc": "ME", + "lon": -3.0255361338113715 + }, + { + "lat": 51.5008146339941, + "tiploc": "RTHERHI", + "name": "Rotherhithe", + "crs": "ROE", + "toc": "LO", + "lon": -0.052048573249960046 + }, + { + "lat": 51.364590836854426, + "tiploc": "HRNEBAY", + "name": "Herne Bay", + "crs": "HNB", + "toc": "SE", + "lon": 1.117725851196 + }, + { + "lat": 53.83304991806377, + "tiploc": "SHPY", + "name": "Shipley", + "crs": "SHY", + "toc": "NT", + "lon": -1.7734897242406924 + }, + { + "lat": 51.681328766471445, + "tiploc": "MASH", + "name": "Mountain Ash", + "crs": "MTA", + "toc": "AW", + "lon": -3.376341178123711 + }, + { + "lat": 50.731153823269565, + "tiploc": "STJAMSP", + "name": "St James' Park", + "crs": "SJP", + "toc": "GW", + "lon": -3.521993683246461 + }, + { + "lat": 0.0, + "tiploc": "YSTRBWD", + "name": "Blackwood (Bus)", + "crs": "XKW", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.662235608757406, + "tiploc": "LYMPSTC", + "name": "Lympstone Commando", + "crs": "LYC", + "toc": "GW", + "lon": -3.4408396577210856 + }, + { + "lat": 50.75575113560414, + "tiploc": "NMILTON", + "name": "New Milton", + "crs": "NWM", + "toc": "SW", + "lon": -1.6578126666427486 + }, + { + "lat": 51.5324947720042, + "tiploc": "WLSDNJL", + "name": "Willesden Junction", + "crs": "WIJ", + "toc": "LO", + "lon": -0.24454788456345455 + }, + { + "lat": 52.00364028030217, + "tiploc": "FLITWCK", + "name": "Flitwick", + "crs": "FLT", + "toc": "TL", + "lon": -0.4952578549983215 + }, + { + "lat": 58.01294978675034, + "tiploc": "BRORA", + "name": "Brora", + "crs": "BRA", + "toc": "SR", + "lon": -3.852282855131094 + }, + { + "lat": 55.879752852129826, + "tiploc": "HYNDLND", + "name": "Hyndland", + "crs": "HYN", + "toc": "SR", + "lon": -4.314668370913629 + }, + { + "lat": 53.634461470812795, + "tiploc": "RUFDORD", + "name": "Rufford", + "crs": "RUF", + "toc": "NT", + "lon": -2.807841188794647 + }, + { + "lat": 51.591716157117965, + "tiploc": "PTALBOT", + "name": "Port Talbot Parkway", + "crs": "PTA", + "toc": "AW", + "lon": -3.781314209016683 + }, + { + "lat": 51.574465521113424, + "tiploc": "STMFDHL", + "name": "Stamford Hill", + "crs": "SMH", + "toc": "LO", + "lon": -0.07668199908638972 + }, + { + "lat": 0.0, + "tiploc": "PBROKET", + "name": "Kettering (Bus)", + "crs": "KEZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 57.613040250562925, + "tiploc": "GARVE", + "name": "Garve", + "crs": "GVE", + "toc": "SR", + "lon": -4.688395109062012 + }, + { + "lat": 51.609415113482804, + "tiploc": "HTCHEND", + "name": "Hatch End", + "crs": "HTE", + "toc": "LO", + "lon": -0.36860143005373047 + }, + { + "lat": 50.933763855056114, + "tiploc": "WINCHLS", + "name": "Winchelsea", + "crs": "WSE", + "toc": "SN", + "lon": 0.7022616615985646 + }, + { + "lat": 54.15423512916386, + "tiploc": "DALTON", + "name": "Dalton", + "crs": "DLT", + "toc": "NT", + "lon": -3.1790027350150507 + }, + { + "lat": 53.58873870257709, + "tiploc": "SPLY", + "name": "Shepley", + "crs": "SPY", + "toc": "NT", + "lon": -1.7049280820349582 + }, + { + "lat": 53.85846422604513, + "tiploc": "CFLATTS", + "name": "Crossflatts", + "crs": "CFL", + "toc": "NT", + "lon": -1.844885989653185 + }, + { + "lat": 51.193898925872205, + "tiploc": "LEIGBUS", + "name": "Leigh (Kent)", + "crs": "LIH", + "toc": "SN", + "lon": 0.21049492538885142 + }, + { + "lat": 50.64829125000916, + "tiploc": "LYMPSTN", + "name": "Lympstone Village", + "crs": "LYM", + "toc": "GW", + "lon": -3.431006557856485 + }, + { + "lat": 52.41438903604857, + "tiploc": "SOLIHUL", + "name": "Solihull", + "crs": "SOL", + "toc": "LM", + "lon": -1.7883905561976081 + }, + { + "lat": 51.568036853828794, + "tiploc": "CHDWLHT", + "name": "Chadwell Heath", + "crs": "CTH", + "toc": "XR", + "lon": 0.12895836922664597 + }, + { + "lat": 52.57977827978443, + "tiploc": "FOUROKS", + "name": "Four Oaks", + "crs": "FOK", + "toc": "LM", + "lon": -1.8280317012615734 + }, + { + "lat": 51.80073939007248, + "tiploc": "TRING", + "name": "Tring", + "crs": "TRI", + "toc": "LM", + "lon": -0.6224393820564971 + }, + { + "lat": 51.62482339559918, + "tiploc": "BTLSBDG", + "name": "Battlesbridge", + "crs": "BLB", + "toc": "LE", + "lon": 0.5652855343581472 + }, + { + "lat": 50.150705521742815, + "tiploc": "FALMTHD", + "name": "Falmouth Docks", + "crs": "FAL", + "toc": "GW", + "lon": -5.056027982041923 + }, + { + "lat": 54.68675391701056, + "tiploc": "HRTLEPL", + "name": "Hartlepool", + "crs": "HPL", + "toc": "NT", + "lon": -1.207316225047763 + }, + { + "lat": 54.30492522952403, + "tiploc": "OXENHLM", + "name": "Oxenholme Lake District", + "crs": "OXN", + "toc": "VT", + "lon": -2.7218700906890816 + }, + { + "lat": 51.313156289489335, + "tiploc": "OTFORD", + "name": "Otford", + "crs": "OTF", + "toc": "SE", + "lon": 0.19677872209060387 + }, + { + "lat": 53.71528535548227, + "tiploc": "OUTWOOD", + "name": "Outwood", + "crs": "OUT", + "toc": "NT", + "lon": -1.510400272767879 + }, + { + "lat": 52.54952728210349, + "tiploc": "WHTLSEA", + "name": "Whittlesea", + "crs": "WLE", + "toc": "LE", + "lon": -0.11899101085751815 + }, + { + "lat": 50.40200871310639, + "tiploc": "STBDXVR", + "name": "St Budeaux Victoria Road", + "crs": "SBV", + "toc": "GW", + "lon": -4.187403121763398 + }, + { + "lat": 51.546175290908955, + "tiploc": "HIGHBYA", + "name": "Highbury & Islington", + "crs": "HHY", + "toc": "LT", + "lon": -0.103763713575122 + }, + { + "lat": 0.0, + "tiploc": "MINEPAR", + "name": "Minehead (Bus)", + "crs": "XBW", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 55.78934714981737, + "tiploc": "CLRKSTN", + "name": "Clarkston", + "crs": "CKS", + "toc": "SR", + "lon": -4.275643708377634 + }, + { + "lat": 51.390089146185325, + "tiploc": "EDPK", + "name": "Eden Park", + "crs": "EDN", + "toc": "SE", + "lon": -0.02635515479524528 + }, + { + "lat": 50.38675114235011, + "tiploc": "SDPLACE", + "name": "Sandplace", + "crs": "SDP", + "toc": "GW", + "lon": -4.464479861380086 + }, + { + "lat": 51.14370373598355, + "tiploc": "ASHFKI", + "name": "Ashford International", + "crs": "AFK", + "toc": "SE", + "lon": 0.8761972669376759 + }, + { + "lat": 53.22877361533966, + "tiploc": "DELAMER", + "name": "Delamere", + "crs": "DLM", + "toc": "NT", + "lon": -2.6665602874720555 + }, + { + "lat": 51.546175290908955, + "tiploc": "HIGHBYE", + "name": "Highbury & Islington", + "crs": "HHY", + "toc": "LT", + "lon": -0.103763713575122 + }, + { + "lat": 56.03467605753332, + "tiploc": "IVRKTHG", + "name": "Inverkeithing", + "crs": "INK", + "toc": "SR", + "lon": -3.3961868527591745 + }, + { + "lat": 0.0, + "tiploc": "SOUTLSM", + "name": "Southport, Lord Street (Bus)", + "crs": "SOZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.74473158708122, + "tiploc": "STALBNA", + "name": "St Albans Abbey", + "crs": "SAA", + "toc": "LM", + "lon": -0.3425687107971516 + }, + { + "lat": 51.21448421151626, + "tiploc": "HLDNBRO", + "name": "Hildenborough", + "crs": "HLB", + "toc": "SE", + "lon": 0.22758990159037107 + }, + { + "lat": 0.0, + "tiploc": "SHCRPTN", + "name": "Shaw & Crompton", + "crs": "SHA", + "toc": "NT", + "lon": 0.0 + }, + { + "lat": 51.41221333540174, + "tiploc": "KENTHOS", + "name": "Kent House", + "crs": "KTH", + "toc": "SE", + "lon": -0.045247446470119745 + }, + { + "lat": 52.592467965342955, + "tiploc": "BTLRSLA", + "name": "Butlers Lane", + "crs": "BUL", + "toc": "LM", + "lon": -1.8380201169955535 + }, + { + "lat": 51.517178308004944, + "tiploc": "ACTONML", + "name": "Acton Main Line", + "crs": "AML", + "toc": "GW", + "lon": -0.26675643104191077 + }, + { + "lat": 50.14833856535147, + "tiploc": "FALMTHT", + "name": "Falmouth Town", + "crs": "FMT", + "toc": "GW", + "lon": -5.06493478222055 + }, + { + "lat": 53.33899812246962, + "tiploc": "BAMFORD", + "name": "Bamford", + "crs": "BAM", + "toc": "NT", + "lon": -1.6890817441422086 + }, + { + "lat": 51.34202793613081, + "tiploc": "FRESHFD", + "name": "Freshford", + "crs": "FFD", + "toc": "GW", + "lon": -2.3010084162679516 + }, + { + "lat": 51.50329674936403, + "tiploc": "WATR", + "name": "London Waterloo", + "crs": "WAT", + "toc": "RT", + "lon": -0.11310894207247583 + }, + { + "lat": 50.63390869737961, + "tiploc": "SHANKLN", + "name": "Shanklin", + "crs": "SHN", + "toc": "IL", + "lon": -1.1798341224591968 + }, + { + "lat": 55.84231179978179, + "tiploc": "CROKSTN", + "name": "Crookston", + "crs": "CKT", + "toc": "SR", + "lon": -4.3646749121778345 + }, + { + "lat": 51.40010231624588, + "tiploc": "BICKLEY", + "name": "Bickley", + "crs": "BKL", + "toc": "SE", + "lon": 0.04524054620283054 + }, + { + "lat": 54.5147272501138, + "tiploc": "DINSDAL", + "name": "Dinsdale", + "crs": "DND", + "toc": "NT", + "lon": -1.4670650061073143 + }, + { + "lat": 54.968400319562555, + "tiploc": "NWCSTLE", + "name": "Newcastle", + "crs": "NCL", + "toc": "GR", + "lon": -1.6172798288539492 + }, + { + "lat": 53.42288297857157, + "tiploc": "WALASYV", + "name": "Wallasey Village", + "crs": "WLV", + "toc": "ME", + "lon": -3.0691269870875146 + }, + { + "lat": 0.0, + "tiploc": "EXETAIR", + "name": "Exeter Airport (Bus)", + "crs": "XXT", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 58.59017624228065, + "tiploc": "THURSO", + "name": "Thurso", + "crs": "THS", + "toc": "SR", + "lon": -3.5275481629386936 + }, + { + "lat": 51.5231577, + "tiploc": "LONDNBS", + "name": "Baker Street Underground", + "crs": "ZBS", + "toc": "LT", + "lon": -0.156863 + }, + { + "lat": 51.50407422546189, + "tiploc": "WLOE", + "name": "London Waterloo East", + "crs": "WAE", + "toc": "SE", + "lon": -0.10889815906806012 + }, + { + "lat": 51.06085128790494, + "tiploc": "TISBURY", + "name": "Tisbury", + "crs": "TIS", + "toc": "SW", + "lon": -2.07900209659588 + }, + { + "lat": 50.8357532, + "tiploc": "BRUXMID", + "name": "Brussels Midi", + "crs": "BXS", + "toc": "ES", + "lon": 4.3357158 + }, + { + "lat": 51.90515720106157, + "tiploc": "LEAGRVE", + "name": "Leagrave", + "crs": "LEA", + "toc": "TL", + "lon": -0.45850263589383583 + }, + { + "lat": 51.055519777656855, + "tiploc": "BALCOMB", + "name": "Balcombe", + "crs": "BAB", + "toc": "SN", + "lon": -0.13693375120169995 + }, + { + "lat": 54.9686, + "tiploc": "NWCSTLL", + "name": "Newcastle Central Metro", + "crs": "NCZ", + "toc": "TW", + "lon": -1.6171 + }, + { + "lat": 0.0, + "tiploc": "SWNAGE", + "name": "Swanage", + "crs": "SGE", + "toc": "PC", + "lon": 0.0 + }, + { + "lat": 51.24959552948883, + "tiploc": "ASHH", + "name": "Ash", + "crs": "ASH", + "toc": "SW", + "lon": -0.7128054402442242 + }, + { + "lat": 50.91993770794728, + "tiploc": "REDBDGE", + "name": "Redbridge", + "crs": "RDB", + "toc": "SW", + "lon": -1.4701597866524756 + }, + { + "lat": 52.62371618157856, + "tiploc": "BILBROK", + "name": "Bilbrook", + "crs": "BBK", + "toc": "LM", + "lon": -2.186087735178639 + }, + { + "lat": 53.90814889469353, + "tiploc": "BURLYIW", + "name": "Burley-in-Wharfedale", + "crs": "BUW", + "toc": "NT", + "lon": -1.753371931615215 + }, + { + "lat": 53.74796185022278, + "tiploc": "GLBRDYK", + "name": "Gilberdyke", + "crs": "GBD", + "toc": "NT", + "lon": -0.732243412202631 + }, + { + "lat": 50.826101881803424, + "tiploc": "NRMNSBY", + "name": "Normans Bay", + "crs": "NSB", + "toc": "SN", + "lon": 0.38946157668068515 + }, + { + "lat": 52.75437560987123, + "tiploc": "RUGLTWN", + "name": "Rugeley Town", + "crs": "RGT", + "toc": "LM", + "lon": -1.9368395571436443 + }, + { + "lat": 51.33221668182746, + "tiploc": "SHRMKT", + "name": "Shoreham (Kent)", + "crs": "SEH", + "toc": "SE", + "lon": 0.18888965482487302 + }, + { + "lat": 51.64557976173152, + "tiploc": "BUSHEY", + "name": "Bushey", + "crs": "BSH", + "toc": "LO", + "lon": -0.384749143235515 + }, + { + "lat": 57.64290895053939, + "tiploc": "ELGIN", + "name": "Elgin", + "crs": "ELG", + "toc": "SR", + "lon": -3.3112458978147856 + }, + { + "lat": 50.796337106104, + "tiploc": "FRATGSA", + "name": "Fratton", + "crs": "FTN", + "toc": "SW", + "lon": -1.0739827022988337 + }, + { + "lat": 50.76937602085177, + "tiploc": "EBOURNE", + "name": "Eastbourne", + "crs": "EBN", + "toc": "SN", + "lon": 0.28124693652568195 + }, + { + "lat": 55.95902979926068, + "tiploc": "FRTMTLD", + "name": "Fort Matilda", + "crs": "FTM", + "toc": "SR", + "lon": -4.7952673999052635 + }, + { + "lat": 50.911494288030916, + "tiploc": "MBRK", + "name": "Millbrook (Hampshire)", + "crs": "MBK", + "toc": "SW", + "lon": -1.4338425291074588 + }, + { + "lat": 53.69412667750709, + "tiploc": "PTFTTSF", + "name": "Pontefract Tanshelf", + "crs": "POT", + "toc": "NT", + "lon": -1.3189147828842087 + }, + { + "lat": 53.544819802405435, + "tiploc": "WIGANWL", + "name": "Wigan Wallgate", + "crs": "WGW", + "toc": "NT", + "lon": -2.6331854131988104 + }, + { + "lat": 51.35953130578209, + "tiploc": "SUTTON", + "name": "Sutton (Surrey)", + "crs": "SUO", + "toc": "SN", + "lon": -0.19121481254284117 + }, + { + "lat": 51.813888827493614, + "tiploc": "AYLSBRY", + "name": "Aylesbury", + "crs": "AYS", + "toc": "CH", + "lon": -0.8150959551307121 + }, + { + "lat": 53.44416126607019, + "tiploc": "LVHM", + "name": "Levenshulme", + "crs": "LVM", + "toc": "NT", + "lon": -2.19266965471483 + }, + { + "lat": 51.073458873047464, + "tiploc": "WADHRST", + "name": "Wadhurst", + "crs": "WAD", + "toc": "SE", + "lon": 0.3131735112311045 + }, + { + "lat": 50.43471680332746, + "tiploc": "PAIGNTN", + "name": "Paignton", + "crs": "PGN", + "toc": "GW", + "lon": -3.564875664908851 + }, + { + "lat": 54.2913003575049, + "tiploc": "BOOTLE", + "name": "Bootle", + "crs": "BOC", + "toc": "NT", + "lon": -3.393861594519031 + }, + { + "lat": 50.95365423147939, + "tiploc": "BURGESH", + "name": "Burgess Hill", + "crs": "BUG", + "toc": "SN", + "lon": -0.12741284655711727 + }, + { + "lat": 51.31787195439796, + "tiploc": "ASHD", + "name": "Ashtead", + "crs": "AHD", + "toc": "SN", + "lon": -0.30757175314765905 + }, + { + "lat": 51.63767616614483, + "tiploc": "OKLGHPK", + "name": "Oakleigh Park", + "crs": "OKL", + "toc": "GN", + "lon": -0.16620940213605653 + }, + { + "lat": 53.28551319998096, + "tiploc": "LTLSUTN", + "name": "Little Sutton", + "crs": "LTT", + "toc": "ME", + "lon": -2.943292357283182 + }, + { + "lat": 53.68891692667935, + "tiploc": "BRTHMBR", + "name": "Barton-on-Humber", + "crs": "BAU", + "toc": "NT", + "lon": -0.4434367199825904 + }, + { + "lat": 0.0, + "tiploc": "MELKMAR", + "name": "Melksham Market Place (Bus)", + "crs": "XBO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "AMPFLD", + "name": "Ampfield School (Bus)", + "crs": "AMD", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.07257261398313, + "tiploc": "GWRSYLT", + "name": "Gwersyllt", + "crs": "GWE", + "toc": "AW", + "lon": -3.0178880372808448 + }, + { + "lat": 50.79696059300257, + "tiploc": "POMOPLD", + "name": "Portsmouth Harbour", + "crs": "PMH", + "toc": "SW", + "lon": -1.1078402176271482 + }, + { + "lat": 51.648703172063584, + "tiploc": "SBURY", + "name": "Southbury", + "crs": "SBU", + "toc": "LO", + "lon": -0.052436908015453934 + }, + { + "lat": 51.47602362454856, + "tiploc": "CRDFCEN", + "name": "Cardiff Central", + "crs": "CDF", + "toc": "AW", + "lon": -3.1793017017130505 + }, + { + "lat": 52.26820130240019, + "tiploc": "DRTWCHS", + "name": "Droitwich Spa", + "crs": "DTW", + "toc": "LM", + "lon": -2.158363139942513 + }, + { + "lat": 51.51164396451521, + "tiploc": "FENCHRS", + "name": "London Fenchurch Street", + "crs": "FST", + "toc": "RT", + "lon": -0.07889676336960706 + }, + { + "lat": 53.91756852595611, + "tiploc": "CONONLY", + "name": "Cononley", + "crs": "CEY", + "toc": "NT", + "lon": -2.0120676516853706 + }, + { + "lat": 51.74233118253922, + "tiploc": "HEMLHMP", + "name": "Hemel Hempstead", + "crs": "HML", + "toc": "LM", + "lon": -0.49077380475041865 + }, + { + "lat": 52.69339620236806, + "tiploc": "OAKNGTS", + "name": "Oakengates", + "crs": "OKN", + "toc": "LM", + "lon": -2.450194306716004 + }, + { + "lat": 55.994794816172735, + "tiploc": "CRGDRN", + "name": "Craigendoran", + "crs": "CGD", + "toc": "SR", + "lon": -4.711243663085098 + }, + { + "lat": 53.53040629414084, + "tiploc": "PBRT", + "name": "Pemberton", + "crs": "PEM", + "toc": "NT", + "lon": -2.6703539072844578 + }, + { + "lat": 53.7019195331513, + "tiploc": "NHOL", + "name": "New Holland", + "crs": "NHL", + "toc": "NT", + "lon": -0.3602134311295431 + }, + { + "lat": 54.743308872560775, + "tiploc": "SHPE", + "name": "Stanhope", + "crs": "SNP", + "toc": "PC", + "lon": -2.0032612912721595 + }, + { + "lat": 55.85975506888653, + "tiploc": "ESHS", + "name": "Easterhouse", + "crs": "EST", + "toc": "SR", + "lon": -4.107176328960092 + }, + { + "lat": 52.906470656070454, + "tiploc": "GTHM", + "name": "Grantham", + "crs": "GRA", + "toc": "GR", + "lon": -0.6424502866560934 + }, + { + "lat": 51.52356059991372, + "tiploc": "TAPLOW", + "name": "Taplow", + "crs": "TAP", + "toc": "GW", + "lon": -0.6813704371671021 + }, + { + "lat": 51.37488887658059, + "tiploc": "SUTTONC", + "name": "Sutton Common", + "crs": "SUC", + "toc": "TL", + "lon": -0.19634257298840962 + }, + { + "lat": 51.45036980692915, + "tiploc": "GNHTRI", + "name": "Greenhithe for Bluewater", + "crs": "GNH", + "toc": "SE", + "lon": 0.2802901293407352 + }, + { + "lat": 53.080001861272834, + "tiploc": "NWRKCAS", + "name": "Newark Castle", + "crs": "NCT", + "toc": "EM", + "lon": -0.8131602073375771 + }, + { + "lat": 53.51894490449829, + "tiploc": "BLTNODR", + "name": "Bolton-on-Dearne", + "crs": "BTD", + "toc": "NT", + "lon": -1.3115460555853222 + }, + { + "lat": 55.773192313514244, + "tiploc": "HAMLTNC", + "name": "Hamilton Central", + "crs": "HNC", + "toc": "SR", + "lon": -4.0388847796649205 + }, + { + "lat": 53.430784461107294, + "tiploc": "ECPK", + "name": "Eccleston Park", + "crs": "ECL", + "toc": "NT", + "lon": -2.7800414905008237 + }, + { + "lat": 51.15151011575013, + "tiploc": "OCKLYAC", + "name": "Ockley", + "crs": "OLY", + "toc": "SN", + "lon": -0.3360136984623658 + }, + { + "lat": 50.835680638480014, + "tiploc": "PSLDAWH", + "name": "Portslade", + "crs": "PLD", + "toc": "SN", + "lon": -0.2053364907684493 + }, + { + "lat": 55.90387692597294, + "tiploc": "BSHB", + "name": "Bishopbriggs", + "crs": "BBG", + "toc": "SR", + "lon": -4.224914698129511 + }, + { + "lat": 50.81446466866389, + "tiploc": "COPLSTN", + "name": "Copplestone", + "crs": "COP", + "toc": "GW", + "lon": -3.7515716471860157 + }, + { + "lat": 53.150166682200116, + "tiploc": "SBCH", + "name": "Sandbach", + "crs": "SDB", + "toc": "NT", + "lon": -2.3935054417414396 + }, + { + "lat": 52.400811970692594, + "tiploc": "COVNTRY", + "name": "Coventry", + "crs": "COV", + "toc": "VT", + "lon": -1.5134596382344596 + }, + { + "lat": 50.7292730432464, + "tiploc": "EXETRSD", + "name": "Exeter St Davids", + "crs": "EXD", + "toc": "GW", + "lon": -3.543286124897041 + }, + { + "lat": 51.70029917355711, + "tiploc": "LLHLETH", + "name": "Llanhilleth", + "crs": "LTH", + "toc": "AW", + "lon": -3.1351875495597143 + }, + { + "lat": 0.0, + "tiploc": "WENXTSE", + "name": "Wells-Next-The-Sea (Bus)", + "crs": "WEN", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "GTHLAND", + "name": "Goathland", + "crs": "XGZ", + "toc": "NY", + "lon": 0.0 + }, + { + "lat": 55.3701662600403, + "tiploc": "SANQHAR", + "name": "Sanquhar", + "crs": "SQH", + "toc": "SR", + "lon": -3.924519262110074 + }, + { + "lat": 53.30753670842389, + "tiploc": "ESTHRAK", + "name": "Eastham Rake", + "crs": "ERA", + "toc": "ME", + "lon": -2.9811323968882846 + }, + { + "lat": 51.26835516454522, + "tiploc": "BSNGSTK", + "name": "Basingstoke", + "crs": "BSK", + "toc": "SW", + "lon": -1.0872637584233416 + }, + { + "lat": 53.67139942335922, + "tiploc": "MIRFILD", + "name": "Mirfield", + "crs": "MIR", + "toc": "NT", + "lon": -1.6925450449095847 + }, + { + "lat": 53.698982748002926, + "tiploc": "PTFTMHL", + "name": "Pontefract Monkhill", + "crs": "PFM", + "toc": "NT", + "lon": -1.303689964714898 + }, + { + "lat": 51.49167578571976, + "tiploc": "GNRSBRY", + "name": "Gunnersbury", + "crs": "GUN", + "toc": "LT", + "lon": -0.27528642555631005 + }, + { + "lat": 53.428001497640565, + "tiploc": "WALAGRD", + "name": "Wallasey Grove Road", + "crs": "WLG", + "toc": "ME", + "lon": -3.069706969613625 + }, + { + "lat": 0.0, + "tiploc": "WHITEHL", + "name": "Whitehill Prince of Wales (Bus", + "crs": "WHH", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.5749735251221, + "tiploc": "PBRO", + "name": "Peterborough", + "crs": "PBO", + "toc": "GR", + "lon": -0.2498369680500712 + }, + { + "lat": 51.48979313445842, + "tiploc": "PLMS", + "name": "Plumstead", + "crs": "PLU", + "toc": "SE", + "lon": 0.08425644240572451 + }, + { + "lat": 51.48195976865919, + "tiploc": "CARDFQS", + "name": "Cardiff Queen Street", + "crs": "CDQ", + "toc": "AW", + "lon": -3.170180516167051 + }, + { + "lat": 51.74690852531822, + "tiploc": "BROXBRN", + "name": "Broxbourne", + "crs": "BXB", + "toc": "LE", + "lon": -0.011086718284748493 + }, + { + "lat": 55.77885855805753, + "tiploc": "HAMLTNW", + "name": "Hamilton West", + "crs": "HNW", + "toc": "SR", + "lon": -4.0548080955925565 + }, + { + "lat": 50.717145945326415, + "tiploc": "EXETRST", + "name": "Exeter St Thomas", + "crs": "EXT", + "toc": "GW", + "lon": -3.538836246149667 + }, + { + "lat": 51.36038461156067, + "tiploc": "WALNGTN", + "name": "Wallington", + "crs": "WLT", + "toc": "SN", + "lon": -0.15083294731991584 + }, + { + "lat": 53.36070934192876, + "tiploc": "HUNTSX", + "name": "Hunts Cross", + "crs": "HNX", + "toc": "ME", + "lon": -2.8558609300083377 + }, + { + "lat": 51.415932551612855, + "tiploc": "HAMPTON", + "name": "Hampton", + "crs": "HMP", + "toc": "SW", + "lon": -0.37211895130379075 + }, + { + "lat": 53.10043007419924, + "tiploc": "ALFRETN", + "name": "Alfreton", + "crs": "ALF", + "toc": "EM", + "lon": -1.36969610209375 + }, + { + "lat": 50.83090471383761, + "tiploc": "BRHM", + "name": "Barnham", + "crs": "BAA", + "toc": "SN", + "lon": -0.6396799259604479 + }, + { + "lat": 0.0, + "tiploc": "MELROSE", + "name": "Melrose (Bus)", + "crs": "MLS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 54.83905407477909, + "tiploc": "SEAHAM", + "name": "Seaham", + "crs": "SEA", + "toc": "NT", + "lon": -1.3463371113326876 + }, + { + "lat": 51.33922393292311, + "tiploc": "WBYFLET", + "name": "West Byfleet", + "crs": "WBY", + "toc": "SW", + "lon": -0.5054852091836849 + }, + { + "lat": 50.400346576754984, + "tiploc": "BUGLE", + "name": "Bugle", + "crs": "BGL", + "toc": "GW", + "lon": -4.792100098018207 + }, + { + "lat": 53.31150529989866, + "tiploc": "WORKSOP", + "name": "Worksop", + "crs": "WRK", + "toc": "NT", + "lon": -1.1227712756258441 + }, + { + "lat": 51.38129953824625, + "tiploc": "WWICKHM", + "name": "West Wickham", + "crs": "WWI", + "toc": "SE", + "lon": -0.014431944904649769 + }, + { + "lat": 51.0958887822712, + "tiploc": "FAYGBUS", + "name": "Faygate", + "crs": "FGT", + "toc": "SN", + "lon": -0.2630186615244634 + }, + { + "lat": 51.43896114091693, + "tiploc": "STRWBYH", + "name": "Strawberry Hill", + "crs": "STW", + "toc": "SW", + "lon": -0.3393584557436829 + }, + { + "lat": 51.445844388643934, + "tiploc": "NRTHCA", + "name": "Northfleet", + "crs": "NFL", + "toc": "SE", + "lon": 0.3243334785110315 + }, + { + "lat": 0.0, + "tiploc": "SOTDED", + "name": "Southampton Eastern Docks", + "crs": "XSN", + "toc": "PC", + "lon": 0.0 + }, + { + "lat": 51.971159945588354, + "tiploc": "BURES", + "name": "Bures", + "crs": "BUE", + "toc": "LE", + "lon": 0.7691438228419512 + }, + { + "lat": 52.23749871810883, + "tiploc": "NMPTBAY", + "name": "Northampton", + "crs": "NMP", + "toc": "LM", + "lon": -0.9066530690124484 + }, + { + "lat": 55.81960487112251, + "tiploc": "CMBSLNG", + "name": "Cambuslang", + "crs": "CBL", + "toc": "SR", + "lon": -4.173008365237652 + }, + { + "lat": 55.803988648633016, + "tiploc": "GIFNOCK", + "name": "Giffnock", + "crs": "GFN", + "toc": "SR", + "lon": -4.293014145787372 + }, + { + "lat": 57.47986927380167, + "tiploc": "IVRNESS", + "name": "Inverness", + "crs": "INV", + "toc": "SR", + "lon": -4.223361000744185 + }, + { + "lat": 51.5492618534255, + "tiploc": "WDGRNPK", + "name": "Woodgrange Park", + "crs": "WGR", + "toc": "LO", + "lon": 0.04442323052847702 + }, + { + "lat": 50.40735468487102, + "tiploc": "SASH", + "name": "Saltash", + "crs": "STS", + "toc": "GW", + "lon": -4.209112513989673 + }, + { + "lat": 51.532511717678545, + "tiploc": "STPXBOX", + "name": "London St Pancras (Intl)", + "crs": "STP", + "toc": "RT", + "lon": -0.12646346391460586 + }, + { + "lat": 54.90533818283735, + "tiploc": "SNDRLND", + "name": "Sunderland", + "crs": "SUN", + "toc": "NT", + "lon": -1.382304292062545 + }, + { + "lat": 51.722088671253964, + "tiploc": "SDRSFOT", + "name": "Saundersfoot", + "crs": "SDF", + "toc": "AW", + "lon": -4.716582403678085 + }, + { + "lat": 53.34875016076999, + "tiploc": "FURNESV", + "name": "Furness Vale", + "crs": "FNV", + "toc": "NT", + "lon": -1.9888445893878206 + }, + { + "lat": 51.540600263939005, + "tiploc": "YATE", + "name": "Yate", + "crs": "YAE", + "toc": "GW", + "lon": -2.432521645929384 + }, + { + "lat": 53.48746658496171, + "tiploc": "MNCRVIC", + "name": "Manchester Victoria", + "crs": "MCV", + "toc": "NT", + "lon": -2.2425994349005447 + }, + { + "lat": 50.2332510253314, + "tiploc": "REDRUTH", + "name": "Redruth", + "crs": "RED", + "toc": "GW", + "lon": -5.225915200222603 + }, + { + "lat": 51.391938622121124, + "tiploc": "SUNNGDL", + "name": "Sunningdale", + "crs": "SNG", + "toc": "SW", + "lon": -0.6330407078044415 + }, + { + "lat": 53.40578728185563, + "tiploc": "PADGATE", + "name": "Padgate", + "crs": "PDG", + "toc": "NT", + "lon": -2.5568106356564315 + }, + { + "lat": 51.47109359569301, + "tiploc": "HTRWCBS", + "name": "Heathrow Central Bus Stn", + "crs": "HTR", + "toc": "ZB", + "lon": -0.45330649494245706 + }, + { + "lat": 52.45080530743254, + "tiploc": "BHAMINT", + "name": "Birmingham International", + "crs": "BHI", + "toc": "VT", + "lon": -1.7258566819456247 + }, + { + "lat": 51.68448396115954, + "tiploc": "CRHL", + "name": "Crews Hill", + "crs": "CWH", + "toc": "GN", + "lon": -0.10688709012699552 + }, + { + "lat": 50.52958368093713, + "tiploc": "NABT", + "name": "Newton Abbot", + "crs": "NTA", + "toc": "GW", + "lon": -3.599166749801368 + }, + { + "lat": 51.54482631414697, + "tiploc": "STFORDI", + "name": "Stratford International", + "crs": "SFA", + "toc": "SE", + "lon": -0.008777643917449477 + }, + { + "lat": 51.29015598934479, + "tiploc": "WLDNGHM", + "name": "Woldingham", + "crs": "WOH", + "toc": "SN", + "lon": -0.051869706010966264 + }, + { + "lat": 53.26720277659462, + "tiploc": "SAXILBY", + "name": "Saxilby", + "crs": "SXY", + "toc": "EM", + "lon": -0.6640395483688232 + }, + { + "lat": 55.94533865923801, + "tiploc": "GRENCKC", + "name": "Greenock Central", + "crs": "GKC", + "toc": "SR", + "lon": -4.752633909353817 + }, + { + "lat": 50.848748014817225, + "tiploc": "PCHESTR", + "name": "Portchester", + "crs": "PTC", + "toc": "SW", + "lon": -1.124239905656508 + }, + { + "lat": 51.23696838576476, + "tiploc": "GUILDFD", + "name": "Guildford", + "crs": "GLD", + "toc": "SW", + "lon": -0.5804250170401603 + }, + { + "lat": 51.63789412373403, + "tiploc": "BRITFRY", + "name": "Briton Ferry", + "crs": "BNF", + "toc": "AW", + "lon": -3.819252182949622 + }, + { + "lat": 56.04209360858333, + "tiploc": "DALGETY", + "name": "Dalgety Bay", + "crs": "DAG", + "toc": "SR", + "lon": -3.3677205572663667 + }, + { + "lat": 51.39654663588188, + "tiploc": "STROOD", + "name": "Strood", + "crs": "SOO", + "toc": "SE", + "lon": 0.5001874072241698 + }, + { + "lat": 54.84617457277335, + "tiploc": "DALSTON", + "name": "Dalston", + "crs": "DLS", + "toc": "NT", + "lon": -2.9888519070930584 + }, + { + "lat": 51.176450875073314, + "tiploc": "LINGFLD", + "name": "Lingfield", + "crs": "LFD", + "toc": "SN", + "lon": -0.007164624871791485 + }, + { + "lat": 53.74651446802013, + "tiploc": "BLKB", + "name": "Blackburn", + "crs": "BBN", + "toc": "NT", + "lon": -2.479122039607935 + }, + { + "lat": 53.78164721813162, + "tiploc": "CTTGHM", + "name": "Cottingham", + "crs": "CGM", + "toc": "NT", + "lon": -0.4064339686445521 + }, + { + "lat": 51.4141864696731, + "tiploc": "RBRN", + "name": "Ravensbourne", + "crs": "RVB", + "toc": "SE", + "lon": -0.007556821534543716 + }, + { + "lat": 55.78283191740134, + "tiploc": "AIRBLES", + "name": "Airbles", + "crs": "AIR", + "toc": "SR", + "lon": -3.994192393394383 + }, + { + "lat": 55.803751741391935, + "tiploc": "BRHD", + "name": "Barrhead", + "crs": "BRR", + "toc": "SR", + "lon": -4.397283207799366 + }, + { + "lat": 53.873464512794705, + "tiploc": "CLITHRO", + "name": "Clitheroe", + "crs": "CLH", + "toc": "NT", + "lon": -2.394336306348908 + }, + { + "lat": 54.974, + "tiploc": "MANOMET", + "name": "Manors (T & W Metro)", + "crs": "MRM", + "toc": "TW", + "lon": -1.6048 + }, + { + "lat": 54.43611152004637, + "tiploc": "GROSNYM", + "name": "Grosmont", + "crs": "GMT", + "toc": "NT", + "lon": -0.724965617265729 + }, + { + "lat": 54.77938871927028, + "tiploc": "DRHM", + "name": "Durham", + "crs": "DHM", + "toc": "GR", + "lon": -1.5817519512098703 + }, + { + "lat": 50.355324490562595, + "tiploc": "PARR", + "name": "Par", + "crs": "PAR", + "toc": "GW", + "lon": -4.70467525004471 + }, + { + "lat": 50.393410265239886, + "tiploc": "IVYBDGE", + "name": "Ivybridge", + "crs": "IVY", + "toc": "GW", + "lon": -3.904204063259927 + }, + { + "lat": 51.07974938367373, + "tiploc": "LHVNBUS", + "name": "Littlehaven", + "crs": "LVN", + "toc": "SN", + "lon": -0.3079805260172531 + }, + { + "lat": 55.94733498074021, + "tiploc": "GRENCKW", + "name": "Greenock West", + "crs": "GKW", + "toc": "SR", + "lon": -4.767833122482566 + }, + { + "lat": 0.0, + "tiploc": "NEWASWG", + "name": "Southwell (Bus)", + "crs": "SLZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "NWCSRC", + "name": "Regent Centre (Bus)", + "crs": "REG", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.5349968107652, + "tiploc": "HINCKLY", + "name": "Hinckley", + "crs": "HNK", + "toc": "EM", + "lon": -1.3719232449376757 + }, + { + "lat": 55.6121162492593, + "tiploc": "KILMRNK", + "name": "Kilmarnock", + "crs": "KMK", + "toc": "SR", + "lon": -4.498684690057636 + }, + { + "lat": 0.0, + "tiploc": "NEWASWN", + "name": "Swinderby A46 Roundabout (Bus)", + "crs": "SWC", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.463058788772635, + "tiploc": "RICHNLL", + "name": "Richmond", + "crs": "RMD", + "toc": "SW", + "lon": -0.3015584162159877 + }, + { + "lat": 54.2259555307409, + "tiploc": "SILCRFT", + "name": "Silecroft", + "crs": "SIC", + "toc": "NT", + "lon": -3.3344414347139693 + }, + { + "lat": 52.52878497715385, + "tiploc": "HADISCO", + "name": "Haddiscoe", + "crs": "HAD", + "toc": "LE", + "lon": 1.6230071154791734 + }, + { + "lat": 51.57883544771777, + "tiploc": "DENHAM", + "name": "Denham", + "crs": "DNM", + "toc": "CH", + "lon": -0.49743683535655975 + }, + { + "lat": 51.33639398981262, + "tiploc": "OXSHOTT", + "name": "Oxshott", + "crs": "OXS", + "toc": "SW", + "lon": -0.3624193090374067 + }, + { + "lat": 54.583449726548295, + "tiploc": "SBRN", + "name": "Saltburn", + "crs": "SLB", + "toc": "NT", + "lon": -0.9741329369234921 + }, + { + "lat": 54.28240707998552, + "tiploc": "DENT", + "name": "Dent", + "crs": "DNT", + "toc": "NT", + "lon": -2.363598561942843 + }, + { + "lat": 51.30995621398604, + "tiploc": "WHYTELF", + "name": "Whyteleafe", + "crs": "WHY", + "toc": "SN", + "lon": -0.08114837347035228 + }, + { + "lat": 53.8049120592918, + "tiploc": "CSGT", + "name": "Cross Gates", + "crs": "CRG", + "toc": "NT", + "lon": -1.4515803585442888 + }, + { + "lat": 56.13532870903074, + "tiploc": "LCHGLLY", + "name": "Lochgelly", + "crs": "LCG", + "toc": "SR", + "lon": -3.3129397103736147 + }, + { + "lat": 55.8971511226043, + "tiploc": "BTHGATE", + "name": "Bathgate", + "crs": "BHG", + "toc": "SR", + "lon": -3.6360960354729763 + }, + { + "lat": 52.613540032971365, + "tiploc": "TONFNAU", + "name": "Tonfanau", + "crs": "TNF", + "toc": "AW", + "lon": -4.123697856732514 + }, + { + "lat": 51.384728153960026, + "tiploc": "MALDENM", + "name": "Malden Manor", + "crs": "MAL", + "toc": "SW", + "lon": -0.2612739753136598 + }, + { + "lat": 50.84606775891297, + "tiploc": "NUTBORN", + "name": "Nutbourne", + "crs": "NUT", + "toc": "SN", + "lon": -0.8829455368610173 + }, + { + "lat": 51.47634198254675, + "tiploc": "NWCROSS", + "name": "New Cross", + "crs": "NWX", + "toc": "SE", + "lon": -0.03244096566593311 + }, + { + "lat": 51.191409313020316, + "tiploc": "TONBDG", + "name": "Tonbridge", + "crs": "TON", + "toc": "SE", + "lon": 0.2709730506616487 + }, + { + "lat": 51.319829344811474, + "tiploc": "TRWBRDG", + "name": "Trowbridge", + "crs": "TRO", + "toc": "GW", + "lon": -2.214334416030996 + }, + { + "lat": 54.645093588038925, + "tiploc": "WKNT", + "name": "Workington", + "crs": "WKG", + "toc": "NT", + "lon": -3.558500263791599 + }, + { + "lat": 56.474564859545524, + "tiploc": "BALMOSS", + "name": "Balmossie", + "crs": "BSI", + "toc": "SR", + "lon": -2.838955766160701 + }, + { + "lat": 52.18971096280991, + "tiploc": "STWMRKT", + "name": "Stowmarket", + "crs": "SMK", + "toc": "LE", + "lon": 1.0000053111989846 + }, + { + "lat": 52.62209978822799, + "tiploc": "LGWOOD", + "name": "Lingwood", + "crs": "LGD", + "toc": "LE", + "lon": 1.4899444616388136 + }, + { + "lat": 53.55347545905312, + "tiploc": "FORMBY", + "name": "Formby", + "crs": "FBY", + "toc": "ME", + "lon": -3.0709076590236 + }, + { + "lat": 51.47661450079358, + "tiploc": "NINIANP", + "name": "Ninian Park", + "crs": "NNP", + "toc": "AW", + "lon": -3.2016937372792187 + }, + { + "lat": 51.24119930375762, + "tiploc": "ADISHAM", + "name": "Adisham", + "crs": "ADM", + "toc": "SE", + "lon": 1.199089139740958 + }, + { + "lat": 55.93523149021484, + "tiploc": "GRNFLDS", + "name": "Greenfaulds", + "crs": "GRL", + "toc": "SR", + "lon": -3.99309996984932 + }, + { + "lat": 50.8921705339568, + "tiploc": "RWLNDSC", + "name": "Rowlands Castle", + "crs": "RLN", + "toc": "SW", + "lon": -0.9574707069024696 + }, + { + "lat": 51.7959728562012, + "tiploc": "AMMANFD", + "name": "Ammanford", + "crs": "AMF", + "toc": "AW", + "lon": -3.996734817514526 + }, + { + "lat": 51.42098132784034, + "tiploc": "KMPTNPK", + "name": "Kempton Park", + "crs": "KMP", + "toc": "SW", + "lon": -0.4097513191031259 + }, + { + "lat": 0.0, + "tiploc": "PBROKLB", + "name": "Kings Lynn Bus Station", + "crs": "KLB", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.36339881235362, + "tiploc": "STLEIGH", + "name": "Stoneleigh", + "crs": "SNL", + "toc": "SW", + "lon": -0.24866520749039683 + }, + { + "lat": 52.004298975003266, + "tiploc": "BOWBRKH", + "name": "Bow Brickhill", + "crs": "BWB", + "toc": "LM", + "lon": -0.6960778011394338 + }, + { + "lat": 53.471636196235416, + "tiploc": "ASHBRYS", + "name": "Ashburys", + "crs": "ABY", + "toc": "NT", + "lon": -2.1944363292149567 + }, + { + "lat": 51.396780820088445, + "tiploc": "BARRY", + "name": "Barry", + "crs": "BRY", + "toc": "AW", + "lon": -3.2849843238183265 + }, + { + "lat": 51.54607947870102, + "tiploc": "MRYLAND", + "name": "Maryland", + "crs": "MYL", + "toc": "XR", + "lon": 0.00581513292562661 + }, + { + "lat": 51.28975884746681, + "tiploc": "BATABAL", + "name": "Bat & Ball", + "crs": "BBL", + "toc": "SE", + "lon": 0.19422748837963702 + }, + { + "lat": 51.46130078125073, + "tiploc": "PUTNEY", + "name": "Putney", + "crs": "PUT", + "toc": "SW", + "lon": -0.21647460688447573 + }, + { + "lat": 52.44773127406935, + "tiploc": "COVAREN", + "name": "Coventry Arena", + "crs": "CAA", + "toc": "LM", + "lon": -1.4941245709566786 + }, + { + "lat": 50.79640398643904, + "tiploc": "HMPDNPK", + "name": "Hampden Park", + "crs": "HMD", + "toc": "SN", + "lon": 0.27935579253183607 + }, + { + "lat": 0.0, + "tiploc": "STAUEDE", + "name": "Eden Project (Bus)", + "crs": "XFJ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 54.532889750457876, + "tiploc": "GYPSYLA", + "name": "Gypsy Lane", + "crs": "GYP", + "toc": "NT", + "lon": -1.1793920710825199 + }, + { + "lat": 55.833944412905154, + "tiploc": "CRSMYLF", + "name": "Crossmyloof", + "crs": "CMY", + "toc": "SR", + "lon": -4.284317340683864 + }, + { + "lat": 52.201648924587914, + "tiploc": "DULNGHM", + "name": "Dullingham", + "crs": "DUL", + "toc": "LE", + "lon": 0.36666383516886636 + }, + { + "lat": 51.34846877211794, + "tiploc": "WMILTON", + "name": "Weston Milton", + "crs": "WNM", + "toc": "GW", + "lon": -2.9423860501450547 + }, + { + "lat": 53.741460644025295, + "tiploc": "ANSDELL", + "name": "Ansdell & Fairhaven", + "crs": "AFV", + "toc": "NT", + "lon": -2.993033918798128 + }, + { + "lat": 51.4327122715766, + "tiploc": "SYDNHMH", + "name": "Sydenham Hill", + "crs": "SYH", + "toc": "SE", + "lon": -0.08033956644554946 + }, + { + "lat": 51.156488861636355, + "tiploc": "GTWK", + "name": "Gatwick Airport", + "crs": "GTW", + "toc": "SN", + "lon": -0.16104152797763818 + }, + { + "lat": 53.39020864415976, + "tiploc": "HOYLAKE", + "name": "Hoylake", + "crs": "HYK", + "toc": "ME", + "lon": -3.178830748818782 + }, + { + "lat": 51.94362883981432, + "tiploc": "MISTLEY", + "name": "Mistley", + "crs": "MIS", + "toc": "LE", + "lon": 1.081400074686805 + }, + { + "lat": 55.89014337580919, + "tiploc": "POSILPK", + "name": "Possilpark & Parkhouse", + "crs": "PPK", + "toc": "SR", + "lon": -4.258512615554334 + }, + { + "lat": 54.97497055076432, + "tiploc": "WYLAM", + "name": "Wylam", + "crs": "WYM", + "toc": "NT", + "lon": -1.8140617290986039 + }, + { + "lat": 54.21082171196864, + "tiploc": "MLLM", + "name": "Millom", + "crs": "MLM", + "toc": "NT", + "lon": -3.2710839769136504 + }, + { + "lat": 53.4051901247214, + "tiploc": "WVRTTEC", + "name": "Wavertree Tech Park", + "crs": "WAV", + "toc": "NT", + "lon": -2.9229088810591355 + }, + { + "lat": 0.0, + "tiploc": "DONCDSR", + "name": "Darfield (Bus)", + "crs": "DFZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.66718444978891, + "tiploc": "LAMPHEY", + "name": "Lamphey", + "crs": "LAM", + "toc": "AW", + "lon": -4.8732562025697375 + }, + { + "lat": 50.83205163527357, + "tiploc": "CHCHSTR", + "name": "Chichester", + "crs": "CCH", + "toc": "SN", + "lon": -0.7817489127137484 + }, + { + "lat": 54.13207431002492, + "tiploc": "MALTON", + "name": "Malton", + "crs": "MLT", + "toc": "TP", + "lon": -0.7972220902846479 + }, + { + "lat": 0.0, + "tiploc": "HTRWTM1", + "name": "Heathrow Airport T1 (Bus)", + "crs": "HWO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.394272541639516, + "tiploc": "STGRMNS", + "name": "St Germans", + "crs": "SGM", + "toc": "GW", + "lon": -4.3084042093634 + }, + { + "lat": 0.0, + "tiploc": "HTRWTM2", + "name": "Heathrow Airport T2 (Bus)", + "crs": "HWA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "HTRWTM3", + "name": "Heathrow Airport T3 (Bus)", + "crs": "HWE", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.76175554383471, + "tiploc": "WENDOVR", + "name": "Wendover", + "crs": "WND", + "toc": "CH", + "lon": -0.7473723484206247 + }, + { + "lat": 51.45826584216401, + "tiploc": "HTRWTM4", + "name": "Heathrow Airport T4", + "crs": "HAF", + "toc": "HX", + "lon": -0.4454634591115377 + }, + { + "lat": 51.433449843424604, + "tiploc": "THEALE", + "name": "Theale", + "crs": "THE", + "toc": "GW", + "lon": -1.0749730146637033 + }, + { + "lat": 53.61324265981911, + "tiploc": "ADNL", + "name": "Adlington (Lancashire)", + "crs": "ADL", + "toc": "NT", + "lon": -2.603070796300486 + }, + { + "lat": 51.470050744264405, + "tiploc": "HTRWTM5", + "name": "Heathrow Airport T5", + "crs": "HWV", + "toc": "HX", + "lon": -0.4905890277404491 + }, + { + "lat": 57.333563712727816, + "tiploc": "PLOCKTN", + "name": "Plockton", + "crs": "PLK", + "toc": "SR", + "lon": -5.665998796911396 + }, + { + "lat": 51.94414316515426, + "tiploc": "HARWICH", + "name": "Harwich Town", + "crs": "HWC", + "toc": "LE", + "lon": 1.2866817895783322 + }, + { + "lat": 50.888577325407695, + "tiploc": "CRWHRST", + "name": "Crowhurst", + "crs": "CWU", + "toc": "SE", + "lon": 0.5013365314877827 + }, + { + "lat": 51.48113477733852, + "tiploc": "CHISWCK", + "name": "Chiswick", + "crs": "CHK", + "toc": "SW", + "lon": -0.2678351971188605 + }, + { + "lat": 0.0, + "tiploc": "PYECRNR", + "name": "Pye Corner", + "crs": "PYE", + "toc": "AW", + "lon": 0.0 + }, + { + "lat": 51.580066115996885, + "tiploc": "HDON", + "name": "Hendon", + "crs": "HEN", + "toc": "TL", + "lon": -0.23867413359517722 + }, + { + "lat": 55.86735226324305, + "tiploc": "DRMGLCH", + "name": "Drumgelloch", + "crs": "DRU", + "toc": "SR", + "lon": -3.9488820548231858 + }, + { + "lat": 53.60607446692402, + "tiploc": "HABRO", + "name": "Habrough", + "crs": "HAB", + "toc": "NT", + "lon": -0.26946131390119 + }, + { + "lat": 51.54457711726422, + "tiploc": "LTHH", + "name": "Lisvane & Thornhill", + "crs": "LVT", + "toc": "AW", + "lon": -3.1856017607927862 + }, + { + "lat": 50.90111338242382, + "tiploc": "THOK", + "name": "Three Oaks", + "crs": "TOK", + "toc": "SN", + "lon": 0.6130509716152298 + }, + { + "lat": 54.16990761378354, + "tiploc": "SDAL", + "name": "Silverdale", + "crs": "SVR", + "toc": "NT", + "lon": -2.8038423937949624 + }, + { + "lat": 53.698543177514416, + "tiploc": "HENSALL", + "name": "Hensall", + "crs": "HEL", + "toc": "NT", + "lon": -1.11451867228035 + }, + { + "lat": 53.900030367598376, + "tiploc": "STEETON", + "name": "Steeton & Silsden", + "crs": "SON", + "toc": "NT", + "lon": -1.9447195406126523 + }, + { + "lat": 51.61502114706746, + "tiploc": "WIKFORD", + "name": "Wickford", + "crs": "WIC", + "toc": "LE", + "lon": 0.5191850496624604 + }, + { + "lat": 53.063570201565064, + "tiploc": "NANTWCH", + "name": "Nantwich", + "crs": "NAN", + "toc": "AW", + "lon": -2.518959179007118 + }, + { + "lat": 52.37127661808757, + "tiploc": "LUDLOW", + "name": "Ludlow", + "crs": "LUD", + "toc": "AW", + "lon": -2.7162167969260493 + }, + { + "lat": 51.43650538638258, + "tiploc": "ASFDMSX", + "name": "Ashford (Surrey)", + "crs": "AFS", + "toc": "SW", + "lon": -0.4680709778633021 + }, + { + "lat": 0.0, + "tiploc": "BLFSTPT", + "name": "Belfast Port", + "crs": "BFA", + "toc": "ZF", + "lon": 0.0 + }, + { + "lat": 55.006, + "tiploc": "SGOS", + "name": "South Gosforth (T & W Metro)", + "crs": "SGH", + "toc": "TW", + "lon": -1.608 + }, + { + "lat": 52.54571162924244, + "tiploc": "WYGN", + "name": "Wylde Green", + "crs": "WYL", + "toc": "LM", + "lon": -1.8314088087431186 + }, + { + "lat": 0.0, + "tiploc": "RAMSHBR", + "name": "Ramsgate Harbour (Bus)", + "crs": "RMG", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.240199259419015, + "tiploc": "REDHILL", + "name": "Redhill", + "crs": "RDH", + "toc": "SN", + "lon": -0.16589995100702332 + }, + { + "lat": 51.51672119404895, + "tiploc": "RNHAME", + "name": "Rainham (Essex)", + "crs": "RNM", + "toc": "CC", + "lon": 0.1906334307858113 + }, + { + "lat": 54.9065, + "tiploc": "MLLF", + "name": "Millfield (T & W Metro)", + "crs": "MIF", + "toc": "TW", + "lon": -1.4009 + }, + { + "lat": 51.0672088909676, + "tiploc": "WNCHSTR", + "name": "Winchester", + "crs": "WIN", + "toc": "SW", + "lon": -1.31969995720144 + }, + { + "lat": 51.537583945629656, + "tiploc": "LLHARAN", + "name": "Llanharan", + "crs": "LLR", + "toc": "AW", + "lon": -3.440778230058376 + }, + { + "lat": 52.96140912958024, + "tiploc": "NTHRFLD", + "name": "Netherfield", + "crs": "NET", + "toc": "EM", + "lon": -1.0798496680224474 + }, + { + "lat": 52.97808813466498, + "tiploc": "BOSTON", + "name": "Boston", + "crs": "BSN", + "toc": "EM", + "lon": -0.031003231365319028 + }, + { + "lat": 53.30555986409407, + "tiploc": "GRNDLFD", + "name": "Grindleford", + "crs": "GRN", + "toc": "NT", + "lon": -1.6262966848161218 + }, + { + "lat": 53.5786691145296, + "tiploc": "APLYBDG", + "name": "Appley Bridge", + "crs": "APB", + "toc": "NT", + "lon": -2.719252077159991 + }, + { + "lat": 50.17071051929926, + "tiploc": "PRYN", + "name": "Penryn", + "crs": "PYN", + "toc": "GW", + "lon": -5.111607292803555 + }, + { + "lat": 51.53871447652741, + "tiploc": "SARN", + "name": "Sarn", + "crs": "SRR", + "toc": "AW", + "lon": -3.5899116925427355 + }, + { + "lat": 52.45400544212074, + "tiploc": "BNDON", + "name": "Brandon", + "crs": "BND", + "toc": "LE", + "lon": 0.624731764250055 + }, + { + "lat": 56.93516893266006, + "tiploc": "DALWHIN", + "name": "Dalwhinnie", + "crs": "DLW", + "toc": "SR", + "lon": -4.246198405578387 + }, + { + "lat": 51.05458463267528, + "tiploc": "BSPSLYD", + "name": "Bishops Lydeard", + "crs": "BIB", + "toc": "ZM", + "lon": -3.1943297203661394 + }, + { + "lat": 0.0, + "tiploc": "MILNROW", + "name": "Milnrow", + "crs": "MLR", + "toc": "NT", + "lon": 0.0 + }, + { + "lat": 51.373924607755754, + "tiploc": "CXTN", + "name": "Cuxton", + "crs": "CUX", + "toc": "SE", + "lon": 0.4617086007711324 + }, + { + "lat": 52.899303065284755, + "tiploc": "PREES", + "name": "Prees", + "crs": "PRS", + "toc": "AW", + "lon": -2.689662696138176 + }, + { + "lat": 51.099813057058434, + "tiploc": "CCARY", + "name": "Castle Cary", + "crs": "CLC", + "toc": "GW", + "lon": -2.5227943203849286 + }, + { + "lat": 52.48481915823373, + "tiploc": "STECHFD", + "name": "Stechford", + "crs": "SCF", + "toc": "LM", + "lon": -1.8110253177190405 + }, + { + "lat": 51.35625402416051, + "tiploc": "CHLSFLD", + "name": "Chelsfield", + "crs": "CLD", + "toc": "SE", + "lon": 0.1090698211074081 + }, + { + "lat": 0.0, + "tiploc": "HYTW", + "name": "Hythe Waterside (Bus)", + "crs": "HYZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.4577694892701, + "tiploc": "RICELA", + "name": "Rice Lane", + "crs": "RIL", + "toc": "ME", + "lon": -2.9623183545528837 + }, + { + "lat": 54.55926882522955, + "tiploc": "TABY", + "name": "Thornaby", + "crs": "TBY", + "toc": "TP", + "lon": -1.3014119684562977 + }, + { + "lat": 53.357742438721885, + "tiploc": "ALERTN", + "name": "Liverpool South Parkway", + "crs": "LPY", + "toc": "ME", + "lon": -2.8891277373182462 + }, + { + "lat": 52.44253706822708, + "tiploc": "CRAVENA", + "name": "Craven Arms", + "crs": "CRV", + "toc": "AW", + "lon": -2.8374218456351032 + }, + { + "lat": 51.29201874530675, + "tiploc": "WMALING", + "name": "West Malling", + "crs": "WMA", + "toc": "SE", + "lon": 0.418653263740419 + }, + { + "lat": 53.4568640497525, + "tiploc": "DNTON", + "name": "Denton", + "crs": "DTN", + "toc": "NT", + "lon": -2.1316595206211506 + }, + { + "lat": 50.38216710835906, + "tiploc": "DOCKYDP", + "name": "Dockyard", + "crs": "DOC", + "toc": "GW", + "lon": -4.175897632688204 + }, + { + "lat": 50.709290162153614, + "tiploc": "DRCHS", + "name": "Dorchester South", + "crs": "DCH", + "toc": "SW", + "lon": -2.4372426704403662 + }, + { + "lat": 51.47512659857249, + "tiploc": "NEWXGTE", + "name": "New Cross Gate", + "crs": "NXG", + "toc": "LO", + "lon": -0.04041337950416533 + }, + { + "lat": 51.31583628133375, + "tiploc": "COLSDNS", + "name": "Coulsdon South", + "crs": "CDS", + "toc": "SN", + "lon": -0.13788728755844712 + }, + { + "lat": 53.25728553107719, + "tiploc": "LANFRFC", + "name": "Llanfairfechan", + "crs": "LLF", + "toc": "AW", + "lon": -3.983202527719566 + }, + { + "lat": 53.5870934203984, + "tiploc": "SBROUGH", + "name": "Stallingborough", + "crs": "SLL", + "toc": "NT", + "lon": -0.18366679289343538 + }, + { + "lat": 55.85256719097149, + "tiploc": "CDNL", + "name": "Cardonald", + "crs": "CDO", + "toc": "SR", + "lon": -4.34069240455813 + }, + { + "lat": 51.76387765379478, + "tiploc": "HATFILD", + "name": "Hatfield", + "crs": "HAT", + "toc": "GN", + "lon": -0.2155886035353106 + }, + { + "lat": 53.44940987336605, + "tiploc": "REDISHN", + "name": "Reddish North", + "crs": "RDN", + "toc": "NT", + "lon": -2.15625496625612 + }, + { + "lat": 52.19472445174432, + "tiploc": "WORCSSH", + "name": "Worcester Shrub Hill", + "crs": "WOS", + "toc": "LM", + "lon": -2.209407748424775 + }, + { + "lat": 50.85442530720757, + "tiploc": "HAVANT", + "name": "Havant", + "crs": "HAV", + "toc": "SW", + "lon": -0.9816114674304771 + }, + { + "lat": 53.66307670842026, + "tiploc": "SABR", + "name": "Sandal & Agbrigg", + "crs": "SNA", + "toc": "NT", + "lon": -1.4814194029712353 + }, + { + "lat": 51.992278925475134, + "tiploc": "MINMARS", + "name": "Moreton-in-Marsh", + "crs": "MIM", + "toc": "GW", + "lon": -1.7003803763343026 + }, + { + "lat": 56.20396965798609, + "tiploc": "ARCHRAT", + "name": "Arrochar & Tarbet", + "crs": "ART", + "toc": "SR", + "lon": -4.722769983178303 + }, + { + "lat": 56.41248522887731, + "tiploc": "OBAN", + "name": "Oban", + "crs": "OBN", + "toc": "SR", + "lon": -5.473931471313218 + }, + { + "lat": 53.43592380628439, + "tiploc": "REDISHS", + "name": "Reddish South", + "crs": "RDS", + "toc": "NT", + "lon": -2.158764325703558 + }, + { + "lat": 51.419846579569, + "tiploc": "TOOTING", + "name": "Tooting", + "crs": "TOO", + "toc": "TL", + "lon": -0.16127772680110325 + }, + { + "lat": 52.22299675320287, + "tiploc": "WILMCOT", + "name": "Wilmcote", + "crs": "WMC", + "toc": "LM", + "lon": -1.756011314296651 + }, + { + "lat": 51.56866756104547, + "tiploc": "STHEAIR", + "name": "Southend Airport", + "crs": "SIA", + "toc": "LE", + "lon": 0.7050497558977852 + }, + { + "lat": 51.200080818472465, + "tiploc": "EDNT", + "name": "Edenbridge Town", + "crs": "EBT", + "toc": "SN", + "lon": 0.06717302231465556 + }, + { + "lat": 50.8212433894236, + "tiploc": "POLGATE", + "name": "Polegate", + "crs": "PLG", + "toc": "SN", + "lon": 0.24514004503196668 + }, + { + "lat": 52.48335359717666, + "tiploc": "BHAMSNH", + "name": "Birmingham Snow Hill", + "crs": "BSW", + "toc": "LM", + "lon": -1.8990884684896296 + }, + { + "lat": 0.0, + "tiploc": "CAEUSQU", + "name": "Caerau Square (Bus)", + "crs": "CSQ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.85175772367172, + "tiploc": "GTBNTLY", + "name": "Great Bentley", + "crs": "GRB", + "toc": "LE", + "lon": 1.0651534476986342 + }, + { + "lat": 54.0331422320676, + "tiploc": "HEYSHBR", + "name": "Heysham Port", + "crs": "HHB", + "toc": "NT", + "lon": -2.9131142929580163 + }, + { + "lat": 53.39245975896114, + "tiploc": "SANKEY", + "name": "Sankey for Penketh", + "crs": "SNK", + "toc": "NT", + "lon": -2.6504695660593485 + }, + { + "lat": 50.99001084679177, + "tiploc": "BXTD", + "name": "Buxted", + "crs": "BXD", + "toc": "SN", + "lon": 0.13143892844811517 + }, + { + "lat": 54.18892800240628, + "tiploc": "ASKAM", + "name": "Askam", + "crs": "ASK", + "toc": "NT", + "lon": -3.2045111504608825 + }, + { + "lat": 51.44473885498036, + "tiploc": "CATFBDG", + "name": "Catford Bridge", + "crs": "CFB", + "toc": "SE", + "lon": -0.02479117123538851 + }, + { + "lat": 51.59645377895368, + "tiploc": "GRTHMG", + "name": "Garth (Mid Glamorgan)", + "crs": "GMG", + "toc": "AW", + "lon": -3.6414499051938143 + }, + { + "lat": 51.27579307833738, + "tiploc": "NTHCAMP", + "name": "North Camp", + "crs": "NCM", + "toc": "GW", + "lon": -0.7311986993566821 + }, + { + "lat": 51.63963949396766, + "tiploc": "APPLEFD", + "name": "Appleford", + "crs": "APF", + "toc": "GW", + "lon": -1.2421414376071958 + }, + { + "lat": 50.82164332344428, + "tiploc": "EWRTHNG", + "name": "East Worthing", + "crs": "EWR", + "toc": "SN", + "lon": -0.35489373957680254 + }, + { + "lat": 51.846166890208984, + "tiploc": "WONNAZE", + "name": "Walton-on-the-Naze", + "crs": "WON", + "toc": "LE", + "lon": 1.267669684244867 + }, + { + "lat": 52.47732408578827, + "tiploc": "ROWLEYR", + "name": "Rowley Regis", + "crs": "ROW", + "toc": "LM", + "lon": -2.030874928393828 + }, + { + "lat": 51.3658520074101, + "tiploc": "WSUTTON", + "name": "West Sutton", + "crs": "WSU", + "toc": "TL", + "lon": -0.20517334207725493 + }, + { + "lat": 53.549143391350526, + "tiploc": "BRGG", + "name": "Brigg", + "crs": "BGG", + "toc": "NT", + "lon": -0.4861247392459513 + }, + { + "lat": 0.0, + "tiploc": "BAKECH", + "name": "Chatsworth House (Bus)", + "crs": "CHZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.442971247900026, + "tiploc": "EBSFDOM", + "name": "Ebbsfleet International", + "crs": "EBD", + "toc": "SE", + "lon": 0.32092084452941283 + }, + { + "lat": 51.494588, + "tiploc": "EPHT", + "name": "Elephant & Castle Underground", + "crs": "ZEL", + "toc": "LT", + "lon": -0.0994846 + }, + { + "lat": 51.19733568117289, + "tiploc": "PNSHBUS", + "name": "Penshurst", + "crs": "PHR", + "toc": "SN", + "lon": 0.1734721836027448 + }, + { + "lat": 51.66015612097235, + "tiploc": "MNORBER", + "name": "Manorbier", + "crs": "MRB", + "toc": "AW", + "lon": -4.791829970387123 + }, + { + "lat": 51.18839711228976, + "tiploc": "SWELL", + "name": "Shepherds Well", + "crs": "SPH", + "toc": "SE", + "lon": 1.229910165068396 + }, + { + "lat": 51.74462005120122, + "tiploc": "STRUD", + "name": "Stroud", + "crs": "STD", + "toc": "GW", + "lon": -2.2193826797930765 + }, + { + "lat": 51.52153687978352, + "tiploc": "TYGLAS", + "name": "Ty Glas", + "crs": "TGS", + "toc": "AW", + "lon": -3.19653409225364 + }, + { + "lat": 51.61128945729949, + "tiploc": "BCNSFLD", + "name": "Beaconsfield", + "crs": "BCF", + "toc": "CH", + "lon": -0.6438222536336944 + }, + { + "lat": 53.46074303033156, + "tiploc": "HADFILD", + "name": "Hadfield", + "crs": "HDF", + "toc": "NT", + "lon": -1.9653204618118982 + }, + { + "lat": 0.0, + "tiploc": "TIVIBUS", + "name": "Tiverton (Bus)", + "crs": "XDA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 56.14125448698522, + "tiploc": "CDND", + "name": "Cardenden", + "crs": "CDD", + "toc": "SR", + "lon": -3.2616418537043557 + }, + { + "lat": 0.0, + "tiploc": "CHIPCOK", + "name": "Chippenham Bath Road (Bus)", + "crs": "XDM", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.64299363433224, + "tiploc": "LITLBRO", + "name": "Littleborough", + "crs": "LTL", + "toc": "NT", + "lon": -2.094651356315743 + }, + { + "lat": 0.0, + "tiploc": "PRNTSQ", + "name": "Princetown (Bus)", + "crs": "XPF", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.73821242384813, + "tiploc": "CHRISTC", + "name": "Christchurch", + "crs": "CHR", + "toc": "SW", + "lon": -1.784545956852796 + }, + { + "lat": 53.14209920795887, + "tiploc": "MFLDTWN", + "name": "Mansfield", + "crs": "MFT", + "toc": "EM", + "lon": -1.1984340741115558 + }, + { + "lat": 55.82463948432658, + "tiploc": "PLKSHWE", + "name": "Pollokshaws East", + "crs": "PWE", + "toc": "SR", + "lon": -4.286885091370316 + }, + { + "lat": 52.34224932531878, + "tiploc": "LAPWRTH", + "name": "Lapworth", + "crs": "LPW", + "toc": "CH", + "lon": -1.725691238662426 + }, + { + "lat": 51.57711612796422, + "tiploc": "BORNEND", + "name": "Bourne End", + "crs": "BNE", + "toc": "GW", + "lon": -0.7104735134668826 + }, + { + "lat": 52.469651902443566, + "tiploc": "CRADLYH", + "name": "Cradley Heath", + "crs": "CRA", + "toc": "LM", + "lon": -2.0904881359258365 + }, + { + "lat": 51.57020058759426, + "tiploc": "CHOLSEY", + "name": "Cholsey", + "crs": "CHO", + "toc": "GW", + "lon": -1.15802292272348 + }, + { + "lat": 50.69288675775196, + "tiploc": "WARHAM", + "name": "Wareham", + "crs": "WRM", + "toc": "SW", + "lon": -2.1152464987605266 + }, + { + "lat": 53.44615767632386, + "tiploc": "CHASNRD", + "name": "Chassen Road", + "crs": "CSR", + "toc": "NT", + "lon": -2.3682328640183306 + }, + { + "lat": 52.63935783560129, + "tiploc": "SHNS", + "name": "Shenstone", + "crs": "SEN", + "toc": "LM", + "lon": -1.8442016059203927 + }, + { + "lat": 50.91645252035277, + "tiploc": "BOTLEY", + "name": "Botley", + "crs": "BOE", + "toc": "SW", + "lon": -1.2592364087556418 + }, + { + "lat": 50.816573479632154, + "tiploc": "ANGMRNG", + "name": "Angmering", + "crs": "ANG", + "toc": "SN", + "lon": -0.4893940005405973 + }, + { + "lat": 51.93873616766147, + "tiploc": "DOVRCRT", + "name": "Dovercourt", + "crs": "DVC", + "toc": "LE", + "lon": 1.2806109978419398 + }, + { + "lat": 52.924039138828576, + "tiploc": "PRTHHBR", + "name": "Porthmadog Harbour (Bus)", + "crs": "PMG", + "toc": "ZB", + "lon": -4.126818104058224 + }, + { + "lat": 53.48689342023133, + "tiploc": "OLDROAN", + "name": "Old Roan", + "crs": "ORN", + "toc": "ME", + "lon": -2.9510714787718104 + }, + { + "lat": 51.35333963356161, + "tiploc": "NEWNGTN", + "name": "Newington", + "crs": "NGT", + "toc": "SE", + "lon": 0.6685705107758058 + }, + { + "lat": 52.345070902329844, + "tiploc": "KNIGHTN", + "name": "Knighton", + "crs": "KNI", + "toc": "AW", + "lon": -3.042195668170011 + }, + { + "lat": 52.51499444215004, + "tiploc": "GRAVLYH", + "name": "Gravelly Hill", + "crs": "GVH", + "toc": "LM", + "lon": -1.8525984148299484 + }, + { + "lat": 51.753494241348754, + "tiploc": "OXFD", + "name": "Oxford", + "crs": "OXF", + "toc": "GW", + "lon": -1.2701534314224288 + }, + { + "lat": 51.62090010917752, + "tiploc": "CRSKEYS", + "name": "Crosskeys", + "crs": "CKY", + "toc": "AW", + "lon": -3.12616988663877 + }, + { + "lat": 54.974492168626, + "tiploc": "BRDNML", + "name": "Bardon Mill", + "crs": "BLL", + "toc": "NT", + "lon": -2.3465044302929674 + }, + { + "lat": 52.011540569170386, + "tiploc": "FGDHBR", + "name": "Fishguard Harbour", + "crs": "FGH", + "toc": "AW", + "lon": -4.985641906134843 + }, + { + "lat": 52.459920465982044, + "tiploc": "LYEE", + "name": "Lye", + "crs": "LYE", + "toc": "LM", + "lon": -2.11592923783379 + }, + { + "lat": 51.851663093358155, + "tiploc": "CLARBRD", + "name": "Clarbeston Road", + "crs": "CLR", + "toc": "AW", + "lon": -4.883547625941719 + }, + { + "lat": 53.7375858905446, + "tiploc": "HBDNBDG", + "name": "Hebden Bridge", + "crs": "HBD", + "toc": "NT", + "lon": -2.0090587131126147 + }, + { + "lat": 57.68901797541171, + "tiploc": "IVRGRD", + "name": "Invergordon", + "crs": "IGD", + "toc": "SR", + "lon": -4.174840355744174 + }, + { + "lat": 0.0, + "tiploc": "TAUNSFC", + "name": "Taunton (Bus)", + "crs": "XDQ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.6649695033177, + "tiploc": "YNYSWEN", + "name": "Ynyswen", + "crs": "YNW", + "toc": "AW", + "lon": -3.5215967743445367 + }, + { + "lat": 55.82382553461164, + "tiploc": "PLKSHWW", + "name": "Pollokshaws West", + "crs": "PWW", + "toc": "SR", + "lon": -4.301605516443984 + }, + { + "lat": 53.04441354418122, + "tiploc": "ROMANBG", + "name": "Roman Bridge", + "crs": "RMB", + "toc": "AW", + "lon": -3.9216478807893163 + }, + { + "lat": 51.17005741713279, + "tiploc": "GRATELY", + "name": "Grateley", + "crs": "GRT", + "toc": "SW", + "lon": -1.6207736710211333 + }, + { + "lat": 50.83638195897689, + "tiploc": "ALDTON", + "name": "Aldrington", + "crs": "AGT", + "toc": "SN", + "lon": -0.18382150571551223 + }, + { + "lat": 51.8579164767276, + "tiploc": "CHDNGTN", + "name": "Cheddington", + "crs": "CED", + "toc": "LM", + "lon": -0.6621518419014149 + }, + { + "lat": 53.675523350615, + "tiploc": "RTHP", + "name": "Ravensthorpe", + "crs": "RVN", + "toc": "NT", + "lon": -1.6555788525448667 + }, + { + "lat": 54.33209429567717, + "tiploc": "KENDAL", + "name": "Kendal", + "crs": "KEN", + "toc": "TP", + "lon": -2.739646562711186 + }, + { + "lat": 51.38542661180511, + "tiploc": "MARGATE", + "name": "Margate", + "crs": "MAR", + "toc": "SE", + "lon": 1.3720032954810104 + }, + { + "lat": 51.56035722865082, + "tiploc": "PITSEA", + "name": "Pitsea", + "crs": "PSE", + "toc": "CC", + "lon": 0.5062930410770662 + }, + { + "lat": 51.5139342706776, + "tiploc": "CTMSLNK", + "name": "City Thameslink", + "crs": "CTK", + "toc": "TL", + "lon": -0.10358963795836833 + }, + { + "lat": 50.912913552930334, + "tiploc": "BATTLE", + "name": "Battle", + "crs": "BAT", + "toc": "SE", + "lon": 0.4947027979715679 + }, + { + "lat": 51.18140922944828, + "tiploc": "HEVEBUS", + "name": "Hever", + "crs": "HEV", + "toc": "SN", + "lon": 0.09506932964831297 + }, + { + "lat": 51.856435993610184, + "tiploc": "WATONAS", + "name": "Watton-at-Stone", + "crs": "WAS", + "toc": "GN", + "lon": -0.11942748348542173 + }, + { + "lat": 53.340288291654026, + "tiploc": "CHNLY", + "name": "Chinley", + "crs": "CLY", + "toc": "NT", + "lon": -1.943940726738171 + }, + { + "lat": 53.717436307738, + "tiploc": "HESSLE", + "name": "Hessle", + "crs": "HES", + "toc": "NT", + "lon": -0.4418231855264479 + }, + { + "lat": 51.413065411263446, + "tiploc": "UHALIFD", + "name": "Upper Halliford", + "crs": "UPH", + "toc": "SW", + "lon": -0.43090578119693806 + }, + { + "lat": 51.43028079908075, + "tiploc": "WINERSH", + "name": "Winnersh", + "crs": "WNS", + "toc": "SW", + "lon": -0.87685859198412 + }, + { + "lat": 51.15196702740322, + "tiploc": "ALTON", + "name": "Alton", + "crs": "AON", + "toc": "SW", + "lon": -0.9669132437244681 + }, + { + "lat": 54.58921648084817, + "tiploc": "LONGBCK", + "name": "Longbeck", + "crs": "LGK", + "toc": "NT", + "lon": -1.0304729019600964 + }, + { + "lat": 53.676152690671515, + "tiploc": "STHS", + "name": "Streethouse", + "crs": "SHC", + "toc": "NT", + "lon": -1.400118412759328 + }, + { + "lat": 50.85161253897324, + "tiploc": "EMSWTH", + "name": "Emsworth", + "crs": "EMS", + "toc": "SN", + "lon": -0.9384297083965625 + }, + { + "lat": 51.4327122715766, + "tiploc": "SYDNFD", + "name": "Sydenham Hill", + "crs": "SYH", + "toc": "SE", + "lon": -0.08033956644554946 + }, + { + "lat": 51.47695789319266, + "tiploc": "BATRSPK", + "name": "Battersea Park", + "crs": "BAK", + "toc": "SN", + "lon": -0.14753351317626637 + }, + { + "lat": 55.86218695863235, + "tiploc": "GLGQHL", + "name": "Glasgow Queen Street", + "crs": "GLQ", + "toc": "SR", + "lon": -4.251455813529946 + }, + { + "lat": 51.41103322280916, + "tiploc": "BCKNMJC", + "name": "Beckenham Junction", + "crs": "BKJ", + "toc": "SE", + "lon": -0.025812819497362458 + }, + { + "lat": 50.99674625580005, + "tiploc": "UMBRLGH", + "name": "Umberleigh", + "crs": "UMB", + "toc": "GW", + "lon": -3.9828868561804884 + }, + { + "lat": 51.853350635757764, + "tiploc": "CMTHN", + "name": "Carmarthen", + "crs": "CMN", + "toc": "AW", + "lon": -4.305960814569266 + }, + { + "lat": 51.484348185397394, + "tiploc": "SHAMPTN", + "name": "Shirehampton", + "crs": "SHH", + "toc": "GW", + "lon": -2.6792749711935695 + }, + { + "lat": 55.8377277232895, + "tiploc": "MAXWLPK", + "name": "Maxwell Park", + "crs": "MAX", + "toc": "SR", + "lon": -4.288691807220878 + }, + { + "lat": 0.0, + "tiploc": "LINDFRD", + "name": "Lindford (Bus)", + "crs": "LNF", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.57735641165311, + "tiploc": "HRGY", + "name": "Harringay", + "crs": "HGY", + "toc": "GN", + "lon": -0.10513613312060639 + }, + { + "lat": 51.339649134153966, + "tiploc": "WWODVIL", + "name": "Avoncliff", + "crs": "AVF", + "toc": "GW", + "lon": -2.281325274061334 + }, + { + "lat": 53.54393475747802, + "tiploc": "BTLYSY", + "name": "Bentley (South Yorkshire)", + "crs": "BYK", + "toc": "NT", + "lon": -1.1509485138832765 + }, + { + "lat": 51.589021203343265, + "tiploc": "GERRDSX", + "name": "Gerrards Cross", + "crs": "GER", + "toc": "CH", + "lon": -0.555275399575915 + }, + { + "lat": 53.497484115006756, + "tiploc": "HALLRD", + "name": "Hall Road", + "crs": "HLR", + "toc": "ME", + "lon": -3.0496270120177638 + }, + { + "lat": 52.71010963253443, + "tiploc": "HDNS", + "name": "Hednesford", + "crs": "HNF", + "toc": "LM", + "lon": -2.0017779437400205 + }, + { + "lat": 53.295813384867984, + "tiploc": "FRDSHM", + "name": "Frodsham", + "crs": "FRD", + "toc": "AW", + "lon": -2.723566799013027 + }, + { + "lat": 51.534552159365845, + "tiploc": "KENR", + "name": "Kensal Rise", + "crs": "KNR", + "toc": "LO", + "lon": -0.21995710839908797 + }, + { + "lat": 52.45852017283593, + "tiploc": "BECCLES", + "name": "Beccles", + "crs": "BCC", + "toc": "LE", + "lon": 1.5694934156944522 + }, + { + "lat": 53.37238971537073, + "tiploc": "HOUGHGR", + "name": "Hough Green", + "crs": "HGN", + "toc": "NT", + "lon": -2.7750659138336653 + }, + { + "lat": 0.0, + "tiploc": "PICKLEV", + "name": "Levisham", + "crs": "XLA", + "toc": "NY", + "lon": 0.0 + }, + { + "lat": 52.395879258904216, + "tiploc": "BKSWELL", + "name": "Berkswell", + "crs": "BKW", + "toc": "LM", + "lon": -1.6428403132191047 + }, + { + "lat": 51.20843370847503, + "tiploc": "EDNB", + "name": "Edenbridge", + "crs": "EBR", + "toc": "SN", + "lon": 0.060646266848351824 + }, + { + "lat": 52.604883081081375, + "tiploc": "BLKST", + "name": "Blake Street", + "crs": "BKT", + "toc": "LM", + "lon": -1.8449143940761026 + }, + { + "lat": 52.5165247694193, + "tiploc": "COLESHL", + "name": "Coleshill Parkway", + "crs": "CEH", + "toc": "LM", + "lon": -1.7081772329179297 + }, + { + "lat": 51.234484038933864, + "tiploc": "LENHAM", + "name": "Lenham", + "crs": "LEN", + "toc": "SE", + "lon": 0.7077590136679603 + }, + { + "lat": 51.42458066320536, + "tiploc": "BCKNHMH", + "name": "Beckenham Hill", + "crs": "BEC", + "toc": "SE", + "lon": -0.015951108481327202 + }, + { + "lat": 51.55026401453897, + "tiploc": "FNCHLYR", + "name": "Finchley Road & Frognal", + "crs": "FNY", + "toc": "LO", + "lon": -0.1831405935527113 + }, + { + "lat": 53.73927955795401, + "tiploc": "LYTHAM", + "name": "Lytham", + "crs": "LTM", + "toc": "NT", + "lon": -2.964039613761189 + }, + { + "lat": 51.41103322280916, + "tiploc": "BCKNHMJ", + "name": "Beckenham Junction", + "crs": "BKJ", + "toc": "SE", + "lon": -0.025812819497362458 + }, + { + "lat": 53.0865637347244, + "tiploc": "KIDSGRV", + "name": "Kidsgrove", + "crs": "KDG", + "toc": "EM", + "lon": -2.244815831791135 + }, + { + "lat": 57.68901797541171, + "tiploc": "IVRGRDN", + "name": "Invergordon", + "crs": "IGD", + "toc": "SR", + "lon": -4.174840355744174 + }, + { + "lat": 51.57157534689396, + "tiploc": "CRPHLY", + "name": "Caerphilly", + "crs": "CPH", + "toc": "AW", + "lon": -3.218481949345834 + }, + { + "lat": 51.732519961544156, + "tiploc": "APSLEY", + "name": "Apsley", + "crs": "APS", + "toc": "LM", + "lon": -0.4629347949551441 + }, + { + "lat": 53.445280917516754, + "tiploc": "HATRSLY", + "name": "Hattersley", + "crs": "HTY", + "toc": "NT", + "lon": -2.040310542448714 + }, + { + "lat": 51.070546676256825, + "tiploc": "SLSBY5B", + "name": "Salisbury", + "crs": "SAL", + "toc": "SW", + "lon": -1.806386749442046 + }, + { + "lat": 53.45338691726303, + "tiploc": "BOOTLNS", + "name": "Bootle New Strand", + "crs": "BNW", + "toc": "ME", + "lon": -2.9947472113372684 + }, + { + "lat": 50.848275273875615, + "tiploc": "SBOURNE", + "name": "Southbourne", + "crs": "SOB", + "toc": "SN", + "lon": -0.9081067437912493 + }, + { + "lat": 0.0, + "tiploc": "BOATOFG", + "name": "Boat of Garten Post Off (Bus)", + "crs": "BGR", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.3776845201211, + "tiploc": "BATHSPA", + "name": "Bath Spa", + "crs": "BTH", + "toc": "GW", + "lon": -2.3570181427237817 + }, + { + "lat": 56.06818901979024, + "tiploc": "DNFRMLE", + "name": "Dunfermline Town", + "crs": "DFE", + "toc": "SR", + "lon": -3.452528637753355 + }, + { + "lat": 55.853535630415635, + "tiploc": "SHTLSTN", + "name": "Shettleston", + "crs": "SLS", + "toc": "SR", + "lon": -4.160043576008337 + }, + { + "lat": 52.39122790857856, + "tiploc": "ELYY", + "name": "Ely", + "crs": "ELY", + "toc": "LE", + "lon": 0.26682759341255535 + }, + { + "lat": 53.74020654888372, + "tiploc": "BRFT", + "name": "Broomfleet", + "crs": "BMF", + "toc": "NT", + "lon": -0.6718283695630921 + }, + { + "lat": 50.7897897780531, + "tiploc": "NEWHVNH", + "name": "Newhaven Harbour", + "crs": "NVH", + "toc": "SN", + "lon": 0.054992973538755555 + }, + { + "lat": 56.88096223343912, + "tiploc": "LCHALRT", + "name": "Lochailort", + "crs": "LCL", + "toc": "SR", + "lon": -5.663394869784494 + }, + { + "lat": 0.0, + "tiploc": "NEWHVNM", + "name": "Newhaven Marine (Bus)", + "crs": "NVM", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.693911002195456, + "tiploc": "PEMBRKD", + "name": "Pembroke Dock", + "crs": "PMD", + "toc": "AW", + "lon": -4.938047444773819 + }, + { + "lat": 0.0, + "tiploc": "PEEBLES", + "name": "Peebles Bus Stop", + "crs": "PBS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.8079585210314, + "tiploc": "WARE", + "name": "Ware", + "crs": "WAR", + "toc": "LE", + "lon": -0.028781381011725945 + }, + { + "lat": 51.48754507430039, + "tiploc": "BNTFORD", + "name": "Brentford", + "crs": "BFD", + "toc": "SW", + "lon": -0.30965098568898003 + }, + { + "lat": 53.42835790684464, + "tiploc": "GLAZBRK", + "name": "Glazebrook", + "crs": "GLZ", + "toc": "NT", + "lon": -2.4596573853159653 + }, + { + "lat": 51.279345157661155, + "tiploc": "HRSLEY", + "name": "Horsley", + "crs": "HSY", + "toc": "SW", + "lon": -0.4354086594897603 + }, + { + "lat": 53.33993536547721, + "tiploc": "SPITAL", + "name": "Spital", + "crs": "SPI", + "toc": "ME", + "lon": -2.9939065375996434 + }, + { + "lat": 54.9041, + "tiploc": "STHH", + "name": "South Hylton (T & W Metro)", + "crs": "SHZ", + "toc": "TW", + "lon": -1.4481 + }, + { + "lat": 57.51784696267644, + "tiploc": "MUROORD", + "name": "Muir of Ord", + "crs": "MOO", + "toc": "SR", + "lon": -4.460232944403452 + }, + { + "lat": 51.46682613838523, + "tiploc": "NUNHEAD", + "name": "Nunhead", + "crs": "NHD", + "toc": "SE", + "lon": -0.05227268800863166 + }, + { + "lat": 55.88425029140104, + "tiploc": "BLKRDGE", + "name": "Blackridge", + "crs": "BKR", + "toc": "SR", + "lon": -3.750796629708905 + }, + { + "lat": 53.43430830699547, + "tiploc": "IRLAM", + "name": "Irlam", + "crs": "IRL", + "toc": "NT", + "lon": -2.4332301174732285 + }, + { + "lat": 50.79485407661828, + "tiploc": "NEWHVNT", + "name": "Newhaven Town", + "crs": "NVN", + "toc": "SN", + "lon": 0.05494548948796593 + }, + { + "lat": 52.93552355242064, + "tiploc": "WRUNTON", + "name": "West Runton", + "crs": "WRN", + "toc": "LE", + "lon": 1.2454574331764412 + }, + { + "lat": 54.97517427305923, + "tiploc": "HYDB", + "name": "Haydon Bridge", + "crs": "HDB", + "toc": "NT", + "lon": -2.247587688957084 + }, + { + "lat": 51.44233511627885, + "tiploc": "ERLFLD", + "name": "Earlsfield", + "crs": "EAD", + "toc": "SW", + "lon": -0.1877149276584103 + }, + { + "lat": 54.948734460898486, + "tiploc": "RIDNGML", + "name": "Riding Mill", + "crs": "RDM", + "toc": "NT", + "lon": -1.9715549932585457 + }, + { + "lat": 52.39593346072289, + "tiploc": "WDNYMNR", + "name": "Widney Manor", + "crs": "WMR", + "toc": "LM", + "lon": -1.7743704461824956 + }, + { + "lat": 51.72105992564033, + "tiploc": "BRKMNPK", + "name": "Brookmans Park", + "crs": "BPK", + "toc": "GN", + "lon": -0.20454872173617605 + }, + { + "lat": 52.103586323842215, + "tiploc": "WTLESFD", + "name": "Whittlesford Parkway", + "crs": "WLF", + "toc": "LE", + "lon": 0.16561709953795625 + }, + { + "lat": 51.218155562761964, + "tiploc": "GODSTON", + "name": "Godstone", + "crs": "GDN", + "toc": "SN", + "lon": -0.05008499575113765 + }, + { + "lat": 52.68110599392924, + "tiploc": "TELFRDC", + "name": "Telford Central", + "crs": "TFC", + "toc": "LM", + "lon": -2.4409709279602225 + }, + { + "lat": 0.0, + "tiploc": "PBROUND", + "name": "Oundle Market Place (Bus)", + "crs": "OUD", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.94401996287081, + "tiploc": "SHERBRN", + "name": "Sherborne", + "crs": "SHE", + "toc": "SW", + "lon": -2.5130732719555167 + }, + { + "lat": 53.399582650396326, + "tiploc": "GBROC", + "name": "Gainsborough Central", + "crs": "GNB", + "toc": "NT", + "lon": -0.769694073449628 + }, + { + "lat": 53.44661906604359, + "tiploc": "BOOTLOR", + "name": "Bootle Oriel Road", + "crs": "BOT", + "toc": "ME", + "lon": -2.995733363157231 + }, + { + "lat": 51.126271681904626, + "tiploc": "EGRNSTD", + "name": "East Grinstead", + "crs": "EGR", + "toc": "SN", + "lon": -0.01790009024966936 + }, + { + "lat": 55.673606184232646, + "tiploc": "LANARK", + "name": "Lanark", + "crs": "LNK", + "toc": "SR", + "lon": -3.7732901771524796 + }, + { + "lat": 55.86699642153141, + "tiploc": "NWTGRNG", + "name": "Newtongrange", + "crs": "NEG", + "toc": "SR", + "lon": -3.0693657755802732 + }, + { + "lat": 51.070546676256825, + "tiploc": "SLSBY6B", + "name": "Salisbury", + "crs": "SAL", + "toc": "SW", + "lon": -1.806386749442046 + }, + { + "lat": 50.98368222147324, + "tiploc": "CSFD", + "name": "Chandlers Ford", + "crs": "CFR", + "toc": "SW", + "lon": -1.3851702740251899 + }, + { + "lat": 53.018058655881, + "tiploc": "LGML", + "name": "Langley Mill", + "crs": "LGM", + "toc": "EM", + "lon": -1.3312444012186708 + }, + { + "lat": 54.32142846158644, + "tiploc": "GARSDLE", + "name": "Garsdale", + "crs": "GSD", + "toc": "NT", + "lon": -2.3263535167201326 + }, + { + "lat": 53.231838592873835, + "tiploc": "LGWITH", + "name": "Langwith-Whaley Thorns", + "crs": "LAG", + "toc": "EM", + "lon": -1.2093436006172649 + }, + { + "lat": 55.877488625327466, + "tiploc": "BNHL", + "name": "Barnhill", + "crs": "BNL", + "toc": "SR", + "lon": -4.223004824977854 + }, + { + "lat": 51.50850101618757, + "tiploc": "IVER", + "name": "Iver", + "crs": "IVR", + "toc": "GW", + "lon": -0.5067260103137786 + }, + { + "lat": 52.578745832284845, + "tiploc": "CNTLEY", + "name": "Cantley", + "crs": "CNY", + "toc": "LE", + "lon": 1.51341217772401 + }, + { + "lat": 50.85789388348244, + "tiploc": "HASTING", + "name": "Hastings", + "crs": "HGS", + "toc": "SE", + "lon": 0.5767418034010696 + }, + { + "lat": 53.92571246085168, + "tiploc": "BNRHYDN", + "name": "Ben Rhydding", + "crs": "BEY", + "toc": "NT", + "lon": -1.7974300705255615 + }, + { + "lat": 51.65558149373236, + "tiploc": "BRIMSDN", + "name": "Brimsdown", + "crs": "BMD", + "toc": "LE", + "lon": -0.030817427976065744 + }, + { + "lat": 56.559573034254754, + "tiploc": "ARBROTH", + "name": "Arbroath", + "crs": "ARB", + "toc": "SR", + "lon": -2.588931390025796 + }, + { + "lat": 53.48768177710839, + "tiploc": "BLNDLAC", + "name": "Blundellsands & Crosby", + "crs": "BLN", + "toc": "ME", + "lon": -3.0398597416008983 + }, + { + "lat": 53.55598045027094, + "tiploc": "MSGT", + "name": "Moses Gate", + "crs": "MSS", + "toc": "NT", + "lon": -2.4011880422106 + }, + { + "lat": 55.85843518129429, + "tiploc": "DUKEST", + "name": "Duke Street", + "crs": "DST", + "toc": "SR", + "lon": -4.213047542005441 + }, + { + "lat": 51.37499644121679, + "tiploc": "HNCHLYW", + "name": "Hinchley Wood", + "crs": "HYW", + "toc": "SW", + "lon": -0.3405245291258063 + }, + { + "lat": 55.458140555351704, + "tiploc": "AYRR", + "name": "Ayr", + "crs": "AYR", + "toc": "SR", + "lon": -4.625875538308398 + }, + { + "lat": 53.324773244492114, + "tiploc": "SHRKSKS", + "name": "Shireoaks", + "crs": "SRO", + "toc": "NT", + "lon": -1.1679909389805507 + }, + { + "lat": 0.0, + "tiploc": "BODMTSB", + "name": "Bodmin TSB Bank (Bus)", + "crs": "BDF", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 54.89065031710287, + "tiploc": "CARLILE", + "name": "Carlisle", + "crs": "CAR", + "toc": "VT", + "lon": -2.9331916047172655 + }, + { + "lat": 53.53945129581542, + "tiploc": "DAISYH", + "name": "Daisy Hill", + "crs": "DSY", + "toc": "NT", + "lon": -2.515861008669711 + }, + { + "lat": 0.0, + "tiploc": "STWY", + "name": "Stornoway, Lewis (Bus)", + "crs": "SOY", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.769653897814905, + "tiploc": "RUGL", + "name": "Rugeley Trent Valley", + "crs": "RGL", + "toc": "LM", + "lon": -1.9298513770577315 + }, + { + "lat": 51.68424747675133, + "tiploc": "GLFCHFR", + "name": "Gilfach Fargoed", + "crs": "GFF", + "toc": "AW", + "lon": -3.2265680173685527 + }, + { + "lat": 55.94028349252422, + "tiploc": "WALLYFD", + "name": "Wallyford", + "crs": "WAF", + "toc": "SR", + "lon": -3.014950325633369 + }, + { + "lat": 0.0, + "tiploc": "WDLYHI", + "name": "Woodley, Hunters Inn (Bus)", + "crs": "WDY", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 57.286266766648666, + "tiploc": "INVURIE", + "name": "Inverurie", + "crs": "INR", + "toc": "SR", + "lon": -2.3735595330922825 + }, + { + "lat": 0.0, + "tiploc": "LHRBT1", + "name": "Heathrow Airport T1 (Bus)", + "crs": "HWO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 54.583828184394164, + "tiploc": "STHBANK", + "name": "South Bank", + "crs": "SBK", + "toc": "NT", + "lon": -1.176666972026273 + }, + { + "lat": 52.95213456598556, + "tiploc": "ELTON", + "name": "Elton & Orston", + "crs": "ELO", + "toc": "EM", + "lon": -0.8555123909475822 + }, + { + "lat": 51.50528286443878, + "tiploc": "SHPDSB", + "name": "Shepherds Bush", + "crs": "SPB", + "toc": "LO", + "lon": -0.21765410945021582 + }, + { + "lat": 51.42580615582052, + "tiploc": "STRETHM", + "name": "Streatham", + "crs": "STE", + "toc": "SN", + "lon": -0.13155033082271766 + }, + { + "lat": 53.098798299226566, + "tiploc": "CEFNYBD", + "name": "Cefn-y-Bedd", + "crs": "CYB", + "toc": "AW", + "lon": -3.0310526961346786 + }, + { + "lat": 0.0, + "tiploc": "MERTBCN", + "name": "Brecon Square (Bus)", + "crs": "BEO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.817972355318545, + "tiploc": "HEDNGLY", + "name": "Headingley", + "crs": "HDY", + "toc": "NT", + "lon": -1.5941880253793395 + }, + { + "lat": 53.77177549159345, + "tiploc": "HUNCOAT", + "name": "Huncoat", + "crs": "HCT", + "toc": "NT", + "lon": -2.347561323842585 + }, + { + "lat": 57.20564925714679, + "tiploc": "DYCE", + "name": "Dyce", + "crs": "DYC", + "toc": "SR", + "lon": -2.192322309129618 + }, + { + "lat": 51.91918858542297, + "tiploc": "HEYFORD", + "name": "Heyford", + "crs": "HYD", + "toc": "GW", + "lon": -1.299270002250667 + }, + { + "lat": 52.928823982799095, + "tiploc": "PRHN", + "name": "Penrhyndeudraeth", + "crs": "PRH", + "toc": "AW", + "lon": -4.064562423724672 + }, + { + "lat": 54.06691256655165, + "tiploc": "SETTLE", + "name": "Settle", + "crs": "SET", + "toc": "NT", + "lon": -2.2807140108501027 + }, + { + "lat": 51.65265314622948, + "tiploc": "WATFDHS", + "name": "Watford High Street", + "crs": "WFH", + "toc": "LO", + "lon": -0.3917111643357365 + }, + { + "lat": 55.94741377224118, + "tiploc": "DLREOCH", + "name": "Dalreoch", + "crs": "DLR", + "toc": "SR", + "lon": -4.577862880606635 + }, + { + "lat": 52.406399125199606, + "tiploc": "BLAKEDN", + "name": "Blakedown", + "crs": "BKD", + "toc": "LM", + "lon": -2.1768653800919484 + }, + { + "lat": 52.93091524391506, + "tiploc": "PRTHMDG", + "name": "Porthmadog", + "crs": "PTM", + "toc": "AW", + "lon": -4.134446261072539 + }, + { + "lat": 51.3732940739605, + "tiploc": "ORPNGTN", + "name": "Orpington", + "crs": "ORP", + "toc": "SE", + "lon": 0.08909046492856562 + }, + { + "lat": 53.38608741509125, + "tiploc": "GBGHLRD", + "name": "Gainsborough Lea Road", + "crs": "GBL", + "toc": "EM", + "lon": -0.7685795592049238 + }, + { + "lat": 53.586173660651646, + "tiploc": "SCNTHRP", + "name": "Scunthorpe", + "crs": "SCU", + "toc": "TP", + "lon": -0.6509804183864561 + }, + { + "lat": 56.39209327489075, + "tiploc": "PERTH", + "name": "Perth", + "crs": "PTH", + "toc": "SR", + "lon": -3.4396978803002285 + }, + { + "lat": 52.6374725972589, + "tiploc": "TMWTHHL", + "name": "Tamworth", + "crs": "TAM", + "toc": "LM", + "lon": -1.686464391730138 + }, + { + "lat": 51.67224131942595, + "tiploc": "TREHRBT", + "name": "Treherbert", + "crs": "TRB", + "toc": "AW", + "lon": -3.53630242687715 + }, + { + "lat": 51.44021756124838, + "tiploc": "BEXLEY", + "name": "Bexley", + "crs": "BXY", + "toc": "SE", + "lon": 0.14790250177404402 + }, + { + "lat": 51.65753086975479, + "tiploc": "TREORCY", + "name": "Treorchy", + "crs": "TRY", + "toc": "AW", + "lon": -3.50573376954014 + }, + { + "lat": 53.847704109167225, + "tiploc": "HSFT", + "name": "Horsforth", + "crs": "HRS", + "toc": "NT", + "lon": -1.630228385856383 + }, + { + "lat": 50.78532659764134, + "tiploc": "SSEACLE", + "name": "Southsea Hoverport (Bus)", + "crs": "SHV", + "toc": "ZB", + "lon": -1.0999898952133396 + }, + { + "lat": 55.89883488390014, + "tiploc": "SUMRSTN", + "name": "Summerston", + "crs": "SUM", + "toc": "SR", + "lon": -4.291538459688607 + }, + { + "lat": 51.66390585817985, + "tiploc": "WATFDJ", + "name": "Watford Junction", + "crs": "WFJ", + "toc": "LM", + "lon": -0.3959253002195836 + }, + { + "lat": 51.76836516652543, + "tiploc": "FYSD", + "name": "Ferryside", + "crs": "FYS", + "toc": "AW", + "lon": -4.369458056617688 + }, + { + "lat": 51.601967194547264, + "tiploc": "NMBRLPK", + "name": "Northumberland Park", + "crs": "NUM", + "toc": "LE", + "lon": -0.05393192004477395 + }, + { + "lat": 54.37553100763805, + "tiploc": "STAVELY", + "name": "Staveley", + "crs": "SVL", + "toc": "TP", + "lon": -2.818862503706641 + }, + { + "lat": 55.900689931072094, + "tiploc": "CLYBANK", + "name": "Clydebank", + "crs": "CYK", + "toc": "SR", + "lon": -4.404413815257323 + }, + { + "lat": 51.53628730012474, + "tiploc": "HARLSDN", + "name": "Harlesden", + "crs": "HDN", + "toc": "LT", + "lon": -0.2576675668960279 + }, + { + "lat": 53.73095698677738, + "tiploc": "PLSNGTN", + "name": "Pleasington", + "crs": "PLS", + "toc": "NT", + "lon": -2.544123564802328 + }, + { + "lat": 53.22836099829765, + "tiploc": "TALYCFN", + "name": "Tal-y-Cafn", + "crs": "TLC", + "toc": "AW", + "lon": -3.8182630618053954 + }, + { + "lat": 51.20332006632186, + "tiploc": "WALMER", + "name": "Walmer", + "crs": "WAM", + "toc": "SE", + "lon": 1.3828743869850288 + }, + { + "lat": 51.284893199199544, + "tiploc": "BARMING", + "name": "Barming", + "crs": "BMG", + "toc": "SE", + "lon": 0.4789581067843859 + }, + { + "lat": 51.559115633098116, + "tiploc": "ILFORD", + "name": "Ilford", + "crs": "IFD", + "toc": "XR", + "lon": 0.0696794525147984 + }, + { + "lat": 54.48956932735374, + "tiploc": "GTAYTON", + "name": "Great Ayton", + "crs": "GTA", + "toc": "NT", + "lon": -1.115345222729433 + }, + { + "lat": 51.41676773900248, + "tiploc": "NBCKNHM", + "name": "New Beckenham", + "crs": "NBC", + "toc": "SE", + "lon": -0.03527350353766144 + }, + { + "lat": 0.0, + "tiploc": "LHRBT2", + "name": "Heathrow Airport T2 (Bus)", + "crs": "HWA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.37127661808757, + "tiploc": "LUDLCST", + "name": "Ludlow", + "crs": "LUD", + "toc": "AW", + "lon": -2.7162167969260493 + }, + { + "lat": 51.401663641691414, + "tiploc": "FRNNGRD", + "name": "Farningham Road", + "crs": "FNR", + "toc": "SE", + "lon": 0.2354520651970884 + }, + { + "lat": 51.46454285819686, + "tiploc": "CLFDOWN", + "name": "Clifton Down", + "crs": "CFN", + "toc": "GW", + "lon": -2.6117408217697022 + }, + { + "lat": 51.54875557311214, + "tiploc": "HAKNYNM", + "name": "Hackney Downs", + "crs": "HAC", + "toc": "LO", + "lon": -0.06081901351885941 + }, + { + "lat": 51.6704532849588, + "tiploc": "PENGAM", + "name": "Pengam", + "crs": "PGM", + "toc": "AW", + "lon": -3.2300997416042163 + }, + { + "lat": 51.58929125436328, + "tiploc": "RAYLEGH", + "name": "Rayleigh", + "crs": "RLG", + "toc": "LE", + "lon": 0.599983378165455 + }, + { + "lat": 51.539492816453965, + "tiploc": "BARKING", + "name": "Barking", + "crs": "BKG", + "toc": "CC", + "lon": 0.08090243188341759 + }, + { + "lat": 51.34381294342215, + "tiploc": "BELM", + "name": "Belmont", + "crs": "BLM", + "toc": "SN", + "lon": -0.19885511692361493 + }, + { + "lat": 50.77892608183931, + "tiploc": "NSTCYRE", + "name": "Newton St Cyres", + "crs": "NTC", + "toc": "GW", + "lon": -3.589388927768825 + }, + { + "lat": 50.95236808064078, + "tiploc": "RYEE", + "name": "Rye", + "crs": "RYE", + "toc": "SN", + "lon": 0.7306950890691069 + }, + { + "lat": 51.0339243027842, + "tiploc": "MOTFONT", + "name": "Mottisfont & Dunbridge", + "crs": "DBG", + "toc": "GW", + "lon": -1.5470847941069896 + }, + { + "lat": 0.0, + "tiploc": "BORDON", + "name": "Bordon Camp (Bus)", + "crs": "BDZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 53.26144957346562, + "tiploc": "NTHWICH", + "name": "Northwich", + "crs": "NWI", + "toc": "NT", + "lon": -2.496916955013374 + }, + { + "lat": 53.42355683251568, + "tiploc": "PRESCOT", + "name": "Prescot", + "crs": "PSC", + "toc": "NT", + "lon": -2.7991711904032868 + }, + { + "lat": 56.557055715919674, + "tiploc": "DUNKELD", + "name": "Dunkeld & Birnam", + "crs": "DKD", + "toc": "SR", + "lon": -3.5783989053165373 + }, + { + "lat": 53.29457130136069, + "tiploc": "ABGLELE", + "name": "Abergele & Pensarn", + "crs": "AGL", + "toc": "AW", + "lon": -3.5826219336698886 + }, + { + "lat": 55.80733790074696, + "tiploc": "CARFIN", + "name": "Carfin", + "crs": "CRF", + "toc": "SR", + "lon": -3.9562536270219937 + }, + { + "lat": 53.78232490715441, + "tiploc": "SMILFD", + "name": "South Milford", + "crs": "SOM", + "toc": "NT", + "lon": -1.250529254201849 + }, + { + "lat": 0.0, + "tiploc": "STONECS", + "name": "Stone Crown Street (Bus)", + "crs": "XIS", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.448277983151726, + "tiploc": "CRFD", + "name": "Crayford", + "crs": "CRY", + "toc": "SE", + "lon": 0.1789360832876712 + }, + { + "lat": 50.6394444, + "tiploc": "LILLE", + "name": "Lille Europe", + "crs": "LIU", + "toc": "ES", + "lon": 3.0763889 + }, + { + "lat": 0.0, + "tiploc": "RHIGOS", + "name": "Rhigos (Bus)", + "crs": "RHG", + "toc": "AW", + "lon": 0.0 + }, + { + "lat": 56.87240123033626, + "tiploc": "GLNFNNN", + "name": "Glenfinnan", + "crs": "GLF", + "toc": "SR", + "lon": -5.449619782937436 + }, + { + "lat": 51.56547063232463, + "tiploc": "SDON", + "name": "Swindon", + "crs": "SWI", + "toc": "GW", + "lon": -1.7855111717975898 + }, + { + "lat": 50.3987044477711, + "tiploc": "STCLMBR", + "name": "St Columb Road", + "crs": "SCR", + "toc": "GW", + "lon": -4.9407550969425325 + }, + { + "lat": 51.6924546836222, + "tiploc": "THBLDSG", + "name": "Theobalds Grove", + "crs": "TEO", + "toc": "LO", + "lon": -0.03483137756661956 + }, + { + "lat": 52.477816726366996, + "tiploc": "BHAMNWS", + "name": "Birmingham New Street", + "crs": "BHM", + "toc": "RT", + "lon": -1.9002053557970393 + }, + { + "lat": 53.36061104087042, + "tiploc": "BMHL", + "name": "Bramhall", + "crs": "BML", + "toc": "NT", + "lon": -2.163592603792004 + }, + { + "lat": 51.5324947720042, + "tiploc": "WLSDLLB", + "name": "Willesden Junction", + "crs": "WIJ", + "toc": "LO", + "lon": -0.24454788456345455 + }, + { + "lat": 52.6448322184307, + "tiploc": "COSFORD", + "name": "Cosford", + "crs": "COS", + "toc": "LM", + "lon": -2.3002746622643757 + }, + { + "lat": 52.449321114040934, + "tiploc": "ACOCKSG", + "name": "Acocks Green", + "crs": "ACG", + "toc": "LM", + "lon": -1.8189754242805545 + }, + { + "lat": 51.12569824114954, + "tiploc": "DOVERP", + "name": "Dover Priory", + "crs": "DVP", + "toc": "SE", + "lon": 1.305293579004902 + }, + { + "lat": 0.0, + "tiploc": "LHRBT3", + "name": "Heathrow Airport T3 (Bus)", + "crs": "HWE", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.51848957424171, + "tiploc": "MRGT", + "name": "Moorgate", + "crs": "MOG", + "toc": "LT", + "lon": -0.08894340533170357 + }, + { + "lat": 56.0455160196121, + "tiploc": "ROSYTH", + "name": "Rosyth", + "crs": "ROS", + "toc": "SR", + "lon": -3.4273060618839115 + }, + { + "lat": 53.456213713362104, + "tiploc": "WALTONM", + "name": "Walton (Merseyside)", + "crs": "WAO", + "toc": "ME", + "lon": -2.965747020543538 + }, + { + "lat": 51.45036980692915, + "tiploc": "GNHT", + "name": "Greenhithe for Bluewater", + "crs": "GNH", + "toc": "SE", + "lon": 0.2802901293407352 + }, + { + "lat": 53.68903967246153, + "tiploc": "RAWCLIF", + "name": "Rawcliffe", + "crs": "RWC", + "toc": "NT", + "lon": -0.960863170502041 + }, + { + "lat": 0.0, + "tiploc": "RHYMTRE", + "name": "Rhymney Tredegar (Bus)", + "crs": "XTV", + "toc": "AW", + "lon": 0.0 + }, + { + "lat": 51.541271214441124, + "tiploc": "LHONSEA", + "name": "Leigh-on-Sea", + "crs": "LES", + "toc": "CC", + "lon": 0.6404112827759317 + }, + { + "lat": 53.581797134789696, + "tiploc": "HEALING", + "name": "Healing", + "crs": "HLI", + "toc": "NT", + "lon": -0.1606299233995211 + }, + { + "lat": 50.615313229429994, + "tiploc": "WEYMTH", + "name": "Weymouth", + "crs": "WEY", + "toc": "SW", + "lon": -2.4542219492717243 + }, + { + "lat": 51.14370373598355, + "tiploc": "ASHFKY", + "name": "Ashford International", + "crs": "AFK", + "toc": "SE", + "lon": 0.8761972669376759 + }, + { + "lat": 50.796579350564876, + "tiploc": "HONIT3T", + "name": "Honiton", + "crs": "HON", + "toc": "SW", + "lon": -3.186717808982303 + }, + { + "lat": 51.60584529939261, + "tiploc": "RISCA", + "name": "Risca & Pontymister", + "crs": "RCA", + "toc": "AW", + "lon": -3.0922092565910386 + }, + { + "lat": 53.84861249750021, + "tiploc": "BNGY", + "name": "Bingley", + "crs": "BIY", + "toc": "NT", + "lon": -1.8373222982800943 + }, + { + "lat": 57.609795412178606, + "tiploc": "FORRES", + "name": "Forres", + "crs": "FOR", + "toc": "SR", + "lon": -3.625949659736196 + }, + { + "lat": 55.637206559725904, + "tiploc": "KLMAURS", + "name": "Kilmaurs", + "crs": "KLM", + "toc": "SR", + "lon": -4.5304903123843525 + }, + { + "lat": 53.20430005204293, + "tiploc": "BODORGN", + "name": "Bodorgan", + "crs": "BOR", + "toc": "AW", + "lon": -4.418003099808992 + }, + { + "lat": 55.561057283465814, + "tiploc": "BARASIE", + "name": "Barassie", + "crs": "BSS", + "toc": "SR", + "lon": -4.6511384237767235 + }, + { + "lat": 51.33757683626453, + "tiploc": "PURLEY", + "name": "Purley", + "crs": "PUR", + "toc": "SN", + "lon": -0.11403544861991254 + }, + { + "lat": 53.25934029200069, + "tiploc": "MACLSFD", + "name": "Macclesfield", + "crs": "MAC", + "toc": "VT", + "lon": -2.1219817687681863 + }, + { + "lat": 50.984931334088, + "tiploc": "RBRTSBD", + "name": "Robertsbridge", + "crs": "RBR", + "toc": "SE", + "lon": 0.4687824560711334 + }, + { + "lat": 51.00567980314112, + "tiploc": "HYWRDSH", + "name": "Haywards Heath", + "crs": "HHE", + "toc": "SN", + "lon": -0.10507777624324649 + }, + { + "lat": 0.0, + "tiploc": "PERRBCH", + "name": "Perranporth (Bus)", + "crs": "XCL", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.647868416454614, + "tiploc": "ALTHORN", + "name": "Althorne", + "crs": "ALN", + "toc": "LE", + "lon": 0.7524834551067157 + }, + { + "lat": 53.25146311601474, + "tiploc": "GBNK", + "name": "Greenbank", + "crs": "GBK", + "toc": "NT", + "lon": -2.534270624933814 + }, + { + "lat": 52.322284651434906, + "tiploc": "BRMSGRV", + "name": "Bromsgrove", + "crs": "BMV", + "toc": "LM", + "lon": -2.047344992713974 + }, + { + "lat": 53.46907219670655, + "tiploc": "GORTON", + "name": "Gorton", + "crs": "GTO", + "toc": "NT", + "lon": -2.1662093889875127 + }, + { + "lat": 51.672943124854584, + "tiploc": "PEMBROK", + "name": "Pembroke", + "crs": "PMB", + "toc": "AW", + "lon": -4.906022925170091 + }, + { + "lat": 51.66138802903684, + "tiploc": "SKEWEN", + "name": "Skewen", + "crs": "SKE", + "toc": "AW", + "lon": -3.8465086332224447 + }, + { + "lat": 50.40568828507012, + "tiploc": "CAUSLND", + "name": "Causeland", + "crs": "CAU", + "toc": "GW", + "lon": -4.466447755834457 + }, + { + "lat": 51.43588738775786, + "tiploc": "PENARTH", + "name": "Penarth", + "crs": "PEN", + "toc": "AW", + "lon": -3.174440712995699 + }, + { + "lat": 53.38648580824587, + "tiploc": "UPTON", + "name": "Upton", + "crs": "UPT", + "toc": "AW", + "lon": -3.0841524817703356 + }, + { + "lat": 51.40832582995186, + "tiploc": "BROMLYN", + "name": "Bromley North", + "crs": "BMN", + "toc": "SE", + "lon": 0.016992641272135154 + }, + { + "lat": 51.5100491, + "tiploc": "TOWERHL", + "name": "Tower Hill Underground", + "crs": "ZTH", + "toc": "LT", + "lon": -0.0765083 + }, + { + "lat": 57.27977120229918, + "tiploc": "KYLELSH", + "name": "Kyle of Lochalsh", + "crs": "KYL", + "toc": "SR", + "lon": -5.713812581807414 + }, + { + "lat": 0.0, + "tiploc": "DLTNCGK", + "name": "Catterick Garrison (Bus)", + "crs": "CAZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 50.917879433884764, + "tiploc": "TOTTON", + "name": "Totton", + "crs": "TTN", + "toc": "SW", + "lon": -1.4824173314469928 + }, + { + "lat": 51.45932887671939, + "tiploc": "LHRBT4", + "name": "Heathrow Airport T4 (Bus)", + "crs": "HWF", + "toc": "ZB", + "lon": -0.44696755900678276 + }, + { + "lat": 51.39997442275459, + "tiploc": "BROMLYS", + "name": "Bromley South", + "crs": "BMS", + "toc": "SE", + "lon": 0.01734403397993215 + }, + { + "lat": 0.0, + "tiploc": "DLTNCGP", + "name": "Catterick Camp Centre (Bus)", + "crs": "XGO", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "HULLBS", + "name": "Hull (Bus)", + "crs": "HUU", + "toc": "TP", + "lon": 0.0 + }, + { + "lat": 0.0, + "tiploc": "BEDFBUS", + "name": "Bedford (Bus)", + "crs": "XDW", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 57.6943935713981, + "tiploc": "ALNESS", + "name": "Alness", + "crs": "ASS", + "toc": "SR", + "lon": -4.249716267404323 + }, + { + "lat": 51.441058987451804, + "tiploc": "SHRNSOS", + "name": "Sheerness-on-Sea", + "crs": "SSS", + "toc": "SE", + "lon": 0.758533073362239 + }, + { + "lat": 57.2795007540295, + "tiploc": "CARRBDG", + "name": "Carrbridge", + "crs": "CAG", + "toc": "SR", + "lon": -3.8282027974612207 + }, + { + "lat": 0.0, + "tiploc": "DLTNCGT", + "name": "Catterick Garrison Tesco (Bus)", + "crs": "CGT", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 52.13323454426673, + "tiploc": "GARTH", + "name": "Garth (Powys)", + "crs": "GTH", + "toc": "AW", + "lon": -3.5299070504073065 + }, + { + "lat": 51.5411511091747, + "tiploc": "LONFLDS", + "name": "London Fields", + "crs": "LOF", + "toc": "LO", + "lon": -0.05775336888428888 + }, + { + "lat": 51.86668948107905, + "tiploc": "BSHPSFD", + "name": "Bishops Stortford", + "crs": "BIS", + "toc": "LE", + "lon": 0.16489411072804916 + }, + { + "lat": 53.38323872124096, + "tiploc": "BNWK", + "name": "Brunswick", + "crs": "BRW", + "toc": "ME", + "lon": -2.976076835702196 + }, + { + "lat": 51.0506841706552, + "tiploc": "CHRSBUS", + "name": "Christs Hospital", + "crs": "CHH", + "toc": "SN", + "lon": -0.36355632706832447 + }, + { + "lat": 53.30768191551797, + "tiploc": "HLYH", + "name": "Holyhead", + "crs": "HHD", + "toc": "AW", + "lon": -4.631002330005493 + }, + { + "lat": 55.82655382110263, + "tiploc": "MTFL", + "name": "Mount Florida", + "crs": "MFL", + "toc": "SR", + "lon": -4.261131479270768 + }, + { + "lat": 55.84208406279903, + "tiploc": "DLMRNOK", + "name": "Dalmarnock", + "crs": "DAK", + "toc": "SR", + "lon": -4.217708544847465 + }, + { + "lat": 51.44618296764388, + "tiploc": "WANDCMN", + "name": "Wandsworth Common", + "crs": "WSW", + "toc": "SN", + "lon": -0.1633859854179936 + }, + { + "lat": 50.780004478695524, + "tiploc": "MDNNWTN", + "name": "Maiden Newton", + "crs": "MDN", + "toc": "GW", + "lon": -2.5694295684454724 + }, + { + "lat": 0.0, + "tiploc": "BAKEWEL", + "name": "Bakewell (Bus)", + "crs": "BKZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 56.08057346985548, + "tiploc": "DNFRMQM", + "name": "Dunfermline Queen Margaret", + "crs": "DFL", + "toc": "SR", + "lon": -3.4214677417942156 + }, + { + "lat": 55.61087272176075, + "tiploc": "IRVN", + "name": "Irvine", + "crs": "IRV", + "toc": "SR", + "lon": -4.675145360475591 + }, + { + "lat": 53.413867255033814, + "tiploc": "WHISTON", + "name": "Whiston", + "crs": "WHN", + "toc": "NT", + "lon": -2.7964318077817674 + }, + { + "lat": 54.4925302117634, + "tiploc": "STBEES", + "name": "St Bees", + "crs": "SBS", + "toc": "NT", + "lon": -3.591149927382141 + }, + { + "lat": 52.72349782039062, + "tiploc": "PNKRDG", + "name": "Penkridge", + "crs": "PKG", + "toc": "LM", + "lon": -2.1192935936874617 + }, + { + "lat": 50.90744670759174, + "tiploc": "SOTON", + "name": "Southampton Central", + "crs": "SOU", + "toc": "SW", + "lon": -1.4135958989967008 + }, + { + "lat": 0.0, + "tiploc": "WEYMTHQ", + "name": "Weymouth Quay (Bus)", + "crs": "WYQ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.520434247235016, + "tiploc": "CORYTON", + "name": "Coryton", + "crs": "COY", + "toc": "AW", + "lon": -3.2318178413800562 + }, + { + "lat": 58.5136229605318, + "tiploc": "GRGMASJ", + "name": "Georgemas Junction", + "crs": "GGJ", + "toc": "SR", + "lon": -3.4521201993145447 + }, + { + "lat": 52.995471334577545, + "tiploc": "SLEFD", + "name": "Sleaford", + "crs": "SLR", + "toc": "EM", + "lon": -0.4103469762261813 + }, + { + "lat": 51.23622413670295, + "tiploc": "DRKGW", + "name": "Dorking West", + "crs": "DKT", + "toc": "GW", + "lon": -0.33997854884880446 + }, + { + "lat": 53.777330666851135, + "tiploc": "SQUIRES", + "name": "Squires Gate", + "crs": "SQU", + "toc": "NT", + "lon": -3.0503015881349267 + }, + { + "lat": 0.0, + "tiploc": "YORKECP", + "name": "Eden Camp (Bus)", + "crs": "EDZ", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 51.54178892906095, + "tiploc": "CMDNRD", + "name": "Camden Road", + "crs": "CMD", + "toc": "LO", + "lon": -0.13870089498140872 + }, + { + "lat": 51.568104505575526, + "tiploc": "BASILDN", + "name": "Basildon", + "crs": "BSO", + "toc": "CC", + "lon": 0.4567888692282308 + }, + { + "lat": 50.903754577799106, + "tiploc": "COKSBDG", + "name": "Cooksbridge", + "crs": "CBR", + "toc": "SN", + "lon": -0.009202745957478132 + }, + { + "lat": 53.784963918622665, + "tiploc": "BURNMR", + "name": "Burnley Manchester Road", + "crs": "BYM", + "toc": "NT", + "lon": -2.2488672268138967 + }, + { + "lat": 51.16331747107855, + "tiploc": "MLFORD", + "name": "Milford (Surrey)", + "crs": "MLF", + "toc": "SW", + "lon": -0.6369483542335653 + }, + { + "lat": 50.724364358701486, + "tiploc": "RYDS", + "name": "Ryde St Johns Road", + "crs": "RYR", + "toc": "IL", + "lon": -1.1565663606761436 + }, + { + "lat": 51.33339043178732, + "tiploc": "TEYNHAM", + "name": "Teynham", + "crs": "TEY", + "toc": "SE", + "lon": 0.8074255287095726 + }, + { + "lat": 50.435863139824924, + "tiploc": "TOTNES", + "name": "Totnes", + "crs": "TOT", + "toc": "GW", + "lon": -3.688692308896976 + }, + { + "lat": 53.47129209993635, + "tiploc": "FRFD", + "name": "Fairfield", + "crs": "FRF", + "toc": "NT", + "lon": -2.14577492587942 + }, + { + "lat": 51.34704363402045, + "tiploc": "PURLEYO", + "name": "Purley Oaks", + "crs": "PUO", + "toc": "SN", + "lon": -0.09885614623999962 + }, + { + "lat": 53.53885640029354, + "tiploc": "GFLD", + "name": "Greenfield", + "crs": "GNF", + "toc": "NT", + "lon": -2.013843458243895 + }, + { + "lat": 51.476245918498684, + "tiploc": "GRAYS", + "name": "Grays", + "crs": "GRY", + "toc": "CC", + "lon": 0.3218321620779327 + }, + { + "lat": 53.698195691647626, + "tiploc": "BRHOUSE", + "name": "Brighouse", + "crs": "BGH", + "toc": "NT", + "lon": -1.7794388511493557 + }, + { + "lat": 56.00261227023952, + "tiploc": "FALKRKG", + "name": "Falkirk Grahamston", + "crs": "FKG", + "toc": "SR", + "lon": -3.785046068548433 + }, + { + "lat": 55.84218913333844, + "tiploc": "HWKHEAD", + "name": "Hawkhead", + "crs": "HKH", + "toc": "SR", + "lon": -4.3988508030942395 + }, + { + "lat": 53.065130089093486, + "tiploc": "PNYPANT", + "name": "Pont-y-Pant", + "crs": "PYP", + "toc": "AW", + "lon": -3.862720520853743 + }, + { + "lat": 55.991814099842, + "tiploc": "FALKRKH", + "name": "Falkirk High", + "crs": "FKK", + "toc": "SR", + "lon": -3.7922440721522137 + }, + { + "lat": 0.0, + "tiploc": "HIRWBUS", + "name": "Hirwaun (Bus)", + "crs": "XHW", + "toc": "AW", + "lon": 0.0 + }, + { + "lat": 51.541510648939806, + "tiploc": "STHVIC", + "name": "Southend Victoria", + "crs": "SOV", + "toc": "LE", + "lon": 0.7115007532523286 + }, + { + "lat": 0.0, + "tiploc": "LUTNAIR", + "name": "Luton Airport (Bus)", + "crs": "LUA", + "toc": "ZB", + "lon": 0.0 + }, + { + "lat": 55.74870531326016, + "tiploc": "MRRYTON", + "name": "Merryton", + "crs": "MEY", + "toc": "SR", + "lon": -3.978253461545205 + } + ] +}