From a70736ad47b751d546fb80e22e604a30e86ba5cf Mon Sep 17 00:00:00 2001 From: Alec Scott Date: Mon, 7 Jun 2021 21:31:43 -0700 Subject: [PATCH] Initial Commit of Hyprspace! --- .github/workflows/build.sh | 12 + .github/workflows/release.sh | 9 + .github/workflows/release.yml | 26 + .gitignore | 1 + README.md | 166 +++++- cli/down.go | 31 ++ cli/init.go | 78 +++ cli/root.go | 58 +++ cli/up.go | 213 ++++++++ cli/update.go | 85 ++++ config/config.go | 34 ++ go.mod | 22 + go.sum | 914 ++++++++++++++++++++++++++++++++++ hyprspace.go | 7 + hyprspace.png | Bin 0 -> 148325 bytes p2p/discover.go | 51 ++ p2p/node.go | 91 ++++ tun/tun.go | 45 ++ 18 files changed, 1841 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/build.sh create mode 100644 .github/workflows/release.sh create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 cli/down.go create mode 100644 cli/init.go create mode 100644 cli/root.go create mode 100644 cli/up.go create mode 100644 cli/update.go create mode 100644 config/config.go create mode 100644 go.mod create mode 100644 go.sum create mode 100644 hyprspace.go create mode 100644 hyprspace.png create mode 100644 p2p/discover.go create mode 100644 p2p/node.go create mode 100644 tun/tun.go diff --git a/.github/workflows/build.sh b/.github/workflows/build.sh new file mode 100644 index 0000000..4a54b63 --- /dev/null +++ b/.github/workflows/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +platforms=("linux/amd64" "linux/arm" "linux/arm64" "darwin/amd64" "darwin/arm64") + +for platform in "${platforms[@]}" +do + platform_split=(${platform//\// }) + GOOS=${platform_split[0]} + GOARCH=${platform_split[1]} + env GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-X github.com/hyprspace/hyprspace/cli.appVersion=$1" -o hyprspace-$2-${GOOS}-${GOARCH} . + +done \ No newline at end of file diff --git a/.github/workflows/release.sh b/.github/workflows/release.sh new file mode 100644 index 0000000..ee372a2 --- /dev/null +++ b/.github/workflows/release.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -x +assets=() +for asset in ./ait-*; do + assets+=("-a" "$asset") +done +tag_name="${GITHUB_REF##*/}" +hub release create "${assets[@]}" -m "$tag_name" "$tag_name" \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..83ab378 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,26 @@ +name: Upload Release Asset + +on: + push: + # Sequence of patterns matched against refs/tags + tags: + - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 + +jobs: + build: + name: Upload Release Asset + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Build project + run: | + chmod a+x .github/workflows/build.sh + ./.github/workflows/build.sh ${GITHUB_REF##*/} + - name: Create Release + id: create_release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + chmod a+x .github/workflows/release.sh + ./.github/workflows/release.sh \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f128556 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +hyprspace \ No newline at end of file diff --git a/README.md b/README.md index 06385cf..4dc21fe 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,164 @@ -# hyprspace -hyprspace! +# Hyprspace + +Hyprspace is a Wireguard-like VPN built on top of Libp2p. + +## What is Libp2p and Why Use it? +[Libp2p](libp2p.io) is a networking library created by [Protocol Labs](https://protocol.ai) that allows nodes to discover eachother using a Distributed Hash Table. Paired with [NAT hole punching](https://en.wikipedia.org/wiki/Hole_punching_(networking)) this allows Hyprspace to create a direct encrypted tunnel between two nodes even if they're both behind firewalls. + +**Moreover! Each node doesn't even need to know the other's ip address prior to starting up the connection.** This makes Hyprspace perfect for devices that frequently migrate between locations but still require a constant virtual ip address. + +## Use Cases: +##### A Digital Nomad +I use this system when travelling, if I'm staying in a rental or hotel and want to try something out on a Raspberry Pi I can plug the Pi into the location's router or ethernet port and then just ssh into the system using the same-old internal Hyprspace ip address without having to worry about their NAT or local firewall. Furthermore, if I'm connected to the Virtual Hyprspace Network I can ssh into my machines at home without requiring me to set up any sort of port forwarding. + +##### A Privacy Advocate +Honestly, I even use this system when I'm at home and could connect directly to my local infastructure. Using Hyprspace however, I don't have to trust the security of my local network and hyprspace will intelligently connect to my machines using their local ip addresses for maximum speed. + +If anyone else has some use cases please add them! Pull requests welcome! + +## Installation + +1. Go to Hyprspace Releases (other there -->) +2. Copy the link for your corresponding OS and Architecture. +3. Run `sudo curl -L "PATH-TO-RELEASE" -o /usr/local/bin/hyprspace` +4. Run `sudo chmod a+x /usr/local/bin/hyprspace` +5. (Optional) Run `sudo ln -s /usr/local/bin/hyprspace /usr/bin/hyprspace` + +## Usage + +### Commands + +| Command | Alias | Description | +| ------------------- | ------- | -------------------------------------------------------------------------- | +| `help` | `?` | Get help with a specific subcommand. | +| `init` | `i` | Initialize an interface's configuration. | +| `up` | `up` | Create and Bring Up a Hyprspace Interface | +| `down ` | `d` | Bring Down and Delete A Hyprspace Interface | +| `update` | `upd` | Have Hyprspace update its own binary. | + +## Tutorial + +### Initializing an Interface + +The first thing we'll want to do once we've got Hyprspace installed is +initialize the configuration for an interface. In this case we'll call the +interface on our local machine `hs0` (for hypr-space 0) and `hs1` on our remote server +but yours could be anything you'd like. + +###### Local Machine +```bash +hyprspace init hs0 +``` + +###### Remote Machine +```bash +hyprspace init hs1 +``` + +### Add Each Machine As A Peer Of The Other + +Now that we've got a set of configurations we'll want to +tell the machines about eachother. By default Hyprspace will +put the interface configurations in `/etc/hyprspace/interface-name.yaml`. +So for our example we'll run + +###### Local Machine +```bash +sudo nano /etc/hyprspace/hs0.yaml +``` + +and + +###### Remote Machine +```bash +sudo nano /etc/hyprspace/hs1.yaml +``` + +### Update Peer Configs + +Now in each config we'll add the other machine's ID as a peer. +You can find each machine's ID at the top of their configuration file. +Update, + +```yaml +peers: {} +``` +to +```yaml +peers: + 10.1.1.2: + id: YOUR-OTHER-PEER-ID +``` + +Notice here we'll have to pick one of our machines to be `10.1.1.1` +and the other to be `10.1.1.2`. Make sure to update the interface's IP +address for the machine who needs to change to be `10.1.1.2`. + +### Update our Discover Key + +Looking in the interface's configuration you'll also notice a field called +`discover_key` (right above the interface's private key). It doesn't matter +which discovery key you pick but it much be the same for all of the nodes in your little cluster +so that they can find eachother. + +(*Note you can use different `discover_key`s with different interfaces on the same +host to create different isolated networks.) + +```yaml +discover_key: fiftieth-dandelion-wronged-craftwork +``` + +### Starting Up the Interfaces! +Now that we've got our configs all sorted we can start up the two interfaces! + +###### Local Machine +```bash +sudo hyprspace up hs0 +``` + +and + +###### Remote Machine +```bash +sudo hyprspace up hs1 +``` + +After a few seconds you should see a the network finish setting up +and find your other machine. We can now test the connection by +pinging back and forth across the network. + +###### Local Machine +```bash +ping 10.1.1.2 +``` + +### Stoping the Interface and Cleaning Up +Now to stop the interface and clean up the system you can run, + +###### Local Machine +```bash +sudo hyprspace down hs0 +``` + +and, + +###### Remote Machine +```bash +sudo hyprspace down hs1 +``` + +## License + +Copyright 2021 Alec Scott + +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. diff --git a/cli/down.go b/cli/down.go new file mode 100644 index 0000000..2ae153c --- /dev/null +++ b/cli/down.go @@ -0,0 +1,31 @@ +package cli + +import ( + "fmt" + + "github.com/DataDrake/cli-ng/v2/cmd" + "github.com/hyprspace/hyprspace/tun" +) + +// Pull downloads files from the Arken cluster. +var Down = cmd.Sub{ + Name: "down", + Alias: "d", + Short: "Bring Down A Hyprspace Interface.", + Args: &DownArgs{}, + Run: DownRun, +} + +// UpArgs handles the specific arguments for the up command. +type DownArgs struct { + InterfaceName string +} + +func DownRun(r *cmd.Root, c *cmd.Sub) { + // Parse Command Args + args := c.Args.(*DownArgs) + + fmt.Println("[+] ip link delete dev " + args.InterfaceName) + err := tun.Delete(args.InterfaceName) + checkErr(err) +} diff --git a/cli/init.go b/cli/init.go new file mode 100644 index 0000000..64327a8 --- /dev/null +++ b/cli/init.go @@ -0,0 +1,78 @@ +package cli + +import ( + "context" + "os" + "path/filepath" + "strings" + + "github.com/DataDrake/cli-ng/v2/cmd" + "github.com/hyprspace/hyprspace/config" + "github.com/libp2p/go-libp2p" + "github.com/libp2p/go-libp2p-core/crypto" + "github.com/sethvargo/go-diceware/diceware" + "gopkg.in/yaml.v2" +) + +// Pull downloads files from the Arken cluster. +var Init = cmd.Sub{ + Name: "init", + Alias: "i", + Short: "Initialize An Interface Config", + Args: &InitArgs{}, + Run: InitRun, +} + +// InitArgs handles the specific arguments for the init command. +type InitArgs struct { + InterfaceName string +} + +func InitRun(r *cmd.Root, c *cmd.Sub) { + // Parse Command Arguments + args := c.Args.(*InitArgs) + + // Parse Global Config Flag + configPath := r.Flags.(*GlobalFlags).Config + if configPath == "" { + configPath = "/etc/hyprspace/" + args.InterfaceName + ".yaml" + } + + // Create New Libp2p Node + host, err := libp2p.New(context.Background()) + checkErr(err) + + // Get Node's Private Key + keyBytes, err := crypto.MarshalPrivateKey(host.Peerstore().PrivKey(host.ID())) + checkErr(err) + + // Generate a random diceware discovery key + list, err := diceware.Generate(4) + checkErr(err) + + // Setup an initial default command. + new := config.Config{ + Interface: config.Interface{ + Name: args.InterfaceName, + Address: "10.1.1.1/24", + ID: host.ID().Pretty(), + PrivateKey: string(keyBytes), + DiscoverKey: strings.Join(list, "-"), + }, + } + + out, err := yaml.Marshal(&new) + checkErr(err) + + err = os.MkdirAll(filepath.Dir(configPath), os.ModePerm) + checkErr(err) + + f, err := os.Create(configPath) + checkErr(err) + + // Write out config to file. + _, err = f.Write(out) + checkErr(err) + + f.Close() +} diff --git a/cli/root.go b/cli/root.go new file mode 100644 index 0000000..9624352 --- /dev/null +++ b/cli/root.go @@ -0,0 +1,58 @@ +package cli + +import ( + "fmt" + "log" + "sync" + "time" + + "github.com/DataDrake/cli-ng/v2/cmd" +) + +//GlobalFlags contains the flags for commands. +type GlobalFlags struct { + Config string `short:"c" long:"config" desc:"Specify a custom config path."` +} + +// Root is the main command. +var Root *cmd.Root + +func init() { + Root = &cmd.Root{ + Name: "hypr", + Short: "Hyprspace Distributed Network", + Flags: &GlobalFlags{}, + } + cmd.Register(&cmd.Help) + cmd.Register(&Init) + cmd.Register(&Up) + cmd.Register(&Down) + cmd.Register(&Update) +} + +func checkErr(err error) { + if err != nil { + log.Fatal(err) + } +} + +// Spinner is an array of the progression of the spinner. +var Spinner = []string{"|", "/", "-", "\\"} + +// SpinnerWait displays the actual spinner +func SpinnerWait(done chan int, message string, wg *sync.WaitGroup) { + ticker := time.NewTicker(time.Millisecond * 128) + frameCounter := 0 + for { + select { + case <-done: + wg.Done() + return + default: + <-ticker.C + ind := frameCounter % len(Spinner) + fmt.Printf("\r[%v] "+message, Spinner[ind]) + frameCounter++ + } + } +} diff --git a/cli/up.go b/cli/up.go new file mode 100644 index 0000000..0970eca --- /dev/null +++ b/cli/up.go @@ -0,0 +1,213 @@ +package cli + +import ( + "bufio" + "context" + "fmt" + "io" + "log" + "os" + "os/signal" + "strings" + "syscall" + "time" + + "github.com/DataDrake/cli-ng/v2/cmd" + "github.com/hyprspace/hyprspace/config" + "github.com/hyprspace/hyprspace/p2p" + "github.com/hyprspace/hyprspace/tun" + "github.com/libp2p/go-libp2p-core/host" + "github.com/libp2p/go-libp2p-core/network" + "github.com/libp2p/go-libp2p-core/peer" + "github.com/songgao/water" + "golang.org/x/net/ipv4" +) + +var ( + Global config.Config + iface *water.Interface + RevLookup map[string]bool +) + +// Pull downloads files from the Arken cluster. +var Up = cmd.Sub{ + Name: "up", + Alias: "up", + Short: "Create and Bring Up a Hyprspace Interface.", + Args: &UpArgs{}, + Flags: &UpFlags{}, + Run: UpRun, +} + +// UpArgs handles the specific arguments for the up command. +type UpArgs struct { + InterfaceName string +} + +type UpFlags struct { + Forground bool `short:"f" long:"forground" desc:"Don't Create Background Daemon."` +} + +func UpRun(r *cmd.Root, c *cmd.Sub) { + // Parse Command Args + args := c.Args.(*UpArgs) + + // Parse Command Flags + flags := c.Flags.(*UpFlags) + + // Parse Global Config Flag for Custom Config Path + configPath := r.Flags.(*GlobalFlags).Config + if configPath == "" { + configPath = "/etc/hyprspace/" + args.InterfaceName + ".yaml" + } + + // Read in configuration from file. + Global, err := config.Read(configPath) + checkErr(err) + + if !flags.Forground { + // Make results chan + out := make(chan bool) + go createDaemon(out) + + select { + case <-out: + case <-time.After(30 * time.Second): + } + checkErr(err) + fmt.Println("[+] Sucessfully Created Hyprspace Daemon") + return + } + + // Setup reverse lookup hash map for authentication. + RevLookup = make(map[string]bool, len(Global.Peers)) + for _, id := range Global.Peers { + RevLookup[id.ID] = true + } + + fmt.Println("[+] Creating TUN Device") + // Create new TUN device + iface, err = tun.New(Global.Interface.Name) + checkErr(err) + // Set TUN MTU + tun.SetMTU(Global.Interface.Name, 1500) + // Add Address to Interface + tun.SetAddress(Global.Interface.Name, Global.Interface.Address) + + // Setup System Context + ctx := context.Background() + + fmt.Println("[+] Creating LibP2P Node") + // Create P2P Node + host, dht, err := p2p.CreateNode(ctx, Global.Interface.PrivateKey, streamHandler) + checkErr(err) + + // Setup Peer Table for Quick Packet --> Dest ID lookup + peerTable := make(map[string]peer.ID) + for ip, id := range Global.Peers { + peerTable[ip], err = peer.Decode(id.ID) + checkErr(err) + } + + fmt.Println("[+] Setting Up Node Discovery via DHT") + // Setup P2P Discovery + go p2p.Discover(ctx, host, dht, Global.Interface.DiscoverKey, peerTable) + go prettyDiscovery(ctx, host, peerTable) + + go func() { + // Wait for a SIGINT or SIGTERM signal + ch := make(chan os.Signal, 1) + signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM) + <-ch + fmt.Println("Received signal, shutting down...") + + // Shut the node down + if err := host.Close(); err != nil { + panic(err) + } + os.Exit(0) + }() + + // Bring Up TUN Device + tun.Up(Global.Interface.Name) + + fmt.Println("[+] Network Setup Complete...Waiting on Node Discovery") + // Listen For New Packets on TUN Interface + packet := make([]byte, 1500) + for { + plen, err := iface.Read(packet) + checkErr(err) + header, _ := ipv4.ParseHeader(packet[:plen]) + _, ok := Global.Peers[header.Dst.String()] + if ok { + stream, err := host.NewStream(context.Background(), peerTable[header.Dst.String()], p2p.Protocol) + if err != nil { + log.Println(err) + continue + } + + go func() { + stream.Write(packet[:plen]) + stream.Close() + }() + } + } +} + +func createDaemon(out chan<- bool) { + path, err := os.Executable() + checkErr(err) + // Create Pipe to monitor for daemon output. + r, w, err := os.Pipe() + checkErr(err) + // Create Sub Process + process, err := os.StartProcess( + path, + append(os.Args, "--forground"), + &os.ProcAttr{ + Files: []*os.File{nil, w, nil}, + }, + ) + checkErr(err) + scanner := bufio.NewScanner(r) + count := 0 + for scanner.Scan() && count < (4+len(Global.Peers)) { + fmt.Println(scanner.Text()) + count++ + } + fmt.Println(scanner.Text()) + err = process.Release() + checkErr(err) + out <- true +} + +func streamHandler(stream network.Stream) { + // If the remote node ID isn't in the list of known nodes don't respond. + if _, ok := RevLookup[stream.Conn().RemotePeer().Pretty()]; !ok { + stream.Close() + } + io.Copy(iface.ReadWriteCloser, stream) + stream.Close() +} + +func prettyDiscovery(ctx context.Context, node host.Host, peerTable map[string]peer.ID) { + tempTable := make(map[string]peer.ID, len(peerTable)) + for ip, id := range peerTable { + tempTable[ip] = id + } + for len(peerTable) > 0 { + for ip, id := range tempTable { + stream, err := node.NewStream(ctx, id, p2p.Protocol) + if err != nil && (strings.HasPrefix(err.Error(), "failed to dial") || + strings.HasPrefix(err.Error(), "no addresses")) { + time.Sleep(5 * time.Second) + continue + } + if err == nil { + fmt.Printf("[+] Connection to %s Sucessful. Network Ready.\n", ip) + stream.Close() + } + delete(tempTable, ip) + } + } +} diff --git a/cli/update.go b/cli/update.go new file mode 100644 index 0000000..88191a7 --- /dev/null +++ b/cli/update.go @@ -0,0 +1,85 @@ +package cli + +import ( + "bufio" + "fmt" + "net/http" + "os" + "runtime" + "strings" + "sync" + + "github.com/DataDrake/cli-ng/v2/cmd" + "github.com/inconshreveable/go-update" + "github.com/tcnksm/go-latest" +) + +var appVersion string + +// Update checks for a new version of the Hyprspace program and updates itself +// if a newer version is found and the user agrees to update. +var Update = cmd.Sub{ + Name: "update", + Alias: "upd", + Short: "Update Hyprspace to the lastest version.", + Args: &UpdateArgs{}, + Flags: &UpdateFlags{}, + Run: UpdateRun, +} + +// UpdateArgs handles the specific arguments for the update command. +type UpdateArgs struct { +} + +// UpdateFlags handles the specific flags for the update command. +type UpdateFlags struct { + Yes bool `short:"y" long:"yes" desc:"If a newer version is found update without prompting the user."` +} + +// UpdateRun handles the checking and self updating of the AIT program. +func UpdateRun(r *cmd.Root, c *cmd.Sub) { + fmt.Printf("Current Version: %s\n", appVersion) + + flags := c.Flags.(*UpdateFlags) + latestVersion := &latest.GithubTag{ + Owner: "hyprspace", + Repository: "hyprspace", + } + + res, _ := latest.Check(latestVersion, appVersion) + fmt.Printf("Latest Version: %s\n", res.Current) + + if res.Outdated { + if !flags.Yes { + fmt.Println("Would you like to update Hyprspace to the newest version? ([y]/n)") + reader := bufio.NewReader(os.Stdin) + input, _ := reader.ReadString('\n') + input = strings.ToLower(strings.TrimSpace(input)) + if input == "n" { + return + } + } + url := "https://github.com/hyprspace/hyprspace/releases/download/v" + res.Current + "/hyprspace-v" + res.Current + "-" + runtime.GOOS + "-" + runtime.GOARCH + + doneChan := make(chan int, 1) + wg := sync.WaitGroup{} + wg.Add(1) + + // Display Spinner on Update. + go SpinnerWait(doneChan, "Updating Hyprspace...", &wg) + + resp, err := http.Get(url) + checkErr(err) + + defer resp.Body.Close() + err = update.Apply(resp.Body, update.Options{}) + checkErr(err) + + doneChan <- 0 + wg.Wait() + + fmt.Print("\rUpdating Hyprspace: Done!\n") + } else { + fmt.Println("Already Up-To-Date!") + } +} diff --git a/config/config.go b/config/config.go new file mode 100644 index 0000000..1c0dc91 --- /dev/null +++ b/config/config.go @@ -0,0 +1,34 @@ +package config + +import ( + "os" + + "gopkg.in/yaml.v2" +) + +type Config struct { + Interface Interface `yaml:"interface"` + Peers map[string]Peer `yaml:"peers"` +} + +type Interface struct { + Name string `yaml:"name"` + Address string `yaml:"address"` + ID string `yaml:"id"` + DiscoverKey string `yaml:"discover_key"` + PrivateKey string `yaml:"private_key"` +} + +type Peer struct { + ID string `yaml:"id"` +} + +// Read initalizes a config from a file. +func Read(path string) (result Config, err error) { + in, err := os.ReadFile(path) + if err != nil { + return + } + err = yaml.Unmarshal(in, &result) + return +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..b521c47 --- /dev/null +++ b/go.mod @@ -0,0 +1,22 @@ +module github.com/hyprspace/hyprspace + +go 1.16 + +require ( + github.com/DataDrake/cli-ng/v2 v2.0.2 + github.com/hashicorp/go-version v1.2.1 // indirect + github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf + github.com/kr/text v0.2.0 // indirect + github.com/libp2p/go-libp2p v0.14.1 + github.com/libp2p/go-libp2p-core v0.8.5 + github.com/libp2p/go-libp2p-discovery v0.5.0 + github.com/libp2p/go-libp2p-kad-dht v0.12.1 + github.com/multiformats/go-multiaddr v0.3.1 + github.com/sethvargo/go-diceware v0.2.1 + github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 + github.com/tcnksm/go-latest v0.0.0-20170313132115-e3007ae9052e + golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6 + golang.org/x/sys v0.0.0-20210603125802-9665404d3644 // indirect + gopkg.in/yaml.v2 v2.4.0 + honnef.co/go/tools v0.0.1-2020.1.4 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..e0d5353 --- /dev/null +++ b/go.sum @@ -0,0 +1,914 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.37.0/go.mod h1:TS1dMSSfndXH133OKGwekG838Om/cQT0BUHV3HcBgoo= +dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= +dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= +dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= +dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= +git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= +github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DataDrake/cli-ng/v2 v2.0.2 h1:7+25l25VmlERCE95glW6QKBUF13vxqAM2jasFiN02xQ= +github.com/DataDrake/cli-ng/v2 v2.0.2/go.mod h1:bU9YaNNWWVq0eIdDsU3TCe9+7Jb398iBBoqee5EiKWQ= +github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= +github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= +github.com/btcsuite/btcd v0.0.0-20190523000118-16327141da8c/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= +github.com/btcsuite/btcd v0.0.0-20190824003749-130ea5bddde3/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= +github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= +github.com/btcsuite/btcd v0.21.0-beta h1:At9hIZdJW0s9E/fAz28nrz6AmcNlSVucCH796ZteX1M= +github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= +github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +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/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= +github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= +github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= +github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= +github.com/dgraph-io/badger v1.6.0-rc1/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/dgraph-io/badger v1.6.1/go.mod h1:FRmFw3uxvcpa8zG3Rxs0th+hCLIuaQg8HlNV5bjgnuU= +github.com/dgraph-io/ristretto v0.0.2/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= +github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/flynn/noise v0.0.0-20180327030543-2492fe189ae6/go.mod h1:1i71OnUq3iUe1ma7Lr6yG6/rjvM3emb6yoL7xLFzcVQ= +github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ= +github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= +github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= +github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3 h1:x95R7cp+rSeeqAMI2knLtQ0DKlaBhv2NrtrOvafPHRo= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= +github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= +github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM= +github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= +github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= +github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= +github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= +github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-version v1.2.1 h1:zEfKbn2+PDgroKdiOzqiE8rsmLqU2uwi5PB5pBJ3TkI= +github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v1.0.0 h1:wg75sLpL6DZqwHQN6E1Cfk6mtfzS45z8OV+ic+DtHRo= +github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= +github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= +github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf h1:WfD7VjIE6z8dIvMsI4/s+1qr5EL+zoIGev1BQj1eoJ8= +github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf/go.mod h1:hyb9oH7vZsitZCiBt0ZvifOrB+qc8PS5IiilCIb87rg= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-cid v0.0.2/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-cid v0.0.3/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= +github.com/ipfs/go-cid v0.0.4/go.mod h1:4LLaPOQwmk5z9LBgQnpkivrx8BJjUyGwTXCd5Xfj6+M= +github.com/ipfs/go-cid v0.0.5/go.mod h1:plgt+Y5MnOey4vO4UlUazGqdbEXuFYitED67FexhXog= +github.com/ipfs/go-cid v0.0.6/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= +github.com/ipfs/go-cid v0.0.7 h1:ysQJVJA3fNDF1qigJbsSQOdjhVLsOEoPdh0+R97k3jY= +github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= +github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-datastore v0.1.0/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-datastore v0.1.1/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw= +github.com/ipfs/go-datastore v0.4.0/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA= +github.com/ipfs/go-datastore v0.4.1/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA= +github.com/ipfs/go-datastore v0.4.4/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA= +github.com/ipfs/go-datastore v0.4.5 h1:cwOUcGMLdLPWgu3SlrCckCMznaGADbPqE0r8h768/Dg= +github.com/ipfs/go-datastore v0.4.5/go.mod h1:eXTcaaiN6uOlVCLS9GjJUJtlvJfM3xk23w3fyfrmmJs= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= +github.com/ipfs/go-ds-badger v0.0.5/go.mod h1:g5AuuCGmr7efyzQhLL8MzwqcauPojGPUaHzfGTzuE3s= +github.com/ipfs/go-ds-badger v0.0.7/go.mod h1:qt0/fWzZDoPW6jpQeqUjR5kBfhDNB65jd9YlmAvpQBk= +github.com/ipfs/go-ds-badger v0.2.1/go.mod h1:Tx7l3aTph3FMFrRS838dcSJh+jjA7cX9DrGVwx/NOwE= +github.com/ipfs/go-ds-badger v0.2.3/go.mod h1:pEYw0rgg3FIrywKKnL+Snr+w/LjJZVMTBRn4FS6UHUk= +github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= +github.com/ipfs/go-ds-leveldb v0.1.0/go.mod h1:hqAW8y4bwX5LWcCtku2rFNX3vjDZCy5LZCg+cSZvYb8= +github.com/ipfs/go-ds-leveldb v0.4.1/go.mod h1:jpbku/YqBSsBc1qgME8BkWS4AxzF2cEu1Ii2r79Hh9s= +github.com/ipfs/go-ds-leveldb v0.4.2/go.mod h1:jpbku/YqBSsBc1qgME8BkWS4AxzF2cEu1Ii2r79Hh9s= +github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= +github.com/ipfs/go-ipfs-util v0.0.2 h1:59Sswnk1MFaiq+VcaknX7aYEyGyGDAA73ilhEK2POp8= +github.com/ipfs/go-ipfs-util v0.0.2/go.mod h1:CbPtkWJzjLdEcezDns2XYaehFVNXG9zrdrtMecczcsQ= +github.com/ipfs/go-ipns v0.0.2 h1:oq4ErrV4hNQ2Eim257RTYRgfOSV/s8BDaf9iIl4NwFs= +github.com/ipfs/go-ipns v0.0.2/go.mod h1:WChil4e0/m9cIINWLxZe1Jtf77oz5L05rO2ei/uKJ5U= +github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-log v1.0.2/go.mod h1:1MNjMxe0u6xvJZgeqbJ8vdo2TKaGwZ1a0Bpza+sr2Sk= +github.com/ipfs/go-log v1.0.3/go.mod h1:OsLySYkwIbiSUR/yBTdv1qPtcE4FW3WPWk/ewz9Ru+A= +github.com/ipfs/go-log v1.0.4/go.mod h1:oDCg2FkjogeFOhqqb+N39l2RpTNPL6F/StPkB3kPgcs= +github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= +github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= +github.com/ipfs/go-log/v2 v2.0.2/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0= +github.com/ipfs/go-log/v2 v2.0.3/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0= +github.com/ipfs/go-log/v2 v2.0.5/go.mod h1:eZs4Xt4ZUJQFM3DlanGhy7TkwwawCZcSByscwkWG+dw= +github.com/ipfs/go-log/v2 v2.1.1/go.mod h1:2v2nsGfZsvvAJz13SyFzf9ObaqwHiHxsPLEHntrv9KM= +github.com/ipfs/go-log/v2 v2.1.3 h1:1iS3IU7aXRlbgUpN8yTTpJ53NXYjAe37vcI5+5nYrzk= +github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g= +github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= +github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= +github.com/jbenet/go-cienv v0.1.0 h1:Vc/s0QbQtoxX8MwwSLWWh+xNNZvM3Lw7NsTcHrvvhMc= +github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= +github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= +github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= +github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk= +github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= +github.com/jbenet/goprocess v0.1.3/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= +github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= +github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= +github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d/go.mod h1:P2viExyCEfeWGU259JnaQ34Inuec4R38JCyBx2edgD0= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/klauspost/cpuid/v2 v2.0.4 h1:g0I61F2K2DjRHz1cnxlkNSBIaePVoJIjjnHui8QHbiw= +github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d h1:68u9r4wEvL3gYg2jvAOgROwZ3H+Y3hIDk4tbbmIjcYQ= +github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= +github.com/libp2p/go-addr-util v0.0.2 h1:7cWK5cdA5x72jX0g8iLrQWm5TRJZ6CzGdPEhWj7plWU= +github.com/libp2p/go-addr-util v0.0.2/go.mod h1:Ecd6Fb3yIuLzq4bD7VcywcVSBtefcAwnUISBM3WG15E= +github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/libp2p/go-buffer-pool v0.0.2 h1:QNK2iAFa8gjAe1SPz6mHSMuCcjs+X1wlHzeOSqcmlfs= +github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM= +github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= +github.com/libp2p/go-cidranger v1.1.0/go.mod h1:KWZTfSr+r9qEo9OkI9/SIEeAtw+NNoU0dXIXt15Okic= +github.com/libp2p/go-conn-security-multistream v0.1.0/go.mod h1:aw6eD7LOsHEX7+2hJkDxw1MteijaVcI+/eP2/x3J1xc= +github.com/libp2p/go-conn-security-multistream v0.2.0/go.mod h1:hZN4MjlNetKD3Rq5Jb/P5ohUnFLNzEAR4DLSzpn2QLU= +github.com/libp2p/go-conn-security-multistream v0.2.1 h1:ft6/POSK7F+vl/2qzegnHDaXFU0iWB4yVTYrioC6Zy0= +github.com/libp2p/go-conn-security-multistream v0.2.1/go.mod h1:cR1d8gA0Hr59Fj6NhaTpFhJZrjSYuNmhpT2r25zYR70= +github.com/libp2p/go-eventbus v0.1.0/go.mod h1:vROgu5cs5T7cv7POWlWxBaVLxfSegC5UGQf8A2eEmx4= +github.com/libp2p/go-eventbus v0.2.1 h1:VanAdErQnpTioN2TowqNcOijf6YwhuODe4pPKSDpxGc= +github.com/libp2p/go-eventbus v0.2.1/go.mod h1:jc2S4SoEVPP48H9Wpzm5aiGwUCBMfGhVhhBjyhhCJs8= +github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-flow-metrics v0.0.2/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS27omG0uWU5slZs= +github.com/libp2p/go-flow-metrics v0.0.3 h1:8tAs/hSdNvUiLgtlSy3mxwxWP4I9y/jlkPFT7epKdeM= +github.com/libp2p/go-flow-metrics v0.0.3/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS27omG0uWU5slZs= +github.com/libp2p/go-libp2p v0.6.1/go.mod h1:CTFnWXogryAHjXAKEbOf1OWY+VeAP3lDMZkfEI5sT54= +github.com/libp2p/go-libp2p v0.7.0/go.mod h1:hZJf8txWeCduQRDC/WSqBGMxaTHCOYHt2xSU1ivxn0k= +github.com/libp2p/go-libp2p v0.7.4/go.mod h1:oXsBlTLF1q7pxr+9w6lqzS1ILpyHsaBPniVO7zIHGMw= +github.com/libp2p/go-libp2p v0.8.1/go.mod h1:QRNH9pwdbEBpx5DTJYg+qxcVaDMAz3Ee/qDKwXujH5o= +github.com/libp2p/go-libp2p v0.13.0/go.mod h1:pM0beYdACRfHO1WcJlp65WXyG2A6NqYM+t2DTVAJxMo= +github.com/libp2p/go-libp2p v0.14.1 h1:R0vNY7nkU8IISlDuHd2yk4eNAZsVQ0rCr2bPfWU3sXo= +github.com/libp2p/go-libp2p v0.14.1/go.mod h1:0PQMADQEjCM2l8cSMYDpTgsb8gr6Zq7i4LUgq1mlW2E= +github.com/libp2p/go-libp2p-asn-util v0.0.0-20200825225859-85005c6cf052 h1:BM7aaOF7RpmNn9+9g6uTjGJ0cTzWr5j9i9IKeun2M8U= +github.com/libp2p/go-libp2p-asn-util v0.0.0-20200825225859-85005c6cf052/go.mod h1:nRMRTab+kZuk0LnKZpxhOVH/ndsdr2Nr//Zltc/vwgo= +github.com/libp2p/go-libp2p-autonat v0.1.1/go.mod h1:OXqkeGOY2xJVWKAGV2inNF5aKN/djNA3fdpCWloIudE= +github.com/libp2p/go-libp2p-autonat v0.2.0/go.mod h1:DX+9teU4pEEoZUqR1PiMlqliONQdNbfzE1C718tcViI= +github.com/libp2p/go-libp2p-autonat v0.2.1/go.mod h1:MWtAhV5Ko1l6QBsHQNSuM6b1sRkXrpk0/LqCr+vCVxI= +github.com/libp2p/go-libp2p-autonat v0.2.2/go.mod h1:HsM62HkqZmHR2k1xgX34WuWDzk/nBwNHoeyyT4IWV6A= +github.com/libp2p/go-libp2p-autonat v0.4.0/go.mod h1:YxaJlpr81FhdOv3W3BTconZPfhaYivRdf53g+S2wobk= +github.com/libp2p/go-libp2p-autonat v0.4.2 h1:YMp7StMi2dof+baaxkbxaizXjY1RPvU71CXfxExzcUU= +github.com/libp2p/go-libp2p-autonat v0.4.2/go.mod h1:YxaJlpr81FhdOv3W3BTconZPfhaYivRdf53g+S2wobk= +github.com/libp2p/go-libp2p-blankhost v0.1.1/go.mod h1:pf2fvdLJPsC1FsVrNP3DUUvMzUts2dsLLBEpo1vW1ro= +github.com/libp2p/go-libp2p-blankhost v0.1.4/go.mod h1:oJF0saYsAXQCSfDq254GMNmLNz6ZTHTOvtF4ZydUvwU= +github.com/libp2p/go-libp2p-blankhost v0.2.0 h1:3EsGAi0CBGcZ33GwRuXEYJLLPoVWyXJ1bcJzAJjINkk= +github.com/libp2p/go-libp2p-blankhost v0.2.0/go.mod h1:eduNKXGTioTuQAUcZ5epXi9vMl+t4d8ugUBRQ4SqaNQ= +github.com/libp2p/go-libp2p-circuit v0.1.4/go.mod h1:CY67BrEjKNDhdTk8UgBX1Y/H5c3xkAcs3gnksxY7osU= +github.com/libp2p/go-libp2p-circuit v0.2.1/go.mod h1:BXPwYDN5A8z4OEY9sOfr2DUQMLQvKt/6oku45YUmjIo= +github.com/libp2p/go-libp2p-circuit v0.4.0 h1:eqQ3sEYkGTtybWgr6JLqJY6QLtPWRErvFjFDfAOO1wc= +github.com/libp2p/go-libp2p-circuit v0.4.0/go.mod h1:t/ktoFIUzM6uLQ+o1G6NuBl2ANhBKN9Bc8jRIk31MoA= +github.com/libp2p/go-libp2p-core v0.0.1/go.mod h1:g/VxnTZ/1ygHxH3dKok7Vno1VfpvGcGip57wjTU4fco= +github.com/libp2p/go-libp2p-core v0.0.4/go.mod h1:jyuCQP356gzfCFtRKyvAbNkyeuxb7OlyhWZ3nls5d2I= +github.com/libp2p/go-libp2p-core v0.2.0/go.mod h1:X0eyB0Gy93v0DZtSYbEM7RnMChm9Uv3j7yRXjO77xSI= +github.com/libp2p/go-libp2p-core v0.2.2/go.mod h1:8fcwTbsG2B+lTgRJ1ICZtiM5GWCWZVoVrLaDRvIRng0= +github.com/libp2p/go-libp2p-core v0.2.4/go.mod h1:STh4fdfa5vDYr0/SzYYeqnt+E6KfEV5VxfIrm0bcI0g= +github.com/libp2p/go-libp2p-core v0.2.5/go.mod h1:6+5zJmKhsf7yHn1RbmYDu08qDUpIUxGdqHuEZckmZOA= +github.com/libp2p/go-libp2p-core v0.3.0/go.mod h1:ACp3DmS3/N64c2jDzcV429ukDpicbL6+TrrxANBjPGw= +github.com/libp2p/go-libp2p-core v0.3.1/go.mod h1:thvWy0hvaSBhnVBaW37BvzgVV68OUhgJJLAa6almrII= +github.com/libp2p/go-libp2p-core v0.4.0/go.mod h1:49XGI+kc38oGVwqSBhDEwytaAxgZasHhFfQKibzTls0= +github.com/libp2p/go-libp2p-core v0.5.0/go.mod h1:49XGI+kc38oGVwqSBhDEwytaAxgZasHhFfQKibzTls0= +github.com/libp2p/go-libp2p-core v0.5.1/go.mod h1:uN7L2D4EvPCvzSH5SrhR72UWbnSGpt5/a35Sm4upn4Y= +github.com/libp2p/go-libp2p-core v0.5.3/go.mod h1:uN7L2D4EvPCvzSH5SrhR72UWbnSGpt5/a35Sm4upn4Y= +github.com/libp2p/go-libp2p-core v0.5.4/go.mod h1:uN7L2D4EvPCvzSH5SrhR72UWbnSGpt5/a35Sm4upn4Y= +github.com/libp2p/go-libp2p-core v0.5.5/go.mod h1:vj3awlOr9+GMZJFH9s4mpt9RHHgGqeHCopzbYKZdRjM= +github.com/libp2p/go-libp2p-core v0.5.6/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo= +github.com/libp2p/go-libp2p-core v0.5.7/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo= +github.com/libp2p/go-libp2p-core v0.6.0/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo= +github.com/libp2p/go-libp2p-core v0.6.1/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= +github.com/libp2p/go-libp2p-core v0.7.0/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= +github.com/libp2p/go-libp2p-core v0.8.0/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= +github.com/libp2p/go-libp2p-core v0.8.1/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= +github.com/libp2p/go-libp2p-core v0.8.2/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= +github.com/libp2p/go-libp2p-core v0.8.5 h1:aEgbIcPGsKy6zYcC+5AJivYFedhYa4sW7mIpWpUaLKw= +github.com/libp2p/go-libp2p-core v0.8.5/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= +github.com/libp2p/go-libp2p-crypto v0.1.0/go.mod h1:sPUokVISZiy+nNuTTH/TY+leRSxnFj/2GLjtOTW90hI= +github.com/libp2p/go-libp2p-discovery v0.2.0/go.mod h1:s4VGaxYMbw4+4+tsoQTqh7wfxg97AEdo4GYBt6BadWg= +github.com/libp2p/go-libp2p-discovery v0.3.0/go.mod h1:o03drFnz9BVAZdzC/QUQ+NeQOu38Fu7LJGEOK2gQltw= +github.com/libp2p/go-libp2p-discovery v0.5.0 h1:Qfl+e5+lfDgwdrXdu4YNCWyEo3fWuP+WgN9mN0iWviQ= +github.com/libp2p/go-libp2p-discovery v0.5.0/go.mod h1:+srtPIU9gDaBNu//UHvcdliKBIcr4SfDcm0/PfPJLug= +github.com/libp2p/go-libp2p-kad-dht v0.12.1 h1:6HsBhzxcD34rE7Ds2lK9q6llPE7/tdqV7JmJiukEcQ8= +github.com/libp2p/go-libp2p-kad-dht v0.12.1/go.mod h1:zdQYru1c7dnluMpZls4i9Fj2TwYXS7YyDkJ1Yahv0w0= +github.com/libp2p/go-libp2p-kbucket v0.3.1/go.mod h1:oyjT5O7tS9CQurok++ERgc46YLwEpuGoFq9ubvoUOio= +github.com/libp2p/go-libp2p-kbucket v0.4.7 h1:spZAcgxifvFZHBD8tErvppbnNiKA5uokDu3CV7axu70= +github.com/libp2p/go-libp2p-kbucket v0.4.7/go.mod h1:XyVo99AfQH0foSf176k4jY1xUJ2+jUJIZCSDm7r2YKk= +github.com/libp2p/go-libp2p-loggables v0.1.0/go.mod h1:EyumB2Y6PrYjr55Q3/tiJ/o3xoDasoRYM7nOzEpoa90= +github.com/libp2p/go-libp2p-mplex v0.2.0/go.mod h1:Ejl9IyjvXJ0T9iqUTE1jpYATQ9NM3g+OtR+EMMODbKo= +github.com/libp2p/go-libp2p-mplex v0.2.1/go.mod h1:SC99Rxs8Vuzrf/6WhmH41kNn13TiYdAWNYHrwImKLnE= +github.com/libp2p/go-libp2p-mplex v0.2.2/go.mod h1:74S9eum0tVQdAfFiKxAyKzNdSuLqw5oadDq7+L/FELo= +github.com/libp2p/go-libp2p-mplex v0.2.3/go.mod h1:CK3p2+9qH9x+7ER/gWWDYJ3QW5ZxWDkm+dVvjfuG3ek= +github.com/libp2p/go-libp2p-mplex v0.4.0/go.mod h1:yCyWJE2sc6TBTnFpjvLuEJgTSw/u+MamvzILKdX7asw= +github.com/libp2p/go-libp2p-mplex v0.4.1 h1:/pyhkP1nLwjG3OM+VuaNJkQT/Pqq73WzB3aDN3Fx1sc= +github.com/libp2p/go-libp2p-mplex v0.4.1/go.mod h1:cmy+3GfqfM1PceHTLL7zQzAAYaryDu6iPSC+CIb094g= +github.com/libp2p/go-libp2p-nat v0.0.5/go.mod h1:1qubaE5bTZMJE+E/uu2URroMbzdubFz1ChgiN79yKPE= +github.com/libp2p/go-libp2p-nat v0.0.6 h1:wMWis3kYynCbHoyKLPBEMu4YRLltbm8Mk08HGSfvTkU= +github.com/libp2p/go-libp2p-nat v0.0.6/go.mod h1:iV59LVhB3IkFvS6S6sauVTSOrNEANnINbI/fkaLimiw= +github.com/libp2p/go-libp2p-netutil v0.1.0 h1:zscYDNVEcGxyUpMd0JReUZTrpMfia8PmLKcKF72EAMQ= +github.com/libp2p/go-libp2p-netutil v0.1.0/go.mod h1:3Qv/aDqtMLTUyQeundkKsA+YCThNdbQD54k3TqjpbFU= +github.com/libp2p/go-libp2p-noise v0.1.1/go.mod h1:QDFLdKX7nluB7DEnlVPbz7xlLHdwHFA9HiohJRr3vwM= +github.com/libp2p/go-libp2p-noise v0.2.0 h1:wmk5nhB9a2w2RxMOyvsoKjizgJOEaJdfAakr0jN8gds= +github.com/libp2p/go-libp2p-noise v0.2.0/go.mod h1:IEbYhBBzGyvdLBoxxULL/SGbJARhUeqlO8lVSREYu2Q= +github.com/libp2p/go-libp2p-peer v0.2.0/go.mod h1:RCffaCvUyW2CJmG2gAWVqwePwW7JMgxjsHm7+J5kjWY= +github.com/libp2p/go-libp2p-peerstore v0.1.0/go.mod h1:2CeHkQsr8svp4fZ+Oi9ykN1HBb6u0MOvdJ7YIsmcwtY= +github.com/libp2p/go-libp2p-peerstore v0.1.3/go.mod h1:BJ9sHlm59/80oSkpWgr1MyY1ciXAXV397W6h1GH/uKI= +github.com/libp2p/go-libp2p-peerstore v0.1.4/go.mod h1:+4BDbDiiKf4PzpANZDAT+knVdLxvqh7hXOujessqdzs= +github.com/libp2p/go-libp2p-peerstore v0.2.0/go.mod h1:N2l3eVIeAitSg3Pi2ipSrJYnqhVnMNQZo9nkSCuAbnQ= +github.com/libp2p/go-libp2p-peerstore v0.2.1/go.mod h1:NQxhNjWxf1d4w6PihR8btWIRjwRLBr4TYKfNgrUkOPA= +github.com/libp2p/go-libp2p-peerstore v0.2.2/go.mod h1:NQxhNjWxf1d4w6PihR8btWIRjwRLBr4TYKfNgrUkOPA= +github.com/libp2p/go-libp2p-peerstore v0.2.6/go.mod h1:ss/TWTgHZTMpsU/oKVVPQCGuDHItOpf2W8RxAi50P2s= +github.com/libp2p/go-libp2p-peerstore v0.2.7 h1:83JoLxyR9OYTnNfB5vvFqvMUv/xDNa6NoPHnENhBsGw= +github.com/libp2p/go-libp2p-peerstore v0.2.7/go.mod h1:ss/TWTgHZTMpsU/oKVVPQCGuDHItOpf2W8RxAi50P2s= +github.com/libp2p/go-libp2p-pnet v0.2.0 h1:J6htxttBipJujEjz1y0a5+eYoiPcFHhSYHH6na5f0/k= +github.com/libp2p/go-libp2p-pnet v0.2.0/go.mod h1:Qqvq6JH/oMZGwqs3N1Fqhv8NVhrdYcO0BW4wssv21LA= +github.com/libp2p/go-libp2p-quic-transport v0.10.0 h1:koDCbWD9CCHwcHZL3/WEvP2A+e/o5/W5L3QS/2SPMA0= +github.com/libp2p/go-libp2p-quic-transport v0.10.0/go.mod h1:RfJbZ8IqXIhxBRm5hqUEJqjiiY8xmEuq3HUDS993MkA= +github.com/libp2p/go-libp2p-record v0.1.2/go.mod h1:pal0eNcT5nqZaTV7UGhqeGqxFgGdsU/9W//C8dqjQDk= +github.com/libp2p/go-libp2p-record v0.1.3 h1:R27hoScIhQf/A8XJZ8lYpnqh9LatJ5YbHs28kCIfql0= +github.com/libp2p/go-libp2p-record v0.1.3/go.mod h1:yNUff/adKIfPnYQXgp6FQmNu3gLJ6EMg7+/vv2+9pY4= +github.com/libp2p/go-libp2p-routing-helpers v0.2.3/go.mod h1:795bh+9YeoFl99rMASoiVgHdi5bjack0N1+AFAdbvBw= +github.com/libp2p/go-libp2p-secio v0.1.0/go.mod h1:tMJo2w7h3+wN4pgU2LSYeiKPrfqBgkOsdiKK77hE7c8= +github.com/libp2p/go-libp2p-secio v0.2.0/go.mod h1:2JdZepB8J5V9mBp79BmwsaPQhRPNN2NrnB2lKQcdy6g= +github.com/libp2p/go-libp2p-secio v0.2.1/go.mod h1:cWtZpILJqkqrSkiYcDBh5lA3wbT2Q+hz3rJQq3iftD8= +github.com/libp2p/go-libp2p-secio v0.2.2/go.mod h1:wP3bS+m5AUnFA+OFO7Er03uO1mncHG0uVwGrwvjYlNY= +github.com/libp2p/go-libp2p-swarm v0.1.0/go.mod h1:wQVsCdjsuZoc730CgOvh5ox6K8evllckjebkdiY5ta4= +github.com/libp2p/go-libp2p-swarm v0.2.2/go.mod h1:fvmtQ0T1nErXym1/aa1uJEyN7JzaTNyBcHImCxRpPKU= +github.com/libp2p/go-libp2p-swarm v0.2.3/go.mod h1:P2VO/EpxRyDxtChXz/VPVXyTnszHvokHKRhfkEgFKNM= +github.com/libp2p/go-libp2p-swarm v0.2.8/go.mod h1:JQKMGSth4SMqonruY0a8yjlPVIkb0mdNSwckW7OYziM= +github.com/libp2p/go-libp2p-swarm v0.3.0/go.mod h1:hdv95GWCTmzkgeJpP+GK/9D9puJegb7H57B5hWQR5Kk= +github.com/libp2p/go-libp2p-swarm v0.4.0/go.mod h1:XVFcO52VoLoo0eitSxNQWYq4D6sydGOweTOAjJNraCw= +github.com/libp2p/go-libp2p-swarm v0.5.0 h1:HIK0z3Eqoo8ugmN8YqWAhD2RORgR+3iNXYG4U2PFd1E= +github.com/libp2p/go-libp2p-swarm v0.5.0/go.mod h1:sU9i6BoHE0Ve5SKz3y9WfKrh8dUat6JknzUehFx8xW4= +github.com/libp2p/go-libp2p-testing v0.0.2/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= +github.com/libp2p/go-libp2p-testing v0.0.3/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= +github.com/libp2p/go-libp2p-testing v0.0.4/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= +github.com/libp2p/go-libp2p-testing v0.1.0/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0= +github.com/libp2p/go-libp2p-testing v0.1.1/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0= +github.com/libp2p/go-libp2p-testing v0.1.2-0.20200422005655-8775583591d8/go.mod h1:Qy8sAncLKpwXtS2dSnDOP8ktexIAHKu+J+pnZOFZLTc= +github.com/libp2p/go-libp2p-testing v0.3.0/go.mod h1:efZkql4UZ7OVsEfaxNHZPzIehtsBXMrXnCfJIgDti5g= +github.com/libp2p/go-libp2p-testing v0.4.0 h1:PrwHRi0IGqOwVQWR3xzgigSlhlLfxgfXgkHxr77EghQ= +github.com/libp2p/go-libp2p-testing v0.4.0/go.mod h1:Q+PFXYoiYFN5CAEG2w3gLPEzotlKsNSbKQ/lImlOWF0= +github.com/libp2p/go-libp2p-tls v0.1.3 h1:twKMhMu44jQO+HgQK9X8NHO5HkeJu2QbhLzLJpa8oNM= +github.com/libp2p/go-libp2p-tls v0.1.3/go.mod h1:wZfuewxOndz5RTnCAxFliGjvYSDA40sKitV4c50uI1M= +github.com/libp2p/go-libp2p-transport-upgrader v0.1.1/go.mod h1:IEtA6or8JUbsV07qPW4r01GnTenLW4oi3lOPbUMGJJA= +github.com/libp2p/go-libp2p-transport-upgrader v0.2.0/go.mod h1:mQcrHj4asu6ArfSoMuyojOdjx73Q47cYD7s5+gZOlns= +github.com/libp2p/go-libp2p-transport-upgrader v0.3.0/go.mod h1:i+SKzbRnvXdVbU3D1dwydnTmKRPXiAR/fyvi1dXuL4o= +github.com/libp2p/go-libp2p-transport-upgrader v0.4.0/go.mod h1:J4ko0ObtZSmgn5BX5AmegP+dK3CSnU2lMCKsSq/EY0s= +github.com/libp2p/go-libp2p-transport-upgrader v0.4.2 h1:4JsnbfJzgZeRS9AWN7B9dPqn/LY/HoQTlO9gtdJTIYM= +github.com/libp2p/go-libp2p-transport-upgrader v0.4.2/go.mod h1:NR8ne1VwfreD5VIWIU62Agt/J18ekORFU/j1i2y8zvk= +github.com/libp2p/go-libp2p-xor v0.0.0-20200501025846-71e284145d58/go.mod h1:AYjOiqJIdcmI4SXE2ouKQuFrUbE5myv8txWaB2pl4TI= +github.com/libp2p/go-libp2p-yamux v0.2.0/go.mod h1:Db2gU+XfLpm6E4rG5uGCFX6uXA8MEXOxFcRoXUODaK8= +github.com/libp2p/go-libp2p-yamux v0.2.2/go.mod h1:lIohaR0pT6mOt0AZ0L2dFze9hds9Req3OfS+B+dv4qw= +github.com/libp2p/go-libp2p-yamux v0.2.5/go.mod h1:Zpgj6arbyQrmZ3wxSZxfBmbdnWtbZ48OpsfmQVTErwA= +github.com/libp2p/go-libp2p-yamux v0.2.7/go.mod h1:X28ENrBMU/nm4I3Nx4sZ4dgjZ6VhLEn0XhIoZ5viCwU= +github.com/libp2p/go-libp2p-yamux v0.2.8/go.mod h1:/t6tDqeuZf0INZMTgd0WxIRbtK2EzI2h7HbFm9eAKI4= +github.com/libp2p/go-libp2p-yamux v0.4.0/go.mod h1:+DWDjtFMzoAwYLVkNZftoucn7PelNoy5nm3tZ3/Zw30= +github.com/libp2p/go-libp2p-yamux v0.5.0/go.mod h1:AyR8k5EzyM2QN9Bbdg6X1SkVVuqLwTGf0L4DFq9g6po= +github.com/libp2p/go-libp2p-yamux v0.5.1/go.mod h1:dowuvDu8CRWmr0iqySMiSxK+W0iL5cMVO9S94Y6gkv4= +github.com/libp2p/go-libp2p-yamux v0.5.4 h1:/UOPtT/6DHPtr3TtKXBHa6g0Le0szYuI33Xc/Xpd7fQ= +github.com/libp2p/go-libp2p-yamux v0.5.4/go.mod h1:tfrXbyaTqqSU654GTvK3ocnSZL3BuHoeTSqhcel1wsE= +github.com/libp2p/go-maddr-filter v0.0.4/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= +github.com/libp2p/go-maddr-filter v0.0.5/go.mod h1:Jk+36PMfIqCJhAnaASRH83bdAvfDRp/w6ENFaC9bG+M= +github.com/libp2p/go-maddr-filter v0.1.0 h1:4ACqZKw8AqiuJfwFGq1CYDFugfXTOos+qQ3DETkhtCE= +github.com/libp2p/go-maddr-filter v0.1.0/go.mod h1:VzZhTXkMucEGGEOSKddrwGiOv0tUhgnKqNEmIAz/bPU= +github.com/libp2p/go-mplex v0.0.3/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= +github.com/libp2p/go-mplex v0.1.0/go.mod h1:SXgmdki2kwCUlCCbfGLEgHjC4pFqhTp0ZoV6aiKgxDU= +github.com/libp2p/go-mplex v0.1.1/go.mod h1:Xgz2RDCi3co0LeZfgjm4OgUF15+sVR8SRcu3SFXI1lk= +github.com/libp2p/go-mplex v0.1.2/go.mod h1:Xgz2RDCi3co0LeZfgjm4OgUF15+sVR8SRcu3SFXI1lk= +github.com/libp2p/go-mplex v0.2.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ= +github.com/libp2p/go-mplex v0.3.0 h1:U1T+vmCYJaEoDJPV1aq31N56hS+lJgb397GsylNSgrU= +github.com/libp2p/go-mplex v0.3.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ= +github.com/libp2p/go-msgio v0.0.2/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-msgio v0.0.4/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= +github.com/libp2p/go-msgio v0.0.6 h1:lQ7Uc0kS1wb1EfRxO2Eir/RJoHkHn7t6o+EiwsYIKJA= +github.com/libp2p/go-msgio v0.0.6/go.mod h1:4ecVB6d9f4BDSL5fqvPiC4A3KivjWn+Venn/1ALLMWA= +github.com/libp2p/go-nat v0.0.4/go.mod h1:Nmw50VAvKuk38jUBcmNh6p9lUJLoODbJRvYAa/+KSDo= +github.com/libp2p/go-nat v0.0.5 h1:qxnwkco8RLKqVh1NmjQ+tJ8p8khNLFxuElYG/TwqW4Q= +github.com/libp2p/go-nat v0.0.5/go.mod h1:B7NxsVNPZmRLvMOwiEO1scOSyjA56zxYAGv1yQgRkEU= +github.com/libp2p/go-netroute v0.1.2/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk= +github.com/libp2p/go-netroute v0.1.3/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk= +github.com/libp2p/go-netroute v0.1.6 h1:ruPJStbYyXVYGQ81uzEDzuvbYRLKRrLvTYd33yomC38= +github.com/libp2p/go-netroute v0.1.6/go.mod h1:AqhkMh0VuWmfgtxKPp3Oc1LdU5QSWS7wl0QLhSZqXxQ= +github.com/libp2p/go-openssl v0.0.2/go.mod h1:v8Zw2ijCSWBQi8Pq5GAixw6DbFfa9u6VIYDXnvOXkc0= +github.com/libp2p/go-openssl v0.0.3/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= +github.com/libp2p/go-openssl v0.0.4/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= +github.com/libp2p/go-openssl v0.0.5/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= +github.com/libp2p/go-openssl v0.0.7 h1:eCAzdLejcNVBzP/iZM9vqHnQm+XyCEbSSIheIPRGNsw= +github.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= +github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= +github.com/libp2p/go-reuseport v0.0.2 h1:XSG94b1FJfGA01BUrT82imejHQyTxO4jEWqheyCXYvU= +github.com/libp2p/go-reuseport v0.0.2/go.mod h1:SPD+5RwGC7rcnzngoYC86GjPzjSywuQyMVAheVBD9nQ= +github.com/libp2p/go-reuseport-transport v0.0.2/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= +github.com/libp2p/go-reuseport-transport v0.0.3/go.mod h1:Spv+MPft1exxARzP2Sruj2Wb5JSyHNncjf1Oi2dEbzM= +github.com/libp2p/go-reuseport-transport v0.0.4 h1:OZGz0RB620QDGpv300n1zaOcKGGAoGVf8h9txtt/1uM= +github.com/libp2p/go-reuseport-transport v0.0.4/go.mod h1:trPa7r/7TJK/d+0hdBLOCGvpQQVOU74OXbNCIMkufGw= +github.com/libp2p/go-sockaddr v0.0.2/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= +github.com/libp2p/go-sockaddr v0.1.1 h1:yD80l2ZOdGksnOyHrhxDdTDFrf7Oy+v3FMVArIRgZxQ= +github.com/libp2p/go-sockaddr v0.1.1/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= +github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= +github.com/libp2p/go-stream-muxer-multistream v0.2.0/go.mod h1:j9eyPol/LLRqT+GPLSxvimPhNph4sfYfMoDPd7HkzIc= +github.com/libp2p/go-stream-muxer-multistream v0.3.0 h1:TqnSHPJEIqDEO7h1wZZ0p3DXdvDSiLHQidKKUGZtiOY= +github.com/libp2p/go-stream-muxer-multistream v0.3.0/go.mod h1:yDh8abSIzmZtqtOt64gFJUXEryejzNb0lisTt+fAMJA= +github.com/libp2p/go-tcp-transport v0.1.0/go.mod h1:oJ8I5VXryj493DEJ7OsBieu8fcg2nHGctwtInJVpipc= +github.com/libp2p/go-tcp-transport v0.1.1/go.mod h1:3HzGvLbx6etZjnFlERyakbaYPdfjg2pWP97dFZworkY= +github.com/libp2p/go-tcp-transport v0.2.0/go.mod h1:vX2U0CnWimU4h0SGSEsg++AzvBcroCGYw28kh94oLe0= +github.com/libp2p/go-tcp-transport v0.2.1 h1:ExZiVQV+h+qL16fzCWtd1HSzPsqWottJ8KXwWaVi8Ns= +github.com/libp2p/go-tcp-transport v0.2.1/go.mod h1:zskiJ70MEfWz2MKxvFB/Pv+tPIB1PpPUrHIWQ8aFw7M= +github.com/libp2p/go-ws-transport v0.2.0/go.mod h1:9BHJz/4Q5A9ludYWKoGCFC5gUElzlHoKzu0yY9p/klM= +github.com/libp2p/go-ws-transport v0.3.0/go.mod h1:bpgTJmRZAvVHrgHybCVyqoBmyLQ1fiZuEaBYusP5zsk= +github.com/libp2p/go-ws-transport v0.4.0 h1:9tvtQ9xbws6cA5LvqdE6Ne3vcmGB4f1z9SByggk4s0k= +github.com/libp2p/go-ws-transport v0.4.0/go.mod h1:EcIEKqf/7GDjth6ksuS/6p7R49V4CBY6/E7R/iyhYUA= +github.com/libp2p/go-yamux v1.2.2/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= +github.com/libp2p/go-yamux v1.3.0/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= +github.com/libp2p/go-yamux v1.3.3/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= +github.com/libp2p/go-yamux v1.3.5/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= +github.com/libp2p/go-yamux v1.3.7/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE= +github.com/libp2p/go-yamux v1.4.0/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE= +github.com/libp2p/go-yamux v1.4.1 h1:P1Fe9vF4th5JOxxgQvfbOHkrGqIZniTLf+ddhZp8YTI= +github.com/libp2p/go-yamux v1.4.1/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE= +github.com/libp2p/go-yamux/v2 v2.0.0/go.mod h1:NVWira5+sVUIU6tu1JWvaRn1dRnG+cawOJiflsAM+7U= +github.com/libp2p/go-yamux/v2 v2.2.0 h1:RwtpYZ2/wVviZ5+3pjC8qdQ4TKnrak0/E01N1UWoAFU= +github.com/libp2p/go-yamux/v2 v2.2.0/go.mod h1:3So6P6TV6r75R9jiBpiIKgU/66lOarCZjqROGxzPpPQ= +github.com/lucas-clemente/quic-go v0.19.3 h1:eCDQqvGBB+kCTkA0XrAFtNe81FMa0/fn4QSoeAbmiF4= +github.com/lucas-clemente/quic-go v0.19.3/go.mod h1:ADXpNbTQjq1hIzCpB+y/k5iz4n4z4IwqoLb94Kh5Hu8= +github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= +github.com/marten-seemann/qtls v0.10.0 h1:ECsuYUKalRL240rRD4Ri33ISb7kAQ3qGDlrrl55b2pc= +github.com/marten-seemann/qtls v0.10.0/go.mod h1:UvMd1oaYDACI99/oZUYLzMCkBXQVT0aGm99sJhbT8hs= +github.com/marten-seemann/qtls-go1-15 v0.1.1 h1:LIH6K34bPVttyXnUWixk0bzH6/N07VxbSabxn5A5gZQ= +github.com/marten-seemann/qtls-go1-15 v0.1.1/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= +github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= +github.com/miekg/dns v1.1.12/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.28/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/miekg/dns v1.1.41 h1:WMszZWJG0XmzbK9FEmzH2TVcqYzFesusSIB41b8KHxY= +github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/minio/sha256-simd v0.0.0-20190328051042-05b4dd3047e5/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/minio/sha256-simd v0.1.0/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= +github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= +github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= +github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/mr-tron/base58 v1.1.1/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= +github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4= +github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM= +github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr v0.0.2/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr v0.0.4/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr v0.1.0/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo= +github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4= +github.com/multiformats/go-multiaddr v0.2.1/go.mod h1:s/Apk6IyxfvMjDafnhJgJ3/46z7tZ04iMk5wP4QMGGE= +github.com/multiformats/go-multiaddr v0.2.2/go.mod h1:NtfXiOtHvghW9KojvtySjH5y0u0xW5UouOmQQrn6a3Y= +github.com/multiformats/go-multiaddr v0.3.0/go.mod h1:dF9kph9wfJ+3VLAaeBqo9Of8x4fJxp6ggJGteB8HQTI= +github.com/multiformats/go-multiaddr v0.3.1 h1:1bxa+W7j9wZKTZREySx1vPMs2TqrYWjVZ7zE6/XLG1I= +github.com/multiformats/go-multiaddr v0.3.1/go.mod h1:uPbspcUPd5AfaP6ql3ujFY+QWzmBD8uLLL4bXW0XfGc= +github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.2.0/go.mod h1:TJ5pr5bBO7Y1B18djPuRsVkduhQH2YqYSbxWJzYGdK0= +github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= +github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk= +github.com/multiformats/go-multiaddr-fmt v0.0.1/go.mod h1:aBYjqL4T/7j4Qx+R73XSv/8JsgnRFlf0w2KGLCmXl3Q= +github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= +github.com/multiformats/go-multiaddr-fmt v0.1.0/go.mod h1:hGtDIW4PU4BqJ50gW2quDuPVjyWNZxToGUh/HwTZYJo= +github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multiaddr-net v0.1.0/go.mod h1:5JNbcfBOP4dnhoZOv10JJVkJO0pCCEf8mTnipAo2UZQ= +github.com/multiformats/go-multiaddr-net v0.1.1/go.mod h1:5JNbcfBOP4dnhoZOv10JJVkJO0pCCEf8mTnipAo2UZQ= +github.com/multiformats/go-multiaddr-net v0.1.2/go.mod h1:QsWt3XK/3hwvNxZJp92iMQKME1qHfpYmyIjFVsSOY6Y= +github.com/multiformats/go-multiaddr-net v0.1.3/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA= +github.com/multiformats/go-multiaddr-net v0.1.4/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA= +github.com/multiformats/go-multiaddr-net v0.1.5/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA= +github.com/multiformats/go-multiaddr-net v0.2.0 h1:MSXRGN0mFymt6B1yo/6BPnIRpLPEnKgQNvVfCX5VDJk= +github.com/multiformats/go-multiaddr-net v0.2.0/go.mod h1:gGdH3UXny6U3cKKYCvpXI5rnK7YaOIEOPVDI9tsJbEA= +github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= +github.com/multiformats/go-multibase v0.0.3 h1:l/B6bJDQjvQ5G52jw4QGSYeOTZoAwIO77RblWplfIqk= +github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc= +github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= +github.com/multiformats/go-multihash v0.0.5/go.mod h1:lt/HCbqlQwlPBz7lv0sQCdtfcMtlJvakRUn/0Ual8po= +github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= +github.com/multiformats/go-multihash v0.0.9/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= +github.com/multiformats/go-multihash v0.0.10/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= +github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= +github.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= +github.com/multiformats/go-multihash v0.0.15 h1:hWOPdrNqDjwHDx82vsYGSDZNyktOJJ2dzZJzFkOV1jM= +github.com/multiformats/go-multihash v0.0.15/go.mod h1:D6aZrWNLFTV/ynMpKsNtB40mJzmCl4jb1alC0OvHiHg= +github.com/multiformats/go-multistream v0.1.0/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/multiformats/go-multistream v0.1.1/go.mod h1:KmHZ40hzVxiaiwlj3MEbYgK9JFk2/9UktWZAF54Du38= +github.com/multiformats/go-multistream v0.2.0/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW7vOfsAflxARk3x14o6k= +github.com/multiformats/go-multistream v0.2.1/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW7vOfsAflxARk3x14o6k= +github.com/multiformats/go-multistream v0.2.2 h1:TCYu1BHTDr1F/Qm75qwYISQdzGcRdC21nFgQW7l7GBo= +github.com/multiformats/go-multistream v0.2.2/go.mod h1:UIcnm7Zuo8HKG+HkWgfQsGL+/MIEhyTqbODbIUwSXKs= +github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= +github.com/multiformats/go-varint v0.0.2/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= +github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= +github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY= +github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= +github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= +github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= +github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= +github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= +github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +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/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/sethvargo/go-diceware v0.2.1 h1:Dp1FZOYBPaJIzz8J2dUBqQnpd3DLsRR4ldBOFxiz4Gs= +github.com/sethvargo/go-diceware v0.2.1/go.mod h1:lH5Q/oSPMivseNdhMERAC7Ti5oOPqsaVddU1BcN1CY0= +github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= +github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= +github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= +github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= +github.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw= +github.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI= +github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= +github.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= +github.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg= +github.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw= +github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y= +github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= +github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q= +github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ= +github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I= +github.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0= +github.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= +github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk= +github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= +github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/smola/gocompat v0.2.0/go.mod h1:1B0MlxbmoZNo3h8guHp8HztB3BSYR5itql9qtVc0ypY= +github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 h1:TG/diQgUe0pntT/2D9tmUCz4VNwm9MfrtPr0SU2qSX8= +github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8/go.mod h1:P5HUIBuIWKbyjl083/loAegFkfbFNx5i2qEP4CNbm7E= +github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= +github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= +github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a/go.mod h1:7AyxJNCJ7SBZ1MfVQCWD6Uqo2oubI2Eq2y2eqf+A5r0= +github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 h1:RC6RW7j+1+HkWaX/Yh71Ee5ZHaHYt7ZP4sQgUrm6cDU= +github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/src-d/envconfig v1.0.0/go.mod h1:Q9YQZ7BKITldTBnoxsE5gOeB5y66RyPXeue/R4aaNBc= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= +github.com/tcnksm/go-latest v0.0.0-20170313132115-e3007ae9052e h1:IWllFTiDjjLIf2oeKxpIUmtiDV5sn71VgeQgg6vcE7k= +github.com/tcnksm/go-latest v0.0.0-20170313132115-e3007ae9052e/go.mod h1:d7u6HkTYKSv5m6MCKkOQlHwaShTMl3HjqSGW3XtVhXM= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= +github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= +github.com/wangjia184/sortedset v0.0.0-20160527075905-f5d03557ba30/go.mod h1:YkocrP2K2tcw938x9gCOmT5G5eCD6jsTz0SZuyAqwIE= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k= +github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= +github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-logging v0.0.1/go.mod h1:lDPYj54zutzG1XYfHAhcc7oNXEburHQBn+Iqd4yS4vE= +github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= +github.com/whyrusleeping/mdns v0.0.0-20190826153040-b9b60ed33aa9/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= +github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= +github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.0.0 h1:qsup4IcBdlmsnGfqyLl4Ntn3C2XCCuKAE7DwHpScyUo= +go.uber.org/goleak v1.0.0/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= +go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= +go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM= +go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= +go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= +golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190618222545-ea8f1a30c443/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200423211502-4bdfaf469ed5/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200602180216-279210d13fed/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190313220215-9f648a60d977/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6 h1:0PC75Fz/kyMGhL0e1QnypqK2kQMqKt9csD1GnMJR+Zk= +golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190316082340-a2f829d7f35f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190526052359-791d8a0f4d09/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210426080607-c94f62235c83/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644 h1:CA1DEQ4NdKphKeL70tvsWNdT5oFh1lOjihRcEDROi0I= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181130052023-1c3d964395ce/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= +google.golang.org/genproto v0.0.0-20190306203927-b5d61aea6440/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/src-d/go-cli.v0 v0.0.0-20181105080154-d492247bbc0d/go.mod h1:z+K8VcOYVYcSwSjGebuDL6176A1XskgbtNl64NSg+n8= +gopkg.in/src-d/go-log.v1 v1.0.1/go.mod h1:GN34hKP0g305ysm2/hctJ0Y8nWP3zxXXJ8GFabTyABE= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.4 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= +sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/hyprspace.go b/hyprspace.go new file mode 100644 index 0000000..f6dab7f --- /dev/null +++ b/hyprspace.go @@ -0,0 +1,7 @@ +package main + +import "github.com/hyprspace/hyprspace/cli" + +func main() { + cli.Root.Run() +} diff --git a/hyprspace.png b/hyprspace.png new file mode 100644 index 0000000000000000000000000000000000000000..bd803ed41f94639de9dfd691ece569afca1b06f0 GIT binary patch literal 148325 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

l0d8i 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 cFwJ^}hBN&A^Bks#=kZq?UN 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 literal 0 HcmV?d00001 diff --git a/p2p/discover.go b/p2p/discover.go new file mode 100644 index 0000000..308272f --- /dev/null +++ b/p2p/discover.go @@ -0,0 +1,51 @@ +package p2p + +import ( + "context" + "fmt" + "log" + "time" + + "github.com/libp2p/go-libp2p-core/host" + "github.com/libp2p/go-libp2p-core/network" + "github.com/libp2p/go-libp2p-core/peer" + discovery "github.com/libp2p/go-libp2p-discovery" + dht "github.com/libp2p/go-libp2p-kad-dht" +) + +func Discover(ctx context.Context, h host.Host, dht *dht.IpfsDHT, rendezvous string, peerTable map[string]peer.ID) { + var routingDiscovery = discovery.NewRoutingDiscovery(dht) + discovery.Advertise(ctx, routingDiscovery, rendezvous) + + ticker := time.NewTicker(time.Second * 1) + defer ticker.Stop() + + for { + select { + case <-ctx.Done(): + return + case <-ticker.C: + + peers, err := discovery.FindPeers(ctx, routingDiscovery, rendezvous) + if err != nil { + log.Fatal(err) + } + + for _, p := range peers { + if p.ID == h.ID() { + continue + } + if h.Network().Connectedness(p.ID) != network.Connected { + _, err = h.Network().DialPeer(ctx, p.ID) + if err != nil { + continue + } + if err != nil { + fmt.Printf("Error Connecting To: %s\n", p.ID) + continue + } + } + } + } + } +} diff --git a/p2p/node.go b/p2p/node.go new file mode 100644 index 0000000..2b2d7fd --- /dev/null +++ b/p2p/node.go @@ -0,0 +1,91 @@ +package p2p + +import ( + "context" + "fmt" + "sync" + + "github.com/libp2p/go-libp2p" + "github.com/libp2p/go-libp2p-core/crypto" + "github.com/libp2p/go-libp2p-core/host" + "github.com/libp2p/go-libp2p-core/network" + "github.com/libp2p/go-libp2p-core/peer" + dht "github.com/libp2p/go-libp2p-kad-dht" + ma "github.com/multiformats/go-multiaddr" +) + +const Protocol = "/hyprspace/0.0.1" + +func CreateNode(ctx context.Context, inputKey string, handler network.StreamHandler) (node host.Host, dhtOut *dht.IpfsDHT, err error) { + // Unmarshall Private Key + privateKey, err := crypto.UnmarshalPrivateKey([]byte(inputKey)) + if err != nil { + return + } + + // Create libp2p node + node, err = libp2p.New(ctx, + libp2p.ListenAddrStrings(fmt.Sprintf("/ip4/0.0.0.0/tcp/%d", 8001)), + libp2p.Identity(privateKey), + ) + if err != nil { + return + } + + // Setup Hyprspace Stream Handler + node.SetStreamHandler(Protocol, handler) + + // Create DHT Subsystem + dhtOut, err = dht.New(ctx, node) + if err != nil { + return + } + + // Define Bootstrap Nodes. + peers := []string{ + "/dnsaddr/bootstrap.libp2p.io/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt", + "/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ", + "/ip4/104.131.131.82/udp/4001/quic/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ", + "/dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN", + "/dnsaddr/bootstrap.libp2p.io/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa", + "/dnsaddr/bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb", + } + + // Convert Bootstap Nodes into usable addresses. + BootstrapPeers := make(map[peer.ID]*peer.AddrInfo, len(peers)) + for _, addrStr := range peers { + addr, err := ma.NewMultiaddr(addrStr) + if err != nil { + return node, dhtOut, err + } + pii, err := peer.AddrInfoFromP2pAddr(addr) + if err != nil { + return node, dhtOut, err + } + pi, ok := BootstrapPeers[pii.ID] + if !ok { + pi = &peer.AddrInfo{ID: pii.ID} + BootstrapPeers[pi.ID] = pi + } + pi.Addrs = append(pi.Addrs, pii.Addrs...) + } + + // Let's connect to the bootstrap nodes first. They will tell us about the + // other nodes in the network. + var wg sync.WaitGroup + count := 0 + wg.Add(len(BootstrapPeers)) + for _, peerInfo := range BootstrapPeers { + go func(peerInfo *peer.AddrInfo) { + defer wg.Done() + err := node.Connect(ctx, *peerInfo) + if err == nil { + count++ + } + }(peerInfo) + } + wg.Wait() + + err = dhtOut.Bootstrap(ctx) + return +} diff --git a/tun/tun.go b/tun/tun.go new file mode 100644 index 0000000..952bdca --- /dev/null +++ b/tun/tun.go @@ -0,0 +1,45 @@ +package tun + +import ( + "fmt" + "os/exec" + + "github.com/songgao/water" +) + +func New(name string) (result *water.Interface, err error) { + // Setup TUN Config + cfg := water.Config{ + DeviceType: water.TUN, + } + cfg.Name = name + // Create TUN Interface + result, err = water.New(cfg) + return +} + +func SetMTU(name string, mtu int) (err error) { + return ip("link", "set", "dev", name, "mtu", fmt.Sprintf("%d", mtu)) +} + +func SetAddress(name string, address string) (err error) { + return ip("addr", "add", address, "dev", name) +} + +func Up(name string) (err error) { + return ip("link", "set", "dev", name, "up") +} + +func Down(name string) (err error) { + return ip("link", "set", "dev", name, "down") +} + +func Delete(name string) (err error) { + return ip("link", "delete", "dev", name) +} + +func ip(args ...string) (err error) { + cmd := exec.Command("/sbin/ip", args...) + err = cmd.Run() + return +}