diff --git a/Makefile b/Makefile
index f2b2dde2e5170e57ea059684aca8a9b8a1bd210b..1b6bcf3c0043d480d3b537f7c50af07e00a689b5 100644
--- a/Makefile
+++ b/Makefile
@@ -34,8 +34,9 @@ release-binary:
 
 .PHONY: revendor
 revendor:
-	@glide up -v
-	@glide-vc --use-lock-file --no-tests --only-code
+	@go mod tidy -v
+	@go mod vendor -v
+	@go mod verify
 
 test:
 	@go test -v -i $(shell go list ./... | grep -v '/vendor/')
diff --git a/glide.lock b/glide.lock
deleted file mode 100644
index e4b00be511a0004619c2429c7b65a410e524eecb..0000000000000000000000000000000000000000
--- a/glide.lock
+++ /dev/null
@@ -1,185 +0,0 @@
-hash: 70e399f3424964c1535cefb66bce0e47af25ea6bb0f32a254e83e91bd774b5f2
-updated: 2018-11-20T09:49:19.83565589-05:00
-imports:
-- name: github.com/beevik/etree
-  version: 4cd0dd976db869f817248477718071a28e978df0
-- name: github.com/beorn7/perks
-  version: 3ac7bf7a47d159a033b107610db8a1b6575507a4
-  subpackages:
-  - quantile
-- name: github.com/coreos/etcd
-  version: f1d7dd87da3e8feab4aaf675b8e29c6a5ed5f58b
-  subpackages:
-  - auth/authpb
-  - clientv3
-  - clientv3/namespace
-  - etcdserver/api/v3rpc/rpctypes
-  - etcdserver/etcdserverpb
-  - mvcc/mvccpb
-  - pkg/tlsutil
-  - pkg/transport
-- name: github.com/coreos/go-oidc
-  version: be73733bb8cc830d0205609b95d125215f8e9c70
-- name: github.com/felixge/httpsnoop
-  version: eadd4fad6aac69ae62379194fe0219f3dbc80fd3
-- name: github.com/ghodss/yaml
-  version: bea76d6a4713e18b7f5321a2b020738552def3ea
-- name: github.com/golang/protobuf
-  version: 1e59b77b52bf8e4b449a57e6f79f21226d571845
-  subpackages:
-  - proto
-  - protoc-gen-go
-  - protoc-gen-go/descriptor
-  - protoc-gen-go/generator
-  - protoc-gen-go/grpc
-  - protoc-gen-go/plugin
-  - ptypes/any
-- name: github.com/gorilla/context
-  version: aed02d124ae4a0e94fea4541c8effd05bf0c8296
-- name: github.com/gorilla/handlers
-  version: 3a5767ca75ece5f7f1440b1d16975247f8d8b221
-- name: github.com/gorilla/mux
-  version: 9fa818a44c2bf1396a17f9d5a3c0f6dd39d2ff8e
-- name: github.com/grpc-ecosystem/go-grpc-prometheus
-  version: 0dafe0d496ea71181bf2dd039e7e3f44b6bd11a7
-- name: github.com/gtank/cryptopasta
-  version: e7e23673cac3f529f49e22f94e4af6d12bb49dba
-- name: github.com/inconshreveable/mousetrap
-  version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75
-- name: github.com/jonboulle/clockwork
-  version: bcac9884e7502bb2b474c0339d889cb981a2f27f
-- name: github.com/kylelemons/godebug
-  version: eadb3ce320cbab8393bea5ca17bebac3f78a021b
-  subpackages:
-  - diff
-  - pretty
-- name: github.com/lib/pq
-  version: 9eb73efc1fcc404148b56765b0d3f61d9a5ef8ee
-  subpackages:
-  - oid
-- name: github.com/mattn/go-sqlite3
-  version: 3fb7a0e792edd47bf0cf1e919dfc14e2be412e15
-- name: github.com/matttproud/golang_protobuf_extensions
-  version: fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a
-  subpackages:
-  - pbutil
-- name: github.com/pquerna/cachecontrol
-  version: c97913dcbd76de40b051a9b4cd827f7eaeb7a868
-  subpackages:
-  - cacheobject
-- name: github.com/prometheus/client_golang
-  version: 967789050ba94deca04a5e84cce8ad472ce313c1
-  subpackages:
-  - prometheus
-  - prometheus/promhttp
-- name: github.com/prometheus/client_model
-  version: fa8ad6fec33561be4280a8f0514318c79d7f6cb6
-  subpackages:
-  - go
-- name: github.com/prometheus/common
-  version: 49fee292b27bfff7f354ee0f64e1bc4850462edf
-  subpackages:
-  - expfmt
-  - internal/bitbucket.org/ww/goautoneg
-  - model
-- name: github.com/prometheus/procfs
-  version: a1dba9ce8baed984a2495b658c82687f8157b98f
-  subpackages:
-  - xfs
-- name: github.com/russellhaering/goxmldsig
-  version: eaac44c63fe007124f8f6255b09febc906784981
-  subpackages:
-  - etreeutils
-  - types
-- name: github.com/sirupsen/logrus
-  version: a3f95b5c423586578a4e099b11a46c2479628cac
-- name: github.com/spf13/cobra
-  version: bc81c21bd0d8be5ba2d6630a505d79d4467566e7
-- name: github.com/spf13/pflag
-  version: 367864438f1b1a3c7db4da06a2f55b144e6784e0
-- name: golang.org/x/crypto
-  version: 2c99acdd1e9b90d779ca23f632aad86af9909c62
-  subpackages:
-  - bcrypt
-  - blowfish
-  - ed25519
-  - ed25519/internal/edwards25519
-  - pbkdf2
-- name: golang.org/x/lint
-  version: 1baf3a9d7d675b3c7e974b7a00ded54b88a88379
-  subpackages:
-  - golint
-- name: golang.org/x/net
-  version: 5602c733f70afc6dcec6766be0d5034d4c4f14de
-  subpackages:
-  - context
-  - http2
-  - http2/hpack
-  - idna
-  - internal/timeseries
-  - lex/httplex
-  - trace
-- name: golang.org/x/oauth2
-  version: 08c8d727d2392d18286f9f88ad775ad98f09ab33
-  subpackages:
-  - bitbucket
-  - github
-  - internal
-- name: golang.org/x/sys
-  version: 833a04a10549a95dc34458c195cbad61bbb6cb4d
-  subpackages:
-  - unix
-- name: golang.org/x/text
-  version: f4b4367115ec2de254587813edaa901bc1c723a8
-  subpackages:
-  - secure/bidirule
-  - transform
-  - unicode/bidi
-  - unicode/norm
-- name: golang.org/x/tools
-  version: a2dc47679d30b6c496245bafc6a166b46c5fe318
-  subpackages:
-  - go/ast/astutil
-  - go/gcexportdata
-  - go/internal/gcimporter
-- name: google.golang.org/appengine
-  version: 267c27e7492265b84fc6719503b14a1e17975d79
-  subpackages:
-  - internal
-  - internal/base
-  - internal/datastore
-  - internal/log
-  - internal/remote_api
-  - internal/urlfetch
-  - urlfetch
-- name: google.golang.org/genproto
-  version: 411e09b969b1170a9f0c467558eb4c4c110d9c77
-  subpackages:
-  - googleapis/rpc/status
-- name: google.golang.org/grpc
-  version: 0e8b58d22f34640cb17dbbed1c8aef3b8dcc0e97
-  subpackages:
-  - codes
-  - credentials
-  - grpclog
-  - internal
-  - keepalive
-  - metadata
-  - naming
-  - peer
-  - stats
-  - status
-  - tap
-  - transport
-- name: gopkg.in/asn1-ber.v1
-  version: 4e86f4367175e39f69d9358a5f17b4dda270378d
-- name: gopkg.in/ldap.v2
-  version: bb7a9ca6e4fbc2129e3db588a34bc970ffe811a9
-- name: gopkg.in/square/go-jose.v2
-  version: 8254d6c783765f38c8675fae4427a1fe73fbd09d
-  subpackages:
-  - cipher
-  - json
-- name: gopkg.in/yaml.v2
-  version: a83829b6f1293c91addabc89d0571c246397bbf4
-testImports: []
diff --git a/glide.yaml b/glide.yaml
deleted file mode 100644
index e4909ff41f550da34af66ceda920c40e40e3a477..0000000000000000000000000000000000000000
--- a/glide.yaml
+++ /dev/null
@@ -1,187 +0,0 @@
-# For detailed docs on how to add new dependencies or
-# update dependencies see Documentation/dev-dependencies.md
-#
-# The TL;DR is:
-# * Use glide and glide-vc.
-# * List transitive dependencies.
-# * Create a separate block for each dependency group.
-# * Keep updates to "vendor/" in a separate commit from actual changes.
-
-package: github.com/dexidp/dex
-import:
-
-- package: github.com/spf13/cobra
-  version: bc81c21bd0d8be5ba2d6630a505d79d4467566e7
-- package: github.com/spf13/pflag
-  version: 367864438f1b1a3c7db4da06a2f55b144e6784e0
-- package: github.com/inconshreveable/mousetrap
-  version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75
-
-# LDAP dependencies.
-- package: gopkg.in/ldap.v2
-  version: v2.5.1
-- package: gopkg.in/asn1-ber.v1
-  version: 4e86f4367175e39f69d9358a5f17b4dda270378d
-
-# Used for JOSE functionality (JWKs, JWTs, etc.).
-- package: gopkg.in/square/go-jose.v2
-  version: v2.1.8
-  subpackages:
-  - cipher
-  - json
-
-# Imported directly and by several third party packages.
-- package: golang.org/x/net
-  version: 5602c733f70afc6dcec6766be0d5034d4c4f14de
-  subpackages:
-  - context
-  - http2
-  - http2/hpack
-  - internal/timeseries
-  - lex/httplex
-  - trace
-- package: golang.org/x/text
-  version: f4b4367115ec2de254587813edaa901bc1c723a8
-
-# Used for parsing configs.
-- package: github.com/ghodss/yaml
-  version: bea76d6a4713e18b7f5321a2b020738552def3ea
-- package: gopkg.in/yaml.v2
-  version: a83829b6f1293c91addabc89d0571c246397bbf4
-
-# Router used by the server.
-- package: github.com/gorilla/mux
-  version: 9fa818a44c2bf1396a17f9d5a3c0f6dd39d2ff8e
-- package: github.com/gorilla/context
-  version: aed02d124ae4a0e94fea4541c8effd05bf0c8296
-- package: github.com/gorilla/handlers
-  version: 3a5767ca75ece5f7f1440b1d16975247f8d8b221
-
-# Package with a bunch of sane crypto defaults. Consider just
-# copy the code (as recommended by the repo itself) instead
-# of importing.
-- package: github.com/gtank/cryptopasta
-  version: e7e23673cac3f529f49e22f94e4af6d12bb49dba
-- package: golang.org/x/crypto
-  version: 2c99acdd1e9b90d779ca23f632aad86af9909c62
-  subpackages:
-  - bcrypt
-
-# Used for server integration tests and OpenID Connect connector.
-- package: github.com/coreos/go-oidc
-  version: be73733bb8cc830d0205609b95d125215f8e9c70
-- package: github.com/pquerna/cachecontrol
-  version: c97913dcbd76de40b051a9b4cd827f7eaeb7a868
-- package: golang.org/x/oauth2
-  version: 08c8d727d2392d18286f9f88ad775ad98f09ab33
-
-# The oauth2 package only imports the appengine code when it's given a
-# specific build tags, but glide detects it anyway.
-#
-# https://github.com/golang/oauth2/blob/d5040cdd/client_appengine.go
-- package: google.golang.org/appengine
-  version: 267c27e7492265b84fc6719503b14a1e17975d79
-  subpackages:
-  - urlfetch
-  - internal
-  - internal/urlfetch
-  - internal/base
-  - internal/datastore
-  - internal/log
-  - internal/remote_api
-
-# Testing conveniences.
-- package: github.com/kylelemons/godebug
-  version: eadb3ce320cbab8393bea5ca17bebac3f78a021b
-  subpackages:
-  - diff
-  - pretty
-
-# Changes to golint have broken our build enough that it's worth vendoring.
-- package: golang.org/x/lint
-  version: 1baf3a9d7d675b3c7e974b7a00ded54b88a88379
-  subpackages:
-  - golint
-- package: golang.org/x/tools
-  version: a2dc47679d30b6c496245bafc6a166b46c5fe318
-  subpackages:
-  - go/ast/astutil
-  - go/gcexportdata
-  - go/internal/gcimporter
-
-
-# SQL drivers
-- package: github.com/mattn/go-sqlite3
-  version: 3fb7a0e792edd47bf0cf1e919dfc14e2be412e15
-- package: github.com/lib/pq
-  version: 9eb73efc1fcc404148b56765b0d3f61d9a5ef8ee
-
-# etcd driver
-- package: github.com/coreos/etcd
-  version: v3.2.9
-  subpackages:
-  - clientv3
-
-# gRPC and protobuf are use for the API. Also import x/net/http2 stack.
-- package: google.golang.org/grpc
-  version: 0e8b58d22f34640cb17dbbed1c8aef3b8dcc0e97
-  subpackages:
-  - codes
-  - credentials
-  - grpclog
-  - internal
-  - metadata
-  - naming
-  - peer
-  - transport
-- package: github.com/golang/protobuf
-  version: 1e59b77b52bf8e4b449a57e6f79f21226d571845
-  subpackages:
-  - proto
-  - protoc-gen-go
-  - protoc-gen-go/grpc
-  - protoc-gen-go/descriptor
-  - protoc-gen-go/plugin
-  - protoc-gen-go/generator
-- package: google.golang.org/genproto
-  version: 411e09b969b1170a9f0c467558eb4c4c110d9c77
-
-# Structured logging
-- package: github.com/sirupsen/logrus
-  version: v1.0.2
-- package: golang.org/x/sys
-  version: 833a04a10549a95dc34458c195cbad61bbb6cb4d
-  subpackages:
-  - unix
-
-# XML signature validation for SAML connector
-- package: github.com/russellhaering/goxmldsig
-  version: eaac44c63fe007124f8f6255b09febc906784981
-- package: github.com/beevik/etree
-  version: 4cd0dd976db869f817248477718071a28e978df0
-- package: github.com/jonboulle/clockwork
-  version: bcac9884e7502bb2b474c0339d889cb981a2f27f
-
-# monitoring packages
-- package: github.com/beorn7/perks/quantile
-  version: 3ac7bf7a47d159a033b107610db8a1b6575507a4
-- package: github.com/felixge/httpsnoop
-  version: eadd4fad6aac69ae62379194fe0219f3dbc80fd3
-- package: github.com/grpc-ecosystem/go-grpc-prometheus
-  version: 0dafe0d496ea71181bf2dd039e7e3f44b6bd11a7
-- package: github.com/matttproud/golang_protobuf_extensions/pbutil
-  version: fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a
-- package: github.com/prometheus/client_golang/prometheus
-  version: 967789050ba94deca04a5e84cce8ad472ce313c1
-- package: github.com/prometheus/client_golang/prometheus/promhttp
-  version: 967789050ba94deca04a5e84cce8ad472ce313c1
-- package: github.com/prometheus/client_model/go
-  version: fa8ad6fec33561be4280a8f0514318c79d7f6cb6
-- package: github.com/prometheus/common/expfmt
-  version: 49fee292b27bfff7f354ee0f64e1bc4850462edf
-- package: github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg
-  version: 49fee292b27bfff7f354ee0f64e1bc4850462edf
-- package: github.com/prometheus/common/model
-  version: 49fee292b27bfff7f354ee0f64e1bc4850462edf
-- package: github.com/prometheus/procfs/xfs
-  version: a1dba9ce8baed984a2495b658c82687f8157b98f
diff --git a/glide_test.go b/glide_test.go
deleted file mode 100644
index 3b503ddf2793348d0bfc09c09ad51dfec9414d3f..0000000000000000000000000000000000000000
--- a/glide_test.go
+++ /dev/null
@@ -1,123 +0,0 @@
-package main
-
-import (
-	"io/ioutil"
-	"os"
-	"path"
-	"path/filepath"
-	"strings"
-	"testing"
-
-	"gopkg.in/yaml.v2"
-)
-
-type glideLock struct {
-	Imports []struct {
-		Name        string   `yaml:"name"`
-		Subpackages []string `yaml:"subpackages,omitempty"`
-	} `yaml:"imports"`
-	TestImports []struct {
-		Name        string   `yaml:"name"`
-		Subpackages []string `yaml:"subpackages,omitempty"`
-	} `yaml:"testImports"`
-}
-
-type glideYAML struct {
-	Imports []struct {
-		Name string `yaml:"package"`
-	} `yaml:"import"`
-}
-
-func loadYAML(t *testing.T, file string, v interface{}) {
-	data, err := ioutil.ReadFile(file)
-	if err != nil {
-		t.Fatalf("read file %s: %v", file, err)
-	}
-	if err := yaml.Unmarshal(data, v); err != nil {
-		t.Fatalf("unmarshal file %s: %v", file, err)
-	}
-	return
-}
-
-// TestGlideYAMLPinsAllDependencies ensures that all packages listed in glide.lock also
-// appear in glide.yaml which can get out of sync if glide.yaml fails to list transitive
-// dependencies.
-//
-// Testing this ensures developers can update individual packages without grabbing the HEAD
-// of an unspecified dependency.
-func TestGlideYAMLPinsAllDependencies(t *testing.T) {
-	var (
-		lockPackages glideLock
-		yamlPackages glideYAML
-	)
-	loadYAML(t, "glide.lock", &lockPackages)
-	loadYAML(t, "glide.yaml", &yamlPackages)
-
-	if len(yamlPackages.Imports) == 0 {
-		t.Fatalf("no packages found in glide.yaml")
-	}
-
-	pkgs := make(map[string]bool)
-	for _, pkg := range yamlPackages.Imports {
-		pkgs[pkg.Name] = true
-	}
-
-	for _, pkg := range lockPackages.Imports {
-		if pkgs[pkg.Name] {
-			continue
-		}
-		if len(pkg.Subpackages) == 0 {
-			t.Errorf("package in glide lock but not pinned in glide yaml: %s", pkg.Name)
-			continue
-		}
-
-		for _, subpkg := range pkg.Subpackages {
-			pkgName := path.Join(pkg.Name, subpkg)
-			if !pkgs[pkgName] {
-				t.Errorf("package in glide lock but not pinned in glide yaml: %s", pkgName)
-			}
-		}
-	}
-
-	for _, pkg := range lockPackages.TestImports {
-		if pkgs[pkg.Name] {
-			continue
-		}
-		if len(pkg.Subpackages) == 0 {
-			t.Errorf("package in glide lock but not pinned in glide yaml: %s", pkg.Name)
-			continue
-		}
-
-		for _, subpkg := range pkg.Subpackages {
-			pkgName := path.Join(pkg.Name, subpkg)
-			if !pkgs[pkgName] {
-				t.Errorf("package in glide lock but not pinned in glide yaml: %s", pkgName)
-			}
-		}
-	}
-}
-
-func TestGlideVCUseLockFile(t *testing.T) {
-	_, err := os.Stat("vendor/github.com/golang/protobuf/protoc-gen-go")
-	if err != nil {
-		t.Fatalf("vendor did not use glide-vc --use-lock-file. Revendor packages using 'make revendor' to use the correct glide and glide-vc flags")
-	}
-}
-
-func TestGlideFlagsAndGlideVC(t *testing.T) {
-	err := filepath.Walk("vendor", func(path string, info os.FileInfo, err error) error {
-		if err != nil {
-			t.Fatalf("walk: stat path %s failed: %v", path, err)
-		}
-		if info.IsDir() && filepath.Base(path) == ".git" {
-			t.Fatalf(".git directory detected in vendor: %s. Revendor packages using 'make revendor' to use the correct glide and glide-vc flags", path)
-		}
-		if !info.IsDir() && strings.HasSuffix(path, "_test.go") {
-			t.Fatalf("'_test.go' file detected in vendor: %s. Revendor packages using 'make revendor' to use the correct glide and glide-vc flags", path)
-		}
-		return nil
-	})
-	if err != nil {
-		t.Fatalf("walk: %v", err)
-	}
-}
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000000000000000000000000000000000000..8e242ae4bc39176de926ac097e46067610c94f1b
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,63 @@
+module github.com/dexidp/dex
+
+require (
+	github.com/beevik/etree v0.0.0-20161216042344-4cd0dd976db8
+	github.com/beorn7/perks v0.0.0-20160229213445-3ac7bf7a47d1 // indirect
+	github.com/boltdb/bolt v1.3.1 // indirect
+	github.com/cockroachdb/cmux v0.0.0-20170110192607-30d10be49292 // indirect
+	github.com/coreos/etcd v3.2.9+incompatible
+	github.com/coreos/go-oidc v0.0.0-20170307191026-be73733bb8cc
+	github.com/coreos/go-semver v0.2.0 // indirect
+	github.com/coreos/go-systemd v0.0.0-20181031085051-9002847aa142 // indirect
+	github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect
+	github.com/davecgh/go-spew v1.1.1 // indirect
+	github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
+	github.com/felixge/httpsnoop v1.0.0
+	github.com/ghodss/yaml v0.0.0-20161020005002-bea76d6a4713
+	github.com/gogo/protobuf v1.1.1 // indirect
+	github.com/golang/groupcache v0.0.0-20181024230925-c65c006176ff // indirect
+	github.com/golang/protobuf v0.0.0-20171113180720-1e59b77b52bf
+	github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c // indirect
+	github.com/gorilla/context v0.0.0-20160525203319-aed02d124ae4 // indirect
+	github.com/gorilla/handlers v0.0.0-20161206055144-3a5767ca75ec
+	github.com/gorilla/mux v0.0.0-20160605233521-9fa818a44c2b
+	github.com/grpc-ecosystem/go-grpc-prometheus v0.0.0-20170826090648-0dafe0d496ea
+	github.com/grpc-ecosystem/grpc-gateway v1.5.1 // indirect
+	github.com/gtank/cryptopasta v0.0.0-20160720052843-e7e23673cac3
+	github.com/inconshreveable/mousetrap v1.0.0 // indirect
+	github.com/jonboulle/clockwork v0.0.0-20160907122059-bcac9884e750 // indirect
+	github.com/kr/pretty v0.1.0 // indirect
+	github.com/kylelemons/godebug v0.0.0-20160406211939-eadb3ce320cb
+	github.com/lib/pq v0.0.0-20181016162627-9eb73efc1fcc
+	github.com/mattn/go-sqlite3 v0.0.0-20160907162043-3fb7a0e792ed
+	github.com/matttproud/golang_protobuf_extensions v0.0.0-20150406173934-fc2b8d3a73c4 // indirect
+	github.com/pmezard/go-difflib v1.0.0 // indirect
+	github.com/pquerna/cachecontrol v0.0.0-20160421231612-c97913dcbd76 // indirect
+	github.com/prometheus/client_golang v0.9.0-pre1
+	github.com/prometheus/client_model v0.0.0-20150212101744-fa8ad6fec335 // indirect
+	github.com/prometheus/common v0.0.0-20170220103846-49fee292b27b // indirect
+	github.com/prometheus/procfs v0.0.0-20170216223256-a1dba9ce8bae // indirect
+	github.com/russellhaering/goxmldsig v0.0.0-20170324122954-eaac44c63fe0
+	github.com/satori/go.uuid v1.2.0 // indirect
+	github.com/sirupsen/logrus v0.0.0-20170713114250-a3f95b5c4235
+	github.com/spf13/cobra v0.0.0-20160615143614-bc81c21bd0d8
+	github.com/spf13/pflag v0.0.0-20160610190902-367864438f1b // indirect
+	github.com/stretchr/testify v1.2.2 // indirect
+	github.com/ugorji/go/codec v0.0.0-20181127175209-856da096dbdf // indirect
+	github.com/xiang90/probing v0.0.0-20160813154853-07dd2e8dfe18 // indirect
+	golang.org/x/crypto v0.0.0-20160711182412-2c99acdd1e9b
+	golang.org/x/net v0.0.0-20170413175226-5602c733f70a
+	golang.org/x/oauth2 v0.0.0-20160718223228-08c8d727d239
+	golang.org/x/sync v0.0.0-20181108010431-42b317875d0f // indirect
+	golang.org/x/sys v0.0.0-20151211033651-833a04a10549 // indirect
+	golang.org/x/text v0.0.0-20170401064109-f4b4367115ec // indirect
+	golang.org/x/time v0.0.0-20181108054448-85acf8d2951c // indirect
+	google.golang.org/appengine v0.0.0-20160621060416-267c27e74922 // indirect
+	google.golang.org/genproto v0.0.0-20170404132009-411e09b969b1 // indirect
+	google.golang.org/grpc v0.0.0-20170413033559-0e8b58d22f34
+	gopkg.in/asn1-ber.v1 v1.0.0-20150924051756-4e86f4367175 // indirect
+	gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
+	gopkg.in/ldap.v2 v2.5.1
+	gopkg.in/square/go-jose.v2 v2.1.8
+	gopkg.in/yaml.v2 v2.0.0-20160301204022-a83829b6f129 // indirect
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000000000000000000000000000000000000..e1de9b3251d394e95b442ac5fb803d87701948ae
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,121 @@
+github.com/beevik/etree v0.0.0-20161216042344-4cd0dd976db8 h1:83NNCRw/4bJwVOCZ5NKmRiqbffkDC/B2DFmKZ/EzU0c=
+github.com/beevik/etree v0.0.0-20161216042344-4cd0dd976db8/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A=
+github.com/beorn7/perks v0.0.0-20160229213445-3ac7bf7a47d1 h1:OnJHjoVbY69GG4gclp0ngXfywigLhR6rrgUxmxQRWO4=
+github.com/beorn7/perks v0.0.0-20160229213445-3ac7bf7a47d1/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
+github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4=
+github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
+github.com/cockroachdb/cmux v0.0.0-20170110192607-30d10be49292 h1:dzj1/xcivGjNPwwifh/dWTczkwcuqsXXFHY1X/TZMtw=
+github.com/cockroachdb/cmux v0.0.0-20170110192607-30d10be49292/go.mod h1:qRiX68mZX1lGBkTWyp3CLcenw9I94W2dLeRvMzcn9N4=
+github.com/coreos/etcd v3.2.9+incompatible h1:rK6tzefpypqZLvs9aX7R5vcl4u1xucf2esUzFvJM6vw=
+github.com/coreos/etcd v3.2.9+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
+github.com/coreos/go-oidc v0.0.0-20170307191026-be73733bb8cc h1:9yuvA19Q5WFkLwJcMDoYm8m89ilzqZ5zEHqdvU+Zbds=
+github.com/coreos/go-oidc v0.0.0-20170307191026-be73733bb8cc/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
+github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY=
+github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/coreos/go-systemd v0.0.0-20181031085051-9002847aa142 h1:3jFq2xL4ZajGK4aZY8jz+DAF0FHjI51BXjjSwCzS1Dk=
+github.com/coreos/go-systemd v0.0.0-20181031085051-9002847aa142/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg=
+github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
+github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+github.com/felixge/httpsnoop v1.0.0 h1:gh8fMGz0rlOv/1WmRZm7OgncIOTsAj21iNJot48omJQ=
+github.com/felixge/httpsnoop v1.0.0/go.mod h1:3+D9sFq0ahK/JeJPhCBUV1xlf4/eIYrUQaxulT0VzX8=
+github.com/ghodss/yaml v0.0.0-20161020005002-bea76d6a4713 h1:ag3kFMoZZMrEBi4ySTdSWSPz8K7Slu++J9/QXzLBiLk=
+github.com/ghodss/yaml v0.0.0-20161020005002-bea76d6a4713/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo=
+github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/golang/groupcache v0.0.0-20181024230925-c65c006176ff h1:kOkM9whyQYodu09SJ6W3NCsHG7crFaJILQ22Gozp3lg=
+github.com/golang/groupcache v0.0.0-20181024230925-c65c006176ff/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/protobuf v0.0.0-20171113180720-1e59b77b52bf h1:pFr/u+m8QUBMW/itAczltF3guNRAL7XDs5tD3f6nSD0=
+github.com/golang/protobuf v0.0.0-20171113180720-1e59b77b52bf/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw=
+github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/gorilla/context v0.0.0-20160525203319-aed02d124ae4 h1:3nOfQt8sRPYbXORD5tJ8YyQ3HlL2Jt3LJ2U17CbNh6I=
+github.com/gorilla/context v0.0.0-20160525203319-aed02d124ae4/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
+github.com/gorilla/handlers v0.0.0-20161206055144-3a5767ca75ec h1:RDyBmwIQWsSnpRDzYBziOiD54eGHlAffUxF98z17bNY=
+github.com/gorilla/handlers v0.0.0-20161206055144-3a5767ca75ec/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ=
+github.com/gorilla/mux v0.0.0-20160605233521-9fa818a44c2b h1:OFvZV3a+25cGJH9dETHw0nk0wV6hLZI7IJijOkXEFS0=
+github.com/gorilla/mux v0.0.0-20160605233521-9fa818a44c2b/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
+github.com/grpc-ecosystem/go-grpc-prometheus v0.0.0-20170826090648-0dafe0d496ea h1:Bzd/0fcg24qAEJyr7pTtDOn806SRBtzyloCuLTEvSOo=
+github.com/grpc-ecosystem/go-grpc-prometheus v0.0.0-20170826090648-0dafe0d496ea/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
+github.com/grpc-ecosystem/grpc-gateway v1.5.1 h1:3scN4iuXkNOyP98jF55Lv8a9j1o/IwvnDIZ0LHJK1nk=
+github.com/grpc-ecosystem/grpc-gateway v1.5.1/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw=
+github.com/gtank/cryptopasta v0.0.0-20160720052843-e7e23673cac3 h1:ZGUKYipquHfGh+SfhKTCaDTAgGf8wf5pl5aJ1K5oCcQ=
+github.com/gtank/cryptopasta v0.0.0-20160720052843-e7e23673cac3/go.mod h1:YLEMZOtU+AZ7dhN9T/IpGhXVGly2bvkJQ+zxj3WeVQo=
+github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
+github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/jonboulle/clockwork v0.0.0-20160907122059-bcac9884e750 h1:ysDggIU+1XiT58oKSl5C9d+hxeOW7kqeI2n6eZymuMs=
+github.com/jonboulle/clockwork v0.0.0-20160907122059-bcac9884e750/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
+github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kylelemons/godebug v0.0.0-20160406211939-eadb3ce320cb h1:iiMILPl9HQFqdFXIuwfYT73NYtH0KApnCmyF7y5wYhs=
+github.com/kylelemons/godebug v0.0.0-20160406211939-eadb3ce320cb/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
+github.com/lib/pq v0.0.0-20181016162627-9eb73efc1fcc h1:0pifi8wVV/YuUKBDmlH3koJgRVnUJ2RiJQ8ly/1/aJ8=
+github.com/lib/pq v0.0.0-20181016162627-9eb73efc1fcc/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+github.com/mattn/go-sqlite3 v0.0.0-20160907162043-3fb7a0e792ed h1:hhFE3aQaQI9KqFBAfuuRvfNIeqG+ExqgaHwec3Lve6s=
+github.com/mattn/go-sqlite3 v0.0.0-20160907162043-3fb7a0e792ed/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
+github.com/matttproud/golang_protobuf_extensions v0.0.0-20150406173934-fc2b8d3a73c4 h1:NlK6WXPDxjVVwseTuj5NdNJBDabnoJryx4UqB5i/Lk8=
+github.com/matttproud/golang_protobuf_extensions v0.0.0-20150406173934-fc2b8d3a73c4/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/pquerna/cachecontrol v0.0.0-20160421231612-c97913dcbd76 h1:O60OlfVScwx/OixpMy8gIPeKNIN3bI9BrOuTIUexlbc=
+github.com/pquerna/cachecontrol v0.0.0-20160421231612-c97913dcbd76/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
+github.com/prometheus/client_golang v0.9.0-pre1 h1:AWTOhsOI9qxeirTuA0A4By/1Es1+y9EcCGY6bBZ2fhM=
+github.com/prometheus/client_golang v0.9.0-pre1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/prometheus/client_model v0.0.0-20150212101744-fa8ad6fec335 h1:0E/5GnGmzoDCtmzTycjGDWW33H0UBmAhR0h+FC8hWLs=
+github.com/prometheus/client_model v0.0.0-20150212101744-fa8ad6fec335/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/common v0.0.0-20170220103846-49fee292b27b h1:nure2StBXEgV+CtAOZSggLGJ7bfuSfvuitPnwEQSKWQ=
+github.com/prometheus/common v0.0.0-20170220103846-49fee292b27b/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
+github.com/prometheus/procfs v0.0.0-20170216223256-a1dba9ce8bae h1:4W6eGKy6DVCKy+vFPt2wtCifCjfzvHgOomhDsv/n58Y=
+github.com/prometheus/procfs v0.0.0-20170216223256-a1dba9ce8bae/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/russellhaering/goxmldsig v0.0.0-20170324122954-eaac44c63fe0 h1:jhWWGMYDGjj/PmvsUkFkhlvBhOR0y8ZJW7OY/21F8FY=
+github.com/russellhaering/goxmldsig v0.0.0-20170324122954-eaac44c63fe0/go.mod h1:Oz4y6ImuOQZxynhbSXk7btjEfNBtGlj2dcaOvXl2FSM=
+github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
+github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
+github.com/sirupsen/logrus v0.0.0-20170713114250-a3f95b5c4235 h1:a2XWU6egUZQhD52o2GEKr79zE+OuZmwLybyOQpoqhHQ=
+github.com/sirupsen/logrus v0.0.0-20170713114250-a3f95b5c4235/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
+github.com/spf13/cobra v0.0.0-20160615143614-bc81c21bd0d8 h1:g2skTvb63htNjrbi0JetliK7awRNrZAp1eES43yAZO8=
+github.com/spf13/cobra v0.0.0-20160615143614-bc81c21bd0d8/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
+github.com/spf13/pflag v0.0.0-20160610190902-367864438f1b h1:eZZ0QAe7qz2L8dz1t9s6AMlheHgTLP4XcNbCV8HkOkY=
+github.com/spf13/pflag v0.0.0-20160610190902-367864438f1b/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
+github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+github.com/ugorji/go/codec v0.0.0-20181127175209-856da096dbdf h1:BLcwkDfQ8QPXNXBApZUATvuigovcYPXkHzez80QFGNg=
+github.com/ugorji/go/codec v0.0.0-20181127175209-856da096dbdf/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
+github.com/xiang90/probing v0.0.0-20160813154853-07dd2e8dfe18 h1:MPPkRncZLN9Kh4MEFmbnK4h3BD7AUmskWv2+EeZJCCs=
+github.com/xiang90/probing v0.0.0-20160813154853-07dd2e8dfe18/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
+golang.org/x/crypto v0.0.0-20160711182412-2c99acdd1e9b h1:2jrSTd+N8P7Wg79ClE25uXmVIE7WluBSpTSsQQ2Nypo=
+golang.org/x/crypto v0.0.0-20160711182412-2c99acdd1e9b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/net v0.0.0-20170413175226-5602c733f70a h1:U+RBxJXt1cn83eNU5KfO0ABG27IrDKWhrbr9MBCri/s=
+golang.org/x/net v0.0.0-20170413175226-5602c733f70a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/oauth2 v0.0.0-20160718223228-08c8d727d239 h1:zW4VTIvN4l/liomF2DkpwzM8vz+Xlp9lO06+Z32c91U=
+golang.org/x/oauth2 v0.0.0-20160718223228-08c8d727d239/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20151211033651-833a04a10549 h1:imXIGlmpdV8HlMP9DTrSVaxjoffgGbwFZdJl0Ous5dc=
+golang.org/x/sys v0.0.0-20151211033651-833a04a10549/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/text v0.0.0-20170401064109-f4b4367115ec h1:IQbbXMrYo9hsfbt8unKNTFivvnNgGfA4p2HQLJmfrQU=
+golang.org/x/text v0.0.0-20170401064109-f4b4367115ec/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg=
+golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+google.golang.org/appengine v0.0.0-20160621060416-267c27e74922 h1:gHCUPwst+IxLPSNSG+jClGv+Dz5Tly/Y8D73bvQwIXM=
+google.golang.org/appengine v0.0.0-20160621060416-267c27e74922/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/genproto v0.0.0-20170404132009-411e09b969b1 h1:HEurpBgyZQ15ngKW89Tw1gNMezbyH69oBSyrKIBvOLw=
+google.golang.org/genproto v0.0.0-20170404132009-411e09b969b1/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/grpc v0.0.0-20170413033559-0e8b58d22f34 h1:iKtEgI7FElNp1rHnHbtWcwcLRfHR7+PomIFwnVpYjHo=
+google.golang.org/grpc v0.0.0-20170413033559-0e8b58d22f34/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
+gopkg.in/asn1-ber.v1 v1.0.0-20150924051756-4e86f4367175 h1:nn6Zav2sOQHCFJHEspya8KqxhFwKci30UxHy3HXPTyQ=
+gopkg.in/asn1-ber.v1 v1.0.0-20150924051756-4e86f4367175/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw=
+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU=
+gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk=
+gopkg.in/square/go-jose.v2 v2.1.8 h1:yECBkTX7ypNaRFILw4trAAYXRLvcGxTeHCBKj/fc8gU=
+gopkg.in/square/go-jose.v2 v2.1.8/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
+gopkg.in/yaml.v2 v2.0.0-20160301204022-a83829b6f129 h1:RBgb9aPUbZ9nu66ecQNIBNsA7j3mB5h8PNDIfhPjaJg=
+gopkg.in/yaml.v2 v2.0.0-20160301204022-a83829b6f129/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
diff --git a/vendor.go b/vendor.go
new file mode 100644
index 0000000000000000000000000000000000000000..63832df87481121c5e3504bc402d5cd6b2e804e6
--- /dev/null
+++ b/vendor.go
@@ -0,0 +1,14 @@
+// +build vendor
+
+package main
+
+// This file exists to trick "go mod vendor" to include "main" packages.
+// It is not expected to build, the build tag above is only to prevent this
+// file from being included in builds.
+
+import (
+        _ "github.com/golang/protobuf/protoc-gen-go"
+        _ "golang.org/x/lint/golint"
+)
+
+func main() {}