mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-27 00:23:41 +09:00 
			
		
		
		
	go1.16 (#14783)
This commit is contained in:
		
							
								
								
									
										84
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										84
									
								
								.drone.yml
									
									
									
									
									
								
							| @@ -6,10 +6,6 @@ platform: | |||||||
|   os: linux |   os: linux | ||||||
|   arch: arm64 |   arch: arm64 | ||||||
|  |  | ||||||
| workspace: |  | ||||||
|   base: /go |  | ||||||
|   path: src/code.gitea.io/gitea |  | ||||||
|  |  | ||||||
| trigger: | trigger: | ||||||
|   event: |   event: | ||||||
|     - push |     - push | ||||||
| @@ -31,7 +27,7 @@ steps: | |||||||
|  |  | ||||||
|   - name: lint-backend |   - name: lint-backend | ||||||
|     pull: always |     pull: always | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - make lint-backend |       - make lint-backend | ||||||
|     environment: |     environment: | ||||||
| @@ -41,7 +37,7 @@ steps: | |||||||
|  |  | ||||||
|   - name: lint-backend-windows |   - name: lint-backend-windows | ||||||
|     pull: always |     pull: always | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - make golangci-lint vet |       - make golangci-lint vet | ||||||
|     environment: |     environment: | ||||||
| @@ -53,7 +49,7 @@ steps: | |||||||
|  |  | ||||||
|   - name: lint-backend-gogit |   - name: lint-backend-gogit | ||||||
|     pull: always |     pull: always | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - make lint-backend |       - make lint-backend | ||||||
|     environment: |     environment: | ||||||
| @@ -69,7 +65,7 @@ steps: | |||||||
|  |  | ||||||
|   - name: checks-backend |   - name: checks-backend | ||||||
|     pull: always |     pull: always | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - make checks-backend |       - make checks-backend | ||||||
|     depends_on: [lint-backend] |     depends_on: [lint-backend] | ||||||
| @@ -91,7 +87,7 @@ steps: | |||||||
|     depends_on: [checks-backend] |     depends_on: [checks-backend] | ||||||
|  |  | ||||||
|   - name: build-backend-arm64 |   - name: build-backend-arm64 | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     environment: |     environment: | ||||||
|       GO111MODULE: on |       GO111MODULE: on | ||||||
|       GOPROXY: off |       GOPROXY: off | ||||||
| @@ -104,7 +100,7 @@ steps: | |||||||
|     depends_on: [checks-backend] |     depends_on: [checks-backend] | ||||||
|  |  | ||||||
|   - name: build-backend-windows |   - name: build-backend-windows | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     environment: |     environment: | ||||||
|       GO111MODULE: on |       GO111MODULE: on | ||||||
|       GOPROXY: off |       GOPROXY: off | ||||||
| @@ -116,7 +112,7 @@ steps: | |||||||
|     depends_on: [checks-backend] |     depends_on: [checks-backend] | ||||||
|  |  | ||||||
|   - name: build-backend-386 |   - name: build-backend-386 | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     environment: |     environment: | ||||||
|       GO111MODULE: on |       GO111MODULE: on | ||||||
|       GOPROXY: off |       GOPROXY: off | ||||||
| @@ -143,10 +139,6 @@ trigger: | |||||||
|     - tag |     - tag | ||||||
|     - pull_request |     - pull_request | ||||||
|  |  | ||||||
| workspace: |  | ||||||
|   base: /go |  | ||||||
|   path: src/code.gitea.io/gitea |  | ||||||
|  |  | ||||||
| services: | services: | ||||||
|   - name: mysql |   - name: mysql | ||||||
|     image: mysql:5.7 |     image: mysql:5.7 | ||||||
| @@ -195,7 +187,7 @@ steps: | |||||||
|  |  | ||||||
|   - name: build |   - name: build | ||||||
|     pull: always |     pull: always | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - make backend |       - make backend | ||||||
|     environment: |     environment: | ||||||
| @@ -210,7 +202,7 @@ steps: | |||||||
|       - git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA} |       - git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA} | ||||||
|  |  | ||||||
|   - name: unit-test |   - name: unit-test | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - make unit-test-coverage test-check |       - make unit-test-coverage test-check | ||||||
|     environment: |     environment: | ||||||
| @@ -221,7 +213,7 @@ steps: | |||||||
|  |  | ||||||
|   - name: unit-test-gogit |   - name: unit-test-gogit | ||||||
|     pull: always |     pull: always | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - make unit-test-coverage test-check |       - make unit-test-coverage test-check | ||||||
|     environment: |     environment: | ||||||
| @@ -231,7 +223,7 @@ steps: | |||||||
|         from_secret: github_read_token |         from_secret: github_read_token | ||||||
|  |  | ||||||
|   - name: test-mysql |   - name: test-mysql | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" |       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" | ||||||
|       - apt-get install -y git-lfs |       - apt-get install -y git-lfs | ||||||
| @@ -246,7 +238,7 @@ steps: | |||||||
|       - build |       - build | ||||||
|  |  | ||||||
|   - name: test-mysql8 |   - name: test-mysql8 | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" |       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" | ||||||
|       - apt-get install -y git-lfs |       - apt-get install -y git-lfs | ||||||
| @@ -260,7 +252,7 @@ steps: | |||||||
|       - build |       - build | ||||||
|  |  | ||||||
|   - name: test-mssql |   - name: test-mssql | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" |       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" | ||||||
|       - apt-get install -y git-lfs |       - apt-get install -y git-lfs | ||||||
| @@ -274,7 +266,7 @@ steps: | |||||||
|       - build |       - build | ||||||
|  |  | ||||||
|   - name: generate-coverage |   - name: generate-coverage | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - make coverage |       - make coverage | ||||||
|     environment: |     environment: | ||||||
| @@ -324,10 +316,6 @@ trigger: | |||||||
|     - tag |     - tag | ||||||
|     - pull_request |     - pull_request | ||||||
|  |  | ||||||
| workspace: |  | ||||||
|   base: /go |  | ||||||
|   path: src/code.gitea.io/gitea |  | ||||||
|  |  | ||||||
| services: | services: | ||||||
|   - name: pgsql |   - name: pgsql | ||||||
|     pull: default |     pull: default | ||||||
| @@ -352,16 +340,16 @@ steps: | |||||||
|  |  | ||||||
|   - name: build |   - name: build | ||||||
|     pull: always |     pull: always | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - make backend |       - make backend | ||||||
|     environment: |     environment: | ||||||
|       GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not |       GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not | ||||||
|       GOSUMDB: sum.golang.org |       GOSUMDB: sum.golang.org | ||||||
|       TAGS: bindata sqlite sqlite_unlock_notify |       TAGS: bindata gogit sqlite sqlite_unlock_notify | ||||||
|  |  | ||||||
|   - name: test-sqlite |   - name: test-sqlite | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" |       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" | ||||||
|       - apt-get install -y git-lfs |       - apt-get install -y git-lfs | ||||||
| @@ -375,7 +363,7 @@ steps: | |||||||
|       - build |       - build | ||||||
|  |  | ||||||
|   - name: test-pgsql |   - name: test-pgsql | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" |       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" | ||||||
|       - apt-get install -y git-lfs |       - apt-get install -y git-lfs | ||||||
| @@ -397,10 +385,6 @@ platform: | |||||||
|   os: linux |   os: linux | ||||||
|   arch: arm64 |   arch: arm64 | ||||||
|  |  | ||||||
| workspace: |  | ||||||
|   base: /go |  | ||||||
|   path: src/code.gitea.io/gitea |  | ||||||
|  |  | ||||||
| trigger: | trigger: | ||||||
|   branch: |   branch: | ||||||
|     - master |     - master | ||||||
| @@ -459,11 +443,7 @@ name: update_gitignore_and_licenses | |||||||
|  |  | ||||||
| platform: | platform: | ||||||
|   os: linux |   os: linux | ||||||
|   arch: amd64 |   arch: arm64 | ||||||
|  |  | ||||||
| workspace: |  | ||||||
|   base: /go |  | ||||||
|   path: src/code.gitea.io/gitea |  | ||||||
|  |  | ||||||
| trigger: | trigger: | ||||||
|   branch: |   branch: | ||||||
| @@ -475,7 +455,7 @@ trigger: | |||||||
|  |  | ||||||
| steps: | steps: | ||||||
|   - name: download |   - name: download | ||||||
|     image: golang:1.15 |     image: golang:1.16 | ||||||
|     commands: |     commands: | ||||||
|       - timeout -s ABRT 40m make generate-license generate-gitignore |       - timeout -s ABRT 40m make generate-license generate-gitignore | ||||||
|  |  | ||||||
| @@ -500,10 +480,6 @@ platform: | |||||||
|   os: linux |   os: linux | ||||||
|   arch: amd64 |   arch: amd64 | ||||||
|  |  | ||||||
| workspace: |  | ||||||
|   base: /go |  | ||||||
|   path: src/code.gitea.io/gitea |  | ||||||
|  |  | ||||||
| trigger: | trigger: | ||||||
|   branch: |   branch: | ||||||
|     - master |     - master | ||||||
| @@ -523,7 +499,7 @@ steps: | |||||||
|  |  | ||||||
|   - name: static |   - name: static | ||||||
|     pull: always |     pull: always | ||||||
|     image: techknowlogick/xgo:go-1.15.x |     image: techknowlogick/xgo:go-1.16.x | ||||||
|     commands: |     commands: | ||||||
|       - curl -sL https://deb.nodesource.com/setup_14.x | bash - && apt -y install nodejs |       - curl -sL https://deb.nodesource.com/setup_14.x | bash - && apt -y install nodejs | ||||||
|       - export PATH=$PATH:$GOPATH/bin |       - export PATH=$PATH:$GOPATH/bin | ||||||
| @@ -598,10 +574,6 @@ platform: | |||||||
|   os: linux |   os: linux | ||||||
|   arch: amd64 |   arch: amd64 | ||||||
|  |  | ||||||
| workspace: |  | ||||||
|   base: /go |  | ||||||
|   path: src/code.gitea.io/gitea |  | ||||||
|  |  | ||||||
| trigger: | trigger: | ||||||
|   event: |   event: | ||||||
|     - tag |     - tag | ||||||
| @@ -619,7 +591,7 @@ steps: | |||||||
|  |  | ||||||
|   - name: static |   - name: static | ||||||
|     pull: always |     pull: always | ||||||
|     image: techknowlogick/xgo:go-1.15.x |     image: techknowlogick/xgo:go-1.16.x | ||||||
|     commands: |     commands: | ||||||
|       - curl -sL https://deb.nodesource.com/setup_14.x | bash - && apt -y install nodejs |       - curl -sL https://deb.nodesource.com/setup_14.x | bash - && apt -y install nodejs | ||||||
|       - export PATH=$PATH:$GOPATH/bin |       - export PATH=$PATH:$GOPATH/bin | ||||||
| @@ -719,10 +691,6 @@ platform: | |||||||
|   os: linux |   os: linux | ||||||
|   arch: amd64 |   arch: amd64 | ||||||
|  |  | ||||||
| workspace: |  | ||||||
|   base: /go |  | ||||||
|   path: src/code.gitea.io/gitea |  | ||||||
|  |  | ||||||
| depends_on: | depends_on: | ||||||
|   - testing-amd64 |   - testing-amd64 | ||||||
|   - testing-arm64 |   - testing-arm64 | ||||||
| @@ -788,10 +756,6 @@ platform: | |||||||
|   os: linux |   os: linux | ||||||
|   arch: arm64 |   arch: arm64 | ||||||
|  |  | ||||||
| workspace: |  | ||||||
|   base: /go |  | ||||||
|   path: src/code.gitea.io/gitea |  | ||||||
|  |  | ||||||
| depends_on: | depends_on: | ||||||
|   - compliance |   - compliance | ||||||
|  |  | ||||||
| @@ -824,10 +788,6 @@ platform: | |||||||
|   os: linux |   os: linux | ||||||
|   arch: arm64 |   arch: arm64 | ||||||
|  |  | ||||||
| workspace: |  | ||||||
|   base: /go |  | ||||||
|   path: src/code.gitea.io/gitea |  | ||||||
|  |  | ||||||
| depends_on: | depends_on: | ||||||
|   - testing-amd64 |   - testing-amd64 | ||||||
|   - testing-arm64 |   - testing-arm64 | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
|  |  | ||||||
| ################################### | ################################### | ||||||
| #Build stage | #Build stage | ||||||
| FROM golang:1.15-alpine3.13 AS build-env | FROM golang:1.16-alpine3.13 AS build-env | ||||||
|  |  | ||||||
| ARG GOPROXY | ARG GOPROXY | ||||||
| ENV GOPROXY ${GOPROXY:-direct} | ENV GOPROXY ${GOPROXY:-direct} | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
|  |  | ||||||
| ################################### | ################################### | ||||||
| #Build stage | #Build stage | ||||||
| FROM golang:1.15-alpine3.13 AS build-env | FROM golang:1.16-alpine3.13 AS build-env | ||||||
|  |  | ||||||
| ARG GOPROXY | ARG GOPROXY | ||||||
| ENV GOPROXY ${GOPROXY:-direct} | ENV GOPROXY ${GOPROXY:-direct} | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							| @@ -24,7 +24,7 @@ SHASUM ?= shasum -a 256 | |||||||
| HAS_GO = $(shell hash $(GO) > /dev/null 2>&1 && echo "GO" || echo "NOGO" ) | HAS_GO = $(shell hash $(GO) > /dev/null 2>&1 && echo "GO" || echo "NOGO" ) | ||||||
| COMMA := , | COMMA := , | ||||||
|  |  | ||||||
| XGO_VERSION := go-1.15.x | XGO_VERSION := go-1.16.x | ||||||
| MIN_GO_VERSION := 001014000 | MIN_GO_VERSION := 001014000 | ||||||
| MIN_NODE_VERSION := 010013000 | MIN_NODE_VERSION := 010013000 | ||||||
|  |  | ||||||
| @@ -596,7 +596,7 @@ release-darwin: | $(DIST_DIRS) | |||||||
| 	@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ | 	@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ | ||||||
| 		GO111MODULE=off $(GO) get -u src.techknowlogick.com/xgo; \ | 		GO111MODULE=off $(GO) get -u src.techknowlogick.com/xgo; \ | ||||||
| 	fi | 	fi | ||||||
| 	CGO_CFLAGS="$(CGO_CFLAGS)" GO111MODULE=off xgo -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '$(LDFLAGS)' -targets 'darwin/amd64' -out gitea-$(VERSION) . | 	CGO_CFLAGS="$(CGO_CFLAGS)" GO111MODULE=off xgo -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '$(LDFLAGS)' -targets 'darwin-10.12/amd64' -out gitea-$(VERSION) . | ||||||
| ifeq ($(CI),drone) | ifeq ($(CI),drone) | ||||||
| 	cp /build/* $(DIST)/binaries | 	cp /build/* $(DIST)/binaries | ||||||
| endif | endif | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ params: | |||||||
|   website: https://docs.gitea.io |   website: https://docs.gitea.io | ||||||
|   version: 1.13.2 |   version: 1.13.2 | ||||||
|   minGoVersion: 1.14 |   minGoVersion: 1.14 | ||||||
|   goVersion: 1.15 |   goVersion: 1.16 | ||||||
|   minNodeVersion: 10.13 |   minNodeVersion: 10.13 | ||||||
|  |  | ||||||
| outputs: | outputs: | ||||||
|   | |||||||
							
								
								
									
										66
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								go.mod
									
									
									
									
									
								
							| @@ -3,6 +3,7 @@ module code.gitea.io/gitea | |||||||
| go 1.14 | go 1.14 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|  | 	cloud.google.com/go v0.78.0 // indirect | ||||||
| 	code.gitea.io/gitea-vet v0.2.1 | 	code.gitea.io/gitea-vet v0.2.1 | ||||||
| 	code.gitea.io/sdk/gitea v0.13.2 | 	code.gitea.io/sdk/gitea v0.13.2 | ||||||
| 	gitea.com/go-chi/binding v0.0.0-20210113025129-03f1d313373c | 	gitea.com/go-chi/binding v0.0.0-20210113025129-03f1d313373c | ||||||
| @@ -10,42 +11,52 @@ require ( | |||||||
| 	gitea.com/go-chi/captcha v0.0.0-20210110083842-e7696c336a1e | 	gitea.com/go-chi/captcha v0.0.0-20210110083842-e7696c336a1e | ||||||
| 	gitea.com/go-chi/session v0.0.0-20210108030337-0cb48c5ba8ee | 	gitea.com/go-chi/session v0.0.0-20210108030337-0cb48c5ba8ee | ||||||
| 	gitea.com/lunny/levelqueue v0.3.0 | 	gitea.com/lunny/levelqueue v0.3.0 | ||||||
|  | 	github.com/Microsoft/go-winio v0.4.16 // indirect | ||||||
| 	github.com/NYTimes/gziphandler v1.1.1 | 	github.com/NYTimes/gziphandler v1.1.1 | ||||||
| 	github.com/PuerkitoBio/goquery v1.5.1 | 	github.com/PuerkitoBio/goquery v1.5.1 | ||||||
| 	github.com/RoaringBitmap/roaring v0.5.5 // indirect | 	github.com/RoaringBitmap/roaring v0.5.5 // indirect | ||||||
| 	github.com/alecthomas/chroma v0.8.2 | 	github.com/alecthomas/chroma v0.8.2 | ||||||
| 	github.com/andybalholm/brotli v1.0.1 // indirect | 	github.com/andybalholm/brotli v1.0.1 // indirect | ||||||
| 	github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect | 	github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect | ||||||
| 	github.com/blevesearch/bleve/v2 v2.0.1 | 	github.com/blevesearch/bleve/v2 v2.0.2 | ||||||
| 	github.com/boombuler/barcode v1.0.1 // indirect | 	github.com/boombuler/barcode v1.0.1 // indirect | ||||||
|  | 	github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // indirect | ||||||
| 	github.com/caddyserver/certmagic v0.12.0 | 	github.com/caddyserver/certmagic v0.12.0 | ||||||
|  | 	github.com/couchbase/go-couchbase v0.0.0-20210224140812-5740cd35f448 // indirect | ||||||
|  | 	github.com/couchbase/gomemcached v0.1.2 // indirect | ||||||
|  | 	github.com/couchbase/goutils v0.0.0-20210118111533-e33d3ffb5401 // indirect | ||||||
| 	github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect | 	github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect | ||||||
| 	github.com/denisenkom/go-mssqldb v0.9.0 | 	github.com/denisenkom/go-mssqldb v0.9.0 | ||||||
| 	github.com/dgrijalva/jwt-go v3.2.0+incompatible | 	github.com/dgrijalva/jwt-go v3.2.0+incompatible | ||||||
| 	github.com/dlclark/regexp2 v1.4.0 // indirect | 	github.com/dlclark/regexp2 v1.4.0 // indirect | ||||||
| 	github.com/dustin/go-humanize v1.0.0 | 	github.com/dustin/go-humanize v1.0.0 | ||||||
| 	github.com/editorconfig/editorconfig-core-go/v2 v2.3.9 | 	github.com/editorconfig/editorconfig-core-go/v2 v2.4.1 | ||||||
| 	github.com/emirpasic/gods v1.12.0 | 	github.com/emirpasic/gods v1.12.0 | ||||||
| 	github.com/ethantkoenig/rupture v1.0.0 | 	github.com/ethantkoenig/rupture v1.0.0 | ||||||
| 	github.com/gliderlabs/ssh v0.3.1 | 	github.com/gliderlabs/ssh v0.3.2 | ||||||
| 	github.com/glycerine/go-unsnap-stream v0.0.0-20190901134440-81cf024a9e0a // indirect | 	github.com/glycerine/go-unsnap-stream v0.0.0-20210130063903-47dfef350d96 // indirect | ||||||
| 	github.com/go-chi/chi v1.5.1 | 	github.com/go-asn1-ber/asn1-ber v1.5.3 // indirect | ||||||
|  | 	github.com/go-chi/chi v1.5.4 | ||||||
| 	github.com/go-chi/cors v1.1.1 | 	github.com/go-chi/cors v1.1.1 | ||||||
| 	github.com/go-enry/go-enry/v2 v2.6.0 | 	github.com/go-enry/go-enry/v2 v2.6.0 | ||||||
| 	github.com/go-git/go-billy/v5 v5.0.0 | 	github.com/go-git/go-billy/v5 v5.0.0 | ||||||
| 	github.com/go-git/go-git/v5 v5.2.0 | 	github.com/go-git/go-git/v5 v5.2.0 | ||||||
| 	github.com/go-ldap/ldap/v3 v3.2.4 | 	github.com/go-ldap/ldap/v3 v3.2.4 | ||||||
| 	github.com/go-redis/redis/v8 v8.5.0 | 	github.com/go-openapi/errors v0.20.0 // indirect | ||||||
|  | 	github.com/go-openapi/validate v0.20.2 // indirect | ||||||
|  | 	github.com/go-redis/redis/v8 v8.6.0 | ||||||
| 	github.com/go-sql-driver/mysql v1.5.0 | 	github.com/go-sql-driver/mysql v1.5.0 | ||||||
| 	github.com/go-swagger/go-swagger v0.26.0 | 	github.com/go-swagger/go-swagger v0.26.1 | ||||||
| 	github.com/go-testfixtures/testfixtures/v3 v3.4.1 | 	github.com/go-testfixtures/testfixtures/v3 v3.5.0 | ||||||
| 	github.com/gobwas/glob v0.2.3 | 	github.com/gobwas/glob v0.2.3 | ||||||
| 	github.com/gogs/chardet v0.0.0-20191104214054-4b6791f73a28 | 	github.com/gogs/chardet v0.0.0-20191104214054-4b6791f73a28 | ||||||
| 	github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14 | 	github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14 | ||||||
| 	github.com/gogs/go-gogs-client v0.0.0-20210131175652-1d7215cd8d85 | 	github.com/gogs/go-gogs-client v0.0.0-20210131175652-1d7215cd8d85 | ||||||
|  | 	github.com/golang/snappy v0.0.3 // indirect | ||||||
| 	github.com/google/go-github/v32 v32.1.0 | 	github.com/google/go-github/v32 v32.1.0 | ||||||
| 	github.com/google/uuid v1.2.0 | 	github.com/google/uuid v1.2.0 | ||||||
| 	github.com/gorilla/context v1.1.1 | 	github.com/gorilla/context v1.1.1 | ||||||
|  | 	github.com/gorilla/mux v1.8.0 // indirect | ||||||
| 	github.com/gorilla/sessions v1.2.1 // indirect | 	github.com/gorilla/sessions v1.2.1 // indirect | ||||||
| 	github.com/hashicorp/go-cleanhttp v0.5.2 // indirect | 	github.com/hashicorp/go-cleanhttp v0.5.2 // indirect | ||||||
| 	github.com/hashicorp/go-retryablehttp v0.6.8 // indirect | 	github.com/hashicorp/go-retryablehttp v0.6.8 // indirect | ||||||
| @@ -56,44 +67,56 @@ require ( | |||||||
| 	github.com/issue9/identicon v1.0.1 | 	github.com/issue9/identicon v1.0.1 | ||||||
| 	github.com/jaytaylor/html2text v0.0.0-20200412013138-3577fbdbcff7 | 	github.com/jaytaylor/html2text v0.0.0-20200412013138-3577fbdbcff7 | ||||||
| 	github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 | 	github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 | ||||||
|  | 	github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 // indirect | ||||||
| 	github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4 | 	github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4 | ||||||
| 	github.com/klauspost/compress v1.11.7 | 	github.com/klauspost/compress v1.11.8 | ||||||
| 	github.com/klauspost/pgzip v1.2.5 // indirect | 	github.com/klauspost/pgzip v1.2.5 // indirect | ||||||
| 	github.com/lafriks/xormstore v1.4.0 | 	github.com/lafriks/xormstore v1.4.0 | ||||||
| 	github.com/lib/pq v1.9.0 | 	github.com/lib/pq v1.9.0 | ||||||
|  | 	github.com/libdns/libdns v0.2.0 // indirect | ||||||
| 	github.com/lunny/dingtalk_webhook v0.0.0-20171025031554-e3534c89ef96 | 	github.com/lunny/dingtalk_webhook v0.0.0-20171025031554-e3534c89ef96 | ||||||
| 	github.com/markbates/goth v1.66.1 | 	github.com/mailru/easyjson v0.7.7 // indirect | ||||||
|  | 	github.com/markbates/goth v1.67.1 | ||||||
| 	github.com/mattn/go-isatty v0.0.12 | 	github.com/mattn/go-isatty v0.0.12 | ||||||
| 	github.com/mattn/go-runewidth v0.0.10 // indirect | 	github.com/mattn/go-runewidth v0.0.10 // indirect | ||||||
| 	github.com/mattn/go-sqlite3 v1.14.6 | 	github.com/mattn/go-sqlite3 v1.14.6 | ||||||
| 	github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81 | 	github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81 | ||||||
| 	github.com/mgechev/revive v1.0.3 | 	github.com/mgechev/revive v1.0.3 | ||||||
|  | 	github.com/mholt/acmez v0.1.3 // indirect | ||||||
| 	github.com/mholt/archiver/v3 v3.5.0 | 	github.com/mholt/archiver/v3 v3.5.0 | ||||||
| 	github.com/microcosm-cc/bluemonday v1.0.4 | 	github.com/microcosm-cc/bluemonday v1.0.4 | ||||||
| 	github.com/minio/md5-simd v1.1.1 // indirect | 	github.com/miekg/dns v1.1.40 // indirect | ||||||
| 	github.com/minio/minio-go/v7 v7.0.9 | 	github.com/minio/md5-simd v1.1.2 // indirect | ||||||
|  | 	github.com/minio/minio-go/v7 v7.0.10 | ||||||
|  | 	github.com/minio/sha256-simd v1.0.0 // indirect | ||||||
| 	github.com/mitchellh/go-homedir v1.1.0 | 	github.com/mitchellh/go-homedir v1.1.0 | ||||||
| 	github.com/msteinert/pam v0.0.0-20200810204841-913b8f8cdf8b | 	github.com/mrjones/oauth v0.0.0-20190623134757-126b35219450 // indirect | ||||||
|  | 	github.com/msteinert/pam v0.0.0-20201130170657-e61372126161 | ||||||
| 	github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 | 	github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 | ||||||
| 	github.com/niklasfasching/go-org v1.4.0 | 	github.com/niklasfasching/go-org v1.4.0 | ||||||
|  | 	github.com/olekukonko/tablewriter v0.0.5 // indirect | ||||||
| 	github.com/oliamb/cutter v0.2.2 | 	github.com/oliamb/cutter v0.2.2 | ||||||
| 	github.com/olivere/elastic/v7 v7.0.22 | 	github.com/olivere/elastic/v7 v7.0.22 | ||||||
| 	github.com/pelletier/go-toml v1.8.1 | 	github.com/pelletier/go-toml v1.8.1 | ||||||
| 	github.com/pierrec/lz4/v4 v4.1.1 // indirect | 	github.com/pierrec/lz4/v4 v4.1.3 // indirect | ||||||
| 	github.com/pkg/errors v0.9.1 | 	github.com/pkg/errors v0.9.1 | ||||||
| 	github.com/pquerna/otp v1.3.0 | 	github.com/pquerna/otp v1.3.0 | ||||||
| 	github.com/prometheus/client_golang v1.9.0 | 	github.com/prometheus/client_golang v1.9.0 | ||||||
|  | 	github.com/prometheus/common v0.18.0 // indirect | ||||||
|  | 	github.com/prometheus/procfs v0.6.0 // indirect | ||||||
| 	github.com/quasoft/websspi v1.0.0 | 	github.com/quasoft/websspi v1.0.0 | ||||||
| 	github.com/rivo/uniseg v0.2.0 // indirect | 	github.com/rivo/uniseg v0.2.0 // indirect | ||||||
|  | 	github.com/russross/blackfriday/v2 v2.1.0 // indirect | ||||||
| 	github.com/sergi/go-diff v1.1.0 | 	github.com/sergi/go-diff v1.1.0 | ||||||
| 	github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect | 	github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect | ||||||
| 	github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 | 	github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 | ||||||
|  | 	github.com/spf13/afero v1.5.1 // indirect | ||||||
| 	github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect | 	github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect | ||||||
| 	github.com/stretchr/testify v1.7.0 | 	github.com/stretchr/testify v1.7.0 | ||||||
| 	github.com/syndtr/goleveldb v1.0.0 | 	github.com/syndtr/goleveldb v1.0.0 | ||||||
| 	github.com/tinylib/msgp v1.1.5 // indirect | 	github.com/tinylib/msgp v1.1.5 // indirect | ||||||
| 	github.com/tstranex/u2f v1.0.0 | 	github.com/tstranex/u2f v1.0.0 | ||||||
| 	github.com/ulikunitz/xz v0.5.8 // indirect | 	github.com/ulikunitz/xz v0.5.10 // indirect | ||||||
| 	github.com/unknwon/com v1.0.1 | 	github.com/unknwon/com v1.0.1 | ||||||
| 	github.com/unknwon/i18n v0.0.0-20200823051745-09abd91c7f2c | 	github.com/unknwon/i18n v0.0.0-20200823051745-09abd91c7f2c | ||||||
| 	github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae | 	github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae | ||||||
| @@ -101,18 +124,21 @@ require ( | |||||||
| 	github.com/urfave/cli v1.22.5 | 	github.com/urfave/cli v1.22.5 | ||||||
| 	github.com/willf/bitset v1.1.11 // indirect | 	github.com/willf/bitset v1.1.11 // indirect | ||||||
| 	github.com/xanzy/go-gitlab v0.44.0 | 	github.com/xanzy/go-gitlab v0.44.0 | ||||||
|  | 	github.com/xanzy/ssh-agent v0.3.0 // indirect | ||||||
| 	github.com/yohcop/openid-go v1.0.0 | 	github.com/yohcop/openid-go v1.0.0 | ||||||
| 	github.com/yuin/goldmark v1.3.2 | 	github.com/yuin/goldmark v1.3.2 | ||||||
| 	github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691 | 	github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691 | ||||||
| 	github.com/yuin/goldmark-meta v1.0.0 | 	github.com/yuin/goldmark-meta v1.0.0 | ||||||
| 	go.jolheiser.com/hcaptcha v0.0.4 | 	go.jolheiser.com/hcaptcha v0.0.4 | ||||||
| 	go.jolheiser.com/pwn v0.0.3 | 	go.jolheiser.com/pwn v0.0.3 | ||||||
| 	golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad | 	go.uber.org/multierr v1.6.0 // indirect | ||||||
| 	golang.org/x/net v0.0.0-20210119194325-5f4716e94777 | 	go.uber.org/zap v1.16.0 // indirect | ||||||
| 	golang.org/x/oauth2 v0.0.0-20210210192628-66670185b0cd | 	golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 | ||||||
| 	golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c | 	golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 | ||||||
|  | 	golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93 | ||||||
|  | 	golang.org/x/sys v0.0.0-20210228012217-479acdf4ea46 | ||||||
| 	golang.org/x/text v0.3.5 | 	golang.org/x/text v0.3.5 | ||||||
| 	golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 // indirect | 	golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect | ||||||
| 	golang.org/x/tools v0.1.0 | 	golang.org/x/tools v0.1.0 | ||||||
| 	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect | 	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect | ||||||
| 	gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df | 	gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df | ||||||
|   | |||||||
							
								
								
									
										274
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										274
									
								
								go.sum
									
									
									
									
									
								
							| @@ -4,7 +4,6 @@ cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSR | |||||||
| cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= | cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= | ||||||
| cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= | cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= | ||||||
| cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= | cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= | ||||||
| cloud.google.com/go v0.46.3 h1:AVXDdKsrtX33oR9fbCMu/+c1o8Ofjq6Ku/MInaLVg5Y= |  | ||||||
| cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= | cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= | ||||||
| cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= | cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= | ||||||
| cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= | cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= | ||||||
| @@ -14,8 +13,11 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV | |||||||
| cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= | cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= | ||||||
| cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= | cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= | ||||||
| cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= | cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= | ||||||
| cloud.google.com/go v0.67.0 h1:YIkzmqUfVGiGPpT98L8sVvUIkDno6UlrDxw4NR6z5ak= |  | ||||||
| cloud.google.com/go v0.67.0/go.mod h1:YNan/mUhNZFrYUor0vqrsQ0Ffl7Xtm/ACOy/vsTS858= | cloud.google.com/go v0.67.0/go.mod h1:YNan/mUhNZFrYUor0vqrsQ0Ffl7Xtm/ACOy/vsTS858= | ||||||
|  | cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= | ||||||
|  | cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= | ||||||
|  | cloud.google.com/go v0.78.0 h1:oKpsiyKMfVpwR3zSAkQixGzlVE5ovitBuO0qSmCf0bI= | ||||||
|  | cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= | ||||||
| cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= | cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= | ||||||
| cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= | cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= | ||||||
| cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= | cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= | ||||||
| @@ -61,6 +63,9 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym | |||||||
| github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= | github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= | ||||||
| github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= | github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= | ||||||
| github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= | github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= | ||||||
|  | github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= | ||||||
|  | github.com/Microsoft/go-winio v0.4.16 h1:FtSW/jqD+l4ba5iPBj9CODVtgfYAD8w2wS923g/cFDk= | ||||||
|  | github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= | ||||||
| github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= | github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= | ||||||
| github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= | github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= | ||||||
| github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= | github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= | ||||||
| @@ -71,7 +76,6 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN | |||||||
| github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | ||||||
| github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= | github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= | ||||||
| github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= | github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= | ||||||
| github.com/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo= |  | ||||||
| github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= | github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= | ||||||
| github.com/RoaringBitmap/roaring v0.5.5 h1:naNqvO1mNnghk2UvcsqnzHDBn9DRbCIRy94GmDTRVTQ= | github.com/RoaringBitmap/roaring v0.5.5 h1:naNqvO1mNnghk2UvcsqnzHDBn9DRbCIRy94GmDTRVTQ= | ||||||
| github.com/RoaringBitmap/roaring v0.5.5/go.mod h1:puNo5VdzwbaIQxSiDIwfXl4Hnc+fbovcX4IW/dSTtUk= | github.com/RoaringBitmap/roaring v0.5.5/go.mod h1:puNo5VdzwbaIQxSiDIwfXl4Hnc+fbovcX4IW/dSTtUk= | ||||||
| @@ -107,7 +111,6 @@ github.com/andybalholm/brotli v1.0.1 h1:KqhlKozYbRtJvsPrrEeXcO+N2l6NYT5A2QAFmSUL | |||||||
| github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= | github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= | ||||||
| github.com/andybalholm/cascadia v1.1.0 h1:BuuO6sSfQNFRu1LppgbD25Hr2vLYW25JvxHs5zzsLTo= | github.com/andybalholm/cascadia v1.1.0 h1:BuuO6sSfQNFRu1LppgbD25Hr2vLYW25JvxHs5zzsLTo= | ||||||
| github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= | github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= | ||||||
| github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= |  | ||||||
| github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= | github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= | ||||||
| github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= | github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= | ||||||
| github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= | github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= | ||||||
| @@ -123,7 +126,6 @@ github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6l | |||||||
| github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= | github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= | ||||||
| github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= | github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= | ||||||
| github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | ||||||
| github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY= |  | ||||||
| github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= | ||||||
| github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= | github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= | ||||||
| github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= | github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= | ||||||
| @@ -141,8 +143,9 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r | |||||||
| github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= | github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= | ||||||
| github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= | github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= | ||||||
| github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= | github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= | ||||||
| github.com/blevesearch/bleve/v2 v2.0.1 h1:v1eV5K+/lndsjnykeVcuU9J4cJnjKLUKSwxXFxZsLuY= |  | ||||||
| github.com/blevesearch/bleve/v2 v2.0.1/go.mod h1:OBP2Pktqik8vEiUlGhuWjYx7KiO4zD542+DHqICwM5w= | github.com/blevesearch/bleve/v2 v2.0.1/go.mod h1:OBP2Pktqik8vEiUlGhuWjYx7KiO4zD542+DHqICwM5w= | ||||||
|  | github.com/blevesearch/bleve/v2 v2.0.2 h1:D93VfhOiR6wALovgjsK5XNPeDRrZQlUEIq4YWFeaiTw= | ||||||
|  | github.com/blevesearch/bleve/v2 v2.0.2/go.mod h1:ip+4iafiEq2gCY5rJXe87bT6LkF/OJMCjQEYIfTBfW8= | ||||||
| github.com/blevesearch/bleve_index_api v1.0.0 h1:Ds3XeuTxjXCkG6pgIwWDRyooJKNIuOKemnN0N0IkhTU= | github.com/blevesearch/bleve_index_api v1.0.0 h1:Ds3XeuTxjXCkG6pgIwWDRyooJKNIuOKemnN0N0IkhTU= | ||||||
| github.com/blevesearch/bleve_index_api v1.0.0/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= | github.com/blevesearch/bleve_index_api v1.0.0/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= | ||||||
| github.com/blevesearch/go-porterstemmer v1.0.3 h1:GtmsqID0aZdCSNiY8SkuPJ12pD4jI+DdXTAn4YRcHCo= | github.com/blevesearch/go-porterstemmer v1.0.3 h1:GtmsqID0aZdCSNiY8SkuPJ12pD4jI+DdXTAn4YRcHCo= | ||||||
| @@ -151,28 +154,37 @@ github.com/blevesearch/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXV | |||||||
| github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA= | github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA= | ||||||
| github.com/blevesearch/scorch_segment_api v1.0.0 h1:BUkCPWDg2gimTEyVDXf85I2buqqt4lh28uaVMiJsIYk= | github.com/blevesearch/scorch_segment_api v1.0.0 h1:BUkCPWDg2gimTEyVDXf85I2buqqt4lh28uaVMiJsIYk= | ||||||
| github.com/blevesearch/scorch_segment_api v1.0.0/go.mod h1:KgRYmlfYC27NeM6cXOHx8LBgq7jn0atpV8mVWoBKBng= | github.com/blevesearch/scorch_segment_api v1.0.0/go.mod h1:KgRYmlfYC27NeM6cXOHx8LBgq7jn0atpV8mVWoBKBng= | ||||||
|  | github.com/blevesearch/scorch_segment_api/v2 v2.0.1 h1:fd+hPtZ8GsbqPK1HslGp7Vhoik4arZteA/IsCEgOisw= | ||||||
|  | github.com/blevesearch/scorch_segment_api/v2 v2.0.1/go.mod h1:lq7yK2jQy1yQjtjTfU931aVqz7pYxEudHaDwOt1tXfU= | ||||||
| github.com/blevesearch/segment v0.9.0 h1:5lG7yBCx98or7gK2cHMKPukPZ/31Kag7nONpoBt22Ac= | github.com/blevesearch/segment v0.9.0 h1:5lG7yBCx98or7gK2cHMKPukPZ/31Kag7nONpoBt22Ac= | ||||||
| github.com/blevesearch/segment v0.9.0/go.mod h1:9PfHYUdQCgHktBgvtUOF4x+pc4/l8rdH0u5spnW85UQ= | github.com/blevesearch/segment v0.9.0/go.mod h1:9PfHYUdQCgHktBgvtUOF4x+pc4/l8rdH0u5spnW85UQ= | ||||||
| github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD/iWeNXm8s= | github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD/iWeNXm8s= | ||||||
| github.com/blevesearch/snowballstem v0.9.0/go.mod h1:PivSj3JMc8WuaFkTSRDW2SlrulNWPl4ABg1tC/hlgLs= | github.com/blevesearch/snowballstem v0.9.0/go.mod h1:PivSj3JMc8WuaFkTSRDW2SlrulNWPl4ABg1tC/hlgLs= | ||||||
| github.com/blevesearch/upsidedown_store_api v1.0.1 h1:1SYRwyoFLwG3sj0ed89RLtM15amfX2pXlYbFOnF8zNU= | github.com/blevesearch/upsidedown_store_api v1.0.1 h1:1SYRwyoFLwG3sj0ed89RLtM15amfX2pXlYbFOnF8zNU= | ||||||
| github.com/blevesearch/upsidedown_store_api v1.0.1/go.mod h1:MQDVGpHZrpe3Uy26zJBf/a8h0FZY6xJbthIMm8myH2Q= | github.com/blevesearch/upsidedown_store_api v1.0.1/go.mod h1:MQDVGpHZrpe3Uy26zJBf/a8h0FZY6xJbthIMm8myH2Q= | ||||||
| github.com/blevesearch/zapx/v11 v11.1.10 h1:8Eo3rXiHsVSP9Sk+4StrrwLrj9vyulhMVPmxTf8ZuDg= | github.com/blevesearch/vellum v1.0.3 h1:U86G41A7CtXNzzpIJHM8lSTUqz1Mp8U870TkcdCzZc8= | ||||||
|  | github.com/blevesearch/vellum v1.0.3/go.mod h1:2u5ax02KeDuNWu4/C+hVQMD6uLN4txH1JbtpaDNLJRo= | ||||||
| github.com/blevesearch/zapx/v11 v11.1.10/go.mod h1:DTjbcBqrr/Uo82UBilDC8lEew42gN/OcIyiTNFtSijc= | github.com/blevesearch/zapx/v11 v11.1.10/go.mod h1:DTjbcBqrr/Uo82UBilDC8lEew42gN/OcIyiTNFtSijc= | ||||||
| github.com/blevesearch/zapx/v12 v12.1.10 h1:sqR+/0Z4dSTovApRqLA1HnilMtQer7a4UvPrNmPzlTM= | github.com/blevesearch/zapx/v11 v11.2.0 h1:GBkCJYsyj3eIU4+aiLPxoMz1PYvDbQZl/oXHIBZIP60= | ||||||
|  | github.com/blevesearch/zapx/v11 v11.2.0/go.mod h1:gN/a0alGw1FZt/YGTo1G6Z6XpDkeOfujX5exY9sCQQM= | ||||||
| github.com/blevesearch/zapx/v12 v12.1.10/go.mod h1:14NmKnPrnKAIyiEJM566k/Jk+FQpuiflT5d3uaaK3MI= | github.com/blevesearch/zapx/v12 v12.1.10/go.mod h1:14NmKnPrnKAIyiEJM566k/Jk+FQpuiflT5d3uaaK3MI= | ||||||
| github.com/blevesearch/zapx/v13 v13.1.10 h1:zCneEVRJDXwtDfSwh+33Dxguliv192vCK283zdGH4Sw= | github.com/blevesearch/zapx/v12 v12.2.0 h1:dyRcSoZVO1jktL4UpGkCEF1AYa3xhKPirh4/N+Va+Ww= | ||||||
|  | github.com/blevesearch/zapx/v12 v12.2.0/go.mod h1:fdjwvCwWWwJW/EYTYGtAp3gBA0geCYGLcVTtJEZnY6A= | ||||||
| github.com/blevesearch/zapx/v13 v13.1.10/go.mod h1:YsVY6YGpTEAlJOMjdL7EsdBLvjWd8kPa2gwJDNpqLJo= | github.com/blevesearch/zapx/v13 v13.1.10/go.mod h1:YsVY6YGpTEAlJOMjdL7EsdBLvjWd8kPa2gwJDNpqLJo= | ||||||
| github.com/blevesearch/zapx/v14 v14.1.10 h1:nD0vw2jxKogJFfA5WyoS4wNwZlVby3Aq8aW7CZi6YIw= | github.com/blevesearch/zapx/v13 v13.2.0 h1:mUqbaqQABp8nBE4t4q2qMyHCCq4sykoV8r7aJk4ih3s= | ||||||
|  | github.com/blevesearch/zapx/v13 v13.2.0/go.mod h1:o5rAy/lRS5JpAbITdrOHBS/TugWYbkcYZTz6VfEinAQ= | ||||||
| github.com/blevesearch/zapx/v14 v14.1.10/go.mod h1:hsULl5eJSxs5NEfBsmeT9qrqdCP+/ecpVZKt60M4V64= | github.com/blevesearch/zapx/v14 v14.1.10/go.mod h1:hsULl5eJSxs5NEfBsmeT9qrqdCP+/ecpVZKt60M4V64= | ||||||
| github.com/blevesearch/zapx/v15 v15.1.10 h1:kZR3b9jO9l6s2B5UHI+1N1llLzJ4nYikkXQTMrDl1vQ= | github.com/blevesearch/zapx/v14 v14.2.0 h1:UsfRqvM9RJxKNKrkR1U7aYc1cv9MWx719fsAjbF6joI= | ||||||
|  | github.com/blevesearch/zapx/v14 v14.2.0/go.mod h1:GNgZusc1p4ot040cBQMRGEZobvwjCquiEKYh1xLFK9g= | ||||||
| github.com/blevesearch/zapx/v15 v15.1.10/go.mod h1:4ypq25bwtSQKzwEF1UERyIhmGTbMT3brY/n4NC5gRnM= | github.com/blevesearch/zapx/v15 v15.1.10/go.mod h1:4ypq25bwtSQKzwEF1UERyIhmGTbMT3brY/n4NC5gRnM= | ||||||
| github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI= | github.com/blevesearch/zapx/v15 v15.2.0 h1:ZpibwcrrOaeslkOw3sJ7npP7KDgRHI/DkACjKTqFwyM= | ||||||
|  | github.com/blevesearch/zapx/v15 v15.2.0/go.mod h1:MmQceLpWfME4n1WrBFIwplhWmaQbQqLQARpaKUEOs/A= | ||||||
| github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= | github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= | ||||||
| github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= | github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= | ||||||
| github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= | github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= | ||||||
| github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668 h1:U/lr3Dgy4WK+hNk4tyD+nuGjpVLPEHuJSFXMw11/HPA= |  | ||||||
| github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= | github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= | ||||||
|  | github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b h1:L/QXpzIa3pOvUGt1D1lA5KjYhPBAN/3iWdP7xeFS9F0= | ||||||
|  | github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= | ||||||
| github.com/caddyserver/certmagic v0.12.0 h1:1f7kxykaJkOVVpXJ8ZrC6RAO5F6+kKm9U7dBFbLNeug= | github.com/caddyserver/certmagic v0.12.0 h1:1f7kxykaJkOVVpXJ8ZrC6RAO5F6+kKm9U7dBFbLNeug= | ||||||
| github.com/caddyserver/certmagic v0.12.0/go.mod h1:tr26xh+9fY5dN0J6IPAlMj07qpog22PJKa7Nw7j835U= | github.com/caddyserver/certmagic v0.12.0/go.mod h1:tr26xh+9fY5dN0J6IPAlMj07qpog22PJKa7Nw7j835U= | ||||||
| github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= | github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= | ||||||
| @@ -190,6 +202,8 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn | |||||||
| github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= | github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= | ||||||
| github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= | 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/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= | ||||||
|  | github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= | ||||||
|  | github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= | ||||||
| github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= | github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= | ||||||
| github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= | github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= | ||||||
| github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= | github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= | ||||||
| @@ -207,14 +221,16 @@ github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7 | |||||||
| github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | ||||||
| github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | ||||||
| github.com/couchbase/ghistogram v0.1.0/go.mod h1:s1Jhy76zqfEecpNWJfWUiKZookAFaiGOEoyzgHt9i7k= | github.com/couchbase/ghistogram v0.1.0/go.mod h1:s1Jhy76zqfEecpNWJfWUiKZookAFaiGOEoyzgHt9i7k= | ||||||
| github.com/couchbase/go-couchbase v0.0.0-20201026062457-7b3be89bbd89 h1:uNLXQ6QO1TocD8BaN/KkRki0Xw0brCM1PKl/ZA5pgfs= |  | ||||||
| github.com/couchbase/go-couchbase v0.0.0-20201026062457-7b3be89bbd89/go.mod h1:+/bddYDxXsf9qt0xpDUtRR47A2GjaXmGGAqQ/k3GJ8A= | github.com/couchbase/go-couchbase v0.0.0-20201026062457-7b3be89bbd89/go.mod h1:+/bddYDxXsf9qt0xpDUtRR47A2GjaXmGGAqQ/k3GJ8A= | ||||||
| github.com/couchbase/gomemcached v0.1.1 h1:xCS8ZglJDhrlQg3jmK7Rn1V8f7bPjXABLC05CgLQauc= | github.com/couchbase/go-couchbase v0.0.0-20210224140812-5740cd35f448 h1:6fX3IYPArCLhzUcyJS6wezHY8nqSvqUy9NrkMwkXSeg= | ||||||
|  | github.com/couchbase/go-couchbase v0.0.0-20210224140812-5740cd35f448/go.mod h1:+/bddYDxXsf9qt0xpDUtRR47A2GjaXmGGAqQ/k3GJ8A= | ||||||
| github.com/couchbase/gomemcached v0.1.1/go.mod h1:mxliKQxOv84gQ0bJWbI+w9Wxdpt9HjDvgW9MjCym5Vo= | github.com/couchbase/gomemcached v0.1.1/go.mod h1:mxliKQxOv84gQ0bJWbI+w9Wxdpt9HjDvgW9MjCym5Vo= | ||||||
| github.com/couchbase/goutils v0.0.0-20201030094643-5e82bb967e67 h1:NCqJ6fwen6YP0WlV/IyibaT0kPt3JEI1rA62V/UPKT4= | github.com/couchbase/gomemcached v0.1.2 h1:GKLSnC6RyTXkJ9vyd0q44doU8rfe34PpKkQ+c1bsWmA= | ||||||
|  | github.com/couchbase/gomemcached v0.1.2/go.mod h1:mxliKQxOv84gQ0bJWbI+w9Wxdpt9HjDvgW9MjCym5Vo= | ||||||
| github.com/couchbase/goutils v0.0.0-20201030094643-5e82bb967e67/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs= | github.com/couchbase/goutils v0.0.0-20201030094643-5e82bb967e67/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs= | ||||||
|  | github.com/couchbase/goutils v0.0.0-20210118111533-e33d3ffb5401 h1:4KDlx3vjalrHD/EfsjCpV91HNX3JPaIqRtt83zZ7x+Y= | ||||||
|  | github.com/couchbase/goutils v0.0.0-20210118111533-e33d3ffb5401/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs= | ||||||
| github.com/couchbase/moss v0.1.0/go.mod h1:9MaHIaRuy9pvLPUJxB8sh8OrLfyDczECVL37grCIubs= | github.com/couchbase/moss v0.1.0/go.mod h1:9MaHIaRuy9pvLPUJxB8sh8OrLfyDczECVL37grCIubs= | ||||||
| github.com/couchbase/vellum v1.0.2 h1:BrbP0NKiyDdndMPec8Jjhy0U47CZ0Lgx3xUC2r9rZqw= |  | ||||||
| github.com/couchbase/vellum v1.0.2/go.mod h1:FcwrEivFpNi24R3jLOs3n+fs5RnuQnQqCLBJ1uAg1W4= | github.com/couchbase/vellum v1.0.2/go.mod h1:FcwrEivFpNi24R3jLOs3n+fs5RnuQnQqCLBJ1uAg1W4= | ||||||
| github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= | github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= | ||||||
| github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= | github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= | ||||||
| @@ -231,7 +247,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs | |||||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | 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/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/denisenkom/go-mssqldb v0.0.0-20191128021309-1d7a30a10f73/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= | github.com/denisenkom/go-mssqldb v0.0.0-20191128021309-1d7a30a10f73/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= | ||||||
| github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc h1:VRRKCwnzqk8QCaRC4os14xoKDdbHqqlJtJA0oc1ZAjg= |  | ||||||
| github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= | github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= | ||||||
| github.com/denisenkom/go-mssqldb v0.9.0 h1:RSohk2RsiZqLZ0zCjtfn3S4Gp4exhpBWHyQ7D0yGjAk= | github.com/denisenkom/go-mssqldb v0.9.0 h1:RSohk2RsiZqLZ0zCjtfn3S4Gp4exhpBWHyQ7D0yGjAk= | ||||||
| github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= | github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= | ||||||
| @@ -255,8 +270,8 @@ github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25Kn | |||||||
| github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= | github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= | ||||||
| github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= | github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= | ||||||
| github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= | github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= | ||||||
| github.com/editorconfig/editorconfig-core-go/v2 v2.3.9 h1:4vZN3UCLAUbT408wDutTKGZwOlgGMpV3vhahYufNbV8= | github.com/editorconfig/editorconfig-core-go/v2 v2.4.1 h1:ELDiPZji50x20Wvf9FnP4pb7fE3PV/DNhNd6MRlhgfI= | ||||||
| github.com/editorconfig/editorconfig-core-go/v2 v2.3.9/go.mod h1:yoHDFR3nO8O5ssvhITSRsf0owQqIs0c9+nBTtarunPo= | github.com/editorconfig/editorconfig-core-go/v2 v2.4.1/go.mod h1:UHV4+gECABtht7ALQkPdc5gzP77D+4WDUOZAfx8ifx8= | ||||||
| github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= | github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= | ||||||
| github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 h1:clC1lXBpe2kTj2VHdaIu9ajZQe4kcEY9j0NsnDDBZ3o= | github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 h1:clC1lXBpe2kTj2VHdaIu9ajZQe4kcEY9j0NsnDDBZ3o= | ||||||
| github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= | github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= | ||||||
| @@ -266,6 +281,8 @@ github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4s | |||||||
| github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= | 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.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/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= | ||||||
|  | github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= | ||||||
|  | github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= | ||||||
| github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | ||||||
| github.com/ethantkoenig/rupture v1.0.0 h1:gPInt1N30UErGNzd8t5js5Qbnpjcd1l6yU2MCrJxIe8= | github.com/ethantkoenig/rupture v1.0.0 h1:gPInt1N30UErGNzd8t5js5Qbnpjcd1l6yU2MCrJxIe8= | ||||||
| github.com/ethantkoenig/rupture v1.0.0/go.mod h1:GyE9QabHfxA6ch0NZgwsHopRbOLcYjUr9g4FTJmq0WM= | github.com/ethantkoenig/rupture v1.0.0/go.mod h1:GyE9QabHfxA6ch0NZgwsHopRbOLcYjUr9g4FTJmq0WM= | ||||||
| @@ -286,19 +303,21 @@ github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWo | |||||||
| github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= | 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/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | ||||||
| github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= | github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= | ||||||
| github.com/gliderlabs/ssh v0.3.1 h1:L6VrMUGZaMlNIMN8Hj+CHh4U9yodJE3FAt/rgvfaKvE= | github.com/gliderlabs/ssh v0.3.2 h1:gcfd1Aj/9RQxvygu4l3sak711f/5+VOwBw9C/7+N4EI= | ||||||
| github.com/gliderlabs/ssh v0.3.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= | github.com/gliderlabs/ssh v0.3.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= | ||||||
| github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= | github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= | ||||||
| github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= | github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= | ||||||
| github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= | github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= | ||||||
| github.com/glycerine/go-unsnap-stream v0.0.0-20190901134440-81cf024a9e0a h1:FQqoVvjbiUioBBFUL5up+h+GdCa/AnJsL/1bIs/veSI= | github.com/glycerine/go-unsnap-stream v0.0.0-20210130063903-47dfef350d96 h1:rCXyLrgJ598XNj7KTqPzAvwTzlyvI+clqasoNfLQStE= | ||||||
| github.com/glycerine/go-unsnap-stream v0.0.0-20190901134440-81cf024a9e0a/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= | github.com/glycerine/go-unsnap-stream v0.0.0-20210130063903-47dfef350d96/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= | ||||||
| github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy3PbkQ1AERPfmLMMagS60DKF78eWwLn8= | github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy3PbkQ1AERPfmLMMagS60DKF78eWwLn8= | ||||||
| github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= | github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= | ||||||
| github.com/go-asn1-ber/asn1-ber v1.5.1 h1:pDbRAunXzIUXfx4CB2QJFv5IuPiuoW+sWvr/Us009o8= |  | ||||||
| github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= | github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= | ||||||
| github.com/go-chi/chi v1.5.1 h1:kfTK3Cxd/dkMu/rKs5ZceWYp+t5CtiE7vmaTv3LjC6w= | github.com/go-asn1-ber/asn1-ber v1.5.3 h1:u7utq56RUFiynqUzgVMFDymapcOtQ/MZkh3H4QYkxag= | ||||||
|  | github.com/go-asn1-ber/asn1-ber v1.5.3/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= | ||||||
| github.com/go-chi/chi v1.5.1/go.mod h1:REp24E+25iKvxgeTfHmdUoL5x15kBiDBlnIl5bCwe2k= | github.com/go-chi/chi v1.5.1/go.mod h1:REp24E+25iKvxgeTfHmdUoL5x15kBiDBlnIl5bCwe2k= | ||||||
|  | github.com/go-chi/chi v1.5.4 h1:QHdzF2szwjqVV4wmByUnTcsbIg7UGaQ0tPF2t5GcAIs= | ||||||
|  | github.com/go-chi/chi v1.5.4/go.mod h1:uaf8YgoFazUOkPBG7fxPftUylNumIev9awIWOENIuEg= | ||||||
| github.com/go-chi/cors v1.1.1 h1:eHuqxsIw89iXcWnWUN8R72JMibABJTN/4IOYI5WERvw= | github.com/go-chi/cors v1.1.1 h1:eHuqxsIw89iXcWnWUN8R72JMibABJTN/4IOYI5WERvw= | ||||||
| github.com/go-chi/cors v1.1.1/go.mod h1:K2Yje0VW/SJzxiyMYu6iPQYa7hMjQX2i/F491VChg1I= | github.com/go-chi/cors v1.1.1/go.mod h1:K2Yje0VW/SJzxiyMYu6iPQYa7hMjQX2i/F491VChg1I= | ||||||
| github.com/go-enry/go-enry/v2 v2.6.0 h1:nbGWQBpO+D+cJuRxNgSDFnFY9QWz3QM/CeZxU7VAH20= | github.com/go-enry/go-enry/v2 v2.6.0 h1:nbGWQBpO+D+cJuRxNgSDFnFY9QWz3QM/CeZxU7VAH20= | ||||||
| @@ -331,8 +350,9 @@ github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9sn | |||||||
| github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= | github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= | ||||||
| github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= | github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= | ||||||
| github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ= | github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ= | ||||||
| github.com/go-openapi/analysis v0.19.16 h1:Ub9e++M8sDwtHD+S587TYi+6ANBG1NRYGZDihqk0SaY= |  | ||||||
| github.com/go-openapi/analysis v0.19.16/go.mod h1:GLInF007N83Ad3m8a/CbQ5TPzdnGT7workfHwuVjNVk= | github.com/go-openapi/analysis v0.19.16/go.mod h1:GLInF007N83Ad3m8a/CbQ5TPzdnGT7workfHwuVjNVk= | ||||||
|  | github.com/go-openapi/analysis v0.20.0 h1:UN09o0kNhleunxW7LR+KnltD0YrJ8FF03pSqvAN3Vro= | ||||||
|  | github.com/go-openapi/analysis v0.20.0/go.mod h1:BMchjvaHDykmRMsK40iPtvyOfFdMMxlOmQr9FBZk+Og= | ||||||
| github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= | github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= | ||||||
| github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= | github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= | ||||||
| github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= | ||||||
| @@ -340,8 +360,9 @@ github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA | |||||||
| github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||||
| github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||||
| github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||||
| github.com/go-openapi/errors v0.19.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4= |  | ||||||
| github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||||
|  | github.com/go-openapi/errors v0.20.0 h1:Sxpo9PjEHDzhs3FbnGNonvDgWcMW2U7wGTcDDSFSceM= | ||||||
|  | github.com/go-openapi/errors v0.20.0/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= | ||||||
| github.com/go-openapi/inflect v0.19.0 h1:9jCH9scKIbHeV9m12SmPilScz6krDxKRasNNSNPXu/4= | github.com/go-openapi/inflect v0.19.0 h1:9jCH9scKIbHeV9m12SmPilScz6krDxKRasNNSNPXu/4= | ||||||
| github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4= | github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4= | ||||||
| github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= | github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= | ||||||
| @@ -364,8 +385,10 @@ github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5 | |||||||
| github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= | github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= | ||||||
| github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= | github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= | ||||||
| github.com/go-openapi/loads v0.19.7/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= | github.com/go-openapi/loads v0.19.7/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= | ||||||
| github.com/go-openapi/loads v0.20.0 h1:Pymw1O8zDmWeNv4kVsHd0W3cvgdp8juRa4U/U/8D/Pk= |  | ||||||
| github.com/go-openapi/loads v0.20.0/go.mod h1:2LhKquiE513rN5xC6Aan6lYOSddlL8Mp20AW9kpviM4= | github.com/go-openapi/loads v0.20.0/go.mod h1:2LhKquiE513rN5xC6Aan6lYOSddlL8Mp20AW9kpviM4= | ||||||
|  | github.com/go-openapi/loads v0.20.1/go.mod h1:/6LfFL8fDvTSX8ypmYXIq3U9Q7nfniSOStW22m864WM= | ||||||
|  | github.com/go-openapi/loads v0.20.2 h1:z5p5Xf5wujMxS1y8aP+vxwW5qYT2zdJBbXKmQUG3lcc= | ||||||
|  | github.com/go-openapi/loads v0.20.2/go.mod h1:hTVUotJ+UonAMMZsvakEgmWKgtulweO9vYP2bQYKA/o= | ||||||
| github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= | github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= | ||||||
| github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= | github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= | ||||||
| github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= | github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= | ||||||
| @@ -382,8 +405,10 @@ github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHK | |||||||
| github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= | github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= | ||||||
| github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= | github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= | ||||||
| github.com/go-openapi/spec v0.20.0/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= | github.com/go-openapi/spec v0.20.0/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= | ||||||
| github.com/go-openapi/spec v0.20.1 h1:5WNKTzPguDN+79wbJw2UE2q+eX+gUmEFsIKSvnSQJlc= |  | ||||||
| github.com/go-openapi/spec v0.20.1/go.mod h1:93x7oh+d+FQsmsieroS4cmR3u0p/ywH649a3qwC9OsQ= | github.com/go-openapi/spec v0.20.1/go.mod h1:93x7oh+d+FQsmsieroS4cmR3u0p/ywH649a3qwC9OsQ= | ||||||
|  | github.com/go-openapi/spec v0.20.2/go.mod h1:RW6Xcbs6LOyWLU/mXGdzn2Qc+3aj+ASfI7rvSZh1Vls= | ||||||
|  | github.com/go-openapi/spec v0.20.3 h1:uH9RQ6vdyPSs2pSy9fL8QPspDF2AMIMPtmK5coSSjtQ= | ||||||
|  | github.com/go-openapi/spec v0.20.3/go.mod h1:gG4F8wdEDN+YPBMVnzE85Rbhf+Th2DTvA9nFPQ5AYEg= | ||||||
| github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= | github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= | ||||||
| github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= | github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= | ||||||
| github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= | github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= | ||||||
| @@ -401,34 +426,35 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh | |||||||
| github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | ||||||
| github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= | ||||||
| github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M= | github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M= | ||||||
| github.com/go-openapi/swag v0.19.13 h1:233UVgMy1DlmCYYfOiFpta6e2urloh+sEs5id6lyzog= |  | ||||||
| github.com/go-openapi/swag v0.19.13/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= | github.com/go-openapi/swag v0.19.13/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= | ||||||
|  | github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng= | ||||||
|  | github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= | ||||||
| github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= | github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= | ||||||
| github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= | github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= | ||||||
| github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= | github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= | ||||||
| github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= | github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= | ||||||
| github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4= | github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4= | ||||||
| github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9GA7monOmWBbeCI= | github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9GA7monOmWBbeCI= | ||||||
| github.com/go-openapi/validate v0.20.1 h1:QGQ5CvK74E28t3DkegGweKR+auemUi5IdpMc4x3UW6s= |  | ||||||
| github.com/go-openapi/validate v0.20.1/go.mod h1:b60iJT+xNNLfaQJUqLI7946tYiFEOuE9E4k54HpKcJ0= | github.com/go-openapi/validate v0.20.1/go.mod h1:b60iJT+xNNLfaQJUqLI7946tYiFEOuE9E4k54HpKcJ0= | ||||||
|  | github.com/go-openapi/validate v0.20.2 h1:AhqDegYV3J3iQkMPJSXkvzymHKMTw0BST3RK3hTT4ts= | ||||||
|  | github.com/go-openapi/validate v0.20.2/go.mod h1:e7OJoKNgd0twXZwIn0A43tHbvIcr/rZIVCbJBpTUoY0= | ||||||
| github.com/go-redis/redis v6.15.2+incompatible h1:9SpNVG76gr6InJGxoZ6IuuxaCOQwDAhzyXg+Bs+0Sb4= | github.com/go-redis/redis v6.15.2+incompatible h1:9SpNVG76gr6InJGxoZ6IuuxaCOQwDAhzyXg+Bs+0Sb4= | ||||||
| github.com/go-redis/redis v6.15.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= | github.com/go-redis/redis v6.15.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= | ||||||
| github.com/go-redis/redis/v8 v8.4.0 h1:J5NCReIgh3QgUJu398hUncxDExN4gMOHI11NVbVicGQ= |  | ||||||
| github.com/go-redis/redis/v8 v8.4.0/go.mod h1:A1tbYoHSa1fXwN+//ljcCYYJeLmVrwL9hbQN45Jdy0M= | github.com/go-redis/redis/v8 v8.4.0/go.mod h1:A1tbYoHSa1fXwN+//ljcCYYJeLmVrwL9hbQN45Jdy0M= | ||||||
| github.com/go-redis/redis/v8 v8.5.0 h1:L3r1Q3I5WOUdXZGCP6g44EruKh0u3n6co5Hl5xWkdGA= | github.com/go-redis/redis/v8 v8.6.0 h1:swqbqOrxaPztsj2Hf1p94M3YAgl7hYEpcw21z299hh8= | ||||||
| github.com/go-redis/redis/v8 v8.5.0/go.mod h1:YmEcgBDttjnkbMzDAhDtQxY9yVA7jMN6PCR5HeMvqFE= | github.com/go-redis/redis/v8 v8.6.0/go.mod h1:DQ9q4Rk2HtwkrwVrdgmphoOQDMfpvcd/nHEwRsicg8s= | ||||||
| github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= | github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= | ||||||
| github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= | github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= | ||||||
| github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= | github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= | ||||||
| github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= | github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= | ||||||
| github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= | github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= | ||||||
| github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= | github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= | ||||||
| github.com/go-swagger/go-swagger v0.26.0 h1:LM5XTbeRbDdjHRqdA0jchK5Qs3DB2F0R5QmXs1pd/L0= | github.com/go-swagger/go-swagger v0.26.1 h1:1XUWLnH6hKxHzeKjJfA2gHkSqcT1Zgi4q/PZp2hDdN8= | ||||||
| github.com/go-swagger/go-swagger v0.26.0/go.mod h1:kSAA+pziAr5x68on6TxcxWoIl9GOo1mLsHmfMV2rrCo= | github.com/go-swagger/go-swagger v0.26.1/go.mod h1:zlf/LHplZpdtU2mYXg9Ajd3+9TgHYltv5f/pEM6LjnI= | ||||||
| github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013 h1:l9rI6sNaZgNC0LnF3MiE+qTmyBA/tZAg1rtyrGbUMK0= | github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013 h1:l9rI6sNaZgNC0LnF3MiE+qTmyBA/tZAg1rtyrGbUMK0= | ||||||
| github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013/go.mod h1:b65mBPzqzZWxOZGxSWrqs4GInLIn+u99Q9q7p+GKni0= | github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013/go.mod h1:b65mBPzqzZWxOZGxSWrqs4GInLIn+u99Q9q7p+GKni0= | ||||||
| github.com/go-testfixtures/testfixtures/v3 v3.4.1 h1:Qz9y0wUOXPHzKhK6C79A/menChtEu/xd0Dn5ngVyMD0= | github.com/go-testfixtures/testfixtures/v3 v3.5.0 h1:fFJGHhFdcwy48oTLHvr0WRQ09rGiZE+as9ElvbRWS+c= | ||||||
| github.com/go-testfixtures/testfixtures/v3 v3.4.1/go.mod h1:P4L3WxgOsCLbAeUC50qX5rdj1ULZfUMqgCbqah3OH5U= | github.com/go-testfixtures/testfixtures/v3 v3.5.0/go.mod h1:P4L3WxgOsCLbAeUC50qX5rdj1ULZfUMqgCbqah3OH5U= | ||||||
| github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= | github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= | ||||||
| github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= | github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= | ||||||
| github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= | github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= | ||||||
| @@ -499,8 +525,9 @@ 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/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= | ||||||
| github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
| github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
| github.com/golang/snappy v0.0.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw= |  | ||||||
| github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
|  | github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= | ||||||
|  | github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
| github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= | github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= | ||||||
| github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= | github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= | ||||||
| github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= | github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= | ||||||
| @@ -521,6 +548,7 @@ github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO | |||||||
| github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | ||||||
| github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= | github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= | ||||||
| github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= | github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= | ||||||
|  | github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= | ||||||
| github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | ||||||
| github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | ||||||
| github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= | github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= | ||||||
| @@ -529,9 +557,13 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf | |||||||
| github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= | github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= | ||||||
| github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= | github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= | ||||||
| github.com/google/pprof v0.0.0-20200905233945-acf8798be1f7/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= | github.com/google/pprof v0.0.0-20200905233945-acf8798be1f7/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= | ||||||
|  | github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | ||||||
|  | github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | ||||||
|  | github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | ||||||
| github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= | github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= | ||||||
| github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||||
| github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | 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 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= | ||||||
| github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||||
| github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= | github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= | ||||||
| @@ -549,14 +581,14 @@ github.com/gorilla/handlers v1.4.1/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/ | |||||||
| github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= | github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= | ||||||
| github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= | github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= | ||||||
| github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= | github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= | ||||||
| github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= |  | ||||||
| github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= | github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= | ||||||
|  | github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= | ||||||
|  | github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= | ||||||
| github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1 h1:LqbZZ9sNMWVjeXS4NN5oVvhMjDyLhmA1LG86oSo+IqY= | github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1 h1:LqbZZ9sNMWVjeXS4NN5oVvhMjDyLhmA1LG86oSo+IqY= | ||||||
| github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1/go.mod h1:YeAe0gNeiNT5hoiZRI4yiOky6jVdNvfO2N6Kav/HmxY= | github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1/go.mod h1:YeAe0gNeiNT5hoiZRI4yiOky6jVdNvfO2N6Kav/HmxY= | ||||||
| github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= | github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= | ||||||
| github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= | github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= | ||||||
| github.com/gorilla/sessions v1.1.1/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= | github.com/gorilla/sessions v1.1.1/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= | ||||||
| github.com/gorilla/sessions v1.2.0 h1:S7P+1Hm5V/AT9cjEcUD5uDaQSX0OE577aCXgoaKpYbQ= |  | ||||||
| github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= | github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= | ||||||
| github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= | github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= | ||||||
| github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= | github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= | ||||||
| @@ -572,7 +604,6 @@ github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoP | |||||||
| github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= | github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= | ||||||
| github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= | github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= | ||||||
| github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= | github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= | ||||||
| github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= |  | ||||||
| github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= | github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= | ||||||
| github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= | github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= | ||||||
| github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= | github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= | ||||||
| @@ -603,6 +634,7 @@ github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw | |||||||
| github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= | github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= | ||||||
| github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= | github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= | ||||||
| github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= | github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= | ||||||
|  | github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= | ||||||
| github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= | github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= | ||||||
| github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= | github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= | ||||||
| github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= | github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= | ||||||
| @@ -664,6 +696,7 @@ github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJS | |||||||
| github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= | github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= | ||||||
| github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= | github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= | ||||||
| github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= | github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= | ||||||
|  | github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= | ||||||
| github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= | github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= | ||||||
| github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= | github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= | ||||||
| github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= | github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= | ||||||
| @@ -685,8 +718,9 @@ github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaR | |||||||
| github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= | github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= | ||||||
| github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= | github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= | ||||||
| github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= | github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= | ||||||
| github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY= |  | ||||||
| github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= | github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= | ||||||
|  | github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck= | ||||||
|  | github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= | ||||||
| github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4 h1:cTxwSmnaqLoo+4tLukHoB9iqHOu3LmLhRmgUxZo6Vp4= | github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4 h1:cTxwSmnaqLoo+4tLukHoB9iqHOu3LmLhRmgUxZo6Vp4= | ||||||
| github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= | github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= | ||||||
| github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= | github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= | ||||||
| @@ -695,13 +729,16 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o | |||||||
| github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | ||||||
| github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | ||||||
| github.com/klauspost/compress v1.10.10/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | github.com/klauspost/compress v1.10.10/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | ||||||
| github.com/klauspost/compress v1.11.7 h1:0hzRabrMN4tSTvMfnL3SCv1ZGeAP23ynzodBgaHeMeg= | github.com/klauspost/compress v1.11.8 h1:difgzQsp5mdAz9v8lm3P/I+EpDKMU/6uTMw1y1FObuo= | ||||||
| github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | github.com/klauspost/compress v1.11.8/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | ||||||
| github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= | github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= | ||||||
| github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= | github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= | ||||||
| github.com/klauspost/cpuid v1.2.5/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= | github.com/klauspost/cpuid v1.2.5/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= | ||||||
| github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s= | github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s= | ||||||
| github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= | github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= | ||||||
|  | github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= | ||||||
|  | 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/klauspost/pgzip v1.2.4/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= | github.com/klauspost/pgzip v1.2.4/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= | ||||||
| github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= | github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= | ||||||
| github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= | github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= | ||||||
| @@ -730,8 +767,9 @@ github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= | |||||||
| github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= | github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= | ||||||
| github.com/lib/pq v1.9.0 h1:L8nSXQQzAYByakOFMTwpjRoHsMJklur4Gi59b6VivR8= | github.com/lib/pq v1.9.0 h1:L8nSXQQzAYByakOFMTwpjRoHsMJklur4Gi59b6VivR8= | ||||||
| github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= | github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= | ||||||
| github.com/libdns/libdns v0.1.0 h1:0ctCOrVJsVzj53mop1angHp/pE3hmAhP7KiHvR0HD04= |  | ||||||
| github.com/libdns/libdns v0.1.0/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40= | github.com/libdns/libdns v0.1.0/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40= | ||||||
|  | github.com/libdns/libdns v0.2.0 h1:ewg3ByWrdUrxrje8ChPVMBNcotg7H9LQYg+u5De2RzI= | ||||||
|  | github.com/libdns/libdns v0.2.0/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40= | ||||||
| github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= | github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= | ||||||
| github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= | github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= | ||||||
| github.com/lunny/bluemonday v1.0.5-0.20201227154428-ca34796141e8 h1:1omo92DLtxQu6VwVPSZAmduHaK5zssed6cvkHyl1XOg= | github.com/lunny/bluemonday v1.0.5-0.20201227154428-ca34796141e8 h1:1omo92DLtxQu6VwVPSZAmduHaK5zssed6cvkHyl1XOg= | ||||||
| @@ -750,11 +788,12 @@ github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN | |||||||
| github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||||
| github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||||
| github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= | github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= | ||||||
| github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= |  | ||||||
| github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= | github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= | ||||||
|  | github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= | ||||||
|  | github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= | ||||||
| github.com/markbates/going v1.0.0/go.mod h1:I6mnB4BPnEeqo85ynXIx1ZFLLbtiLHNXVgWeFO9OGOA= | github.com/markbates/going v1.0.0/go.mod h1:I6mnB4BPnEeqo85ynXIx1ZFLLbtiLHNXVgWeFO9OGOA= | ||||||
| github.com/markbates/goth v1.66.1 h1:8YIkRxRxiUxhYhHdvriKiJ+mk2itt2ezjf/ABR8U+JI= | github.com/markbates/goth v1.67.1 h1:gU5B0pzHVyhnJPwGynfFnkfvaQ39C1Sy+ewdl+bhAOw= | ||||||
| github.com/markbates/goth v1.66.1/go.mod h1:57wf4mNb/fy/Cizm8xe4komsQRKPuelTMrm/wGcw3v8= | github.com/markbates/goth v1.67.1/go.mod h1:EyLFHGU5ySr2GXRDyJH5nu2dA7parbC8QwIYW/rGcWg= | ||||||
| github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= | github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= | ||||||
| github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= | github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= | ||||||
| github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= | github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= | ||||||
| @@ -773,6 +812,7 @@ github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHX | |||||||
| github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= | github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= | ||||||
| github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= | github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= | ||||||
| github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= | github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= | ||||||
|  | github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= | ||||||
| github.com/mattn/go-runewidth v0.0.10 h1:CoZ3S2P7pvtP45xOtBw+/mDL2z0RKI576gSkzRRpdGg= | github.com/mattn/go-runewidth v0.0.10 h1:CoZ3S2P7pvtP45xOtBw+/mDL2z0RKI576gSkzRRpdGg= | ||||||
| github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= | github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= | ||||||
| github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= | github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= | ||||||
| @@ -785,20 +825,23 @@ github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81 h1:QASJXOGm2RZ5Ardbc8 | |||||||
| github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= | github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= | ||||||
| github.com/mgechev/revive v1.0.3 h1:z3FL6IFFN3JKzHYHD8O1ExH9g/4lAGJ5x1+9rPZgsFg= | github.com/mgechev/revive v1.0.3 h1:z3FL6IFFN3JKzHYHD8O1ExH9g/4lAGJ5x1+9rPZgsFg= | ||||||
| github.com/mgechev/revive v1.0.3/go.mod h1:POGGZagSo/0frdr7VeAifzS5Uka0d0GPiM35MsTO8nE= | github.com/mgechev/revive v1.0.3/go.mod h1:POGGZagSo/0frdr7VeAifzS5Uka0d0GPiM35MsTO8nE= | ||||||
| github.com/mholt/acmez v0.1.1 h1:KQODCqk+hBn3O7qfCRPj6L96uG65T5BSS95FKNEqtdA= |  | ||||||
| github.com/mholt/acmez v0.1.1/go.mod h1:8qnn8QA/Ewx8E3ZSsmscqsIjhhpxuy9vqdgbX2ceceM= | github.com/mholt/acmez v0.1.1/go.mod h1:8qnn8QA/Ewx8E3ZSsmscqsIjhhpxuy9vqdgbX2ceceM= | ||||||
|  | github.com/mholt/acmez v0.1.3 h1:J7MmNIk4Qf9b8mAGqAh4XkNeowv3f1zW816yf4zt7Qk= | ||||||
|  | github.com/mholt/acmez v0.1.3/go.mod h1:8qnn8QA/Ewx8E3ZSsmscqsIjhhpxuy9vqdgbX2ceceM= | ||||||
| github.com/mholt/archiver/v3 v3.5.0 h1:nE8gZIrw66cu4osS/U7UW7YDuGMHssxKutU8IfWxwWE= | github.com/mholt/archiver/v3 v3.5.0 h1:nE8gZIrw66cu4osS/U7UW7YDuGMHssxKutU8IfWxwWE= | ||||||
| github.com/mholt/archiver/v3 v3.5.0/go.mod h1:qqTTPUK/HZPFgFQ/TJ3BzvTpF/dPtFVJXdQbCmeMxwc= | github.com/mholt/archiver/v3 v3.5.0/go.mod h1:qqTTPUK/HZPFgFQ/TJ3BzvTpF/dPtFVJXdQbCmeMxwc= | ||||||
| github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= | github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= | ||||||
| github.com/miekg/dns v1.1.30 h1:Qww6FseFn8PRfw07jueqIXqodm0JKiiKuK0DeXSqfyo= |  | ||||||
| github.com/miekg/dns v1.1.30/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= | github.com/miekg/dns v1.1.30/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= | ||||||
|  | github.com/miekg/dns v1.1.40 h1:pyyPFfGMnciYUk/mXpKkVmeMQjfXqt3FAJ2hy7tPiLA= | ||||||
|  | github.com/miekg/dns v1.1.40/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= | ||||||
| github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= | github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= | ||||||
| github.com/minio/md5-simd v1.1.1 h1:9ojcLbuZ4gXbB2sX53MKn8JUZ0sB/2wfwsEcRw+I08U= | github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= | ||||||
| github.com/minio/md5-simd v1.1.1/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= | github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= | ||||||
| github.com/minio/minio-go/v7 v7.0.9 h1:v+RS2/dpRq+XaarlZItHd3MVjjQcN2noRn4HxmVdmg4= | github.com/minio/minio-go/v7 v7.0.10 h1:1oUKe4EOPUEhw2qnPQaPsJ0lmVTYLFu03SiItauXs94= | ||||||
| github.com/minio/minio-go/v7 v7.0.9/go.mod h1:td4gW1ldOsj1PbSNS+WYK43j+P1XVhX/8W8awaYlBFo= | github.com/minio/minio-go/v7 v7.0.10/go.mod h1:td4gW1ldOsj1PbSNS+WYK43j+P1XVhX/8W8awaYlBFo= | ||||||
| github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU= |  | ||||||
| github.com/minio/sha256-simd v0.1.1/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/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= | github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= | ||||||
| github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | ||||||
| github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= | github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= | ||||||
| @@ -820,13 +863,14 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN | |||||||
| github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= | github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= | ||||||
| github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= | github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= | ||||||
| github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= | github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= | ||||||
| github.com/mrjones/oauth v0.0.0-20180629183705-f4e24b6d100c h1:3wkDRdxK92dF+c1ke2dtj7ZzemFWBHB9plnJOtlwdFA= |  | ||||||
| github.com/mrjones/oauth v0.0.0-20180629183705-f4e24b6d100c/go.mod h1:skjdDftzkFALcuGzYSklqYd8gvat6F1gZJ4YPVbkZpM= | github.com/mrjones/oauth v0.0.0-20180629183705-f4e24b6d100c/go.mod h1:skjdDftzkFALcuGzYSklqYd8gvat6F1gZJ4YPVbkZpM= | ||||||
|  | github.com/mrjones/oauth v0.0.0-20190623134757-126b35219450 h1:j2kD3MT1z4PXCiUllUJF9mWUESr9TWKS7iEKsQ/IipM= | ||||||
|  | github.com/mrjones/oauth v0.0.0-20190623134757-126b35219450/go.mod h1:skjdDftzkFALcuGzYSklqYd8gvat6F1gZJ4YPVbkZpM= | ||||||
| github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= | github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= | ||||||
| github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM= | github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM= | ||||||
| github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw= | github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw= | ||||||
| github.com/msteinert/pam v0.0.0-20200810204841-913b8f8cdf8b h1:UZ7RWBA77dedMow4Zkek/gfJ/DRbti7C+Ny/Pf9D3gM= | github.com/msteinert/pam v0.0.0-20201130170657-e61372126161 h1:XQ1+fYPzaWZCVdu1xzjL917Xy9Yb7imLEU0wHelafKA= | ||||||
| github.com/msteinert/pam v0.0.0-20200810204841-913b8f8cdf8b/go.mod h1:np1wUFZ6tyoke22qDJZY40URn9Ae51gX7ljIWXN5TJs= | github.com/msteinert/pam v0.0.0-20201130170657-e61372126161/go.mod h1:np1wUFZ6tyoke22qDJZY40URn9Ae51gX7ljIWXN5TJs= | ||||||
| github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= | github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= | ||||||
| github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= | github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= | ||||||
| github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= | github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= | ||||||
| @@ -851,8 +895,9 @@ github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtb | |||||||
| github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= | github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= | ||||||
| github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= | github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= | ||||||
| github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= | github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= | ||||||
| github.com/olekukonko/tablewriter v0.0.4 h1:vHD/YYe1Wolo78koG299f7V/VAS08c6IpCLn+Ejf/w8= |  | ||||||
| github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= | github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= | ||||||
|  | github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= | ||||||
|  | github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= | ||||||
| github.com/oliamb/cutter v0.2.2 h1:Lfwkya0HHNU1YLnGv2hTkzHfasrSMkgv4Dn+5rmlk3k= | github.com/oliamb/cutter v0.2.2 h1:Lfwkya0HHNU1YLnGv2hTkzHfasrSMkgv4Dn+5rmlk3k= | ||||||
| github.com/oliamb/cutter v0.2.2/go.mod h1:4BenG2/4GuRBDbVm/OPahDVqbrOemzpPiG5mi1iryBU= | github.com/oliamb/cutter v0.2.2/go.mod h1:4BenG2/4GuRBDbVm/OPahDVqbrOemzpPiG5mi1iryBU= | ||||||
| github.com/olivere/elastic/v7 v7.0.22 h1:esBA6JJwvYgfms0EVlH7Z+9J4oQ/WUADF2y/nCNDw7s= | github.com/olivere/elastic/v7 v7.0.22 h1:esBA6JJwvYgfms0EVlH7Z+9J4oQ/WUADF2y/nCNDw7s= | ||||||
| @@ -861,7 +906,6 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W | |||||||
| github.com/onsi/ginkgo v1.7.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.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | ||||||
| github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= | github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= | ||||||
| github.com/onsi/ginkgo v1.14.2 h1:8mVmC9kjFFmA8H4pKMUhcblgifdkOIXPvbhN1T36q1M= |  | ||||||
| github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= | github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= | ||||||
| github.com/onsi/ginkgo v1.15.0 h1:1V1NfVQR87RtWAgp1lv9JZJ5Jap+XFGKPi00andXGi4= | github.com/onsi/ginkgo v1.15.0 h1:1V1NfVQR87RtWAgp1lv9JZJ5Jap+XFGKPi00andXGi4= | ||||||
| github.com/onsi/ginkgo v1.15.0/go.mod h1:hF8qUzuuC8DJGygJH3726JnCZX4MYbRB8yFfISqnKUg= | github.com/onsi/ginkgo v1.15.0/go.mod h1:hF8qUzuuC8DJGygJH3726JnCZX4MYbRB8yFfISqnKUg= | ||||||
| @@ -869,7 +913,6 @@ github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa | |||||||
| github.com/onsi/gomega v1.5.0/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.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= | ||||||
| github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= | github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= | ||||||
| github.com/onsi/gomega v1.10.3 h1:gph6h/qe9GSUw1NhH1gp+qb+h8rXD8Cy60Z32Qw3ELA= |  | ||||||
| github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= | github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= | ||||||
| github.com/onsi/gomega v1.10.5 h1:7n6FEkpFmfCoo2t+YYqXH0evK+a9ICQz0xcAy9dYcaQ= | github.com/onsi/gomega v1.10.5 h1:7n6FEkpFmfCoo2t+YYqXH0evK+a9ICQz0xcAy9dYcaQ= | ||||||
| github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48= | github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48= | ||||||
| @@ -899,8 +942,8 @@ github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0 | |||||||
| github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= | github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= | ||||||
| github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= | github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= | ||||||
| github.com/pierrec/lz4/v4 v4.0.3/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= | github.com/pierrec/lz4/v4 v4.0.3/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= | ||||||
| github.com/pierrec/lz4/v4 v4.1.1 h1:cS6aGkNLJr4u+UwaA21yp+gbWN3WJWtKo1axmPDObMA= | github.com/pierrec/lz4/v4 v4.1.3 h1:/dvQpkb0o1pVlSgKNQqfkavlnXaIK+hJ0LXsKRUN9D4= | ||||||
| github.com/pierrec/lz4/v4 v4.1.1/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= | github.com/pierrec/lz4/v4 v4.1.3/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= | ||||||
| github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||||
| github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | 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 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= | ||||||
| @@ -934,16 +977,18 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 | |||||||
| github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= | github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= | ||||||
| github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= | github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= | ||||||
| github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= | github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= | ||||||
| github.com/prometheus/common v0.15.0 h1:4fgOnadei3EZvgRwxJ7RMpG1k1pOZth5Pc13tyspaKM= |  | ||||||
| github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= | github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= | ||||||
|  | github.com/prometheus/common v0.18.0 h1:WCVKW7aL6LEe1uryfI9dnEc2ZqNB1Fn0ok930v0iL1Y= | ||||||
|  | github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= | ||||||
| github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= | github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= | ||||||
| github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= | github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= | ||||||
| github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= | github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= | ||||||
| github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= | github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= | ||||||
| github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= | github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= | ||||||
| github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= | github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= | ||||||
| github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= |  | ||||||
| github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= | github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= | ||||||
|  | github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= | ||||||
|  | github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= | ||||||
| github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= | github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= | ||||||
| github.com/quasoft/websspi v1.0.0 h1:5nDgdM5xSur9s+B5w2xQ5kxf5nUGqgFgU4W0aDLZ8Mw= | github.com/quasoft/websspi v1.0.0 h1:5nDgdM5xSur9s+B5w2xQ5kxf5nUGqgFgU4W0aDLZ8Mw= | ||||||
| github.com/quasoft/websspi v1.0.0/go.mod h1:HmVdl939dQ0WIXZhyik+ARdI03M6bQzaSEKcgpFmewk= | github.com/quasoft/websspi v1.0.0/go.mod h1:HmVdl939dQ0WIXZhyik+ARdI03M6bQzaSEKcgpFmewk= | ||||||
| @@ -963,8 +1008,9 @@ github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OK | |||||||
| github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= | github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= | ||||||
| github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= | github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= | ||||||
| github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= | github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= | ||||||
| github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= |  | ||||||
| github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||||
|  | github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= | ||||||
|  | github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||||
| github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= | github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= | ||||||
| github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= | github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= | ||||||
| github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= | github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= | ||||||
| @@ -976,7 +1022,6 @@ github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24 h1:pntxY8Ary0t4 | |||||||
| github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= | github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= | ||||||
| github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 h1:bUGsEnyNbVPw06Bs80sCeARAlK8lhwqGyi6UT8ymuGk= | github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 h1:bUGsEnyNbVPw06Bs80sCeARAlK8lhwqGyi6UT8ymuGk= | ||||||
| github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= | github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= | ||||||
| github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= |  | ||||||
| github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | ||||||
| github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 h1:pXY9qYc/MP5zdvqWEUH6SjNiu7VhSjuVFTFiTcphaLU= | github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 h1:pXY9qYc/MP5zdvqWEUH6SjNiu7VhSjuVFTFiTcphaLU= | ||||||
| github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= | github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= | ||||||
| @@ -1003,8 +1048,9 @@ github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4k | |||||||
| github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= | github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= | ||||||
| github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= | github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= | ||||||
| github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= | github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= | ||||||
| github.com/spf13/afero v1.4.1 h1:asw9sl74539yqavKaglDM5hFpdJVK0Y5Dr/JOgQ89nQ= |  | ||||||
| github.com/spf13/afero v1.4.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= | github.com/spf13/afero v1.4.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= | ||||||
|  | github.com/spf13/afero v1.5.1 h1:VHu76Lk0LSP1x254maIu2bplkWpfBWI+B+6fdoZprcg= | ||||||
|  | github.com/spf13/afero v1.5.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= | ||||||
| github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= | github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= | ||||||
| github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= | github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= | ||||||
| github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= | github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= | ||||||
| @@ -1056,8 +1102,8 @@ github.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+l | |||||||
| github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= | github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= | ||||||
| github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= | github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= | ||||||
| github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= | github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= | ||||||
| github.com/ulikunitz/xz v0.5.8 h1:ERv8V6GKqVi23rgu5cj9pVfVzJbOqAY2Ntl88O6c2nQ= | github.com/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8= | ||||||
| github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= | github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= | ||||||
| github.com/unknwon/com v0.0.0-20190804042917-757f69c95f3e/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM= | github.com/unknwon/com v0.0.0-20190804042917-757f69c95f3e/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM= | ||||||
| github.com/unknwon/com v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs= | github.com/unknwon/com v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs= | ||||||
| github.com/unknwon/com v1.0.1/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM= | github.com/unknwon/com v1.0.1/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM= | ||||||
| @@ -1079,8 +1125,9 @@ github.com/willf/bitset v1.1.11 h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE= | |||||||
| github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= | github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= | ||||||
| github.com/xanzy/go-gitlab v0.44.0 h1:cEiGhqu7EpFGuei2a2etAwB+x6403E5CvpLn35y+GPs= | github.com/xanzy/go-gitlab v0.44.0 h1:cEiGhqu7EpFGuei2a2etAwB+x6403E5CvpLn35y+GPs= | ||||||
| github.com/xanzy/go-gitlab v0.44.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= | github.com/xanzy/go-gitlab v0.44.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= | ||||||
| github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= |  | ||||||
| github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= | github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= | ||||||
|  | github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= | ||||||
|  | github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= | ||||||
| github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= | github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= | ||||||
| github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= | github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= | ||||||
| github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= | github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= | ||||||
| @@ -1116,8 +1163,10 @@ go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qL | |||||||
| go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||||
| go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= | ||||||
| go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= | go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= | ||||||
| go.mongodb.org/mongo-driver v1.4.4 h1:bsPHfODES+/yx2PCWzUYMH8xj6PVniPI8DQrsJuSXSs= |  | ||||||
| go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= | go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= | ||||||
|  | go.mongodb.org/mongo-driver v1.4.5/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= | ||||||
|  | go.mongodb.org/mongo-driver v1.4.6 h1:rh7GdYmDrb8AQSkF8yteAus8qYOgOASWDOv1BWqBXkU= | ||||||
|  | go.mongodb.org/mongo-driver v1.4.6/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= | ||||||
| go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= | go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= | ||||||
| go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= | go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= | ||||||
| go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= | go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= | ||||||
| @@ -1126,26 +1175,33 @@ 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.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | ||||||
| go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | ||||||
| go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= | go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= | ||||||
| go.opentelemetry.io/otel v0.14.0 h1:YFBEfjCk9MTjaytCNSUkp9Q8lF7QJezA06T71FbQxLQ= |  | ||||||
| go.opentelemetry.io/otel v0.14.0/go.mod h1:vH5xEuwy7Rts0GNtsCW3HYQoZDY+OmBJ6t1bFGGlxgw= | go.opentelemetry.io/otel v0.14.0/go.mod h1:vH5xEuwy7Rts0GNtsCW3HYQoZDY+OmBJ6t1bFGGlxgw= | ||||||
| go.opentelemetry.io/otel v0.16.0 h1:uIWEbdeb4vpKPGITLsRVUS44L5oDbDUCZxn8lkxhmgw= | go.opentelemetry.io/otel v0.17.0 h1:6MKOu8WY4hmfpQ4oQn34u6rYhnf2sWf1LXYO/UFm71U= | ||||||
| go.opentelemetry.io/otel v0.16.0/go.mod h1:e4GKElweB8W2gWUqbghw0B8t5MCTccc9212eNHnOHwA= | go.opentelemetry.io/otel v0.17.0/go.mod h1:Oqtdxmf7UtEvL037ohlgnaYa1h7GtMh0NcSd9eqkC9s= | ||||||
|  | go.opentelemetry.io/otel/metric v0.17.0 h1:t+5EioN8YFXQ2EH+1j6FHCKMUj+57zIDSnSGr/mWuug= | ||||||
|  | go.opentelemetry.io/otel/metric v0.17.0/go.mod h1:hUz9lH1rNXyEwWAhIWCMFWKhYtpASgSnObJFnU26dJ0= | ||||||
|  | go.opentelemetry.io/otel/oteltest v0.17.0 h1:TyAihUowTDLqb4+m5ePAsR71xPJaTBJl4KDArIdi9k4= | ||||||
|  | go.opentelemetry.io/otel/oteltest v0.17.0/go.mod h1:JT/LGFxPwpN+nlsTiinSYjdIx3hZIGqHCpChcIZmdoE= | ||||||
|  | go.opentelemetry.io/otel/trace v0.17.0 h1:SBOj64/GAOyWzs5F680yW1ITIfJkm6cJWL2YAvuL9xY= | ||||||
|  | go.opentelemetry.io/otel/trace v0.17.0/go.mod h1:bIujpqg6ZL6xUTubIUgziI1jSaUPthmabA/ygf/6Cfg= | ||||||
| go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= | go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= | ||||||
| go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= | go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= | ||||||
| go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= | go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= | ||||||
| go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= |  | ||||||
| go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= | 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/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= | go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= | ||||||
| go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= | go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= | ||||||
| go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A= |  | ||||||
| go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= | go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= | ||||||
| go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= | 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/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= | ||||||
| go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= | go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= | ||||||
| go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= | go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= | ||||||
| go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= | go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= | ||||||
| go.uber.org/zap v1.15.0 h1:ZZCA22JRF2gQE5FoNmhmrf7jeJJ2uhqDUNRYKm8dvmM= |  | ||||||
| go.uber.org/zap v1.15.0/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= | ||||||
| golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | ||||||
| golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | ||||||
| golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | ||||||
| @@ -1171,8 +1227,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh | |||||||
| golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||||
| golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||||
| golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | ||||||
| golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= | golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g= | ||||||
| golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | ||||||
| golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||||
| golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||||
| golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= | golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= | ||||||
| @@ -1194,8 +1250,9 @@ golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHl | |||||||
| golang.org/x/lint v0.0.0-20190930215403-16217165b5de/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-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= | golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= | ||||||
| golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= | golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= | ||||||
| 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/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= | ||||||
|  | golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5 h1:2M3HP5CCK1Si9FQhwnzYhXdG6DXeebvUHFpre8QvbyI= | ||||||
|  | golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= | ||||||
| golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= | golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= | ||||||
| golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= | golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= | ||||||
| golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= | golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= | ||||||
| @@ -1203,8 +1260,10 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= | |||||||
| golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= | golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= | ||||||
| golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= | golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= | ||||||
| golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | 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/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||||
|  | golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||||
|  | golang.org/x/mod v0.4.1 h1:Kvvh58BN8Y9/lBi7hTekvtMpm07eUZ0ck5pRHpsMWrY= | ||||||
|  | golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||||
| golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/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-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-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
| @@ -1252,11 +1311,14 @@ golang.org/x/net v0.0.0-20200927032502-5d4f70055728/go.mod h1:/O7V0waA8r7cgGh81R | |||||||
| golang.org/x/net v0.0.0-20200930145003-4acb6c075d10/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= | golang.org/x/net v0.0.0-20200930145003-4acb6c075d10/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= | ||||||
| golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||||
| golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||||
|  | golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/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-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||||
| golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||||
|  | golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||||
| golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||||
| golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew= |  | ||||||
| golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||||
|  | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw= | ||||||
|  | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||||
| golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||||
| golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | ||||||
| @@ -1265,8 +1327,10 @@ golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4Iltr | |||||||
| golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | ||||||
| golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||||
| golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||||
| golang.org/x/oauth2 v0.0.0-20210210192628-66670185b0cd h1:2arJsLyTCJGek+eeptQ3z49Rqndm0f+zvvpwNIXWNIA= | golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||||
| golang.org/x/oauth2 v0.0.0-20210210192628-66670185b0cd/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||||
|  | golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93 h1:alLDrZkL34Y2bnGHfvC1CYBRBXCXgx8AC2vY4MRtYX4= | ||||||
|  | golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||||
| golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | 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-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-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| @@ -1276,8 +1340,9 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ | |||||||
| golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/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-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= |  | ||||||
| golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/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-20201207232520-09787c993a3a h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= | ||||||
|  | golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | 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-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| @@ -1309,6 +1374,7 @@ golang.org/x/sys v0.0.0-20190730183949-1393eb018365/go.mod h1:h1NjWce9XRLGQEsW7w | |||||||
| golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| @@ -1341,11 +1407,15 @@ golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7w | |||||||
| golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/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-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= |  | ||||||
| golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20210228012217-479acdf4ea46 h1:V066+OYJ66oTjnhm4Yrn7SXIwSCiDQJxpBxmvqb1N1c= | ||||||
|  | golang.org/x/sys v0.0.0-20210228012217-479acdf4ea46/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= | golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= | ||||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= | ||||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||||
| @@ -1361,8 +1431,8 @@ golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxb | |||||||
| golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||||
| golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||||
| golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||||
| golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 h1:Hir2P/De0WpUhtrKGGjvSb2YxUgyZ7EFOSLIcSSpiwE= | golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE= | ||||||
| golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/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-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-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-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||||
| @@ -1426,8 +1496,12 @@ golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82u | |||||||
| golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= | golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= | ||||||
| golang.org/x/tools v0.0.0-20200929161345-d7fc70abf50f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= | golang.org/x/tools v0.0.0-20200929161345-d7fc70abf50f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= | ||||||
| golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||||
|  | golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||||
| golang.org/x/tools v0.0.0-20201125231158-b5590deeca9b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | golang.org/x/tools v0.0.0-20201125231158-b5590deeca9b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||||
|  | golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||||
|  | golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||||
| golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||||
|  | golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||||
| golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= | golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= | ||||||
| golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= | golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= | ||||||
| golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
| @@ -1455,6 +1529,9 @@ google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M | |||||||
| google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= | google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= | ||||||
| google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= | google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= | ||||||
| google.golang.org/api v0.32.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= | google.golang.org/api v0.32.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= | ||||||
|  | google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= | ||||||
|  | google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= | ||||||
|  | google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= | ||||||
| google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= | 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.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.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | ||||||
| @@ -1497,6 +1574,11 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D | |||||||
| google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
| google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
| google.golang.org/genproto v0.0.0-20200929141702-51c3e5b607fe/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | google.golang.org/genproto v0.0.0-20200929141702-51c3e5b607fe/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
|  | google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
|  | google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
|  | google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
|  | google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
|  | google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
| google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= | 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.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | ||||||
| google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= | google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= | ||||||
| @@ -1516,6 +1598,9 @@ google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM | |||||||
| google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= | google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= | ||||||
| google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= | google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= | ||||||
| google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= | google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= | ||||||
|  | google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= | ||||||
|  | google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= | ||||||
|  | google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= | ||||||
| google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= | 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-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 v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= | ||||||
| @@ -1566,8 +1651,9 @@ 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.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= | ||||||
| gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
| gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
| gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= |  | ||||||
| gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
|  | gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= | ||||||
|  | gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
| honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | 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-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-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| @@ -1586,11 +1672,9 @@ sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= | |||||||
| sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= | sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= | ||||||
| strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251 h1:mUcz5b3FJbP5Cvdq7Khzn6J9OCUQJaBwgBkCR+MOwSs= | strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251 h1:mUcz5b3FJbP5Cvdq7Khzn6J9OCUQJaBwgBkCR+MOwSs= | ||||||
| strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251/go.mod h1:FJGmPh3vz9jSos1L/F91iAgnC/aejc0wIIrF2ZwJxdY= | strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251/go.mod h1:FJGmPh3vz9jSos1L/F91iAgnC/aejc0wIIrF2ZwJxdY= | ||||||
| xorm.io/builder v0.3.7 h1:2pETdKRK+2QG4mLX4oODHEhn5Z8j1m8sXa7jfu+/SZI= |  | ||||||
| xorm.io/builder v0.3.7/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE= | xorm.io/builder v0.3.7/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE= | ||||||
| xorm.io/builder v0.3.9 h1:Sd65/LdWyO7LR8+Cbd+e7mm3sK/7U9k0jS3999IDHMc= | xorm.io/builder v0.3.9 h1:Sd65/LdWyO7LR8+Cbd+e7mm3sK/7U9k0jS3999IDHMc= | ||||||
| xorm.io/builder v0.3.9/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE= | xorm.io/builder v0.3.9/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE= | ||||||
| xorm.io/xorm v1.0.6 h1:7eco1c8QUpGz+3dztpLDj9gU1bTiQdFC/KtmPaLxUJk= |  | ||||||
| xorm.io/xorm v1.0.6/go.mod h1:uF9EtbhODq5kNWxMbnBEj8hRRZnlcNSz2t2N7HW/+A4= | xorm.io/xorm v1.0.6/go.mod h1:uF9EtbhODq5kNWxMbnBEj8hRRZnlcNSz2t2N7HW/+A4= | ||||||
| xorm.io/xorm v1.0.7 h1:26yBTDVI+CfQpVz2Y88fISh+aiJXIPP4eNoTJlwzsC4= | xorm.io/xorm v1.0.7 h1:26yBTDVI+CfQpVz2Y88fISh+aiJXIPP4eNoTJlwzsC4= | ||||||
| xorm.io/xorm v1.0.7/go.mod h1:uF9EtbhODq5kNWxMbnBEj8hRRZnlcNSz2t2N7HW/+A4= | xorm.io/xorm v1.0.7/go.mod h1:uF9EtbhODq5kNWxMbnBEj8hRRZnlcNSz2t2N7HW/+A4= | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								vendor/github.com/Microsoft/go-winio/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/Microsoft/go-winio/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | *.exe | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| MIT License | The MIT License (MIT) | ||||||
| 
 | 
 | ||||||
| Copyright (c) 2015 Dmitri Shuralyov | Copyright (c) 2015 Microsoft | ||||||
| 
 | 
 | ||||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
| of this software and associated documentation files (the "Software"), to deal | of this software and associated documentation files (the "Software"), to deal | ||||||
| @@ -19,3 +19,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||||
| SOFTWARE. | SOFTWARE. | ||||||
|  | 
 | ||||||
							
								
								
									
										22
									
								
								vendor/github.com/Microsoft/go-winio/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/Microsoft/go-winio/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | # go-winio | ||||||
|  |  | ||||||
|  | This repository contains utilities for efficiently performing Win32 IO operations in | ||||||
|  | Go. Currently, this is focused on accessing named pipes and other file handles, and | ||||||
|  | for using named pipes as a net transport. | ||||||
|  |  | ||||||
|  | This code relies on IO completion ports to avoid blocking IO on system threads, allowing Go | ||||||
|  | to reuse the thread to schedule another goroutine. This limits support to Windows Vista and | ||||||
|  | newer operating systems. This is similar to the implementation of network sockets in Go's net | ||||||
|  | package. | ||||||
|  |  | ||||||
|  | Please see the LICENSE file for licensing information. | ||||||
|  |  | ||||||
|  | This project has adopted the [Microsoft Open Source Code of | ||||||
|  | Conduct](https://opensource.microsoft.com/codeofconduct/). For more information | ||||||
|  | see the [Code of Conduct | ||||||
|  | FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact | ||||||
|  | [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional | ||||||
|  | questions or comments. | ||||||
|  |  | ||||||
|  | Thanks to natefinch for the inspiration for this library. See https://github.com/natefinch/npipe | ||||||
|  | for another named pipe implementation. | ||||||
							
								
								
									
										280
									
								
								vendor/github.com/Microsoft/go-winio/backup.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										280
									
								
								vendor/github.com/Microsoft/go-winio/backup.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,280 @@ | |||||||
|  | // +build windows | ||||||
|  |  | ||||||
|  | package winio | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"encoding/binary" | ||||||
|  | 	"errors" | ||||||
|  | 	"fmt" | ||||||
|  | 	"io" | ||||||
|  | 	"io/ioutil" | ||||||
|  | 	"os" | ||||||
|  | 	"runtime" | ||||||
|  | 	"syscall" | ||||||
|  | 	"unicode/utf16" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | //sys backupRead(h syscall.Handle, b []byte, bytesRead *uint32, abort bool, processSecurity bool, context *uintptr) (err error) = BackupRead | ||||||
|  | //sys backupWrite(h syscall.Handle, b []byte, bytesWritten *uint32, abort bool, processSecurity bool, context *uintptr) (err error) = BackupWrite | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	BackupData = uint32(iota + 1) | ||||||
|  | 	BackupEaData | ||||||
|  | 	BackupSecurity | ||||||
|  | 	BackupAlternateData | ||||||
|  | 	BackupLink | ||||||
|  | 	BackupPropertyData | ||||||
|  | 	BackupObjectId | ||||||
|  | 	BackupReparseData | ||||||
|  | 	BackupSparseBlock | ||||||
|  | 	BackupTxfsData | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	StreamSparseAttributes = uint32(8) | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	WRITE_DAC              = 0x40000 | ||||||
|  | 	WRITE_OWNER            = 0x80000 | ||||||
|  | 	ACCESS_SYSTEM_SECURITY = 0x1000000 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // BackupHeader represents a backup stream of a file. | ||||||
|  | type BackupHeader struct { | ||||||
|  | 	Id         uint32 // The backup stream ID | ||||||
|  | 	Attributes uint32 // Stream attributes | ||||||
|  | 	Size       int64  // The size of the stream in bytes | ||||||
|  | 	Name       string // The name of the stream (for BackupAlternateData only). | ||||||
|  | 	Offset     int64  // The offset of the stream in the file (for BackupSparseBlock only). | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type win32StreamId struct { | ||||||
|  | 	StreamId   uint32 | ||||||
|  | 	Attributes uint32 | ||||||
|  | 	Size       uint64 | ||||||
|  | 	NameSize   uint32 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // BackupStreamReader reads from a stream produced by the BackupRead Win32 API and produces a series | ||||||
|  | // of BackupHeader values. | ||||||
|  | type BackupStreamReader struct { | ||||||
|  | 	r         io.Reader | ||||||
|  | 	bytesLeft int64 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // NewBackupStreamReader produces a BackupStreamReader from any io.Reader. | ||||||
|  | func NewBackupStreamReader(r io.Reader) *BackupStreamReader { | ||||||
|  | 	return &BackupStreamReader{r, 0} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Next returns the next backup stream and prepares for calls to Read(). It skips the remainder of the current stream if | ||||||
|  | // it was not completely read. | ||||||
|  | func (r *BackupStreamReader) Next() (*BackupHeader, error) { | ||||||
|  | 	if r.bytesLeft > 0 { | ||||||
|  | 		if s, ok := r.r.(io.Seeker); ok { | ||||||
|  | 			// Make sure Seek on io.SeekCurrent sometimes succeeds | ||||||
|  | 			// before trying the actual seek. | ||||||
|  | 			if _, err := s.Seek(0, io.SeekCurrent); err == nil { | ||||||
|  | 				if _, err = s.Seek(r.bytesLeft, io.SeekCurrent); err != nil { | ||||||
|  | 					return nil, err | ||||||
|  | 				} | ||||||
|  | 				r.bytesLeft = 0 | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		if _, err := io.Copy(ioutil.Discard, r); err != nil { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	var wsi win32StreamId | ||||||
|  | 	if err := binary.Read(r.r, binary.LittleEndian, &wsi); err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	hdr := &BackupHeader{ | ||||||
|  | 		Id:         wsi.StreamId, | ||||||
|  | 		Attributes: wsi.Attributes, | ||||||
|  | 		Size:       int64(wsi.Size), | ||||||
|  | 	} | ||||||
|  | 	if wsi.NameSize != 0 { | ||||||
|  | 		name := make([]uint16, int(wsi.NameSize/2)) | ||||||
|  | 		if err := binary.Read(r.r, binary.LittleEndian, name); err != nil { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  | 		hdr.Name = syscall.UTF16ToString(name) | ||||||
|  | 	} | ||||||
|  | 	if wsi.StreamId == BackupSparseBlock { | ||||||
|  | 		if err := binary.Read(r.r, binary.LittleEndian, &hdr.Offset); err != nil { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  | 		hdr.Size -= 8 | ||||||
|  | 	} | ||||||
|  | 	r.bytesLeft = hdr.Size | ||||||
|  | 	return hdr, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Read reads from the current backup stream. | ||||||
|  | func (r *BackupStreamReader) Read(b []byte) (int, error) { | ||||||
|  | 	if r.bytesLeft == 0 { | ||||||
|  | 		return 0, io.EOF | ||||||
|  | 	} | ||||||
|  | 	if int64(len(b)) > r.bytesLeft { | ||||||
|  | 		b = b[:r.bytesLeft] | ||||||
|  | 	} | ||||||
|  | 	n, err := r.r.Read(b) | ||||||
|  | 	r.bytesLeft -= int64(n) | ||||||
|  | 	if err == io.EOF { | ||||||
|  | 		err = io.ErrUnexpectedEOF | ||||||
|  | 	} else if r.bytesLeft == 0 && err == nil { | ||||||
|  | 		err = io.EOF | ||||||
|  | 	} | ||||||
|  | 	return n, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // BackupStreamWriter writes a stream compatible with the BackupWrite Win32 API. | ||||||
|  | type BackupStreamWriter struct { | ||||||
|  | 	w         io.Writer | ||||||
|  | 	bytesLeft int64 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // NewBackupStreamWriter produces a BackupStreamWriter on top of an io.Writer. | ||||||
|  | func NewBackupStreamWriter(w io.Writer) *BackupStreamWriter { | ||||||
|  | 	return &BackupStreamWriter{w, 0} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // WriteHeader writes the next backup stream header and prepares for calls to Write(). | ||||||
|  | func (w *BackupStreamWriter) WriteHeader(hdr *BackupHeader) error { | ||||||
|  | 	if w.bytesLeft != 0 { | ||||||
|  | 		return fmt.Errorf("missing %d bytes", w.bytesLeft) | ||||||
|  | 	} | ||||||
|  | 	name := utf16.Encode([]rune(hdr.Name)) | ||||||
|  | 	wsi := win32StreamId{ | ||||||
|  | 		StreamId:   hdr.Id, | ||||||
|  | 		Attributes: hdr.Attributes, | ||||||
|  | 		Size:       uint64(hdr.Size), | ||||||
|  | 		NameSize:   uint32(len(name) * 2), | ||||||
|  | 	} | ||||||
|  | 	if hdr.Id == BackupSparseBlock { | ||||||
|  | 		// Include space for the int64 block offset | ||||||
|  | 		wsi.Size += 8 | ||||||
|  | 	} | ||||||
|  | 	if err := binary.Write(w.w, binary.LittleEndian, &wsi); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	if len(name) != 0 { | ||||||
|  | 		if err := binary.Write(w.w, binary.LittleEndian, name); err != nil { | ||||||
|  | 			return err | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if hdr.Id == BackupSparseBlock { | ||||||
|  | 		if err := binary.Write(w.w, binary.LittleEndian, hdr.Offset); err != nil { | ||||||
|  | 			return err | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	w.bytesLeft = hdr.Size | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Write writes to the current backup stream. | ||||||
|  | func (w *BackupStreamWriter) Write(b []byte) (int, error) { | ||||||
|  | 	if w.bytesLeft < int64(len(b)) { | ||||||
|  | 		return 0, fmt.Errorf("too many bytes by %d", int64(len(b))-w.bytesLeft) | ||||||
|  | 	} | ||||||
|  | 	n, err := w.w.Write(b) | ||||||
|  | 	w.bytesLeft -= int64(n) | ||||||
|  | 	return n, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // BackupFileReader provides an io.ReadCloser interface on top of the BackupRead Win32 API. | ||||||
|  | type BackupFileReader struct { | ||||||
|  | 	f               *os.File | ||||||
|  | 	includeSecurity bool | ||||||
|  | 	ctx             uintptr | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // NewBackupFileReader returns a new BackupFileReader from a file handle. If includeSecurity is true, | ||||||
|  | // Read will attempt to read the security descriptor of the file. | ||||||
|  | func NewBackupFileReader(f *os.File, includeSecurity bool) *BackupFileReader { | ||||||
|  | 	r := &BackupFileReader{f, includeSecurity, 0} | ||||||
|  | 	return r | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Read reads a backup stream from the file by calling the Win32 API BackupRead(). | ||||||
|  | func (r *BackupFileReader) Read(b []byte) (int, error) { | ||||||
|  | 	var bytesRead uint32 | ||||||
|  | 	err := backupRead(syscall.Handle(r.f.Fd()), b, &bytesRead, false, r.includeSecurity, &r.ctx) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return 0, &os.PathError{"BackupRead", r.f.Name(), err} | ||||||
|  | 	} | ||||||
|  | 	runtime.KeepAlive(r.f) | ||||||
|  | 	if bytesRead == 0 { | ||||||
|  | 		return 0, io.EOF | ||||||
|  | 	} | ||||||
|  | 	return int(bytesRead), nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Close frees Win32 resources associated with the BackupFileReader. It does not close | ||||||
|  | // the underlying file. | ||||||
|  | func (r *BackupFileReader) Close() error { | ||||||
|  | 	if r.ctx != 0 { | ||||||
|  | 		backupRead(syscall.Handle(r.f.Fd()), nil, nil, true, false, &r.ctx) | ||||||
|  | 		runtime.KeepAlive(r.f) | ||||||
|  | 		r.ctx = 0 | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // BackupFileWriter provides an io.WriteCloser interface on top of the BackupWrite Win32 API. | ||||||
|  | type BackupFileWriter struct { | ||||||
|  | 	f               *os.File | ||||||
|  | 	includeSecurity bool | ||||||
|  | 	ctx             uintptr | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // NewBackupFileWriter returns a new BackupFileWriter from a file handle. If includeSecurity is true, | ||||||
|  | // Write() will attempt to restore the security descriptor from the stream. | ||||||
|  | func NewBackupFileWriter(f *os.File, includeSecurity bool) *BackupFileWriter { | ||||||
|  | 	w := &BackupFileWriter{f, includeSecurity, 0} | ||||||
|  | 	return w | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Write restores a portion of the file using the provided backup stream. | ||||||
|  | func (w *BackupFileWriter) Write(b []byte) (int, error) { | ||||||
|  | 	var bytesWritten uint32 | ||||||
|  | 	err := backupWrite(syscall.Handle(w.f.Fd()), b, &bytesWritten, false, w.includeSecurity, &w.ctx) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return 0, &os.PathError{"BackupWrite", w.f.Name(), err} | ||||||
|  | 	} | ||||||
|  | 	runtime.KeepAlive(w.f) | ||||||
|  | 	if int(bytesWritten) != len(b) { | ||||||
|  | 		return int(bytesWritten), errors.New("not all bytes could be written") | ||||||
|  | 	} | ||||||
|  | 	return len(b), nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Close frees Win32 resources associated with the BackupFileWriter. It does not | ||||||
|  | // close the underlying file. | ||||||
|  | func (w *BackupFileWriter) Close() error { | ||||||
|  | 	if w.ctx != 0 { | ||||||
|  | 		backupWrite(syscall.Handle(w.f.Fd()), nil, nil, true, false, &w.ctx) | ||||||
|  | 		runtime.KeepAlive(w.f) | ||||||
|  | 		w.ctx = 0 | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // OpenForBackup opens a file or directory, potentially skipping access checks if the backup | ||||||
|  | // or restore privileges have been acquired. | ||||||
|  | // | ||||||
|  | // If the file opened was a directory, it cannot be used with Readdir(). | ||||||
|  | func OpenForBackup(path string, access uint32, share uint32, createmode uint32) (*os.File, error) { | ||||||
|  | 	winPath, err := syscall.UTF16FromString(path) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	h, err := syscall.CreateFile(&winPath[0], access, share, nil, createmode, syscall.FILE_FLAG_BACKUP_SEMANTICS|syscall.FILE_FLAG_OPEN_REPARSE_POINT, 0) | ||||||
|  | 	if err != nil { | ||||||
|  | 		err = &os.PathError{Op: "open", Path: path, Err: err} | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	return os.NewFile(uintptr(h), path), nil | ||||||
|  | } | ||||||
							
								
								
									
										137
									
								
								vendor/github.com/Microsoft/go-winio/ea.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								vendor/github.com/Microsoft/go-winio/ea.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,137 @@ | |||||||
|  | package winio | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"bytes" | ||||||
|  | 	"encoding/binary" | ||||||
|  | 	"errors" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | type fileFullEaInformation struct { | ||||||
|  | 	NextEntryOffset uint32 | ||||||
|  | 	Flags           uint8 | ||||||
|  | 	NameLength      uint8 | ||||||
|  | 	ValueLength     uint16 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | var ( | ||||||
|  | 	fileFullEaInformationSize = binary.Size(&fileFullEaInformation{}) | ||||||
|  |  | ||||||
|  | 	errInvalidEaBuffer = errors.New("invalid extended attribute buffer") | ||||||
|  | 	errEaNameTooLarge  = errors.New("extended attribute name too large") | ||||||
|  | 	errEaValueTooLarge = errors.New("extended attribute value too large") | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // ExtendedAttribute represents a single Windows EA. | ||||||
|  | type ExtendedAttribute struct { | ||||||
|  | 	Name  string | ||||||
|  | 	Value []byte | ||||||
|  | 	Flags uint8 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func parseEa(b []byte) (ea ExtendedAttribute, nb []byte, err error) { | ||||||
|  | 	var info fileFullEaInformation | ||||||
|  | 	err = binary.Read(bytes.NewReader(b), binary.LittleEndian, &info) | ||||||
|  | 	if err != nil { | ||||||
|  | 		err = errInvalidEaBuffer | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	nameOffset := fileFullEaInformationSize | ||||||
|  | 	nameLen := int(info.NameLength) | ||||||
|  | 	valueOffset := nameOffset + int(info.NameLength) + 1 | ||||||
|  | 	valueLen := int(info.ValueLength) | ||||||
|  | 	nextOffset := int(info.NextEntryOffset) | ||||||
|  | 	if valueLen+valueOffset > len(b) || nextOffset < 0 || nextOffset > len(b) { | ||||||
|  | 		err = errInvalidEaBuffer | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	ea.Name = string(b[nameOffset : nameOffset+nameLen]) | ||||||
|  | 	ea.Value = b[valueOffset : valueOffset+valueLen] | ||||||
|  | 	ea.Flags = info.Flags | ||||||
|  | 	if info.NextEntryOffset != 0 { | ||||||
|  | 		nb = b[info.NextEntryOffset:] | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // DecodeExtendedAttributes decodes a list of EAs from a FILE_FULL_EA_INFORMATION | ||||||
|  | // buffer retrieved from BackupRead, ZwQueryEaFile, etc. | ||||||
|  | func DecodeExtendedAttributes(b []byte) (eas []ExtendedAttribute, err error) { | ||||||
|  | 	for len(b) != 0 { | ||||||
|  | 		ea, nb, err := parseEa(b) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		eas = append(eas, ea) | ||||||
|  | 		b = nb | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func writeEa(buf *bytes.Buffer, ea *ExtendedAttribute, last bool) error { | ||||||
|  | 	if int(uint8(len(ea.Name))) != len(ea.Name) { | ||||||
|  | 		return errEaNameTooLarge | ||||||
|  | 	} | ||||||
|  | 	if int(uint16(len(ea.Value))) != len(ea.Value) { | ||||||
|  | 		return errEaValueTooLarge | ||||||
|  | 	} | ||||||
|  | 	entrySize := uint32(fileFullEaInformationSize + len(ea.Name) + 1 + len(ea.Value)) | ||||||
|  | 	withPadding := (entrySize + 3) &^ 3 | ||||||
|  | 	nextOffset := uint32(0) | ||||||
|  | 	if !last { | ||||||
|  | 		nextOffset = withPadding | ||||||
|  | 	} | ||||||
|  | 	info := fileFullEaInformation{ | ||||||
|  | 		NextEntryOffset: nextOffset, | ||||||
|  | 		Flags:           ea.Flags, | ||||||
|  | 		NameLength:      uint8(len(ea.Name)), | ||||||
|  | 		ValueLength:     uint16(len(ea.Value)), | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	err := binary.Write(buf, binary.LittleEndian, &info) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	_, err = buf.Write([]byte(ea.Name)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	err = buf.WriteByte(0) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	_, err = buf.Write(ea.Value) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	_, err = buf.Write([]byte{0, 0, 0}[0 : withPadding-entrySize]) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // EncodeExtendedAttributes encodes a list of EAs into a FILE_FULL_EA_INFORMATION | ||||||
|  | // buffer for use with BackupWrite, ZwSetEaFile, etc. | ||||||
|  | func EncodeExtendedAttributes(eas []ExtendedAttribute) ([]byte, error) { | ||||||
|  | 	var buf bytes.Buffer | ||||||
|  | 	for i := range eas { | ||||||
|  | 		last := false | ||||||
|  | 		if i == len(eas)-1 { | ||||||
|  | 			last = true | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		err := writeEa(&buf, &eas[i], last) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return buf.Bytes(), nil | ||||||
|  | } | ||||||
							
								
								
									
										323
									
								
								vendor/github.com/Microsoft/go-winio/file.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										323
									
								
								vendor/github.com/Microsoft/go-winio/file.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,323 @@ | |||||||
|  | // +build windows | ||||||
|  |  | ||||||
|  | package winio | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"errors" | ||||||
|  | 	"io" | ||||||
|  | 	"runtime" | ||||||
|  | 	"sync" | ||||||
|  | 	"sync/atomic" | ||||||
|  | 	"syscall" | ||||||
|  | 	"time" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | //sys cancelIoEx(file syscall.Handle, o *syscall.Overlapped) (err error) = CancelIoEx | ||||||
|  | //sys createIoCompletionPort(file syscall.Handle, port syscall.Handle, key uintptr, threadCount uint32) (newport syscall.Handle, err error) = CreateIoCompletionPort | ||||||
|  | //sys getQueuedCompletionStatus(port syscall.Handle, bytes *uint32, key *uintptr, o **ioOperation, timeout uint32) (err error) = GetQueuedCompletionStatus | ||||||
|  | //sys setFileCompletionNotificationModes(h syscall.Handle, flags uint8) (err error) = SetFileCompletionNotificationModes | ||||||
|  | //sys wsaGetOverlappedResult(h syscall.Handle, o *syscall.Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult | ||||||
|  |  | ||||||
|  | type atomicBool int32 | ||||||
|  |  | ||||||
|  | func (b *atomicBool) isSet() bool { return atomic.LoadInt32((*int32)(b)) != 0 } | ||||||
|  | func (b *atomicBool) setFalse()   { atomic.StoreInt32((*int32)(b), 0) } | ||||||
|  | func (b *atomicBool) setTrue()    { atomic.StoreInt32((*int32)(b), 1) } | ||||||
|  | func (b *atomicBool) swap(new bool) bool { | ||||||
|  | 	var newInt int32 | ||||||
|  | 	if new { | ||||||
|  | 		newInt = 1 | ||||||
|  | 	} | ||||||
|  | 	return atomic.SwapInt32((*int32)(b), newInt) == 1 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	cFILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1 | ||||||
|  | 	cFILE_SKIP_SET_EVENT_ON_HANDLE        = 2 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | var ( | ||||||
|  | 	ErrFileClosed = errors.New("file has already been closed") | ||||||
|  | 	ErrTimeout    = &timeoutError{} | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | type timeoutError struct{} | ||||||
|  |  | ||||||
|  | func (e *timeoutError) Error() string   { return "i/o timeout" } | ||||||
|  | func (e *timeoutError) Timeout() bool   { return true } | ||||||
|  | func (e *timeoutError) Temporary() bool { return true } | ||||||
|  |  | ||||||
|  | type timeoutChan chan struct{} | ||||||
|  |  | ||||||
|  | var ioInitOnce sync.Once | ||||||
|  | var ioCompletionPort syscall.Handle | ||||||
|  |  | ||||||
|  | // ioResult contains the result of an asynchronous IO operation | ||||||
|  | type ioResult struct { | ||||||
|  | 	bytes uint32 | ||||||
|  | 	err   error | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // ioOperation represents an outstanding asynchronous Win32 IO | ||||||
|  | type ioOperation struct { | ||||||
|  | 	o  syscall.Overlapped | ||||||
|  | 	ch chan ioResult | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func initIo() { | ||||||
|  | 	h, err := createIoCompletionPort(syscall.InvalidHandle, 0, 0, 0xffffffff) | ||||||
|  | 	if err != nil { | ||||||
|  | 		panic(err) | ||||||
|  | 	} | ||||||
|  | 	ioCompletionPort = h | ||||||
|  | 	go ioCompletionProcessor(h) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // win32File implements Reader, Writer, and Closer on a Win32 handle without blocking in a syscall. | ||||||
|  | // It takes ownership of this handle and will close it if it is garbage collected. | ||||||
|  | type win32File struct { | ||||||
|  | 	handle        syscall.Handle | ||||||
|  | 	wg            sync.WaitGroup | ||||||
|  | 	wgLock        sync.RWMutex | ||||||
|  | 	closing       atomicBool | ||||||
|  | 	socket        bool | ||||||
|  | 	readDeadline  deadlineHandler | ||||||
|  | 	writeDeadline deadlineHandler | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type deadlineHandler struct { | ||||||
|  | 	setLock     sync.Mutex | ||||||
|  | 	channel     timeoutChan | ||||||
|  | 	channelLock sync.RWMutex | ||||||
|  | 	timer       *time.Timer | ||||||
|  | 	timedout    atomicBool | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // makeWin32File makes a new win32File from an existing file handle | ||||||
|  | func makeWin32File(h syscall.Handle) (*win32File, error) { | ||||||
|  | 	f := &win32File{handle: h} | ||||||
|  | 	ioInitOnce.Do(initIo) | ||||||
|  | 	_, err := createIoCompletionPort(h, ioCompletionPort, 0, 0xffffffff) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	err = setFileCompletionNotificationModes(h, cFILE_SKIP_COMPLETION_PORT_ON_SUCCESS|cFILE_SKIP_SET_EVENT_ON_HANDLE) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	f.readDeadline.channel = make(timeoutChan) | ||||||
|  | 	f.writeDeadline.channel = make(timeoutChan) | ||||||
|  | 	return f, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func MakeOpenFile(h syscall.Handle) (io.ReadWriteCloser, error) { | ||||||
|  | 	// If we return the result of makeWin32File directly, it can result in an | ||||||
|  | 	// interface-wrapped nil, rather than a nil interface value. | ||||||
|  | 	f, err := makeWin32File(h) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	return f, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // closeHandle closes the resources associated with a Win32 handle | ||||||
|  | func (f *win32File) closeHandle() { | ||||||
|  | 	f.wgLock.Lock() | ||||||
|  | 	// Atomically set that we are closing, releasing the resources only once. | ||||||
|  | 	if !f.closing.swap(true) { | ||||||
|  | 		f.wgLock.Unlock() | ||||||
|  | 		// cancel all IO and wait for it to complete | ||||||
|  | 		cancelIoEx(f.handle, nil) | ||||||
|  | 		f.wg.Wait() | ||||||
|  | 		// at this point, no new IO can start | ||||||
|  | 		syscall.Close(f.handle) | ||||||
|  | 		f.handle = 0 | ||||||
|  | 	} else { | ||||||
|  | 		f.wgLock.Unlock() | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Close closes a win32File. | ||||||
|  | func (f *win32File) Close() error { | ||||||
|  | 	f.closeHandle() | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // prepareIo prepares for a new IO operation. | ||||||
|  | // The caller must call f.wg.Done() when the IO is finished, prior to Close() returning. | ||||||
|  | func (f *win32File) prepareIo() (*ioOperation, error) { | ||||||
|  | 	f.wgLock.RLock() | ||||||
|  | 	if f.closing.isSet() { | ||||||
|  | 		f.wgLock.RUnlock() | ||||||
|  | 		return nil, ErrFileClosed | ||||||
|  | 	} | ||||||
|  | 	f.wg.Add(1) | ||||||
|  | 	f.wgLock.RUnlock() | ||||||
|  | 	c := &ioOperation{} | ||||||
|  | 	c.ch = make(chan ioResult) | ||||||
|  | 	return c, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // ioCompletionProcessor processes completed async IOs forever | ||||||
|  | func ioCompletionProcessor(h syscall.Handle) { | ||||||
|  | 	for { | ||||||
|  | 		var bytes uint32 | ||||||
|  | 		var key uintptr | ||||||
|  | 		var op *ioOperation | ||||||
|  | 		err := getQueuedCompletionStatus(h, &bytes, &key, &op, syscall.INFINITE) | ||||||
|  | 		if op == nil { | ||||||
|  | 			panic(err) | ||||||
|  | 		} | ||||||
|  | 		op.ch <- ioResult{bytes, err} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // asyncIo processes the return value from ReadFile or WriteFile, blocking until | ||||||
|  | // the operation has actually completed. | ||||||
|  | func (f *win32File) asyncIo(c *ioOperation, d *deadlineHandler, bytes uint32, err error) (int, error) { | ||||||
|  | 	if err != syscall.ERROR_IO_PENDING { | ||||||
|  | 		return int(bytes), err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if f.closing.isSet() { | ||||||
|  | 		cancelIoEx(f.handle, &c.o) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var timeout timeoutChan | ||||||
|  | 	if d != nil { | ||||||
|  | 		d.channelLock.Lock() | ||||||
|  | 		timeout = d.channel | ||||||
|  | 		d.channelLock.Unlock() | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var r ioResult | ||||||
|  | 	select { | ||||||
|  | 	case r = <-c.ch: | ||||||
|  | 		err = r.err | ||||||
|  | 		if err == syscall.ERROR_OPERATION_ABORTED { | ||||||
|  | 			if f.closing.isSet() { | ||||||
|  | 				err = ErrFileClosed | ||||||
|  | 			} | ||||||
|  | 		} else if err != nil && f.socket { | ||||||
|  | 			// err is from Win32. Query the overlapped structure to get the winsock error. | ||||||
|  | 			var bytes, flags uint32 | ||||||
|  | 			err = wsaGetOverlappedResult(f.handle, &c.o, &bytes, false, &flags) | ||||||
|  | 		} | ||||||
|  | 	case <-timeout: | ||||||
|  | 		cancelIoEx(f.handle, &c.o) | ||||||
|  | 		r = <-c.ch | ||||||
|  | 		err = r.err | ||||||
|  | 		if err == syscall.ERROR_OPERATION_ABORTED { | ||||||
|  | 			err = ErrTimeout | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// runtime.KeepAlive is needed, as c is passed via native | ||||||
|  | 	// code to ioCompletionProcessor, c must remain alive | ||||||
|  | 	// until the channel read is complete. | ||||||
|  | 	runtime.KeepAlive(c) | ||||||
|  | 	return int(r.bytes), err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Read reads from a file handle. | ||||||
|  | func (f *win32File) Read(b []byte) (int, error) { | ||||||
|  | 	c, err := f.prepareIo() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return 0, err | ||||||
|  | 	} | ||||||
|  | 	defer f.wg.Done() | ||||||
|  |  | ||||||
|  | 	if f.readDeadline.timedout.isSet() { | ||||||
|  | 		return 0, ErrTimeout | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var bytes uint32 | ||||||
|  | 	err = syscall.ReadFile(f.handle, b, &bytes, &c.o) | ||||||
|  | 	n, err := f.asyncIo(c, &f.readDeadline, bytes, err) | ||||||
|  | 	runtime.KeepAlive(b) | ||||||
|  |  | ||||||
|  | 	// Handle EOF conditions. | ||||||
|  | 	if err == nil && n == 0 && len(b) != 0 { | ||||||
|  | 		return 0, io.EOF | ||||||
|  | 	} else if err == syscall.ERROR_BROKEN_PIPE { | ||||||
|  | 		return 0, io.EOF | ||||||
|  | 	} else { | ||||||
|  | 		return n, err | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Write writes to a file handle. | ||||||
|  | func (f *win32File) Write(b []byte) (int, error) { | ||||||
|  | 	c, err := f.prepareIo() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return 0, err | ||||||
|  | 	} | ||||||
|  | 	defer f.wg.Done() | ||||||
|  |  | ||||||
|  | 	if f.writeDeadline.timedout.isSet() { | ||||||
|  | 		return 0, ErrTimeout | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var bytes uint32 | ||||||
|  | 	err = syscall.WriteFile(f.handle, b, &bytes, &c.o) | ||||||
|  | 	n, err := f.asyncIo(c, &f.writeDeadline, bytes, err) | ||||||
|  | 	runtime.KeepAlive(b) | ||||||
|  | 	return n, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (f *win32File) SetReadDeadline(deadline time.Time) error { | ||||||
|  | 	return f.readDeadline.set(deadline) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (f *win32File) SetWriteDeadline(deadline time.Time) error { | ||||||
|  | 	return f.writeDeadline.set(deadline) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (f *win32File) Flush() error { | ||||||
|  | 	return syscall.FlushFileBuffers(f.handle) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (f *win32File) Fd() uintptr { | ||||||
|  | 	return uintptr(f.handle) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (d *deadlineHandler) set(deadline time.Time) error { | ||||||
|  | 	d.setLock.Lock() | ||||||
|  | 	defer d.setLock.Unlock() | ||||||
|  |  | ||||||
|  | 	if d.timer != nil { | ||||||
|  | 		if !d.timer.Stop() { | ||||||
|  | 			<-d.channel | ||||||
|  | 		} | ||||||
|  | 		d.timer = nil | ||||||
|  | 	} | ||||||
|  | 	d.timedout.setFalse() | ||||||
|  |  | ||||||
|  | 	select { | ||||||
|  | 	case <-d.channel: | ||||||
|  | 		d.channelLock.Lock() | ||||||
|  | 		d.channel = make(chan struct{}) | ||||||
|  | 		d.channelLock.Unlock() | ||||||
|  | 	default: | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if deadline.IsZero() { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	timeoutIO := func() { | ||||||
|  | 		d.timedout.setTrue() | ||||||
|  | 		close(d.channel) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	now := time.Now() | ||||||
|  | 	duration := deadline.Sub(now) | ||||||
|  | 	if deadline.After(now) { | ||||||
|  | 		// Deadline is in the future, set a timer to wait | ||||||
|  | 		d.timer = time.AfterFunc(duration, timeoutIO) | ||||||
|  | 	} else { | ||||||
|  | 		// Deadline is in the past. Cancel all pending IO now. | ||||||
|  | 		timeoutIO() | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
							
								
								
									
										61
									
								
								vendor/github.com/Microsoft/go-winio/fileinfo.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								vendor/github.com/Microsoft/go-winio/fileinfo.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,61 @@ | |||||||
|  | // +build windows | ||||||
|  |  | ||||||
|  | package winio | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"os" | ||||||
|  | 	"runtime" | ||||||
|  | 	"syscall" | ||||||
|  | 	"unsafe" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | //sys getFileInformationByHandleEx(h syscall.Handle, class uint32, buffer *byte, size uint32) (err error) = GetFileInformationByHandleEx | ||||||
|  | //sys setFileInformationByHandle(h syscall.Handle, class uint32, buffer *byte, size uint32) (err error) = SetFileInformationByHandle | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	fileBasicInfo = 0 | ||||||
|  | 	fileIDInfo    = 0x12 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // FileBasicInfo contains file access time and file attributes information. | ||||||
|  | type FileBasicInfo struct { | ||||||
|  | 	CreationTime, LastAccessTime, LastWriteTime, ChangeTime syscall.Filetime | ||||||
|  | 	FileAttributes                                          uint32 | ||||||
|  | 	pad                                                     uint32 // padding | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // GetFileBasicInfo retrieves times and attributes for a file. | ||||||
|  | func GetFileBasicInfo(f *os.File) (*FileBasicInfo, error) { | ||||||
|  | 	bi := &FileBasicInfo{} | ||||||
|  | 	if err := getFileInformationByHandleEx(syscall.Handle(f.Fd()), fileBasicInfo, (*byte)(unsafe.Pointer(bi)), uint32(unsafe.Sizeof(*bi))); err != nil { | ||||||
|  | 		return nil, &os.PathError{Op: "GetFileInformationByHandleEx", Path: f.Name(), Err: err} | ||||||
|  | 	} | ||||||
|  | 	runtime.KeepAlive(f) | ||||||
|  | 	return bi, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SetFileBasicInfo sets times and attributes for a file. | ||||||
|  | func SetFileBasicInfo(f *os.File, bi *FileBasicInfo) error { | ||||||
|  | 	if err := setFileInformationByHandle(syscall.Handle(f.Fd()), fileBasicInfo, (*byte)(unsafe.Pointer(bi)), uint32(unsafe.Sizeof(*bi))); err != nil { | ||||||
|  | 		return &os.PathError{Op: "SetFileInformationByHandle", Path: f.Name(), Err: err} | ||||||
|  | 	} | ||||||
|  | 	runtime.KeepAlive(f) | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // FileIDInfo contains the volume serial number and file ID for a file. This pair should be | ||||||
|  | // unique on a system. | ||||||
|  | type FileIDInfo struct { | ||||||
|  | 	VolumeSerialNumber uint64 | ||||||
|  | 	FileID             [16]byte | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // GetFileID retrieves the unique (volume, file ID) pair for a file. | ||||||
|  | func GetFileID(f *os.File) (*FileIDInfo, error) { | ||||||
|  | 	fileID := &FileIDInfo{} | ||||||
|  | 	if err := getFileInformationByHandleEx(syscall.Handle(f.Fd()), fileIDInfo, (*byte)(unsafe.Pointer(fileID)), uint32(unsafe.Sizeof(*fileID))); err != nil { | ||||||
|  | 		return nil, &os.PathError{Op: "GetFileInformationByHandleEx", Path: f.Name(), Err: err} | ||||||
|  | 	} | ||||||
|  | 	runtime.KeepAlive(f) | ||||||
|  | 	return fileID, nil | ||||||
|  | } | ||||||
							
								
								
									
										9
									
								
								vendor/github.com/Microsoft/go-winio/go.mod
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/Microsoft/go-winio/go.mod
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | module github.com/Microsoft/go-winio | ||||||
|  |  | ||||||
|  | go 1.12 | ||||||
|  |  | ||||||
|  | require ( | ||||||
|  | 	github.com/pkg/errors v0.9.1 | ||||||
|  | 	github.com/sirupsen/logrus v1.4.1 | ||||||
|  | 	golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3 | ||||||
|  | ) | ||||||
							
								
								
									
										16
									
								
								vendor/github.com/Microsoft/go-winio/go.sum
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/Microsoft/go-winio/go.sum
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | 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/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= | ||||||
|  | github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
|  | 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/sirupsen/logrus v1.4.1 h1:GL2rEmy6nsikmW0r8opw9JIRScdMF5hA8cOYLH7In1k= | ||||||
|  | github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= | ||||||
|  | github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
|  | github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= | ||||||
|  | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= | ||||||
|  | golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
|  | golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3 h1:7TYNF4UdlohbFwpNH04CoPMp1cHUZgO1Ebq5r2hIjfo= | ||||||
|  | golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
							
								
								
									
										305
									
								
								vendor/github.com/Microsoft/go-winio/hvsock.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										305
									
								
								vendor/github.com/Microsoft/go-winio/hvsock.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,305 @@ | |||||||
|  | package winio | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 	"io" | ||||||
|  | 	"net" | ||||||
|  | 	"os" | ||||||
|  | 	"syscall" | ||||||
|  | 	"time" | ||||||
|  | 	"unsafe" | ||||||
|  |  | ||||||
|  | 	"github.com/Microsoft/go-winio/pkg/guid" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | //sys bind(s syscall.Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socketError] = ws2_32.bind | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	afHvSock = 34 // AF_HYPERV | ||||||
|  |  | ||||||
|  | 	socketError = ^uintptr(0) | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // An HvsockAddr is an address for a AF_HYPERV socket. | ||||||
|  | type HvsockAddr struct { | ||||||
|  | 	VMID      guid.GUID | ||||||
|  | 	ServiceID guid.GUID | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type rawHvsockAddr struct { | ||||||
|  | 	Family    uint16 | ||||||
|  | 	_         uint16 | ||||||
|  | 	VMID      guid.GUID | ||||||
|  | 	ServiceID guid.GUID | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Network returns the address's network name, "hvsock". | ||||||
|  | func (addr *HvsockAddr) Network() string { | ||||||
|  | 	return "hvsock" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (addr *HvsockAddr) String() string { | ||||||
|  | 	return fmt.Sprintf("%s:%s", &addr.VMID, &addr.ServiceID) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // VsockServiceID returns an hvsock service ID corresponding to the specified AF_VSOCK port. | ||||||
|  | func VsockServiceID(port uint32) guid.GUID { | ||||||
|  | 	g, _ := guid.FromString("00000000-facb-11e6-bd58-64006a7986d3") | ||||||
|  | 	g.Data1 = port | ||||||
|  | 	return g | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (addr *HvsockAddr) raw() rawHvsockAddr { | ||||||
|  | 	return rawHvsockAddr{ | ||||||
|  | 		Family:    afHvSock, | ||||||
|  | 		VMID:      addr.VMID, | ||||||
|  | 		ServiceID: addr.ServiceID, | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (addr *HvsockAddr) fromRaw(raw *rawHvsockAddr) { | ||||||
|  | 	addr.VMID = raw.VMID | ||||||
|  | 	addr.ServiceID = raw.ServiceID | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // HvsockListener is a socket listener for the AF_HYPERV address family. | ||||||
|  | type HvsockListener struct { | ||||||
|  | 	sock *win32File | ||||||
|  | 	addr HvsockAddr | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // HvsockConn is a connected socket of the AF_HYPERV address family. | ||||||
|  | type HvsockConn struct { | ||||||
|  | 	sock          *win32File | ||||||
|  | 	local, remote HvsockAddr | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func newHvSocket() (*win32File, error) { | ||||||
|  | 	fd, err := syscall.Socket(afHvSock, syscall.SOCK_STREAM, 1) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, os.NewSyscallError("socket", err) | ||||||
|  | 	} | ||||||
|  | 	f, err := makeWin32File(fd) | ||||||
|  | 	if err != nil { | ||||||
|  | 		syscall.Close(fd) | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	f.socket = true | ||||||
|  | 	return f, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // ListenHvsock listens for connections on the specified hvsock address. | ||||||
|  | func ListenHvsock(addr *HvsockAddr) (_ *HvsockListener, err error) { | ||||||
|  | 	l := &HvsockListener{addr: *addr} | ||||||
|  | 	sock, err := newHvSocket() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, l.opErr("listen", err) | ||||||
|  | 	} | ||||||
|  | 	sa := addr.raw() | ||||||
|  | 	err = bind(sock.handle, unsafe.Pointer(&sa), int32(unsafe.Sizeof(sa))) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, l.opErr("listen", os.NewSyscallError("socket", err)) | ||||||
|  | 	} | ||||||
|  | 	err = syscall.Listen(sock.handle, 16) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, l.opErr("listen", os.NewSyscallError("listen", err)) | ||||||
|  | 	} | ||||||
|  | 	return &HvsockListener{sock: sock, addr: *addr}, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (l *HvsockListener) opErr(op string, err error) error { | ||||||
|  | 	return &net.OpError{Op: op, Net: "hvsock", Addr: &l.addr, Err: err} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Addr returns the listener's network address. | ||||||
|  | func (l *HvsockListener) Addr() net.Addr { | ||||||
|  | 	return &l.addr | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Accept waits for the next connection and returns it. | ||||||
|  | func (l *HvsockListener) Accept() (_ net.Conn, err error) { | ||||||
|  | 	sock, err := newHvSocket() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, l.opErr("accept", err) | ||||||
|  | 	} | ||||||
|  | 	defer func() { | ||||||
|  | 		if sock != nil { | ||||||
|  | 			sock.Close() | ||||||
|  | 		} | ||||||
|  | 	}() | ||||||
|  | 	c, err := l.sock.prepareIo() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, l.opErr("accept", err) | ||||||
|  | 	} | ||||||
|  | 	defer l.sock.wg.Done() | ||||||
|  |  | ||||||
|  | 	// AcceptEx, per documentation, requires an extra 16 bytes per address. | ||||||
|  | 	const addrlen = uint32(16 + unsafe.Sizeof(rawHvsockAddr{})) | ||||||
|  | 	var addrbuf [addrlen * 2]byte | ||||||
|  |  | ||||||
|  | 	var bytes uint32 | ||||||
|  | 	err = syscall.AcceptEx(l.sock.handle, sock.handle, &addrbuf[0], 0, addrlen, addrlen, &bytes, &c.o) | ||||||
|  | 	_, err = l.sock.asyncIo(c, nil, bytes, err) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, l.opErr("accept", os.NewSyscallError("acceptex", err)) | ||||||
|  | 	} | ||||||
|  | 	conn := &HvsockConn{ | ||||||
|  | 		sock: sock, | ||||||
|  | 	} | ||||||
|  | 	conn.local.fromRaw((*rawHvsockAddr)(unsafe.Pointer(&addrbuf[0]))) | ||||||
|  | 	conn.remote.fromRaw((*rawHvsockAddr)(unsafe.Pointer(&addrbuf[addrlen]))) | ||||||
|  | 	sock = nil | ||||||
|  | 	return conn, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Close closes the listener, causing any pending Accept calls to fail. | ||||||
|  | func (l *HvsockListener) Close() error { | ||||||
|  | 	return l.sock.Close() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* Need to finish ConnectEx handling | ||||||
|  | func DialHvsock(ctx context.Context, addr *HvsockAddr) (*HvsockConn, error) { | ||||||
|  | 	sock, err := newHvSocket() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	defer func() { | ||||||
|  | 		if sock != nil { | ||||||
|  | 			sock.Close() | ||||||
|  | 		} | ||||||
|  | 	}() | ||||||
|  | 	c, err := sock.prepareIo() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	defer sock.wg.Done() | ||||||
|  | 	var bytes uint32 | ||||||
|  | 	err = windows.ConnectEx(windows.Handle(sock.handle), sa, nil, 0, &bytes, &c.o) | ||||||
|  | 	_, err = sock.asyncIo(ctx, c, nil, bytes, err) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	conn := &HvsockConn{ | ||||||
|  | 		sock:   sock, | ||||||
|  | 		remote: *addr, | ||||||
|  | 	} | ||||||
|  | 	sock = nil | ||||||
|  | 	return conn, nil | ||||||
|  | } | ||||||
|  | */ | ||||||
|  |  | ||||||
|  | func (conn *HvsockConn) opErr(op string, err error) error { | ||||||
|  | 	return &net.OpError{Op: op, Net: "hvsock", Source: &conn.local, Addr: &conn.remote, Err: err} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (conn *HvsockConn) Read(b []byte) (int, error) { | ||||||
|  | 	c, err := conn.sock.prepareIo() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return 0, conn.opErr("read", err) | ||||||
|  | 	} | ||||||
|  | 	defer conn.sock.wg.Done() | ||||||
|  | 	buf := syscall.WSABuf{Buf: &b[0], Len: uint32(len(b))} | ||||||
|  | 	var flags, bytes uint32 | ||||||
|  | 	err = syscall.WSARecv(conn.sock.handle, &buf, 1, &bytes, &flags, &c.o, nil) | ||||||
|  | 	n, err := conn.sock.asyncIo(c, &conn.sock.readDeadline, bytes, err) | ||||||
|  | 	if err != nil { | ||||||
|  | 		if _, ok := err.(syscall.Errno); ok { | ||||||
|  | 			err = os.NewSyscallError("wsarecv", err) | ||||||
|  | 		} | ||||||
|  | 		return 0, conn.opErr("read", err) | ||||||
|  | 	} else if n == 0 { | ||||||
|  | 		err = io.EOF | ||||||
|  | 	} | ||||||
|  | 	return n, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (conn *HvsockConn) Write(b []byte) (int, error) { | ||||||
|  | 	t := 0 | ||||||
|  | 	for len(b) != 0 { | ||||||
|  | 		n, err := conn.write(b) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return t + n, err | ||||||
|  | 		} | ||||||
|  | 		t += n | ||||||
|  | 		b = b[n:] | ||||||
|  | 	} | ||||||
|  | 	return t, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (conn *HvsockConn) write(b []byte) (int, error) { | ||||||
|  | 	c, err := conn.sock.prepareIo() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return 0, conn.opErr("write", err) | ||||||
|  | 	} | ||||||
|  | 	defer conn.sock.wg.Done() | ||||||
|  | 	buf := syscall.WSABuf{Buf: &b[0], Len: uint32(len(b))} | ||||||
|  | 	var bytes uint32 | ||||||
|  | 	err = syscall.WSASend(conn.sock.handle, &buf, 1, &bytes, 0, &c.o, nil) | ||||||
|  | 	n, err := conn.sock.asyncIo(c, &conn.sock.writeDeadline, bytes, err) | ||||||
|  | 	if err != nil { | ||||||
|  | 		if _, ok := err.(syscall.Errno); ok { | ||||||
|  | 			err = os.NewSyscallError("wsasend", err) | ||||||
|  | 		} | ||||||
|  | 		return 0, conn.opErr("write", err) | ||||||
|  | 	} | ||||||
|  | 	return n, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Close closes the socket connection, failing any pending read or write calls. | ||||||
|  | func (conn *HvsockConn) Close() error { | ||||||
|  | 	return conn.sock.Close() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (conn *HvsockConn) shutdown(how int) error { | ||||||
|  | 	err := syscall.Shutdown(conn.sock.handle, syscall.SHUT_RD) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return os.NewSyscallError("shutdown", err) | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // CloseRead shuts down the read end of the socket. | ||||||
|  | func (conn *HvsockConn) CloseRead() error { | ||||||
|  | 	err := conn.shutdown(syscall.SHUT_RD) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return conn.opErr("close", err) | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // CloseWrite shuts down the write end of the socket, notifying the other endpoint that | ||||||
|  | // no more data will be written. | ||||||
|  | func (conn *HvsockConn) CloseWrite() error { | ||||||
|  | 	err := conn.shutdown(syscall.SHUT_WR) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return conn.opErr("close", err) | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // LocalAddr returns the local address of the connection. | ||||||
|  | func (conn *HvsockConn) LocalAddr() net.Addr { | ||||||
|  | 	return &conn.local | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // RemoteAddr returns the remote address of the connection. | ||||||
|  | func (conn *HvsockConn) RemoteAddr() net.Addr { | ||||||
|  | 	return &conn.remote | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SetDeadline implements the net.Conn SetDeadline method. | ||||||
|  | func (conn *HvsockConn) SetDeadline(t time.Time) error { | ||||||
|  | 	conn.SetReadDeadline(t) | ||||||
|  | 	conn.SetWriteDeadline(t) | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SetReadDeadline implements the net.Conn SetReadDeadline method. | ||||||
|  | func (conn *HvsockConn) SetReadDeadline(t time.Time) error { | ||||||
|  | 	return conn.sock.SetReadDeadline(t) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SetWriteDeadline implements the net.Conn SetWriteDeadline method. | ||||||
|  | func (conn *HvsockConn) SetWriteDeadline(t time.Time) error { | ||||||
|  | 	return conn.sock.SetWriteDeadline(t) | ||||||
|  | } | ||||||
							
								
								
									
										517
									
								
								vendor/github.com/Microsoft/go-winio/pipe.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										517
									
								
								vendor/github.com/Microsoft/go-winio/pipe.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,517 @@ | |||||||
|  | // +build windows | ||||||
|  |  | ||||||
|  | package winio | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"context" | ||||||
|  | 	"errors" | ||||||
|  | 	"fmt" | ||||||
|  | 	"io" | ||||||
|  | 	"net" | ||||||
|  | 	"os" | ||||||
|  | 	"runtime" | ||||||
|  | 	"syscall" | ||||||
|  | 	"time" | ||||||
|  | 	"unsafe" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | //sys connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) = ConnectNamedPipe | ||||||
|  | //sys createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error)  [failretval==syscall.InvalidHandle] = CreateNamedPipeW | ||||||
|  | //sys createFile(name string, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = CreateFileW | ||||||
|  | //sys getNamedPipeInfo(pipe syscall.Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) = GetNamedPipeInfo | ||||||
|  | //sys getNamedPipeHandleState(pipe syscall.Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW | ||||||
|  | //sys localAlloc(uFlags uint32, length uint32) (ptr uintptr) = LocalAlloc | ||||||
|  | //sys ntCreateNamedPipeFile(pipe *syscall.Handle, access uint32, oa *objectAttributes, iosb *ioStatusBlock, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (status ntstatus) = ntdll.NtCreateNamedPipeFile | ||||||
|  | //sys rtlNtStatusToDosError(status ntstatus) (winerr error) = ntdll.RtlNtStatusToDosErrorNoTeb | ||||||
|  | //sys rtlDosPathNameToNtPathName(name *uint16, ntName *unicodeString, filePart uintptr, reserved uintptr) (status ntstatus) = ntdll.RtlDosPathNameToNtPathName_U | ||||||
|  | //sys rtlDefaultNpAcl(dacl *uintptr) (status ntstatus) = ntdll.RtlDefaultNpAcl | ||||||
|  |  | ||||||
|  | type ioStatusBlock struct { | ||||||
|  | 	Status, Information uintptr | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type objectAttributes struct { | ||||||
|  | 	Length             uintptr | ||||||
|  | 	RootDirectory      uintptr | ||||||
|  | 	ObjectName         *unicodeString | ||||||
|  | 	Attributes         uintptr | ||||||
|  | 	SecurityDescriptor *securityDescriptor | ||||||
|  | 	SecurityQoS        uintptr | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type unicodeString struct { | ||||||
|  | 	Length        uint16 | ||||||
|  | 	MaximumLength uint16 | ||||||
|  | 	Buffer        uintptr | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type securityDescriptor struct { | ||||||
|  | 	Revision byte | ||||||
|  | 	Sbz1     byte | ||||||
|  | 	Control  uint16 | ||||||
|  | 	Owner    uintptr | ||||||
|  | 	Group    uintptr | ||||||
|  | 	Sacl     uintptr | ||||||
|  | 	Dacl     uintptr | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type ntstatus int32 | ||||||
|  |  | ||||||
|  | func (status ntstatus) Err() error { | ||||||
|  | 	if status >= 0 { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	return rtlNtStatusToDosError(status) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	cERROR_PIPE_BUSY      = syscall.Errno(231) | ||||||
|  | 	cERROR_NO_DATA        = syscall.Errno(232) | ||||||
|  | 	cERROR_PIPE_CONNECTED = syscall.Errno(535) | ||||||
|  | 	cERROR_SEM_TIMEOUT    = syscall.Errno(121) | ||||||
|  |  | ||||||
|  | 	cSECURITY_SQOS_PRESENT = 0x100000 | ||||||
|  | 	cSECURITY_ANONYMOUS    = 0 | ||||||
|  |  | ||||||
|  | 	cPIPE_TYPE_MESSAGE = 4 | ||||||
|  |  | ||||||
|  | 	cPIPE_READMODE_MESSAGE = 2 | ||||||
|  |  | ||||||
|  | 	cFILE_OPEN   = 1 | ||||||
|  | 	cFILE_CREATE = 2 | ||||||
|  |  | ||||||
|  | 	cFILE_PIPE_MESSAGE_TYPE          = 1 | ||||||
|  | 	cFILE_PIPE_REJECT_REMOTE_CLIENTS = 2 | ||||||
|  |  | ||||||
|  | 	cSE_DACL_PRESENT = 4 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | var ( | ||||||
|  | 	// ErrPipeListenerClosed is returned for pipe operations on listeners that have been closed. | ||||||
|  | 	// This error should match net.errClosing since docker takes a dependency on its text. | ||||||
|  | 	ErrPipeListenerClosed = errors.New("use of closed network connection") | ||||||
|  |  | ||||||
|  | 	errPipeWriteClosed = errors.New("pipe has been closed for write") | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | type win32Pipe struct { | ||||||
|  | 	*win32File | ||||||
|  | 	path string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type win32MessageBytePipe struct { | ||||||
|  | 	win32Pipe | ||||||
|  | 	writeClosed bool | ||||||
|  | 	readEOF     bool | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type pipeAddress string | ||||||
|  |  | ||||||
|  | func (f *win32Pipe) LocalAddr() net.Addr { | ||||||
|  | 	return pipeAddress(f.path) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (f *win32Pipe) RemoteAddr() net.Addr { | ||||||
|  | 	return pipeAddress(f.path) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (f *win32Pipe) SetDeadline(t time.Time) error { | ||||||
|  | 	f.SetReadDeadline(t) | ||||||
|  | 	f.SetWriteDeadline(t) | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // CloseWrite closes the write side of a message pipe in byte mode. | ||||||
|  | func (f *win32MessageBytePipe) CloseWrite() error { | ||||||
|  | 	if f.writeClosed { | ||||||
|  | 		return errPipeWriteClosed | ||||||
|  | 	} | ||||||
|  | 	err := f.win32File.Flush() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	_, err = f.win32File.Write(nil) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	f.writeClosed = true | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Write writes bytes to a message pipe in byte mode. Zero-byte writes are ignored, since | ||||||
|  | // they are used to implement CloseWrite(). | ||||||
|  | func (f *win32MessageBytePipe) Write(b []byte) (int, error) { | ||||||
|  | 	if f.writeClosed { | ||||||
|  | 		return 0, errPipeWriteClosed | ||||||
|  | 	} | ||||||
|  | 	if len(b) == 0 { | ||||||
|  | 		return 0, nil | ||||||
|  | 	} | ||||||
|  | 	return f.win32File.Write(b) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Read reads bytes from a message pipe in byte mode. A read of a zero-byte message on a message | ||||||
|  | // mode pipe will return io.EOF, as will all subsequent reads. | ||||||
|  | func (f *win32MessageBytePipe) Read(b []byte) (int, error) { | ||||||
|  | 	if f.readEOF { | ||||||
|  | 		return 0, io.EOF | ||||||
|  | 	} | ||||||
|  | 	n, err := f.win32File.Read(b) | ||||||
|  | 	if err == io.EOF { | ||||||
|  | 		// If this was the result of a zero-byte read, then | ||||||
|  | 		// it is possible that the read was due to a zero-size | ||||||
|  | 		// message. Since we are simulating CloseWrite with a | ||||||
|  | 		// zero-byte message, ensure that all future Read() calls | ||||||
|  | 		// also return EOF. | ||||||
|  | 		f.readEOF = true | ||||||
|  | 	} else if err == syscall.ERROR_MORE_DATA { | ||||||
|  | 		// ERROR_MORE_DATA indicates that the pipe's read mode is message mode | ||||||
|  | 		// and the message still has more bytes. Treat this as a success, since | ||||||
|  | 		// this package presents all named pipes as byte streams. | ||||||
|  | 		err = nil | ||||||
|  | 	} | ||||||
|  | 	return n, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s pipeAddress) Network() string { | ||||||
|  | 	return "pipe" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s pipeAddress) String() string { | ||||||
|  | 	return string(s) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // tryDialPipe attempts to dial the pipe at `path` until `ctx` cancellation or timeout. | ||||||
|  | func tryDialPipe(ctx context.Context, path *string, access uint32) (syscall.Handle, error) { | ||||||
|  | 	for { | ||||||
|  |  | ||||||
|  | 		select { | ||||||
|  | 		case <-ctx.Done(): | ||||||
|  | 			return syscall.Handle(0), ctx.Err() | ||||||
|  | 		default: | ||||||
|  | 			h, err := createFile(*path, access, 0, nil, syscall.OPEN_EXISTING, syscall.FILE_FLAG_OVERLAPPED|cSECURITY_SQOS_PRESENT|cSECURITY_ANONYMOUS, 0) | ||||||
|  | 			if err == nil { | ||||||
|  | 				return h, nil | ||||||
|  | 			} | ||||||
|  | 			if err != cERROR_PIPE_BUSY { | ||||||
|  | 				return h, &os.PathError{Err: err, Op: "open", Path: *path} | ||||||
|  | 			} | ||||||
|  | 			// Wait 10 msec and try again. This is a rather simplistic | ||||||
|  | 			// view, as we always try each 10 milliseconds. | ||||||
|  | 			time.Sleep(10 * time.Millisecond) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // DialPipe connects to a named pipe by path, timing out if the connection | ||||||
|  | // takes longer than the specified duration. If timeout is nil, then we use | ||||||
|  | // a default timeout of 2 seconds.  (We do not use WaitNamedPipe.) | ||||||
|  | func DialPipe(path string, timeout *time.Duration) (net.Conn, error) { | ||||||
|  | 	var absTimeout time.Time | ||||||
|  | 	if timeout != nil { | ||||||
|  | 		absTimeout = time.Now().Add(*timeout) | ||||||
|  | 	} else { | ||||||
|  | 		absTimeout = time.Now().Add(2 * time.Second) | ||||||
|  | 	} | ||||||
|  | 	ctx, _ := context.WithDeadline(context.Background(), absTimeout) | ||||||
|  | 	conn, err := DialPipeContext(ctx, path) | ||||||
|  | 	if err == context.DeadlineExceeded { | ||||||
|  | 		return nil, ErrTimeout | ||||||
|  | 	} | ||||||
|  | 	return conn, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // DialPipeContext attempts to connect to a named pipe by `path` until `ctx` | ||||||
|  | // cancellation or timeout. | ||||||
|  | func DialPipeContext(ctx context.Context, path string) (net.Conn, error) { | ||||||
|  | 	return DialPipeAccess(ctx, path, syscall.GENERIC_READ|syscall.GENERIC_WRITE) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // DialPipeAccess attempts to connect to a named pipe by `path` with `access` until `ctx` | ||||||
|  | // cancellation or timeout. | ||||||
|  | func DialPipeAccess(ctx context.Context, path string, access uint32) (net.Conn, error) { | ||||||
|  | 	var err error | ||||||
|  | 	var h syscall.Handle | ||||||
|  | 	h, err = tryDialPipe(ctx, &path, access) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var flags uint32 | ||||||
|  | 	err = getNamedPipeInfo(h, &flags, nil, nil, nil) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	f, err := makeWin32File(h) | ||||||
|  | 	if err != nil { | ||||||
|  | 		syscall.Close(h) | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// If the pipe is in message mode, return a message byte pipe, which | ||||||
|  | 	// supports CloseWrite(). | ||||||
|  | 	if flags&cPIPE_TYPE_MESSAGE != 0 { | ||||||
|  | 		return &win32MessageBytePipe{ | ||||||
|  | 			win32Pipe: win32Pipe{win32File: f, path: path}, | ||||||
|  | 		}, nil | ||||||
|  | 	} | ||||||
|  | 	return &win32Pipe{win32File: f, path: path}, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type acceptResponse struct { | ||||||
|  | 	f   *win32File | ||||||
|  | 	err error | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type win32PipeListener struct { | ||||||
|  | 	firstHandle syscall.Handle | ||||||
|  | 	path        string | ||||||
|  | 	config      PipeConfig | ||||||
|  | 	acceptCh    chan (chan acceptResponse) | ||||||
|  | 	closeCh     chan int | ||||||
|  | 	doneCh      chan int | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func makeServerPipeHandle(path string, sd []byte, c *PipeConfig, first bool) (syscall.Handle, error) { | ||||||
|  | 	path16, err := syscall.UTF16FromString(path) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return 0, &os.PathError{Op: "open", Path: path, Err: err} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var oa objectAttributes | ||||||
|  | 	oa.Length = unsafe.Sizeof(oa) | ||||||
|  |  | ||||||
|  | 	var ntPath unicodeString | ||||||
|  | 	if err := rtlDosPathNameToNtPathName(&path16[0], &ntPath, 0, 0).Err(); err != nil { | ||||||
|  | 		return 0, &os.PathError{Op: "open", Path: path, Err: err} | ||||||
|  | 	} | ||||||
|  | 	defer localFree(ntPath.Buffer) | ||||||
|  | 	oa.ObjectName = &ntPath | ||||||
|  |  | ||||||
|  | 	// The security descriptor is only needed for the first pipe. | ||||||
|  | 	if first { | ||||||
|  | 		if sd != nil { | ||||||
|  | 			len := uint32(len(sd)) | ||||||
|  | 			sdb := localAlloc(0, len) | ||||||
|  | 			defer localFree(sdb) | ||||||
|  | 			copy((*[0xffff]byte)(unsafe.Pointer(sdb))[:], sd) | ||||||
|  | 			oa.SecurityDescriptor = (*securityDescriptor)(unsafe.Pointer(sdb)) | ||||||
|  | 		} else { | ||||||
|  | 			// Construct the default named pipe security descriptor. | ||||||
|  | 			var dacl uintptr | ||||||
|  | 			if err := rtlDefaultNpAcl(&dacl).Err(); err != nil { | ||||||
|  | 				return 0, fmt.Errorf("getting default named pipe ACL: %s", err) | ||||||
|  | 			} | ||||||
|  | 			defer localFree(dacl) | ||||||
|  |  | ||||||
|  | 			sdb := &securityDescriptor{ | ||||||
|  | 				Revision: 1, | ||||||
|  | 				Control:  cSE_DACL_PRESENT, | ||||||
|  | 				Dacl:     dacl, | ||||||
|  | 			} | ||||||
|  | 			oa.SecurityDescriptor = sdb | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	typ := uint32(cFILE_PIPE_REJECT_REMOTE_CLIENTS) | ||||||
|  | 	if c.MessageMode { | ||||||
|  | 		typ |= cFILE_PIPE_MESSAGE_TYPE | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	disposition := uint32(cFILE_OPEN) | ||||||
|  | 	access := uint32(syscall.GENERIC_READ | syscall.GENERIC_WRITE | syscall.SYNCHRONIZE) | ||||||
|  | 	if first { | ||||||
|  | 		disposition = cFILE_CREATE | ||||||
|  | 		// By not asking for read or write access, the named pipe file system | ||||||
|  | 		// will put this pipe into an initially disconnected state, blocking | ||||||
|  | 		// client connections until the next call with first == false. | ||||||
|  | 		access = syscall.SYNCHRONIZE | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	timeout := int64(-50 * 10000) // 50ms | ||||||
|  |  | ||||||
|  | 	var ( | ||||||
|  | 		h    syscall.Handle | ||||||
|  | 		iosb ioStatusBlock | ||||||
|  | 	) | ||||||
|  | 	err = ntCreateNamedPipeFile(&h, access, &oa, &iosb, syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE, disposition, 0, typ, 0, 0, 0xffffffff, uint32(c.InputBufferSize), uint32(c.OutputBufferSize), &timeout).Err() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return 0, &os.PathError{Op: "open", Path: path, Err: err} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	runtime.KeepAlive(ntPath) | ||||||
|  | 	return h, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (l *win32PipeListener) makeServerPipe() (*win32File, error) { | ||||||
|  | 	h, err := makeServerPipeHandle(l.path, nil, &l.config, false) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	f, err := makeWin32File(h) | ||||||
|  | 	if err != nil { | ||||||
|  | 		syscall.Close(h) | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	return f, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (l *win32PipeListener) makeConnectedServerPipe() (*win32File, error) { | ||||||
|  | 	p, err := l.makeServerPipe() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Wait for the client to connect. | ||||||
|  | 	ch := make(chan error) | ||||||
|  | 	go func(p *win32File) { | ||||||
|  | 		ch <- connectPipe(p) | ||||||
|  | 	}(p) | ||||||
|  |  | ||||||
|  | 	select { | ||||||
|  | 	case err = <-ch: | ||||||
|  | 		if err != nil { | ||||||
|  | 			p.Close() | ||||||
|  | 			p = nil | ||||||
|  | 		} | ||||||
|  | 	case <-l.closeCh: | ||||||
|  | 		// Abort the connect request by closing the handle. | ||||||
|  | 		p.Close() | ||||||
|  | 		p = nil | ||||||
|  | 		err = <-ch | ||||||
|  | 		if err == nil || err == ErrFileClosed { | ||||||
|  | 			err = ErrPipeListenerClosed | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return p, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (l *win32PipeListener) listenerRoutine() { | ||||||
|  | 	closed := false | ||||||
|  | 	for !closed { | ||||||
|  | 		select { | ||||||
|  | 		case <-l.closeCh: | ||||||
|  | 			closed = true | ||||||
|  | 		case responseCh := <-l.acceptCh: | ||||||
|  | 			var ( | ||||||
|  | 				p   *win32File | ||||||
|  | 				err error | ||||||
|  | 			) | ||||||
|  | 			for { | ||||||
|  | 				p, err = l.makeConnectedServerPipe() | ||||||
|  | 				// If the connection was immediately closed by the client, try | ||||||
|  | 				// again. | ||||||
|  | 				if err != cERROR_NO_DATA { | ||||||
|  | 					break | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			responseCh <- acceptResponse{p, err} | ||||||
|  | 			closed = err == ErrPipeListenerClosed | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	syscall.Close(l.firstHandle) | ||||||
|  | 	l.firstHandle = 0 | ||||||
|  | 	// Notify Close() and Accept() callers that the handle has been closed. | ||||||
|  | 	close(l.doneCh) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // PipeConfig contain configuration for the pipe listener. | ||||||
|  | type PipeConfig struct { | ||||||
|  | 	// SecurityDescriptor contains a Windows security descriptor in SDDL format. | ||||||
|  | 	SecurityDescriptor string | ||||||
|  |  | ||||||
|  | 	// MessageMode determines whether the pipe is in byte or message mode. In either | ||||||
|  | 	// case the pipe is read in byte mode by default. The only practical difference in | ||||||
|  | 	// this implementation is that CloseWrite() is only supported for message mode pipes; | ||||||
|  | 	// CloseWrite() is implemented as a zero-byte write, but zero-byte writes are only | ||||||
|  | 	// transferred to the reader (and returned as io.EOF in this implementation) | ||||||
|  | 	// when the pipe is in message mode. | ||||||
|  | 	MessageMode bool | ||||||
|  |  | ||||||
|  | 	// InputBufferSize specifies the size of the input buffer, in bytes. | ||||||
|  | 	InputBufferSize int32 | ||||||
|  |  | ||||||
|  | 	// OutputBufferSize specifies the size of the output buffer, in bytes. | ||||||
|  | 	OutputBufferSize int32 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // ListenPipe creates a listener on a Windows named pipe path, e.g. \\.\pipe\mypipe. | ||||||
|  | // The pipe must not already exist. | ||||||
|  | func ListenPipe(path string, c *PipeConfig) (net.Listener, error) { | ||||||
|  | 	var ( | ||||||
|  | 		sd  []byte | ||||||
|  | 		err error | ||||||
|  | 	) | ||||||
|  | 	if c == nil { | ||||||
|  | 		c = &PipeConfig{} | ||||||
|  | 	} | ||||||
|  | 	if c.SecurityDescriptor != "" { | ||||||
|  | 		sd, err = SddlToSecurityDescriptor(c.SecurityDescriptor) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	h, err := makeServerPipeHandle(path, sd, c, true) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	l := &win32PipeListener{ | ||||||
|  | 		firstHandle: h, | ||||||
|  | 		path:        path, | ||||||
|  | 		config:      *c, | ||||||
|  | 		acceptCh:    make(chan (chan acceptResponse)), | ||||||
|  | 		closeCh:     make(chan int), | ||||||
|  | 		doneCh:      make(chan int), | ||||||
|  | 	} | ||||||
|  | 	go l.listenerRoutine() | ||||||
|  | 	return l, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func connectPipe(p *win32File) error { | ||||||
|  | 	c, err := p.prepareIo() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	defer p.wg.Done() | ||||||
|  |  | ||||||
|  | 	err = connectNamedPipe(p.handle, &c.o) | ||||||
|  | 	_, err = p.asyncIo(c, nil, 0, err) | ||||||
|  | 	if err != nil && err != cERROR_PIPE_CONNECTED { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (l *win32PipeListener) Accept() (net.Conn, error) { | ||||||
|  | 	ch := make(chan acceptResponse) | ||||||
|  | 	select { | ||||||
|  | 	case l.acceptCh <- ch: | ||||||
|  | 		response := <-ch | ||||||
|  | 		err := response.err | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  | 		if l.config.MessageMode { | ||||||
|  | 			return &win32MessageBytePipe{ | ||||||
|  | 				win32Pipe: win32Pipe{win32File: response.f, path: l.path}, | ||||||
|  | 			}, nil | ||||||
|  | 		} | ||||||
|  | 		return &win32Pipe{win32File: response.f, path: l.path}, nil | ||||||
|  | 	case <-l.doneCh: | ||||||
|  | 		return nil, ErrPipeListenerClosed | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (l *win32PipeListener) Close() error { | ||||||
|  | 	select { | ||||||
|  | 	case l.closeCh <- 1: | ||||||
|  | 		<-l.doneCh | ||||||
|  | 	case <-l.doneCh: | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (l *win32PipeListener) Addr() net.Addr { | ||||||
|  | 	return pipeAddress(l.path) | ||||||
|  | } | ||||||
							
								
								
									
										235
									
								
								vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										235
									
								
								vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,235 @@ | |||||||
|  | // Package guid provides a GUID type. The backing structure for a GUID is | ||||||
|  | // identical to that used by the golang.org/x/sys/windows GUID type. | ||||||
|  | // There are two main binary encodings used for a GUID, the big-endian encoding, | ||||||
|  | // and the Windows (mixed-endian) encoding. See here for details: | ||||||
|  | // https://en.wikipedia.org/wiki/Universally_unique_identifier#Encoding | ||||||
|  | package guid | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"crypto/rand" | ||||||
|  | 	"crypto/sha1" | ||||||
|  | 	"encoding" | ||||||
|  | 	"encoding/binary" | ||||||
|  | 	"fmt" | ||||||
|  | 	"strconv" | ||||||
|  |  | ||||||
|  | 	"golang.org/x/sys/windows" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // Variant specifies which GUID variant (or "type") of the GUID. It determines | ||||||
|  | // how the entirety of the rest of the GUID is interpreted. | ||||||
|  | type Variant uint8 | ||||||
|  |  | ||||||
|  | // The variants specified by RFC 4122. | ||||||
|  | const ( | ||||||
|  | 	// VariantUnknown specifies a GUID variant which does not conform to one of | ||||||
|  | 	// the variant encodings specified in RFC 4122. | ||||||
|  | 	VariantUnknown Variant = iota | ||||||
|  | 	VariantNCS | ||||||
|  | 	VariantRFC4122 | ||||||
|  | 	VariantMicrosoft | ||||||
|  | 	VariantFuture | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // Version specifies how the bits in the GUID were generated. For instance, a | ||||||
|  | // version 4 GUID is randomly generated, and a version 5 is generated from the | ||||||
|  | // hash of an input string. | ||||||
|  | type Version uint8 | ||||||
|  |  | ||||||
|  | var _ = (encoding.TextMarshaler)(GUID{}) | ||||||
|  | var _ = (encoding.TextUnmarshaler)(&GUID{}) | ||||||
|  |  | ||||||
|  | // GUID represents a GUID/UUID. It has the same structure as | ||||||
|  | // golang.org/x/sys/windows.GUID so that it can be used with functions expecting | ||||||
|  | // that type. It is defined as its own type so that stringification and | ||||||
|  | // marshaling can be supported. The representation matches that used by native | ||||||
|  | // Windows code. | ||||||
|  | type GUID windows.GUID | ||||||
|  |  | ||||||
|  | // NewV4 returns a new version 4 (pseudorandom) GUID, as defined by RFC 4122. | ||||||
|  | func NewV4() (GUID, error) { | ||||||
|  | 	var b [16]byte | ||||||
|  | 	if _, err := rand.Read(b[:]); err != nil { | ||||||
|  | 		return GUID{}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	g := FromArray(b) | ||||||
|  | 	g.setVersion(4) // Version 4 means randomly generated. | ||||||
|  | 	g.setVariant(VariantRFC4122) | ||||||
|  |  | ||||||
|  | 	return g, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // NewV5 returns a new version 5 (generated from a string via SHA-1 hashing) | ||||||
|  | // GUID, as defined by RFC 4122. The RFC is unclear on the encoding of the name, | ||||||
|  | // and the sample code treats it as a series of bytes, so we do the same here. | ||||||
|  | // | ||||||
|  | // Some implementations, such as those found on Windows, treat the name as a | ||||||
|  | // big-endian UTF16 stream of bytes. If that is desired, the string can be | ||||||
|  | // encoded as such before being passed to this function. | ||||||
|  | func NewV5(namespace GUID, name []byte) (GUID, error) { | ||||||
|  | 	b := sha1.New() | ||||||
|  | 	namespaceBytes := namespace.ToArray() | ||||||
|  | 	b.Write(namespaceBytes[:]) | ||||||
|  | 	b.Write(name) | ||||||
|  |  | ||||||
|  | 	a := [16]byte{} | ||||||
|  | 	copy(a[:], b.Sum(nil)) | ||||||
|  |  | ||||||
|  | 	g := FromArray(a) | ||||||
|  | 	g.setVersion(5) // Version 5 means generated from a string. | ||||||
|  | 	g.setVariant(VariantRFC4122) | ||||||
|  |  | ||||||
|  | 	return g, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func fromArray(b [16]byte, order binary.ByteOrder) GUID { | ||||||
|  | 	var g GUID | ||||||
|  | 	g.Data1 = order.Uint32(b[0:4]) | ||||||
|  | 	g.Data2 = order.Uint16(b[4:6]) | ||||||
|  | 	g.Data3 = order.Uint16(b[6:8]) | ||||||
|  | 	copy(g.Data4[:], b[8:16]) | ||||||
|  | 	return g | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (g GUID) toArray(order binary.ByteOrder) [16]byte { | ||||||
|  | 	b := [16]byte{} | ||||||
|  | 	order.PutUint32(b[0:4], g.Data1) | ||||||
|  | 	order.PutUint16(b[4:6], g.Data2) | ||||||
|  | 	order.PutUint16(b[6:8], g.Data3) | ||||||
|  | 	copy(b[8:16], g.Data4[:]) | ||||||
|  | 	return b | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // FromArray constructs a GUID from a big-endian encoding array of 16 bytes. | ||||||
|  | func FromArray(b [16]byte) GUID { | ||||||
|  | 	return fromArray(b, binary.BigEndian) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // ToArray returns an array of 16 bytes representing the GUID in big-endian | ||||||
|  | // encoding. | ||||||
|  | func (g GUID) ToArray() [16]byte { | ||||||
|  | 	return g.toArray(binary.BigEndian) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // FromWindowsArray constructs a GUID from a Windows encoding array of bytes. | ||||||
|  | func FromWindowsArray(b [16]byte) GUID { | ||||||
|  | 	return fromArray(b, binary.LittleEndian) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // ToWindowsArray returns an array of 16 bytes representing the GUID in Windows | ||||||
|  | // encoding. | ||||||
|  | func (g GUID) ToWindowsArray() [16]byte { | ||||||
|  | 	return g.toArray(binary.LittleEndian) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (g GUID) String() string { | ||||||
|  | 	return fmt.Sprintf( | ||||||
|  | 		"%08x-%04x-%04x-%04x-%012x", | ||||||
|  | 		g.Data1, | ||||||
|  | 		g.Data2, | ||||||
|  | 		g.Data3, | ||||||
|  | 		g.Data4[:2], | ||||||
|  | 		g.Data4[2:]) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // FromString parses a string containing a GUID and returns the GUID. The only | ||||||
|  | // format currently supported is the `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | ||||||
|  | // format. | ||||||
|  | func FromString(s string) (GUID, error) { | ||||||
|  | 	if len(s) != 36 { | ||||||
|  | 		return GUID{}, fmt.Errorf("invalid GUID %q", s) | ||||||
|  | 	} | ||||||
|  | 	if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' { | ||||||
|  | 		return GUID{}, fmt.Errorf("invalid GUID %q", s) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var g GUID | ||||||
|  |  | ||||||
|  | 	data1, err := strconv.ParseUint(s[0:8], 16, 32) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return GUID{}, fmt.Errorf("invalid GUID %q", s) | ||||||
|  | 	} | ||||||
|  | 	g.Data1 = uint32(data1) | ||||||
|  |  | ||||||
|  | 	data2, err := strconv.ParseUint(s[9:13], 16, 16) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return GUID{}, fmt.Errorf("invalid GUID %q", s) | ||||||
|  | 	} | ||||||
|  | 	g.Data2 = uint16(data2) | ||||||
|  |  | ||||||
|  | 	data3, err := strconv.ParseUint(s[14:18], 16, 16) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return GUID{}, fmt.Errorf("invalid GUID %q", s) | ||||||
|  | 	} | ||||||
|  | 	g.Data3 = uint16(data3) | ||||||
|  |  | ||||||
|  | 	for i, x := range []int{19, 21, 24, 26, 28, 30, 32, 34} { | ||||||
|  | 		v, err := strconv.ParseUint(s[x:x+2], 16, 8) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return GUID{}, fmt.Errorf("invalid GUID %q", s) | ||||||
|  | 		} | ||||||
|  | 		g.Data4[i] = uint8(v) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return g, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (g *GUID) setVariant(v Variant) { | ||||||
|  | 	d := g.Data4[0] | ||||||
|  | 	switch v { | ||||||
|  | 	case VariantNCS: | ||||||
|  | 		d = (d & 0x7f) | ||||||
|  | 	case VariantRFC4122: | ||||||
|  | 		d = (d & 0x3f) | 0x80 | ||||||
|  | 	case VariantMicrosoft: | ||||||
|  | 		d = (d & 0x1f) | 0xc0 | ||||||
|  | 	case VariantFuture: | ||||||
|  | 		d = (d & 0x0f) | 0xe0 | ||||||
|  | 	case VariantUnknown: | ||||||
|  | 		fallthrough | ||||||
|  | 	default: | ||||||
|  | 		panic(fmt.Sprintf("invalid variant: %d", v)) | ||||||
|  | 	} | ||||||
|  | 	g.Data4[0] = d | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Variant returns the GUID variant, as defined in RFC 4122. | ||||||
|  | func (g GUID) Variant() Variant { | ||||||
|  | 	b := g.Data4[0] | ||||||
|  | 	if b&0x80 == 0 { | ||||||
|  | 		return VariantNCS | ||||||
|  | 	} else if b&0xc0 == 0x80 { | ||||||
|  | 		return VariantRFC4122 | ||||||
|  | 	} else if b&0xe0 == 0xc0 { | ||||||
|  | 		return VariantMicrosoft | ||||||
|  | 	} else if b&0xe0 == 0xe0 { | ||||||
|  | 		return VariantFuture | ||||||
|  | 	} | ||||||
|  | 	return VariantUnknown | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (g *GUID) setVersion(v Version) { | ||||||
|  | 	g.Data3 = (g.Data3 & 0x0fff) | (uint16(v) << 12) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Version returns the GUID version, as defined in RFC 4122. | ||||||
|  | func (g GUID) Version() Version { | ||||||
|  | 	return Version((g.Data3 & 0xF000) >> 12) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // MarshalText returns the textual representation of the GUID. | ||||||
|  | func (g GUID) MarshalText() ([]byte, error) { | ||||||
|  | 	return []byte(g.String()), nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // UnmarshalText takes the textual representation of a GUID, and unmarhals it | ||||||
|  | // into this GUID. | ||||||
|  | func (g *GUID) UnmarshalText(text []byte) error { | ||||||
|  | 	g2, err := FromString(string(text)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	*g = g2 | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
							
								
								
									
										202
									
								
								vendor/github.com/Microsoft/go-winio/privilege.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										202
									
								
								vendor/github.com/Microsoft/go-winio/privilege.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,202 @@ | |||||||
|  | // +build windows | ||||||
|  |  | ||||||
|  | package winio | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"bytes" | ||||||
|  | 	"encoding/binary" | ||||||
|  | 	"fmt" | ||||||
|  | 	"runtime" | ||||||
|  | 	"sync" | ||||||
|  | 	"syscall" | ||||||
|  | 	"unicode/utf16" | ||||||
|  |  | ||||||
|  | 	"golang.org/x/sys/windows" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | //sys adjustTokenPrivileges(token windows.Token, releaseAll bool, input *byte, outputSize uint32, output *byte, requiredSize *uint32) (success bool, err error) [true] = advapi32.AdjustTokenPrivileges | ||||||
|  | //sys impersonateSelf(level uint32) (err error) = advapi32.ImpersonateSelf | ||||||
|  | //sys revertToSelf() (err error) = advapi32.RevertToSelf | ||||||
|  | //sys openThreadToken(thread syscall.Handle, accessMask uint32, openAsSelf bool, token *windows.Token) (err error) = advapi32.OpenThreadToken | ||||||
|  | //sys getCurrentThread() (h syscall.Handle) = GetCurrentThread | ||||||
|  | //sys lookupPrivilegeValue(systemName string, name string, luid *uint64) (err error) = advapi32.LookupPrivilegeValueW | ||||||
|  | //sys lookupPrivilegeName(systemName string, luid *uint64, buffer *uint16, size *uint32) (err error) = advapi32.LookupPrivilegeNameW | ||||||
|  | //sys lookupPrivilegeDisplayName(systemName string, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) = advapi32.LookupPrivilegeDisplayNameW | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	SE_PRIVILEGE_ENABLED = 2 | ||||||
|  |  | ||||||
|  | 	ERROR_NOT_ALL_ASSIGNED syscall.Errno = 1300 | ||||||
|  |  | ||||||
|  | 	SeBackupPrivilege  = "SeBackupPrivilege" | ||||||
|  | 	SeRestorePrivilege = "SeRestorePrivilege" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	securityAnonymous = iota | ||||||
|  | 	securityIdentification | ||||||
|  | 	securityImpersonation | ||||||
|  | 	securityDelegation | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | var ( | ||||||
|  | 	privNames     = make(map[string]uint64) | ||||||
|  | 	privNameMutex sync.Mutex | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // PrivilegeError represents an error enabling privileges. | ||||||
|  | type PrivilegeError struct { | ||||||
|  | 	privileges []uint64 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (e *PrivilegeError) Error() string { | ||||||
|  | 	s := "" | ||||||
|  | 	if len(e.privileges) > 1 { | ||||||
|  | 		s = "Could not enable privileges " | ||||||
|  | 	} else { | ||||||
|  | 		s = "Could not enable privilege " | ||||||
|  | 	} | ||||||
|  | 	for i, p := range e.privileges { | ||||||
|  | 		if i != 0 { | ||||||
|  | 			s += ", " | ||||||
|  | 		} | ||||||
|  | 		s += `"` | ||||||
|  | 		s += getPrivilegeName(p) | ||||||
|  | 		s += `"` | ||||||
|  | 	} | ||||||
|  | 	return s | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // RunWithPrivilege enables a single privilege for a function call. | ||||||
|  | func RunWithPrivilege(name string, fn func() error) error { | ||||||
|  | 	return RunWithPrivileges([]string{name}, fn) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // RunWithPrivileges enables privileges for a function call. | ||||||
|  | func RunWithPrivileges(names []string, fn func() error) error { | ||||||
|  | 	privileges, err := mapPrivileges(names) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	runtime.LockOSThread() | ||||||
|  | 	defer runtime.UnlockOSThread() | ||||||
|  | 	token, err := newThreadToken() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	defer releaseThreadToken(token) | ||||||
|  | 	err = adjustPrivileges(token, privileges, SE_PRIVILEGE_ENABLED) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	return fn() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func mapPrivileges(names []string) ([]uint64, error) { | ||||||
|  | 	var privileges []uint64 | ||||||
|  | 	privNameMutex.Lock() | ||||||
|  | 	defer privNameMutex.Unlock() | ||||||
|  | 	for _, name := range names { | ||||||
|  | 		p, ok := privNames[name] | ||||||
|  | 		if !ok { | ||||||
|  | 			err := lookupPrivilegeValue("", name, &p) | ||||||
|  | 			if err != nil { | ||||||
|  | 				return nil, err | ||||||
|  | 			} | ||||||
|  | 			privNames[name] = p | ||||||
|  | 		} | ||||||
|  | 		privileges = append(privileges, p) | ||||||
|  | 	} | ||||||
|  | 	return privileges, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // EnableProcessPrivileges enables privileges globally for the process. | ||||||
|  | func EnableProcessPrivileges(names []string) error { | ||||||
|  | 	return enableDisableProcessPrivilege(names, SE_PRIVILEGE_ENABLED) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // DisableProcessPrivileges disables privileges globally for the process. | ||||||
|  | func DisableProcessPrivileges(names []string) error { | ||||||
|  | 	return enableDisableProcessPrivilege(names, 0) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func enableDisableProcessPrivilege(names []string, action uint32) error { | ||||||
|  | 	privileges, err := mapPrivileges(names) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	p, _ := windows.GetCurrentProcess() | ||||||
|  | 	var token windows.Token | ||||||
|  | 	err = windows.OpenProcessToken(p, windows.TOKEN_ADJUST_PRIVILEGES|windows.TOKEN_QUERY, &token) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	defer token.Close() | ||||||
|  | 	return adjustPrivileges(token, privileges, action) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func adjustPrivileges(token windows.Token, privileges []uint64, action uint32) error { | ||||||
|  | 	var b bytes.Buffer | ||||||
|  | 	binary.Write(&b, binary.LittleEndian, uint32(len(privileges))) | ||||||
|  | 	for _, p := range privileges { | ||||||
|  | 		binary.Write(&b, binary.LittleEndian, p) | ||||||
|  | 		binary.Write(&b, binary.LittleEndian, action) | ||||||
|  | 	} | ||||||
|  | 	prevState := make([]byte, b.Len()) | ||||||
|  | 	reqSize := uint32(0) | ||||||
|  | 	success, err := adjustTokenPrivileges(token, false, &b.Bytes()[0], uint32(len(prevState)), &prevState[0], &reqSize) | ||||||
|  | 	if !success { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	if err == ERROR_NOT_ALL_ASSIGNED { | ||||||
|  | 		return &PrivilegeError{privileges} | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func getPrivilegeName(luid uint64) string { | ||||||
|  | 	var nameBuffer [256]uint16 | ||||||
|  | 	bufSize := uint32(len(nameBuffer)) | ||||||
|  | 	err := lookupPrivilegeName("", &luid, &nameBuffer[0], &bufSize) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return fmt.Sprintf("<unknown privilege %d>", luid) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var displayNameBuffer [256]uint16 | ||||||
|  | 	displayBufSize := uint32(len(displayNameBuffer)) | ||||||
|  | 	var langID uint32 | ||||||
|  | 	err = lookupPrivilegeDisplayName("", &nameBuffer[0], &displayNameBuffer[0], &displayBufSize, &langID) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return fmt.Sprintf("<unknown privilege %s>", string(utf16.Decode(nameBuffer[:bufSize]))) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return string(utf16.Decode(displayNameBuffer[:displayBufSize])) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func newThreadToken() (windows.Token, error) { | ||||||
|  | 	err := impersonateSelf(securityImpersonation) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return 0, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var token windows.Token | ||||||
|  | 	err = openThreadToken(getCurrentThread(), syscall.TOKEN_ADJUST_PRIVILEGES|syscall.TOKEN_QUERY, false, &token) | ||||||
|  | 	if err != nil { | ||||||
|  | 		rerr := revertToSelf() | ||||||
|  | 		if rerr != nil { | ||||||
|  | 			panic(rerr) | ||||||
|  | 		} | ||||||
|  | 		return 0, err | ||||||
|  | 	} | ||||||
|  | 	return token, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func releaseThreadToken(h windows.Token) { | ||||||
|  | 	err := revertToSelf() | ||||||
|  | 	if err != nil { | ||||||
|  | 		panic(err) | ||||||
|  | 	} | ||||||
|  | 	h.Close() | ||||||
|  | } | ||||||
							
								
								
									
										128
									
								
								vendor/github.com/Microsoft/go-winio/reparse.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								vendor/github.com/Microsoft/go-winio/reparse.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,128 @@ | |||||||
|  | package winio | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"bytes" | ||||||
|  | 	"encoding/binary" | ||||||
|  | 	"fmt" | ||||||
|  | 	"strings" | ||||||
|  | 	"unicode/utf16" | ||||||
|  | 	"unsafe" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	reparseTagMountPoint = 0xA0000003 | ||||||
|  | 	reparseTagSymlink    = 0xA000000C | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | type reparseDataBuffer struct { | ||||||
|  | 	ReparseTag           uint32 | ||||||
|  | 	ReparseDataLength    uint16 | ||||||
|  | 	Reserved             uint16 | ||||||
|  | 	SubstituteNameOffset uint16 | ||||||
|  | 	SubstituteNameLength uint16 | ||||||
|  | 	PrintNameOffset      uint16 | ||||||
|  | 	PrintNameLength      uint16 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // ReparsePoint describes a Win32 symlink or mount point. | ||||||
|  | type ReparsePoint struct { | ||||||
|  | 	Target       string | ||||||
|  | 	IsMountPoint bool | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // UnsupportedReparsePointError is returned when trying to decode a non-symlink or | ||||||
|  | // mount point reparse point. | ||||||
|  | type UnsupportedReparsePointError struct { | ||||||
|  | 	Tag uint32 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (e *UnsupportedReparsePointError) Error() string { | ||||||
|  | 	return fmt.Sprintf("unsupported reparse point %x", e.Tag) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // DecodeReparsePoint decodes a Win32 REPARSE_DATA_BUFFER structure containing either a symlink | ||||||
|  | // or a mount point. | ||||||
|  | func DecodeReparsePoint(b []byte) (*ReparsePoint, error) { | ||||||
|  | 	tag := binary.LittleEndian.Uint32(b[0:4]) | ||||||
|  | 	return DecodeReparsePointData(tag, b[8:]) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func DecodeReparsePointData(tag uint32, b []byte) (*ReparsePoint, error) { | ||||||
|  | 	isMountPoint := false | ||||||
|  | 	switch tag { | ||||||
|  | 	case reparseTagMountPoint: | ||||||
|  | 		isMountPoint = true | ||||||
|  | 	case reparseTagSymlink: | ||||||
|  | 	default: | ||||||
|  | 		return nil, &UnsupportedReparsePointError{tag} | ||||||
|  | 	} | ||||||
|  | 	nameOffset := 8 + binary.LittleEndian.Uint16(b[4:6]) | ||||||
|  | 	if !isMountPoint { | ||||||
|  | 		nameOffset += 4 | ||||||
|  | 	} | ||||||
|  | 	nameLength := binary.LittleEndian.Uint16(b[6:8]) | ||||||
|  | 	name := make([]uint16, nameLength/2) | ||||||
|  | 	err := binary.Read(bytes.NewReader(b[nameOffset:nameOffset+nameLength]), binary.LittleEndian, &name) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	return &ReparsePoint{string(utf16.Decode(name)), isMountPoint}, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func isDriveLetter(c byte) bool { | ||||||
|  | 	return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // EncodeReparsePoint encodes a Win32 REPARSE_DATA_BUFFER structure describing a symlink or | ||||||
|  | // mount point. | ||||||
|  | func EncodeReparsePoint(rp *ReparsePoint) []byte { | ||||||
|  | 	// Generate an NT path and determine if this is a relative path. | ||||||
|  | 	var ntTarget string | ||||||
|  | 	relative := false | ||||||
|  | 	if strings.HasPrefix(rp.Target, `\\?\`) { | ||||||
|  | 		ntTarget = `\??\` + rp.Target[4:] | ||||||
|  | 	} else if strings.HasPrefix(rp.Target, `\\`) { | ||||||
|  | 		ntTarget = `\??\UNC\` + rp.Target[2:] | ||||||
|  | 	} else if len(rp.Target) >= 2 && isDriveLetter(rp.Target[0]) && rp.Target[1] == ':' { | ||||||
|  | 		ntTarget = `\??\` + rp.Target | ||||||
|  | 	} else { | ||||||
|  | 		ntTarget = rp.Target | ||||||
|  | 		relative = true | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// The paths must be NUL-terminated even though they are counted strings. | ||||||
|  | 	target16 := utf16.Encode([]rune(rp.Target + "\x00")) | ||||||
|  | 	ntTarget16 := utf16.Encode([]rune(ntTarget + "\x00")) | ||||||
|  |  | ||||||
|  | 	size := int(unsafe.Sizeof(reparseDataBuffer{})) - 8 | ||||||
|  | 	size += len(ntTarget16)*2 + len(target16)*2 | ||||||
|  |  | ||||||
|  | 	tag := uint32(reparseTagMountPoint) | ||||||
|  | 	if !rp.IsMountPoint { | ||||||
|  | 		tag = reparseTagSymlink | ||||||
|  | 		size += 4 // Add room for symlink flags | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	data := reparseDataBuffer{ | ||||||
|  | 		ReparseTag:           tag, | ||||||
|  | 		ReparseDataLength:    uint16(size), | ||||||
|  | 		SubstituteNameOffset: 0, | ||||||
|  | 		SubstituteNameLength: uint16((len(ntTarget16) - 1) * 2), | ||||||
|  | 		PrintNameOffset:      uint16(len(ntTarget16) * 2), | ||||||
|  | 		PrintNameLength:      uint16((len(target16) - 1) * 2), | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var b bytes.Buffer | ||||||
|  | 	binary.Write(&b, binary.LittleEndian, &data) | ||||||
|  | 	if !rp.IsMountPoint { | ||||||
|  | 		flags := uint32(0) | ||||||
|  | 		if relative { | ||||||
|  | 			flags |= 1 | ||||||
|  | 		} | ||||||
|  | 		binary.Write(&b, binary.LittleEndian, flags) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	binary.Write(&b, binary.LittleEndian, ntTarget16) | ||||||
|  | 	binary.Write(&b, binary.LittleEndian, target16) | ||||||
|  | 	return b.Bytes() | ||||||
|  | } | ||||||
							
								
								
									
										98
									
								
								vendor/github.com/Microsoft/go-winio/sd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								vendor/github.com/Microsoft/go-winio/sd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | |||||||
|  | // +build windows | ||||||
|  |  | ||||||
|  | package winio | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"syscall" | ||||||
|  | 	"unsafe" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | //sys lookupAccountName(systemName *uint16, accountName string, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) = advapi32.LookupAccountNameW | ||||||
|  | //sys convertSidToStringSid(sid *byte, str **uint16) (err error) = advapi32.ConvertSidToStringSidW | ||||||
|  | //sys convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd *uintptr, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW | ||||||
|  | //sys convertSecurityDescriptorToStringSecurityDescriptor(sd *byte, revision uint32, secInfo uint32, sddl **uint16, sddlSize *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW | ||||||
|  | //sys localFree(mem uintptr) = LocalFree | ||||||
|  | //sys getSecurityDescriptorLength(sd uintptr) (len uint32) = advapi32.GetSecurityDescriptorLength | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	cERROR_NONE_MAPPED = syscall.Errno(1332) | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | type AccountLookupError struct { | ||||||
|  | 	Name string | ||||||
|  | 	Err  error | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (e *AccountLookupError) Error() string { | ||||||
|  | 	if e.Name == "" { | ||||||
|  | 		return "lookup account: empty account name specified" | ||||||
|  | 	} | ||||||
|  | 	var s string | ||||||
|  | 	switch e.Err { | ||||||
|  | 	case cERROR_NONE_MAPPED: | ||||||
|  | 		s = "not found" | ||||||
|  | 	default: | ||||||
|  | 		s = e.Err.Error() | ||||||
|  | 	} | ||||||
|  | 	return "lookup account " + e.Name + ": " + s | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type SddlConversionError struct { | ||||||
|  | 	Sddl string | ||||||
|  | 	Err  error | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (e *SddlConversionError) Error() string { | ||||||
|  | 	return "convert " + e.Sddl + ": " + e.Err.Error() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // LookupSidByName looks up the SID of an account by name | ||||||
|  | func LookupSidByName(name string) (sid string, err error) { | ||||||
|  | 	if name == "" { | ||||||
|  | 		return "", &AccountLookupError{name, cERROR_NONE_MAPPED} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var sidSize, sidNameUse, refDomainSize uint32 | ||||||
|  | 	err = lookupAccountName(nil, name, nil, &sidSize, nil, &refDomainSize, &sidNameUse) | ||||||
|  | 	if err != nil && err != syscall.ERROR_INSUFFICIENT_BUFFER { | ||||||
|  | 		return "", &AccountLookupError{name, err} | ||||||
|  | 	} | ||||||
|  | 	sidBuffer := make([]byte, sidSize) | ||||||
|  | 	refDomainBuffer := make([]uint16, refDomainSize) | ||||||
|  | 	err = lookupAccountName(nil, name, &sidBuffer[0], &sidSize, &refDomainBuffer[0], &refDomainSize, &sidNameUse) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", &AccountLookupError{name, err} | ||||||
|  | 	} | ||||||
|  | 	var strBuffer *uint16 | ||||||
|  | 	err = convertSidToStringSid(&sidBuffer[0], &strBuffer) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", &AccountLookupError{name, err} | ||||||
|  | 	} | ||||||
|  | 	sid = syscall.UTF16ToString((*[0xffff]uint16)(unsafe.Pointer(strBuffer))[:]) | ||||||
|  | 	localFree(uintptr(unsafe.Pointer(strBuffer))) | ||||||
|  | 	return sid, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func SddlToSecurityDescriptor(sddl string) ([]byte, error) { | ||||||
|  | 	var sdBuffer uintptr | ||||||
|  | 	err := convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &sdBuffer, nil) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, &SddlConversionError{sddl, err} | ||||||
|  | 	} | ||||||
|  | 	defer localFree(sdBuffer) | ||||||
|  | 	sd := make([]byte, getSecurityDescriptorLength(sdBuffer)) | ||||||
|  | 	copy(sd, (*[0xffff]byte)(unsafe.Pointer(sdBuffer))[:len(sd)]) | ||||||
|  | 	return sd, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func SecurityDescriptorToSddl(sd []byte) (string, error) { | ||||||
|  | 	var sddl *uint16 | ||||||
|  | 	// The returned string length seems to including an aribtrary number of terminating NULs. | ||||||
|  | 	// Don't use it. | ||||||
|  | 	err := convertSecurityDescriptorToStringSecurityDescriptor(&sd[0], 1, 0xff, &sddl, nil) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	defer localFree(uintptr(unsafe.Pointer(sddl))) | ||||||
|  | 	return syscall.UTF16ToString((*[0xffff]uint16)(unsafe.Pointer(sddl))[:]), nil | ||||||
|  | } | ||||||
							
								
								
									
										3
									
								
								vendor/github.com/Microsoft/go-winio/syscall.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/Microsoft/go-winio/syscall.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | package winio | ||||||
|  |  | ||||||
|  | //go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go file.go pipe.go sd.go fileinfo.go privilege.go backup.go hvsock.go | ||||||
							
								
								
									
										562
									
								
								vendor/github.com/Microsoft/go-winio/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										562
									
								
								vendor/github.com/Microsoft/go-winio/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,562 @@ | |||||||
|  | // Code generated by 'go generate'; DO NOT EDIT. | ||||||
|  |  | ||||||
|  | package winio | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"syscall" | ||||||
|  | 	"unsafe" | ||||||
|  |  | ||||||
|  | 	"golang.org/x/sys/windows" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | var _ unsafe.Pointer | ||||||
|  |  | ||||||
|  | // Do the interface allocations only once for common | ||||||
|  | // Errno values. | ||||||
|  | const ( | ||||||
|  | 	errnoERROR_IO_PENDING = 997 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | var ( | ||||||
|  | 	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // errnoErr returns common boxed Errno values, to prevent | ||||||
|  | // allocations at runtime. | ||||||
|  | func errnoErr(e syscall.Errno) error { | ||||||
|  | 	switch e { | ||||||
|  | 	case 0: | ||||||
|  | 		return nil | ||||||
|  | 	case errnoERROR_IO_PENDING: | ||||||
|  | 		return errERROR_IO_PENDING | ||||||
|  | 	} | ||||||
|  | 	// TODO: add more here, after collecting data on the common | ||||||
|  | 	// error values see on Windows. (perhaps when running | ||||||
|  | 	// all.bat?) | ||||||
|  | 	return e | ||||||
|  | } | ||||||
|  |  | ||||||
|  | var ( | ||||||
|  | 	modkernel32 = windows.NewLazySystemDLL("kernel32.dll") | ||||||
|  | 	modws2_32   = windows.NewLazySystemDLL("ws2_32.dll") | ||||||
|  | 	modntdll    = windows.NewLazySystemDLL("ntdll.dll") | ||||||
|  | 	modadvapi32 = windows.NewLazySystemDLL("advapi32.dll") | ||||||
|  |  | ||||||
|  | 	procCancelIoEx                                           = modkernel32.NewProc("CancelIoEx") | ||||||
|  | 	procCreateIoCompletionPort                               = modkernel32.NewProc("CreateIoCompletionPort") | ||||||
|  | 	procGetQueuedCompletionStatus                            = modkernel32.NewProc("GetQueuedCompletionStatus") | ||||||
|  | 	procSetFileCompletionNotificationModes                   = modkernel32.NewProc("SetFileCompletionNotificationModes") | ||||||
|  | 	procWSAGetOverlappedResult                               = modws2_32.NewProc("WSAGetOverlappedResult") | ||||||
|  | 	procConnectNamedPipe                                     = modkernel32.NewProc("ConnectNamedPipe") | ||||||
|  | 	procCreateNamedPipeW                                     = modkernel32.NewProc("CreateNamedPipeW") | ||||||
|  | 	procCreateFileW                                          = modkernel32.NewProc("CreateFileW") | ||||||
|  | 	procGetNamedPipeInfo                                     = modkernel32.NewProc("GetNamedPipeInfo") | ||||||
|  | 	procGetNamedPipeHandleStateW                             = modkernel32.NewProc("GetNamedPipeHandleStateW") | ||||||
|  | 	procLocalAlloc                                           = modkernel32.NewProc("LocalAlloc") | ||||||
|  | 	procNtCreateNamedPipeFile                                = modntdll.NewProc("NtCreateNamedPipeFile") | ||||||
|  | 	procRtlNtStatusToDosErrorNoTeb                           = modntdll.NewProc("RtlNtStatusToDosErrorNoTeb") | ||||||
|  | 	procRtlDosPathNameToNtPathName_U                         = modntdll.NewProc("RtlDosPathNameToNtPathName_U") | ||||||
|  | 	procRtlDefaultNpAcl                                      = modntdll.NewProc("RtlDefaultNpAcl") | ||||||
|  | 	procLookupAccountNameW                                   = modadvapi32.NewProc("LookupAccountNameW") | ||||||
|  | 	procConvertSidToStringSidW                               = modadvapi32.NewProc("ConvertSidToStringSidW") | ||||||
|  | 	procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW") | ||||||
|  | 	procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW") | ||||||
|  | 	procLocalFree                                            = modkernel32.NewProc("LocalFree") | ||||||
|  | 	procGetSecurityDescriptorLength                          = modadvapi32.NewProc("GetSecurityDescriptorLength") | ||||||
|  | 	procGetFileInformationByHandleEx                         = modkernel32.NewProc("GetFileInformationByHandleEx") | ||||||
|  | 	procSetFileInformationByHandle                           = modkernel32.NewProc("SetFileInformationByHandle") | ||||||
|  | 	procAdjustTokenPrivileges                                = modadvapi32.NewProc("AdjustTokenPrivileges") | ||||||
|  | 	procImpersonateSelf                                      = modadvapi32.NewProc("ImpersonateSelf") | ||||||
|  | 	procRevertToSelf                                         = modadvapi32.NewProc("RevertToSelf") | ||||||
|  | 	procOpenThreadToken                                      = modadvapi32.NewProc("OpenThreadToken") | ||||||
|  | 	procGetCurrentThread                                     = modkernel32.NewProc("GetCurrentThread") | ||||||
|  | 	procLookupPrivilegeValueW                                = modadvapi32.NewProc("LookupPrivilegeValueW") | ||||||
|  | 	procLookupPrivilegeNameW                                 = modadvapi32.NewProc("LookupPrivilegeNameW") | ||||||
|  | 	procLookupPrivilegeDisplayNameW                          = modadvapi32.NewProc("LookupPrivilegeDisplayNameW") | ||||||
|  | 	procBackupRead                                           = modkernel32.NewProc("BackupRead") | ||||||
|  | 	procBackupWrite                                          = modkernel32.NewProc("BackupWrite") | ||||||
|  | 	procbind                                                 = modws2_32.NewProc("bind") | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func cancelIoEx(file syscall.Handle, o *syscall.Overlapped) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(file), uintptr(unsafe.Pointer(o)), 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func createIoCompletionPort(file syscall.Handle, port syscall.Handle, key uintptr, threadCount uint32) (newport syscall.Handle, err error) { | ||||||
|  | 	r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(file), uintptr(port), uintptr(key), uintptr(threadCount), 0, 0) | ||||||
|  | 	newport = syscall.Handle(r0) | ||||||
|  | 	if newport == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func getQueuedCompletionStatus(port syscall.Handle, bytes *uint32, key *uintptr, o **ioOperation, timeout uint32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(port), uintptr(unsafe.Pointer(bytes)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(o)), uintptr(timeout), 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func setFileCompletionNotificationModes(h syscall.Handle, flags uint8) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(h), uintptr(flags), 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func wsaGetOverlappedResult(h syscall.Handle, o *syscall.Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) { | ||||||
|  | 	var _p0 uint32 | ||||||
|  | 	if wait { | ||||||
|  | 		_p0 = 1 | ||||||
|  | 	} else { | ||||||
|  | 		_p0 = 0 | ||||||
|  | 	} | ||||||
|  | 	r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(o)), 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) { | ||||||
|  | 	var _p0 *uint16 | ||||||
|  | 	_p0, err = syscall.UTF16PtrFromString(name) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	return _createNamedPipe(_p0, flags, pipeMode, maxInstances, outSize, inSize, defaultTimeout, sa) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func _createNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) { | ||||||
|  | 	r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0) | ||||||
|  | 	handle = syscall.Handle(r0) | ||||||
|  | 	if handle == syscall.InvalidHandle { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func createFile(name string, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.Handle, err error) { | ||||||
|  | 	var _p0 *uint16 | ||||||
|  | 	_p0, err = syscall.UTF16PtrFromString(name) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	return _createFile(_p0, access, mode, sa, createmode, attrs, templatefile) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func _createFile(name *uint16, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.Handle, err error) { | ||||||
|  | 	r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) | ||||||
|  | 	handle = syscall.Handle(r0) | ||||||
|  | 	if handle == syscall.InvalidHandle { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func getNamedPipeInfo(pipe syscall.Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func getNamedPipeHandleState(pipe syscall.Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func localAlloc(uFlags uint32, length uint32) (ptr uintptr) { | ||||||
|  | 	r0, _, _ := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(uFlags), uintptr(length), 0) | ||||||
|  | 	ptr = uintptr(r0) | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func ntCreateNamedPipeFile(pipe *syscall.Handle, access uint32, oa *objectAttributes, iosb *ioStatusBlock, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (status ntstatus) { | ||||||
|  | 	r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0) | ||||||
|  | 	status = ntstatus(r0) | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func rtlNtStatusToDosError(status ntstatus) (winerr error) { | ||||||
|  | 	r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(status), 0, 0) | ||||||
|  | 	if r0 != 0 { | ||||||
|  | 		winerr = syscall.Errno(r0) | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func rtlDosPathNameToNtPathName(name *uint16, ntName *unicodeString, filePart uintptr, reserved uintptr) (status ntstatus) { | ||||||
|  | 	r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(ntName)), uintptr(filePart), uintptr(reserved), 0, 0) | ||||||
|  | 	status = ntstatus(r0) | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func rtlDefaultNpAcl(dacl *uintptr) (status ntstatus) { | ||||||
|  | 	r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(dacl)), 0, 0) | ||||||
|  | 	status = ntstatus(r0) | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func lookupAccountName(systemName *uint16, accountName string, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) { | ||||||
|  | 	var _p0 *uint16 | ||||||
|  | 	_p0, err = syscall.UTF16PtrFromString(accountName) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	return _lookupAccountName(systemName, _p0, sid, sidSize, refDomain, refDomainSize, sidNameUse) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func _lookupAccountName(systemName *uint16, accountName *uint16, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidSize)), uintptr(unsafe.Pointer(refDomain)), uintptr(unsafe.Pointer(refDomainSize)), uintptr(unsafe.Pointer(sidNameUse)), 0, 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func convertSidToStringSid(sid *byte, str **uint16) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(str)), 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd *uintptr, size *uint32) (err error) { | ||||||
|  | 	var _p0 *uint16 | ||||||
|  | 	_p0, err = syscall.UTF16PtrFromString(str) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd *uintptr, size *uint32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func convertSecurityDescriptorToStringSecurityDescriptor(sd *byte, revision uint32, secInfo uint32, sddl **uint16, sddlSize *uint32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(secInfo), uintptr(unsafe.Pointer(sddl)), uintptr(unsafe.Pointer(sddlSize)), 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func localFree(mem uintptr) { | ||||||
|  | 	syscall.Syscall(procLocalFree.Addr(), 1, uintptr(mem), 0, 0) | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func getSecurityDescriptorLength(sd uintptr) (len uint32) { | ||||||
|  | 	r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(sd), 0, 0) | ||||||
|  | 	len = uint32(r0) | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func getFileInformationByHandleEx(h syscall.Handle, class uint32, buffer *byte, size uint32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(h), uintptr(class), uintptr(unsafe.Pointer(buffer)), uintptr(size), 0, 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func setFileInformationByHandle(h syscall.Handle, class uint32, buffer *byte, size uint32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(h), uintptr(class), uintptr(unsafe.Pointer(buffer)), uintptr(size), 0, 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func adjustTokenPrivileges(token windows.Token, releaseAll bool, input *byte, outputSize uint32, output *byte, requiredSize *uint32) (success bool, err error) { | ||||||
|  | 	var _p0 uint32 | ||||||
|  | 	if releaseAll { | ||||||
|  | 		_p0 = 1 | ||||||
|  | 	} else { | ||||||
|  | 		_p0 = 0 | ||||||
|  | 	} | ||||||
|  | 	r0, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(input)), uintptr(outputSize), uintptr(unsafe.Pointer(output)), uintptr(unsafe.Pointer(requiredSize))) | ||||||
|  | 	success = r0 != 0 | ||||||
|  | 	if true { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func impersonateSelf(level uint32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(level), 0, 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func revertToSelf() (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func openThreadToken(thread syscall.Handle, accessMask uint32, openAsSelf bool, token *windows.Token) (err error) { | ||||||
|  | 	var _p0 uint32 | ||||||
|  | 	if openAsSelf { | ||||||
|  | 		_p0 = 1 | ||||||
|  | 	} else { | ||||||
|  | 		_p0 = 0 | ||||||
|  | 	} | ||||||
|  | 	r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(accessMask), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func getCurrentThread() (h syscall.Handle) { | ||||||
|  | 	r0, _, _ := syscall.Syscall(procGetCurrentThread.Addr(), 0, 0, 0, 0) | ||||||
|  | 	h = syscall.Handle(r0) | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func lookupPrivilegeValue(systemName string, name string, luid *uint64) (err error) { | ||||||
|  | 	var _p0 *uint16 | ||||||
|  | 	_p0, err = syscall.UTF16PtrFromString(systemName) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	var _p1 *uint16 | ||||||
|  | 	_p1, err = syscall.UTF16PtrFromString(name) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	return _lookupPrivilegeValue(_p0, _p1, luid) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func _lookupPrivilegeValue(systemName *uint16, name *uint16, luid *uint64) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func lookupPrivilegeName(systemName string, luid *uint64, buffer *uint16, size *uint32) (err error) { | ||||||
|  | 	var _p0 *uint16 | ||||||
|  | 	_p0, err = syscall.UTF16PtrFromString(systemName) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	return _lookupPrivilegeName(_p0, luid, buffer, size) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func _lookupPrivilegeName(systemName *uint16, luid *uint64, buffer *uint16, size *uint32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall6(procLookupPrivilegeNameW.Addr(), 4, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(luid)), uintptr(unsafe.Pointer(buffer)), uintptr(unsafe.Pointer(size)), 0, 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func lookupPrivilegeDisplayName(systemName string, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) { | ||||||
|  | 	var _p0 *uint16 | ||||||
|  | 	_p0, err = syscall.UTF16PtrFromString(systemName) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	return _lookupPrivilegeDisplayName(_p0, name, buffer, size, languageId) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func _lookupPrivilegeDisplayName(systemName *uint16, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall6(procLookupPrivilegeDisplayNameW.Addr(), 5, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(languageId)), 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func backupRead(h syscall.Handle, b []byte, bytesRead *uint32, abort bool, processSecurity bool, context *uintptr) (err error) { | ||||||
|  | 	var _p0 *byte | ||||||
|  | 	if len(b) > 0 { | ||||||
|  | 		_p0 = &b[0] | ||||||
|  | 	} | ||||||
|  | 	var _p1 uint32 | ||||||
|  | 	if abort { | ||||||
|  | 		_p1 = 1 | ||||||
|  | 	} else { | ||||||
|  | 		_p1 = 0 | ||||||
|  | 	} | ||||||
|  | 	var _p2 uint32 | ||||||
|  | 	if processSecurity { | ||||||
|  | 		_p2 = 1 | ||||||
|  | 	} else { | ||||||
|  | 		_p2 = 0 | ||||||
|  | 	} | ||||||
|  | 	r1, _, e1 := syscall.Syscall9(procBackupRead.Addr(), 7, uintptr(h), uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(unsafe.Pointer(bytesRead)), uintptr(_p1), uintptr(_p2), uintptr(unsafe.Pointer(context)), 0, 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func backupWrite(h syscall.Handle, b []byte, bytesWritten *uint32, abort bool, processSecurity bool, context *uintptr) (err error) { | ||||||
|  | 	var _p0 *byte | ||||||
|  | 	if len(b) > 0 { | ||||||
|  | 		_p0 = &b[0] | ||||||
|  | 	} | ||||||
|  | 	var _p1 uint32 | ||||||
|  | 	if abort { | ||||||
|  | 		_p1 = 1 | ||||||
|  | 	} else { | ||||||
|  | 		_p1 = 0 | ||||||
|  | 	} | ||||||
|  | 	var _p2 uint32 | ||||||
|  | 	if processSecurity { | ||||||
|  | 		_p2 = 1 | ||||||
|  | 	} else { | ||||||
|  | 		_p2 = 0 | ||||||
|  | 	} | ||||||
|  | 	r1, _, e1 := syscall.Syscall9(procBackupWrite.Addr(), 7, uintptr(h), uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(unsafe.Pointer(bytesWritten)), uintptr(_p1), uintptr(_p2), uintptr(unsafe.Pointer(context)), 0, 0) | ||||||
|  | 	if r1 == 0 { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func bind(s syscall.Handle, name unsafe.Pointer, namelen int32) (err error) { | ||||||
|  | 	r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) | ||||||
|  | 	if r1 == socketError { | ||||||
|  | 		if e1 != 0 { | ||||||
|  | 			err = errnoErr(e1) | ||||||
|  | 		} else { | ||||||
|  | 			err = syscall.EINVAL | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								vendor/github.com/blevesearch/bleve/v2/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/blevesearch/bleve/v2/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,17 +6,17 @@ require ( | |||||||
| 	github.com/RoaringBitmap/roaring v0.4.23 | 	github.com/RoaringBitmap/roaring v0.4.23 | ||||||
| 	github.com/blevesearch/bleve_index_api v1.0.0 | 	github.com/blevesearch/bleve_index_api v1.0.0 | ||||||
| 	github.com/blevesearch/go-porterstemmer v1.0.3 | 	github.com/blevesearch/go-porterstemmer v1.0.3 | ||||||
| 	github.com/blevesearch/scorch_segment_api v1.0.0 | 	github.com/blevesearch/scorch_segment_api/v2 v2.0.1 | ||||||
| 	github.com/blevesearch/segment v0.9.0 | 	github.com/blevesearch/segment v0.9.0 | ||||||
| 	github.com/blevesearch/snowballstem v0.9.0 | 	github.com/blevesearch/snowballstem v0.9.0 | ||||||
| 	github.com/blevesearch/upsidedown_store_api v1.0.1 | 	github.com/blevesearch/upsidedown_store_api v1.0.1 | ||||||
| 	github.com/blevesearch/zapx/v11 v11.1.10 | 	github.com/blevesearch/vellum v1.0.3 | ||||||
| 	github.com/blevesearch/zapx/v12 v12.1.10 | 	github.com/blevesearch/zapx/v11 v11.2.0 | ||||||
| 	github.com/blevesearch/zapx/v13 v13.1.10 | 	github.com/blevesearch/zapx/v12 v12.2.0 | ||||||
| 	github.com/blevesearch/zapx/v14 v14.1.10 | 	github.com/blevesearch/zapx/v13 v13.2.0 | ||||||
| 	github.com/blevesearch/zapx/v15 v15.1.10 | 	github.com/blevesearch/zapx/v14 v14.2.0 | ||||||
|  | 	github.com/blevesearch/zapx/v15 v15.2.0 | ||||||
| 	github.com/couchbase/moss v0.1.0 | 	github.com/couchbase/moss v0.1.0 | ||||||
| 	github.com/couchbase/vellum v1.0.2 |  | ||||||
| 	github.com/golang/protobuf v1.3.2 | 	github.com/golang/protobuf v1.3.2 | ||||||
| 	github.com/kljensen/snowball v0.6.0 | 	github.com/kljensen/snowball v0.6.0 | ||||||
| 	github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 | 	github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 | ||||||
|   | |||||||
							
								
								
									
										28
									
								
								vendor/github.com/blevesearch/bleve/v2/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/github.com/blevesearch/bleve/v2/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -8,24 +8,26 @@ github.com/blevesearch/go-porterstemmer v1.0.3 h1:GtmsqID0aZdCSNiY8SkuPJ12pD4jI+ | |||||||
| github.com/blevesearch/go-porterstemmer v1.0.3/go.mod h1:angGc5Ht+k2xhJdZi511LtmxuEf0OVpvUUNrwmM1P7M= | github.com/blevesearch/go-porterstemmer v1.0.3/go.mod h1:angGc5Ht+k2xhJdZi511LtmxuEf0OVpvUUNrwmM1P7M= | ||||||
| github.com/blevesearch/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= | github.com/blevesearch/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= | ||||||
| github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA= | github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA= | ||||||
| github.com/blevesearch/scorch_segment_api v1.0.0 h1:BUkCPWDg2gimTEyVDXf85I2buqqt4lh28uaVMiJsIYk= | github.com/blevesearch/scorch_segment_api/v2 v2.0.1 h1:fd+hPtZ8GsbqPK1HslGp7Vhoik4arZteA/IsCEgOisw= | ||||||
| github.com/blevesearch/scorch_segment_api v1.0.0/go.mod h1:KgRYmlfYC27NeM6cXOHx8LBgq7jn0atpV8mVWoBKBng= | github.com/blevesearch/scorch_segment_api/v2 v2.0.1/go.mod h1:lq7yK2jQy1yQjtjTfU931aVqz7pYxEudHaDwOt1tXfU= | ||||||
| github.com/blevesearch/segment v0.9.0 h1:5lG7yBCx98or7gK2cHMKPukPZ/31Kag7nONpoBt22Ac= | github.com/blevesearch/segment v0.9.0 h1:5lG7yBCx98or7gK2cHMKPukPZ/31Kag7nONpoBt22Ac= | ||||||
| github.com/blevesearch/segment v0.9.0/go.mod h1:9PfHYUdQCgHktBgvtUOF4x+pc4/l8rdH0u5spnW85UQ= | github.com/blevesearch/segment v0.9.0/go.mod h1:9PfHYUdQCgHktBgvtUOF4x+pc4/l8rdH0u5spnW85UQ= | ||||||
| github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD/iWeNXm8s= | github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD/iWeNXm8s= | ||||||
| github.com/blevesearch/snowballstem v0.9.0/go.mod h1:PivSj3JMc8WuaFkTSRDW2SlrulNWPl4ABg1tC/hlgLs= | github.com/blevesearch/snowballstem v0.9.0/go.mod h1:PivSj3JMc8WuaFkTSRDW2SlrulNWPl4ABg1tC/hlgLs= | ||||||
| github.com/blevesearch/upsidedown_store_api v1.0.1 h1:1SYRwyoFLwG3sj0ed89RLtM15amfX2pXlYbFOnF8zNU= | github.com/blevesearch/upsidedown_store_api v1.0.1 h1:1SYRwyoFLwG3sj0ed89RLtM15amfX2pXlYbFOnF8zNU= | ||||||
| github.com/blevesearch/upsidedown_store_api v1.0.1/go.mod h1:MQDVGpHZrpe3Uy26zJBf/a8h0FZY6xJbthIMm8myH2Q= | github.com/blevesearch/upsidedown_store_api v1.0.1/go.mod h1:MQDVGpHZrpe3Uy26zJBf/a8h0FZY6xJbthIMm8myH2Q= | ||||||
| github.com/blevesearch/zapx/v11 v11.1.10 h1:8Eo3rXiHsVSP9Sk+4StrrwLrj9vyulhMVPmxTf8ZuDg= | github.com/blevesearch/vellum v1.0.3 h1:U86G41A7CtXNzzpIJHM8lSTUqz1Mp8U870TkcdCzZc8= | ||||||
| github.com/blevesearch/zapx/v11 v11.1.10/go.mod h1:DTjbcBqrr/Uo82UBilDC8lEew42gN/OcIyiTNFtSijc= | github.com/blevesearch/vellum v1.0.3/go.mod h1:2u5ax02KeDuNWu4/C+hVQMD6uLN4txH1JbtpaDNLJRo= | ||||||
| github.com/blevesearch/zapx/v12 v12.1.10 h1:sqR+/0Z4dSTovApRqLA1HnilMtQer7a4UvPrNmPzlTM= | github.com/blevesearch/zapx/v11 v11.2.0 h1:GBkCJYsyj3eIU4+aiLPxoMz1PYvDbQZl/oXHIBZIP60= | ||||||
| github.com/blevesearch/zapx/v12 v12.1.10/go.mod h1:14NmKnPrnKAIyiEJM566k/Jk+FQpuiflT5d3uaaK3MI= | github.com/blevesearch/zapx/v11 v11.2.0/go.mod h1:gN/a0alGw1FZt/YGTo1G6Z6XpDkeOfujX5exY9sCQQM= | ||||||
| github.com/blevesearch/zapx/v13 v13.1.10 h1:zCneEVRJDXwtDfSwh+33Dxguliv192vCK283zdGH4Sw= | github.com/blevesearch/zapx/v12 v12.2.0 h1:dyRcSoZVO1jktL4UpGkCEF1AYa3xhKPirh4/N+Va+Ww= | ||||||
| github.com/blevesearch/zapx/v13 v13.1.10/go.mod h1:YsVY6YGpTEAlJOMjdL7EsdBLvjWd8kPa2gwJDNpqLJo= | github.com/blevesearch/zapx/v12 v12.2.0/go.mod h1:fdjwvCwWWwJW/EYTYGtAp3gBA0geCYGLcVTtJEZnY6A= | ||||||
| github.com/blevesearch/zapx/v14 v14.1.10 h1:nD0vw2jxKogJFfA5WyoS4wNwZlVby3Aq8aW7CZi6YIw= | github.com/blevesearch/zapx/v13 v13.2.0 h1:mUqbaqQABp8nBE4t4q2qMyHCCq4sykoV8r7aJk4ih3s= | ||||||
| github.com/blevesearch/zapx/v14 v14.1.10/go.mod h1:hsULl5eJSxs5NEfBsmeT9qrqdCP+/ecpVZKt60M4V64= | github.com/blevesearch/zapx/v13 v13.2.0/go.mod h1:o5rAy/lRS5JpAbITdrOHBS/TugWYbkcYZTz6VfEinAQ= | ||||||
| github.com/blevesearch/zapx/v15 v15.1.10 h1:kZR3b9jO9l6s2B5UHI+1N1llLzJ4nYikkXQTMrDl1vQ= | github.com/blevesearch/zapx/v14 v14.2.0 h1:UsfRqvM9RJxKNKrkR1U7aYc1cv9MWx719fsAjbF6joI= | ||||||
| github.com/blevesearch/zapx/v15 v15.1.10/go.mod h1:4ypq25bwtSQKzwEF1UERyIhmGTbMT3brY/n4NC5gRnM= | github.com/blevesearch/zapx/v14 v14.2.0/go.mod h1:GNgZusc1p4ot040cBQMRGEZobvwjCquiEKYh1xLFK9g= | ||||||
|  | github.com/blevesearch/zapx/v15 v15.2.0 h1:ZpibwcrrOaeslkOw3sJ7npP7KDgRHI/DkACjKTqFwyM= | ||||||
|  | github.com/blevesearch/zapx/v15 v15.2.0/go.mod h1:MmQceLpWfME4n1WrBFIwplhWmaQbQqLQARpaKUEOs/A= | ||||||
| github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= | 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-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.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= | ||||||
| @@ -33,8 +35,6 @@ github.com/couchbase/ghistogram v0.1.0 h1:b95QcQTCzjTUocDXp/uMgSNQi8oj1tGwnJ4bOD | |||||||
| github.com/couchbase/ghistogram v0.1.0/go.mod h1:s1Jhy76zqfEecpNWJfWUiKZookAFaiGOEoyzgHt9i7k= | github.com/couchbase/ghistogram v0.1.0/go.mod h1:s1Jhy76zqfEecpNWJfWUiKZookAFaiGOEoyzgHt9i7k= | ||||||
| github.com/couchbase/moss v0.1.0 h1:HCL+xxHUwmOaL44kMM/gU08OW6QGCui1WVFO58bjhNI= | github.com/couchbase/moss v0.1.0 h1:HCL+xxHUwmOaL44kMM/gU08OW6QGCui1WVFO58bjhNI= | ||||||
| github.com/couchbase/moss v0.1.0/go.mod h1:9MaHIaRuy9pvLPUJxB8sh8OrLfyDczECVL37grCIubs= | github.com/couchbase/moss v0.1.0/go.mod h1:9MaHIaRuy9pvLPUJxB8sh8OrLfyDczECVL37grCIubs= | ||||||
| github.com/couchbase/vellum v1.0.2 h1:BrbP0NKiyDdndMPec8Jjhy0U47CZ0Lgx3xUC2r9rZqw= |  | ||||||
| github.com/couchbase/vellum v1.0.2/go.mod h1:FcwrEivFpNi24R3jLOs3n+fs5RnuQnQqCLBJ1uAg1W4= |  | ||||||
| github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= | github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= | ||||||
| github.com/davecgh/go-spew v1.1.0/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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/builder.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/builder.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -22,7 +22,7 @@ import ( | |||||||
|  |  | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	bolt "go.etcd.io/bbolt" | 	bolt "go.etcd.io/bbolt" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/empty.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/empty.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -14,7 +14,7 @@ | |||||||
|  |  | ||||||
| package scorch | package scorch | ||||||
|  |  | ||||||
| import segment "github.com/blevesearch/scorch_segment_api" | import segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
|  |  | ||||||
| type emptyPostingsIterator struct{} | type emptyPostingsIterator struct{} | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/introducer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/introducer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -20,7 +20,7 @@ import ( | |||||||
|  |  | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| type segmentIntroduction struct { | type segmentIntroduction struct { | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/merge.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/merge.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -25,7 +25,7 @@ import ( | |||||||
|  |  | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	"github.com/blevesearch/bleve/v2/index/scorch/mergeplan" | 	"github.com/blevesearch/bleve/v2/index/scorch/mergeplan" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func (s *Scorch) mergerLoop() { | func (s *Scorch) mergerLoop() { | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/optimize.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/optimize.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -18,7 +18,7 @@ import ( | |||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	"sync/atomic" | 	"sync/atomic" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/persister.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/persister.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -31,7 +31,7 @@ import ( | |||||||
|  |  | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	bolt "go.etcd.io/bbolt" | 	bolt "go.etcd.io/bbolt" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/regexp.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/regexp.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -17,7 +17,7 @@ package scorch | |||||||
| import ( | import ( | ||||||
| 	"regexp/syntax" | 	"regexp/syntax" | ||||||
|  |  | ||||||
| 	"github.com/couchbase/vellum/regexp" | 	"github.com/blevesearch/vellum/regexp" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func parseRegexp(pattern string) (a *regexp.Regexp, prefixBeg, prefixEnd []byte, err error) { | func parseRegexp(pattern string) (a *regexp.Regexp, prefixBeg, prefixEnd []byte, err error) { | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/scorch.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/scorch.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -26,7 +26,7 @@ import ( | |||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	"github.com/blevesearch/bleve/v2/registry" | 	"github.com/blevesearch/bleve/v2/registry" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	bolt "go.etcd.io/bbolt" | 	bolt "go.etcd.io/bbolt" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -199,11 +199,9 @@ func (s *Scorch) openBolt() error { | |||||||
| 		s.unsafeBatch = true | 		s.unsafeBatch = true | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	var rootBoltOpt *bolt.Options | 	var rootBoltOpt = *bolt.DefaultOptions | ||||||
| 	if s.readOnly { | 	if s.readOnly { | ||||||
| 		rootBoltOpt = &bolt.Options{ | 		rootBoltOpt.ReadOnly = true | ||||||
| 			ReadOnly: true, |  | ||||||
| 		} |  | ||||||
| 	} else { | 	} else { | ||||||
| 		if s.path != "" { | 		if s.path != "" { | ||||||
| 			err := os.MkdirAll(s.path, 0700) | 			err := os.MkdirAll(s.path, 0700) | ||||||
| @@ -213,10 +211,19 @@ func (s *Scorch) openBolt() error { | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	if boltTimeoutStr, ok := s.config["bolt_timeout"].(string); ok { | ||||||
|  | 		var err error | ||||||
|  | 		boltTimeout, err := time.ParseDuration(boltTimeoutStr) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return fmt.Errorf("invalid duration specified for bolt_timeout: %v", err) | ||||||
|  | 		} | ||||||
|  | 		rootBoltOpt.Timeout = boltTimeout | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	rootBoltPath := s.path + string(os.PathSeparator) + "root.bolt" | 	rootBoltPath := s.path + string(os.PathSeparator) + "root.bolt" | ||||||
| 	var err error | 	var err error | ||||||
| 	if s.path != "" { | 	if s.path != "" { | ||||||
| 		s.rootBolt, err = bolt.Open(rootBoltPath, 0600, rootBoltOpt) | 		s.rootBolt, err = bolt.Open(rootBoltPath, 0600, &rootBoltOpt) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/segment_plugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/segment_plugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -19,7 +19,7 @@ import ( | |||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
|  |  | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
|  |  | ||||||
| 	zapv11 "github.com/blevesearch/zapx/v11" | 	zapv11 "github.com/blevesearch/zapx/v11" | ||||||
| 	zapv12 "github.com/blevesearch/zapx/v12" | 	zapv12 "github.com/blevesearch/zapx/v12" | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/snapshot_index.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/snapshot_index.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -26,9 +26,9 @@ import ( | |||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	"github.com/blevesearch/bleve/v2/document" | 	"github.com/blevesearch/bleve/v2/document" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	"github.com/couchbase/vellum" | 	"github.com/blevesearch/vellum" | ||||||
| 	lev "github.com/couchbase/vellum/levenshtein" | 	lev "github.com/blevesearch/vellum/levenshtein" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // re usable, threadsafe levenshtein builders | // re usable, threadsafe levenshtein builders | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/snapshot_index_dict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/snapshot_index_dict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -18,7 +18,7 @@ import ( | |||||||
| 	"container/heap" | 	"container/heap" | ||||||
|  |  | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| type segmentDictCursor struct { | type segmentDictCursor struct { | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/snapshot_index_tfr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/snapshot_index_tfr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -22,7 +22,7 @@ import ( | |||||||
|  |  | ||||||
| 	"github.com/blevesearch/bleve/v2/size" | 	"github.com/blevesearch/bleve/v2/size" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| var reflectStaticSizeIndexSnapshotTermFieldReader int | var reflectStaticSizeIndexSnapshotTermFieldReader int | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/snapshot_segment.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/snapshot_segment.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -22,7 +22,7 @@ import ( | |||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	"github.com/blevesearch/bleve/v2/size" | 	"github.com/blevesearch/bleve/v2/size" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| var TermSeparator byte = 0xff | var TermSeparator byte = 0xff | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/unadorned.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/bleve/v2/index/scorch/unadorned.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -16,7 +16,7 @@ package scorch | |||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	"math" | 	"math" | ||||||
| 	"reflect" | 	"reflect" | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								vendor/github.com/blevesearch/bleve/v2/search.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/blevesearch/bleve/v2/search.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -600,12 +600,14 @@ func MemoryNeededForSearchResult(req *SearchRequest) uint64 { | |||||||
| 		estimate += len(req.Facets) * fr.Size() | 		estimate += len(req.Facets) * fr.Size() | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// highlighting, store | 	// overhead from fields, highlighting | ||||||
| 	var d document.Document | 	var d document.Document | ||||||
| 	if len(req.Fields) > 0 || req.Highlight != nil { | 	if len(req.Fields) > 0 || req.Highlight != nil { | ||||||
| 		for i := 0; i < (req.Size + req.From); i++ { | 		numDocsApplicable := req.Size | ||||||
| 			estimate += (req.Size + req.From) * d.Size() | 		if numDocsApplicable > collector.PreAllocSizeSkipCap { | ||||||
|  | 			numDocsApplicable = collector.PreAllocSizeSkipCap | ||||||
| 		} | 		} | ||||||
|  | 		estimate += numDocsApplicable * d.Size() | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return uint64(estimate) | 	return uint64(estimate) | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								vendor/github.com/blevesearch/scorch_segment_api/v2/automaton.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								vendor/github.com/blevesearch/scorch_segment_api/v2/automaton.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | //  Copyright (c) 2021 Couchbase, Inc. | ||||||
|  | // | ||||||
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  | // you may not use this file except in compliance with the License. | ||||||
|  | // You may obtain a copy of the License at | ||||||
|  | // | ||||||
|  | // 		http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  | // | ||||||
|  | // Unless required by applicable law or agreed to in writing, software | ||||||
|  | // distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  | // See the License for the specific language governing permissions and | ||||||
|  | // limitations under the License. | ||||||
|  |  | ||||||
|  | package segment | ||||||
|  |  | ||||||
|  | // Automaton represents the general contract of a byte-based finite automaton | ||||||
|  | type Automaton interface { | ||||||
|  |  | ||||||
|  | 	// Start returns the start state | ||||||
|  | 	Start() int | ||||||
|  |  | ||||||
|  | 	// IsMatch returns true if and only if the state is a match | ||||||
|  | 	IsMatch(int) bool | ||||||
|  |  | ||||||
|  | 	// CanMatch returns true if and only if it is possible to reach a match | ||||||
|  | 	// in zero or more steps | ||||||
|  | 	CanMatch(int) bool | ||||||
|  |  | ||||||
|  | 	// WillAlwaysMatch returns true if and only if the current state matches | ||||||
|  | 	// and will always match no matter what steps are taken | ||||||
|  | 	WillAlwaysMatch(int) bool | ||||||
|  |  | ||||||
|  | 	// Accept returns the next state given the input to the specified state | ||||||
|  | 	Accept(int, byte) int | ||||||
|  | } | ||||||
| @@ -1,10 +1,10 @@ | |||||||
| module github.com/blevesearch/scorch_segment_api | module github.com/blevesearch/scorch_segment_api/v2 | ||||||
| 
 | 
 | ||||||
| go 1.13 | go 1.13 | ||||||
| 
 | 
 | ||||||
| require ( | require ( | ||||||
| 	github.com/RoaringBitmap/roaring v0.4.23 | 	github.com/RoaringBitmap/roaring v0.4.23 | ||||||
| 	github.com/blevesearch/bleve_index_api v1.0.0 | 	github.com/blevesearch/bleve_index_api v1.0.0 | ||||||
| 	github.com/couchbase/vellum v1.0.2 | 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||||
| 	github.com/mschoch/smat v0.2.0 // indirect | 	github.com/mschoch/smat v0.2.0 // indirect | ||||||
| ) | ) | ||||||
| @@ -1,21 +1,10 @@ | |||||||
| github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= |  | ||||||
| github.com/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo= | github.com/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo= | ||||||
| github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= | github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= | ||||||
| github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= |  | ||||||
| github.com/blevesearch/bleve_index_api v1.0.0 h1:Ds3XeuTxjXCkG6pgIwWDRyooJKNIuOKemnN0N0IkhTU= | github.com/blevesearch/bleve_index_api v1.0.0 h1:Ds3XeuTxjXCkG6pgIwWDRyooJKNIuOKemnN0N0IkhTU= | ||||||
| github.com/blevesearch/bleve_index_api v1.0.0/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= | github.com/blevesearch/bleve_index_api v1.0.0/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= | ||||||
| github.com/blevesearch/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= |  | ||||||
| github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA= |  | ||||||
| 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/couchbase/vellum v1.0.2 h1:BrbP0NKiyDdndMPec8Jjhy0U47CZ0Lgx3xUC2r9rZqw= |  | ||||||
| github.com/couchbase/vellum v1.0.2/go.mod h1:FcwrEivFpNi24R3jLOs3n+fs5RnuQnQqCLBJ1uAg1W4= |  | ||||||
| github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= |  | ||||||
| github.com/davecgh/go-spew v1.1.0/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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= |  | ||||||
| github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2 h1:Ujru1hufTHVb++eG6OuNDKMxZnGIvF6o/u8q/8h2+I4= | github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2 h1:Ujru1hufTHVb++eG6OuNDKMxZnGIvF6o/u8q/8h2+I4= | ||||||
| github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= | github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= | ||||||
| github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy3PbkQ1AERPfmLMMagS60DKF78eWwLn8= | github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy3PbkQ1AERPfmLMMagS60DKF78eWwLn8= | ||||||
| @@ -24,44 +13,22 @@ github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= | |||||||
| github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
| github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99 h1:twflg0XRTjwKpxb/jFExr4HGq6on2dEOmnL6FV+fgPw= | github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99 h1:twflg0XRTjwKpxb/jFExr4HGq6on2dEOmnL6FV+fgPw= | ||||||
| github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= | github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= | ||||||
| github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= |  | ||||||
| github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= |  | ||||||
| github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= | github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= | ||||||
| github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= | github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= | ||||||
| github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= |  | ||||||
| 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/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= | github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= | ||||||
| github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM= | github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM= | ||||||
| github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw= | github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw= | ||||||
| github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= |  | ||||||
| github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ= | github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ= | ||||||
| github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= | github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | 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/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= |  | ||||||
| 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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= |  | ||||||
| github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= | github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= | ||||||
| github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | ||||||
| github.com/tinylib/msgp v1.1.0 h1:9fQd+ICuRIu/ue4vxJZu6/LzxN0HwMds2nq/0cFvxHU= | github.com/tinylib/msgp v1.1.0 h1:9fQd+ICuRIu/ue4vxJZu6/LzxN0HwMds2nq/0cFvxHU= | ||||||
| github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= | github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= | ||||||
| github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= |  | ||||||
| github.com/willf/bitset v1.1.10 h1:NotGKqX0KwQ72NUzqrjZq5ipPNDQex9lo3WpaS8L2sc= | github.com/willf/bitset v1.1.10 h1:NotGKqX0KwQ72NUzqrjZq5ipPNDQex9lo3WpaS8L2sc= | ||||||
| github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= | github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= | ||||||
| github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= |  | ||||||
| golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= |  | ||||||
| golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= |  | ||||||
| golang.org/x/sys v0.0.0-20181221143128-b4a75ba826a6/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= |  | ||||||
| golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a h1:aYOabOQFp6Vj6W1F80affTUvO9UxmJRx8K0gsfABByQ= |  | ||||||
| golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |  | ||||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= |  | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= | gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= | ||||||
| @@ -19,7 +19,6 @@ import ( | |||||||
| 
 | 
 | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	"github.com/couchbase/vellum" |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var ErrClosed = fmt.Errorf("index closed") | var ErrClosed = fmt.Errorf("index closed") | ||||||
| @@ -63,7 +62,7 @@ type PersistedSegment interface { | |||||||
| type TermDictionary interface { | type TermDictionary interface { | ||||||
| 	PostingsList(term []byte, except *roaring.Bitmap, prealloc PostingsList) (PostingsList, error) | 	PostingsList(term []byte, except *roaring.Bitmap, prealloc PostingsList) (PostingsList, error) | ||||||
| 
 | 
 | ||||||
| 	AutomatonIterator(a vellum.Automaton, | 	AutomatonIterator(a Automaton, | ||||||
| 		startKeyInclusive, endKeyExclusive []byte) DictionaryIterator | 		startKeyInclusive, endKeyExclusive []byte) DictionaryIterator | ||||||
| 
 | 
 | ||||||
| 	Contains(key []byte) (bool, error) | 	Contains(key []byte) (bool, error) | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| module github.com/couchbase/vellum | module github.com/blevesearch/vellum | ||||||
| 
 | 
 | ||||||
| go 1.12 | go 1.12 | ||||||
| 
 | 
 | ||||||
| @@ -20,7 +20,7 @@ import ( | |||||||
| 
 | 
 | ||||||
| 	unicode_utf8 "unicode/utf8" | 	unicode_utf8 "unicode/utf8" | ||||||
| 
 | 
 | ||||||
| 	"github.com/couchbase/vellum/utf8" | 	"github.com/blevesearch/vellum/utf8" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| type compiler struct { | type compiler struct { | ||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v11/build.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v11/build.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -19,7 +19,7 @@ import ( | |||||||
| 	"math" | 	"math" | ||||||
| 	"os" | 	"os" | ||||||
|  |  | ||||||
| 	"github.com/couchbase/vellum" | 	"github.com/blevesearch/vellum" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const Version uint32 = 11 | const Version uint32 = 11 | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v11/count.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v11/count.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -18,7 +18,7 @@ import ( | |||||||
| 	"hash/crc32" | 	"hash/crc32" | ||||||
| 	"io" | 	"io" | ||||||
|  |  | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // CountHashWriter is a wrapper around a Writer which counts the number of | // CountHashWriter is a wrapper around a Writer which counts the number of | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/blevesearch/zapx/v11/dict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/blevesearch/zapx/v11/dict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -19,8 +19,8 @@ import ( | |||||||
|  |  | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	"github.com/couchbase/vellum" | 	"github.com/blevesearch/vellum" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Dictionary is the zap representation of the term dictionary | // Dictionary is the zap representation of the term dictionary | ||||||
| @@ -106,7 +106,7 @@ func (d *Dictionary) Contains(key []byte) (bool, error) { | |||||||
|  |  | ||||||
| // AutomatonIterator returns an iterator which only visits terms | // AutomatonIterator returns an iterator which only visits terms | ||||||
| // having the the vellum automaton and start/end key range | // having the the vellum automaton and start/end key range | ||||||
| func (d *Dictionary) AutomatonIterator(a vellum.Automaton, | func (d *Dictionary) AutomatonIterator(a segment.Automaton, | ||||||
| 	startKeyInclusive, endKeyExclusive []byte) segment.DictionaryIterator { | 	startKeyInclusive, endKeyExclusive []byte) segment.DictionaryIterator { | ||||||
| 	if d.fst != nil { | 	if d.fst != nil { | ||||||
| 		rv := &DictionaryIterator{ | 		rv := &DictionaryIterator{ | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v11/docvalues.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v11/docvalues.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -23,7 +23,7 @@ import ( | |||||||
| 	"sort" | 	"sort" | ||||||
|  |  | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	"github.com/golang/snappy" | 	"github.com/golang/snappy" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v11/enumerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v11/enumerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -17,7 +17,7 @@ package zap | |||||||
| import ( | import ( | ||||||
| 	"bytes" | 	"bytes" | ||||||
|  |  | ||||||
| 	"github.com/couchbase/vellum" | 	"github.com/blevesearch/vellum" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // enumerator provides an ordered traversal of multiple vellum | // enumerator provides an ordered traversal of multiple vellum | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v11/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v11/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,8 +6,8 @@ require ( | |||||||
| 	github.com/RoaringBitmap/roaring v0.4.23 | 	github.com/RoaringBitmap/roaring v0.4.23 | ||||||
| 	github.com/blevesearch/bleve_index_api v1.0.0 | 	github.com/blevesearch/bleve_index_api v1.0.0 | ||||||
| 	github.com/blevesearch/mmap-go v1.0.2 | 	github.com/blevesearch/mmap-go v1.0.2 | ||||||
| 	github.com/blevesearch/scorch_segment_api v1.0.0 | 	github.com/blevesearch/scorch_segment_api/v2 v2.0.1 | ||||||
| 	github.com/couchbase/vellum v1.0.2 | 	github.com/blevesearch/vellum v1.0.3 | ||||||
| 	github.com/golang/snappy v0.0.1 | 	github.com/golang/snappy v0.0.1 | ||||||
| 	github.com/spf13/cobra v0.0.5 | 	github.com/spf13/cobra v0.0.5 | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								vendor/github.com/blevesearch/zapx/v11/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/blevesearch/zapx/v11/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,13 +6,13 @@ github.com/blevesearch/bleve_index_api v1.0.0 h1:Ds3XeuTxjXCkG6pgIwWDRyooJKNIuOK | |||||||
| github.com/blevesearch/bleve_index_api v1.0.0/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= | github.com/blevesearch/bleve_index_api v1.0.0/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= | ||||||
| github.com/blevesearch/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= | github.com/blevesearch/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= | ||||||
| github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA= | github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA= | ||||||
| github.com/blevesearch/scorch_segment_api v1.0.0 h1:BUkCPWDg2gimTEyVDXf85I2buqqt4lh28uaVMiJsIYk= | github.com/blevesearch/scorch_segment_api/v2 v2.0.1 h1:fd+hPtZ8GsbqPK1HslGp7Vhoik4arZteA/IsCEgOisw= | ||||||
| github.com/blevesearch/scorch_segment_api v1.0.0/go.mod h1:KgRYmlfYC27NeM6cXOHx8LBgq7jn0atpV8mVWoBKBng= | github.com/blevesearch/scorch_segment_api/v2 v2.0.1/go.mod h1:lq7yK2jQy1yQjtjTfU931aVqz7pYxEudHaDwOt1tXfU= | ||||||
|  | github.com/blevesearch/vellum v1.0.3 h1:U86G41A7CtXNzzpIJHM8lSTUqz1Mp8U870TkcdCzZc8= | ||||||
|  | github.com/blevesearch/vellum v1.0.3/go.mod h1:2u5ax02KeDuNWu4/C+hVQMD6uLN4txH1JbtpaDNLJRo= | ||||||
| github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= | 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-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.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= | ||||||
| github.com/couchbase/vellum v1.0.2 h1:BrbP0NKiyDdndMPec8Jjhy0U47CZ0Lgx3xUC2r9rZqw= |  | ||||||
| github.com/couchbase/vellum v1.0.2/go.mod h1:FcwrEivFpNi24R3jLOs3n+fs5RnuQnQqCLBJ1uAg1W4= |  | ||||||
| github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= | github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= | ||||||
| github.com/davecgh/go-spew v1.1.0/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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v11/merge.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v11/merge.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -24,8 +24,8 @@ import ( | |||||||
| 	"sort" | 	"sort" | ||||||
|  |  | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	seg "github.com/blevesearch/scorch_segment_api" | 	seg "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	"github.com/couchbase/vellum" | 	"github.com/blevesearch/vellum" | ||||||
| 	"github.com/golang/snappy" | 	"github.com/golang/snappy" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v11/new.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v11/new.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -23,8 +23,8 @@ import ( | |||||||
|  |  | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	"github.com/couchbase/vellum" | 	"github.com/blevesearch/vellum" | ||||||
| 	"github.com/golang/snappy" | 	"github.com/golang/snappy" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v11/posting.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v11/posting.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -21,7 +21,7 @@ import ( | |||||||
| 	"reflect" | 	"reflect" | ||||||
|  |  | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| var reflectStaticSizePostingsList int | var reflectStaticSizePostingsList int | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v11/segment.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v11/segment.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -25,8 +25,8 @@ import ( | |||||||
|  |  | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	mmap "github.com/blevesearch/mmap-go" | 	mmap "github.com/blevesearch/mmap-go" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	"github.com/couchbase/vellum" | 	"github.com/blevesearch/vellum" | ||||||
| 	"github.com/golang/snappy" | 	"github.com/golang/snappy" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v12/build.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v12/build.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -19,7 +19,7 @@ import ( | |||||||
| 	"math" | 	"math" | ||||||
| 	"os" | 	"os" | ||||||
|  |  | ||||||
| 	"github.com/couchbase/vellum" | 	"github.com/blevesearch/vellum" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const Version uint32 = 12 | const Version uint32 = 12 | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v12/count.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v12/count.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -18,7 +18,7 @@ import ( | |||||||
| 	"hash/crc32" | 	"hash/crc32" | ||||||
| 	"io" | 	"io" | ||||||
|  |  | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // CountHashWriter is a wrapper around a Writer which counts the number of | // CountHashWriter is a wrapper around a Writer which counts the number of | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/blevesearch/zapx/v12/dict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/blevesearch/zapx/v12/dict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -19,8 +19,8 @@ import ( | |||||||
|  |  | ||||||
| 	"github.com/RoaringBitmap/roaring" | 	"github.com/RoaringBitmap/roaring" | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	"github.com/couchbase/vellum" | 	"github.com/blevesearch/vellum" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Dictionary is the zap representation of the term dictionary | // Dictionary is the zap representation of the term dictionary | ||||||
| @@ -106,7 +106,7 @@ func (d *Dictionary) Contains(key []byte) (bool, error) { | |||||||
|  |  | ||||||
| // AutomatonIterator returns an iterator which only visits terms | // AutomatonIterator returns an iterator which only visits terms | ||||||
| // having the the vellum automaton and start/end key range | // having the the vellum automaton and start/end key range | ||||||
| func (d *Dictionary) AutomatonIterator(a vellum.Automaton, | func (d *Dictionary) AutomatonIterator(a segment.Automaton, | ||||||
| 	startKeyInclusive, endKeyExclusive []byte) segment.DictionaryIterator { | 	startKeyInclusive, endKeyExclusive []byte) segment.DictionaryIterator { | ||||||
| 	if d.fst != nil { | 	if d.fst != nil { | ||||||
| 		rv := &DictionaryIterator{ | 		rv := &DictionaryIterator{ | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v12/docvalues.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v12/docvalues.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -23,7 +23,7 @@ import ( | |||||||
| 	"sort" | 	"sort" | ||||||
|  |  | ||||||
| 	index "github.com/blevesearch/bleve_index_api" | 	index "github.com/blevesearch/bleve_index_api" | ||||||
| 	segment "github.com/blevesearch/scorch_segment_api" | 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||||
| 	"github.com/golang/snappy" | 	"github.com/golang/snappy" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v12/enumerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/zapx/v12/enumerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -17,7 +17,7 @@ package zap | |||||||
| import ( | import ( | ||||||
| 	"bytes" | 	"bytes" | ||||||
|  |  | ||||||
| 	"github.com/couchbase/vellum" | 	"github.com/blevesearch/vellum" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // enumerator provides an ordered traversal of multiple vellum | // enumerator provides an ordered traversal of multiple vellum | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v12/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v12/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,8 +6,8 @@ require ( | |||||||
| 	github.com/RoaringBitmap/roaring v0.4.23 | 	github.com/RoaringBitmap/roaring v0.4.23 | ||||||
| 	github.com/blevesearch/bleve_index_api v1.0.0 | 	github.com/blevesearch/bleve_index_api v1.0.0 | ||||||
| 	github.com/blevesearch/mmap-go v1.0.2 | 	github.com/blevesearch/mmap-go v1.0.2 | ||||||
| 	github.com/blevesearch/scorch_segment_api v1.0.0 | 	github.com/blevesearch/scorch_segment_api/v2 v2.0.1 | ||||||
| 	github.com/couchbase/vellum v1.0.2 | 	github.com/blevesearch/vellum v1.0.3 | ||||||
| 	github.com/golang/snappy v0.0.1 | 	github.com/golang/snappy v0.0.1 | ||||||
| 	github.com/spf13/cobra v0.0.5 | 	github.com/spf13/cobra v0.0.5 | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								vendor/github.com/blevesearch/zapx/v12/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/blevesearch/zapx/v12/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,13 +6,13 @@ github.com/blevesearch/bleve_index_api v1.0.0 h1:Ds3XeuTxjXCkG6pgIwWDRyooJKNIuOK | |||||||
| github.com/blevesearch/bleve_index_api v1.0.0/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= | github.com/blevesearch/bleve_index_api v1.0.0/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= | ||||||
| github.com/blevesearch/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= | github.com/blevesearch/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= | ||||||
| github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA= | github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA= | ||||||
| github.com/blevesearch/scorch_segment_api v1.0.0 h1:BUkCPWDg2gimTEyVDXf85I2buqqt4lh28uaVMiJsIYk= | github.com/blevesearch/scorch_segment_api/v2 v2.0.1 h1:fd+hPtZ8GsbqPK1HslGp7Vhoik4arZteA/IsCEgOisw= | ||||||
| github.com/blevesearch/scorch_segment_api v1.0.0/go.mod h1:KgRYmlfYC27NeM6cXOHx8LBgq7jn0atpV8mVWoBKBng= | github.com/blevesearch/scorch_segment_api/v2 v2.0.1/go.mod h1:lq7yK2jQy1yQjtjTfU931aVqz7pYxEudHaDwOt1tXfU= | ||||||
|  | github.com/blevesearch/vellum v1.0.3 h1:U86G41A7CtXNzzpIJHM8lSTUqz1Mp8U870TkcdCzZc8= | ||||||
|  | github.com/blevesearch/vellum v1.0.3/go.mod h1:2u5ax02KeDuNWu4/C+hVQMD6uLN4txH1JbtpaDNLJRo= | ||||||
| github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= | 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-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.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= | ||||||
| github.com/couchbase/vellum v1.0.2 h1:BrbP0NKiyDdndMPec8Jjhy0U47CZ0Lgx3xUC2r9rZqw= |  | ||||||
| github.com/couchbase/vellum v1.0.2/go.mod h1:FcwrEivFpNi24R3jLOs3n+fs5RnuQnQqCLBJ1uAg1W4= |  | ||||||
| github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= | github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= | ||||||
| github.com/davecgh/go-spew v1.1.0/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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user