go1.16 (#14783)
This commit is contained in:
		
							parent
							
								
									030646eea4
								
							
						
					
					
						commit
						47f6a4ec3f
					
				
					 947 changed files with 26119 additions and 7062 deletions
				
			
		
							
								
								
									
										84
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										84
									
								
								.drone.yml
									
									
									
									
									
								
							|  | @ -6,10 +6,6 @@ platform: | |||
|   os: linux | ||||
|   arch: arm64 | ||||
| 
 | ||||
| workspace: | ||||
|   base: /go | ||||
|   path: src/code.gitea.io/gitea | ||||
| 
 | ||||
| trigger: | ||||
|   event: | ||||
|     - push | ||||
|  | @ -31,7 +27,7 @@ steps: | |||
| 
 | ||||
|   - name: lint-backend | ||||
|     pull: always | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - make lint-backend | ||||
|     environment: | ||||
|  | @ -41,7 +37,7 @@ steps: | |||
| 
 | ||||
|   - name: lint-backend-windows | ||||
|     pull: always | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - make golangci-lint vet | ||||
|     environment: | ||||
|  | @ -53,7 +49,7 @@ steps: | |||
| 
 | ||||
|   - name: lint-backend-gogit | ||||
|     pull: always | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - make lint-backend | ||||
|     environment: | ||||
|  | @ -69,7 +65,7 @@ steps: | |||
| 
 | ||||
|   - name: checks-backend | ||||
|     pull: always | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - make checks-backend | ||||
|     depends_on: [lint-backend] | ||||
|  | @ -91,7 +87,7 @@ steps: | |||
|     depends_on: [checks-backend] | ||||
| 
 | ||||
|   - name: build-backend-arm64 | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     environment: | ||||
|       GO111MODULE: on | ||||
|       GOPROXY: off | ||||
|  | @ -104,7 +100,7 @@ steps: | |||
|     depends_on: [checks-backend] | ||||
| 
 | ||||
|   - name: build-backend-windows | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     environment: | ||||
|       GO111MODULE: on | ||||
|       GOPROXY: off | ||||
|  | @ -116,7 +112,7 @@ steps: | |||
|     depends_on: [checks-backend] | ||||
| 
 | ||||
|   - name: build-backend-386 | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     environment: | ||||
|       GO111MODULE: on | ||||
|       GOPROXY: off | ||||
|  | @ -143,10 +139,6 @@ trigger: | |||
|     - tag | ||||
|     - pull_request | ||||
| 
 | ||||
| workspace: | ||||
|   base: /go | ||||
|   path: src/code.gitea.io/gitea | ||||
| 
 | ||||
| services: | ||||
|   - name: mysql | ||||
|     image: mysql:5.7 | ||||
|  | @ -195,7 +187,7 @@ steps: | |||
| 
 | ||||
|   - name: build | ||||
|     pull: always | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - make backend | ||||
|     environment: | ||||
|  | @ -210,7 +202,7 @@ steps: | |||
|       - git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA} | ||||
| 
 | ||||
|   - name: unit-test | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - make unit-test-coverage test-check | ||||
|     environment: | ||||
|  | @ -221,7 +213,7 @@ steps: | |||
| 
 | ||||
|   - name: unit-test-gogit | ||||
|     pull: always | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - make unit-test-coverage test-check | ||||
|     environment: | ||||
|  | @ -231,7 +223,7 @@ steps: | |||
|         from_secret: github_read_token | ||||
| 
 | ||||
|   - name: test-mysql | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" | ||||
|       - apt-get install -y git-lfs | ||||
|  | @ -246,7 +238,7 @@ steps: | |||
|       - build | ||||
| 
 | ||||
|   - name: test-mysql8 | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" | ||||
|       - apt-get install -y git-lfs | ||||
|  | @ -260,7 +252,7 @@ steps: | |||
|       - build | ||||
| 
 | ||||
|   - name: test-mssql | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" | ||||
|       - apt-get install -y git-lfs | ||||
|  | @ -274,7 +266,7 @@ steps: | |||
|       - build | ||||
| 
 | ||||
|   - name: generate-coverage | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - make coverage | ||||
|     environment: | ||||
|  | @ -324,10 +316,6 @@ trigger: | |||
|     - tag | ||||
|     - pull_request | ||||
| 
 | ||||
| workspace: | ||||
|   base: /go | ||||
|   path: src/code.gitea.io/gitea | ||||
| 
 | ||||
| services: | ||||
|   - name: pgsql | ||||
|     pull: default | ||||
|  | @ -352,16 +340,16 @@ steps: | |||
| 
 | ||||
|   - name: build | ||||
|     pull: always | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - make backend | ||||
|     environment: | ||||
|       GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not | ||||
|       GOSUMDB: sum.golang.org | ||||
|       TAGS: bindata sqlite sqlite_unlock_notify | ||||
|       TAGS: bindata gogit sqlite sqlite_unlock_notify | ||||
| 
 | ||||
|   - name: test-sqlite | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" | ||||
|       - apt-get install -y git-lfs | ||||
|  | @ -375,7 +363,7 @@ steps: | |||
|       - build | ||||
| 
 | ||||
|   - name: test-pgsql | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" | ||||
|       - apt-get install -y git-lfs | ||||
|  | @ -397,10 +385,6 @@ platform: | |||
|   os: linux | ||||
|   arch: arm64 | ||||
| 
 | ||||
| workspace: | ||||
|   base: /go | ||||
|   path: src/code.gitea.io/gitea | ||||
| 
 | ||||
| trigger: | ||||
|   branch: | ||||
|     - master | ||||
|  | @ -459,11 +443,7 @@ name: update_gitignore_and_licenses | |||
| 
 | ||||
| platform: | ||||
|   os: linux | ||||
|   arch: amd64 | ||||
| 
 | ||||
| workspace: | ||||
|   base: /go | ||||
|   path: src/code.gitea.io/gitea | ||||
|   arch: arm64 | ||||
| 
 | ||||
| trigger: | ||||
|   branch: | ||||
|  | @ -475,7 +455,7 @@ trigger: | |||
| 
 | ||||
| steps: | ||||
|   - name: download | ||||
|     image: golang:1.15 | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - timeout -s ABRT 40m make generate-license generate-gitignore | ||||
| 
 | ||||
|  | @ -500,10 +480,6 @@ platform: | |||
|   os: linux | ||||
|   arch: amd64 | ||||
| 
 | ||||
| workspace: | ||||
|   base: /go | ||||
|   path: src/code.gitea.io/gitea | ||||
| 
 | ||||
| trigger: | ||||
|   branch: | ||||
|     - master | ||||
|  | @ -523,7 +499,7 @@ steps: | |||
| 
 | ||||
|   - name: static | ||||
|     pull: always | ||||
|     image: techknowlogick/xgo:go-1.15.x | ||||
|     image: techknowlogick/xgo:go-1.16.x | ||||
|     commands: | ||||
|       - curl -sL https://deb.nodesource.com/setup_14.x | bash - && apt -y install nodejs | ||||
|       - export PATH=$PATH:$GOPATH/bin | ||||
|  | @ -598,10 +574,6 @@ platform: | |||
|   os: linux | ||||
|   arch: amd64 | ||||
| 
 | ||||
| workspace: | ||||
|   base: /go | ||||
|   path: src/code.gitea.io/gitea | ||||
| 
 | ||||
| trigger: | ||||
|   event: | ||||
|     - tag | ||||
|  | @ -619,7 +591,7 @@ steps: | |||
| 
 | ||||
|   - name: static | ||||
|     pull: always | ||||
|     image: techknowlogick/xgo:go-1.15.x | ||||
|     image: techknowlogick/xgo:go-1.16.x | ||||
|     commands: | ||||
|       - curl -sL https://deb.nodesource.com/setup_14.x | bash - && apt -y install nodejs | ||||
|       - export PATH=$PATH:$GOPATH/bin | ||||
|  | @ -719,10 +691,6 @@ platform: | |||
|   os: linux | ||||
|   arch: amd64 | ||||
| 
 | ||||
| workspace: | ||||
|   base: /go | ||||
|   path: src/code.gitea.io/gitea | ||||
| 
 | ||||
| depends_on: | ||||
|   - testing-amd64 | ||||
|   - testing-arm64 | ||||
|  | @ -788,10 +756,6 @@ platform: | |||
|   os: linux | ||||
|   arch: arm64 | ||||
| 
 | ||||
| workspace: | ||||
|   base: /go | ||||
|   path: src/code.gitea.io/gitea | ||||
| 
 | ||||
| depends_on: | ||||
|   - compliance | ||||
| 
 | ||||
|  | @ -824,10 +788,6 @@ platform: | |||
|   os: linux | ||||
|   arch: arm64 | ||||
| 
 | ||||
| workspace: | ||||
|   base: /go | ||||
|   path: src/code.gitea.io/gitea | ||||
| 
 | ||||
| depends_on: | ||||
|   - testing-amd64 | ||||
|   - testing-arm64 | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| 
 | ||||
| ################################### | ||||
| #Build stage | ||||
| FROM golang:1.15-alpine3.13 AS build-env | ||||
| FROM golang:1.16-alpine3.13 AS build-env | ||||
| 
 | ||||
| ARG GOPROXY | ||||
| ENV GOPROXY ${GOPROXY:-direct} | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| 
 | ||||
| ################################### | ||||
| #Build stage | ||||
| FROM golang:1.15-alpine3.13 AS build-env | ||||
| FROM golang:1.16-alpine3.13 AS build-env | ||||
| 
 | ||||
| ARG GOPROXY | ||||
| 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" ) | ||||
| COMMA := , | ||||
| 
 | ||||
| XGO_VERSION := go-1.15.x | ||||
| XGO_VERSION := go-1.16.x | ||||
| MIN_GO_VERSION := 001014000 | ||||
| MIN_NODE_VERSION := 010013000 | ||||
| 
 | ||||
|  | @ -596,7 +596,7 @@ release-darwin: | $(DIST_DIRS) | |||
| 	@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | ||||
| 		GO111MODULE=off $(GO) get -u src.techknowlogick.com/xgo; \
 | ||||
| 	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) | ||||
| 	cp /build/* $(DIST)/binaries | ||||
| endif | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ params: | |||
|   website: https://docs.gitea.io | ||||
|   version: 1.13.2 | ||||
|   minGoVersion: 1.14 | ||||
|   goVersion: 1.15 | ||||
|   goVersion: 1.16 | ||||
|   minNodeVersion: 10.13 | ||||
| 
 | ||||
| outputs: | ||||
|  |  | |||
							
								
								
									
										66
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								go.mod
									
									
									
									
									
								
							|  | @ -3,6 +3,7 @@ module code.gitea.io/gitea | |||
| go 1.14 | ||||
| 
 | ||||
| require ( | ||||
| 	cloud.google.com/go v0.78.0 // indirect | ||||
| 	code.gitea.io/gitea-vet v0.2.1 | ||||
| 	code.gitea.io/sdk/gitea v0.13.2 | ||||
| 	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/session v0.0.0-20210108030337-0cb48c5ba8ee | ||||
| 	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/PuerkitoBio/goquery v1.5.1 | ||||
| 	github.com/RoaringBitmap/roaring v0.5.5 // indirect | ||||
| 	github.com/alecthomas/chroma v0.8.2 | ||||
| 	github.com/andybalholm/brotli v1.0.1 // 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/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // indirect | ||||
| 	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/denisenkom/go-mssqldb v0.9.0 | ||||
| 	github.com/dgrijalva/jwt-go v3.2.0+incompatible | ||||
| 	github.com/dlclark/regexp2 v1.4.0 // indirect | ||||
| 	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/ethantkoenig/rupture v1.0.0 | ||||
| 	github.com/gliderlabs/ssh v0.3.1 | ||||
| 	github.com/glycerine/go-unsnap-stream v0.0.0-20190901134440-81cf024a9e0a // indirect | ||||
| 	github.com/go-chi/chi v1.5.1 | ||||
| 	github.com/gliderlabs/ssh v0.3.2 | ||||
| 	github.com/glycerine/go-unsnap-stream v0.0.0-20210130063903-47dfef350d96 // indirect | ||||
| 	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-enry/go-enry/v2 v2.6.0 | ||||
| 	github.com/go-git/go-billy/v5 v5.0.0 | ||||
| 	github.com/go-git/go-git/v5 v5.2.0 | ||||
| 	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-swagger/go-swagger v0.26.0 | ||||
| 	github.com/go-testfixtures/testfixtures/v3 v3.4.1 | ||||
| 	github.com/go-swagger/go-swagger v0.26.1 | ||||
| 	github.com/go-testfixtures/testfixtures/v3 v3.5.0 | ||||
| 	github.com/gobwas/glob v0.2.3 | ||||
| 	github.com/gogs/chardet v0.0.0-20191104214054-4b6791f73a28 | ||||
| 	github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14 | ||||
| 	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/uuid v1.2.0 | ||||
| 	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/hashicorp/go-cleanhttp v0.5.2 // indirect | ||||
| 	github.com/hashicorp/go-retryablehttp v0.6.8 // indirect | ||||
|  | @ -56,44 +67,56 @@ require ( | |||
| 	github.com/issue9/identicon v1.0.1 | ||||
| 	github.com/jaytaylor/html2text v0.0.0-20200412013138-3577fbdbcff7 | ||||
| 	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/klauspost/compress v1.11.7 | ||||
| 	github.com/klauspost/compress v1.11.8 | ||||
| 	github.com/klauspost/pgzip v1.2.5 // indirect | ||||
| 	github.com/lafriks/xormstore v1.4.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/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-runewidth v0.0.10 // indirect | ||||
| 	github.com/mattn/go-sqlite3 v1.14.6 | ||||
| 	github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81 | ||||
| 	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/microcosm-cc/bluemonday v1.0.4 | ||||
| 	github.com/minio/md5-simd v1.1.1 // indirect | ||||
| 	github.com/minio/minio-go/v7 v7.0.9 | ||||
| 	github.com/miekg/dns v1.1.40 // indirect | ||||
| 	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/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/niklasfasching/go-org v1.4.0 | ||||
| 	github.com/olekukonko/tablewriter v0.0.5 // indirect | ||||
| 	github.com/oliamb/cutter v0.2.2 | ||||
| 	github.com/olivere/elastic/v7 v7.0.22 | ||||
| 	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/pquerna/otp v1.3.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/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/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect | ||||
| 	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/stretchr/testify v1.7.0 | ||||
| 	github.com/syndtr/goleveldb v1.0.0 | ||||
| 	github.com/tinylib/msgp v1.1.5 // indirect | ||||
| 	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/i18n v0.0.0-20200823051745-09abd91c7f2c | ||||
| 	github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae | ||||
|  | @ -101,18 +124,21 @@ require ( | |||
| 	github.com/urfave/cli v1.22.5 | ||||
| 	github.com/willf/bitset v1.1.11 // indirect | ||||
| 	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/yuin/goldmark v1.3.2 | ||||
| 	github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691 | ||||
| 	github.com/yuin/goldmark-meta v1.0.0 | ||||
| 	go.jolheiser.com/hcaptcha v0.0.4 | ||||
| 	go.jolheiser.com/pwn v0.0.3 | ||||
| 	golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad | ||||
| 	golang.org/x/net v0.0.0-20210119194325-5f4716e94777 | ||||
| 	golang.org/x/oauth2 v0.0.0-20210210192628-66670185b0cd | ||||
| 	golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c | ||||
| 	go.uber.org/multierr v1.6.0 // indirect | ||||
| 	go.uber.org/zap v1.16.0 // indirect | ||||
| 	golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 | ||||
| 	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/time v0.0.0-20201208040808-7e3f01d25324 // indirect | ||||
| 	golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect | ||||
| 	golang.org/x/tools v0.1.0 | ||||
| 	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect | ||||
| 	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.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= | ||||
| 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.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= | ||||
| 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.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= | ||||
| 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.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.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= | ||||
| 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.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/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/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= | ||||
| 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/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/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo= | ||||
| 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/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/cascadia v1.1.0 h1:BuuO6sSfQNFRu1LppgbD25Hr2vLYW25JvxHs5zzsLTo= | ||||
| 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-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= | ||||
| 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-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-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-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= | ||||
| 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/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= | ||||
| 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.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/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= | ||||
| 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/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/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/go.mod h1:9PfHYUdQCgHktBgvtUOF4x+pc4/l8rdH0u5spnW85UQ= | ||||
| 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/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/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/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/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/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/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/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 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= | ||||
| 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-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/go.mod h1:tr26xh+9fY5dN0J6IPAlMj07qpog22PJKa7Nw7j835U= | ||||
| 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/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-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/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= | ||||
| 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-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | ||||
| 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/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/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-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/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 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= | ||||
| 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/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-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.9.0 h1:RSohk2RsiZqLZ0zCjtfn3S4Gp4exhpBWHyQ7D0yGjAk= | ||||
| 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-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/editorconfig/editorconfig-core-go/v2 v2.3.9 h1:4vZN3UCLAUbT408wDutTKGZwOlgGMpV3vhahYufNbV8= | ||||
| 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 h1:ELDiPZji50x20Wvf9FnP4pb7fE3PV/DNhNd6MRlhgfI= | ||||
| 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/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= | ||||
|  | @ -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.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.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/ethantkoenig/rupture v1.0.0 h1:gPInt1N30UErGNzd8t5js5Qbnpjcd1l6yU2MCrJxIe8= | ||||
| 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/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.3.1 h1:L6VrMUGZaMlNIMN8Hj+CHh4U9yodJE3FAt/rgvfaKvE= | ||||
| github.com/gliderlabs/ssh v0.3.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= | ||||
| github.com/gliderlabs/ssh v0.3.2 h1:gcfd1Aj/9RQxvygu4l3sak711f/5+VOwBw9C/7+N4EI= | ||||
| 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-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-20190901134440-81cf024a9e0a h1:FQqoVvjbiUioBBFUL5up+h+GdCa/AnJsL/1bIs/veSI= | ||||
| 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 h1:rCXyLrgJ598XNj7KTqPzAvwTzlyvI+clqasoNfLQStE= | ||||
| 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/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-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.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/go.mod h1:K2Yje0VW/SJzxiyMYu6iPQYa7hMjQX2i/F491VChg1I= | ||||
| 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.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= | ||||
| 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.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.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= | ||||
| 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.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.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4= | ||||
| 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/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4= | ||||
| 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.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.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.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.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= | ||||
| 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.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.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.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.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= | ||||
| 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.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.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.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.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.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.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.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/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.5.0 h1:L3r1Q3I5WOUdXZGCP6g44EruKh0u3n6co5Hl5xWkdGA= | ||||
| github.com/go-redis/redis/v8 v8.5.0/go.mod h1:YmEcgBDttjnkbMzDAhDtQxY9yVA7jMN6PCR5HeMvqFE= | ||||
| github.com/go-redis/redis/v8 v8.6.0 h1:swqbqOrxaPztsj2Hf1p94M3YAgl7hYEpcw21z299hh8= | ||||
| 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.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/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= | ||||
| 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-swagger/go-swagger v0.26.0 h1:LM5XTbeRbDdjHRqdA0jchK5Qs3DB2F0R5QmXs1pd/L0= | ||||
| github.com/go-swagger/go-swagger v0.26.0/go.mod h1:kSAA+pziAr5x68on6TxcxWoIl9GOo1mLsHmfMV2rrCo= | ||||
| github.com/go-swagger/go-swagger v0.26.1 h1:1XUWLnH6hKxHzeKjJfA2gHkSqcT1Zgi4q/PZp2hDdN8= | ||||
| 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/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.4.1/go.mod h1:P4L3WxgOsCLbAeUC50qX5rdj1ULZfUMqgCbqah3OH5U= | ||||
| github.com/go-testfixtures/testfixtures/v3 v3.5.0 h1:fFJGHhFdcwy48oTLHvr0WRQ09rGiZE+as9ElvbRWS+c= | ||||
| 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/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= | ||||
| 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/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.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw= | ||||
| 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 v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= | ||||
| 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/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.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-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | ||||
| 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-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-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/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.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= | ||||
| github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/googleapis/gax-go/v2 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/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.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= | ||||
| 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/go.mod h1:YeAe0gNeiNT5hoiZRI4yiOky6jVdNvfO2N6Kav/HmxY= | ||||
| 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/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.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= | ||||
| 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.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/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.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= | ||||
| 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/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-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.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= | ||||
| 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.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/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= | ||||
| 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/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/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/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-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/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= | ||||
| 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.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= | ||||
| 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.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | ||||
| github.com/klauspost/compress v1.11.8 h1:difgzQsp5mdAz9v8lm3P/I+EpDKMU/6uTMw1y1FObuo= | ||||
| 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.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= | ||||
| 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/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.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= | ||||
| 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.9.0 h1:L8nSXQQzAYByakOFMTwpjRoHsMJklur4Gi59b6VivR8= | ||||
| 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.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-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= | ||||
| 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-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= | ||||
| 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.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/goth v1.66.1 h1:8YIkRxRxiUxhYhHdvriKiJ+mk2itt2ezjf/ABR8U+JI= | ||||
| github.com/markbates/goth v1.66.1/go.mod h1:57wf4mNb/fy/Cizm8xe4komsQRKPuelTMrm/wGcw3v8= | ||||
| github.com/markbates/goth v1.67.1 h1:gU5B0pzHVyhnJPwGynfFnkfvaQ39C1Sy+ewdl+bhAOw= | ||||
| 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/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= | ||||
|  | @ -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-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.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/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= | ||||
| 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/revive v1.0.3 h1:z3FL6IFFN3JKzHYHD8O1ExH9g/4lAGJ5x1+9rPZgsFg= | ||||
| 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.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/go.mod h1:qqTTPUK/HZPFgFQ/TJ3BzvTpF/dPtFVJXdQbCmeMxwc= | ||||
| 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.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.1 h1:9ojcLbuZ4gXbB2sX53MKn8JUZ0sB/2wfwsEcRw+I08U= | ||||
| github.com/minio/md5-simd v1.1.1/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= | ||||
| github.com/minio/minio-go/v7 v7.0.9 h1:v+RS2/dpRq+XaarlZItHd3MVjjQcN2noRn4HxmVdmg4= | ||||
| github.com/minio/minio-go/v7 v7.0.9/go.mod h1:td4gW1ldOsj1PbSNS+WYK43j+P1XVhX/8W8awaYlBFo= | ||||
| github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU= | ||||
| github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= | ||||
| github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= | ||||
| github.com/minio/minio-go/v7 v7.0.10 h1:1oUKe4EOPUEhw2qnPQaPsJ0lmVTYLFu03SiItauXs94= | ||||
| github.com/minio/minio-go/v7 v7.0.10/go.mod h1:td4gW1ldOsj1PbSNS+WYK43j+P1XVhX/8W8awaYlBFo= | ||||
| 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/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | ||||
| 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/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= | ||||
| 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-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.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM= | ||||
| 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-20200810204841-913b8f8cdf8b/go.mod h1:np1wUFZ6tyoke22qDJZY40URn9Ae51gX7ljIWXN5TJs= | ||||
| github.com/msteinert/pam v0.0.0-20201130170657-e61372126161 h1:XQ1+fYPzaWZCVdu1xzjL917Xy9Yb7imLEU0wHelafKA= | ||||
| 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-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= | ||||
| 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/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.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.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/go.mod h1:4BenG2/4GuRBDbVm/OPahDVqbrOemzpPiG5mi1iryBU= | ||||
| 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.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.14.2 h1:8mVmC9kjFFmA8H4pKMUhcblgifdkOIXPvbhN1T36q1M= | ||||
| 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/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.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.3 h1:gph6h/qe9GSUw1NhH1gp+qb+h8rXD8Cy60Z32Qw3ELA= | ||||
| 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/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/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.1.1 h1:cS6aGkNLJr4u+UwaA21yp+gbWN3WJWtKo1axmPDObMA= | ||||
| github.com/pierrec/lz4/v4 v4.1.1/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= | ||||
| github.com/pierrec/lz4/v4 v4.1.3 h1:/dvQpkb0o1pVlSgKNQqfkavlnXaIK+hJ0LXsKRUN9D4= | ||||
| 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.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| 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.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.15.0 h1:4fgOnadei3EZvgRwxJ7RMpG1k1pOZth5Pc13tyspaKM= | ||||
| 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-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.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= | ||||
| 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.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= | ||||
| 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/quasoft/websspi v1.0.0 h1:5nDgdM5xSur9s+B5w2xQ5kxf5nUGqgFgU4W0aDLZ8Mw= | ||||
| 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/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/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.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/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= | ||||
|  | @ -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/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/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/vfsgen v0.0.0-20200824052919-0d455de96546 h1:pXY9qYc/MP5zdvqWEUH6SjNiu7VhSjuVFTFiTcphaLU= | ||||
| 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/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.4.1 h1:asw9sl74539yqavKaglDM5hFpdJVK0Y5Dr/JOgQ89nQ= | ||||
| 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.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= | ||||
| 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/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.8 h1:ERv8V6GKqVi23rgu5cj9pVfVzJbOqAY2Ntl88O6c2nQ= | ||||
| github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= | ||||
| github.com/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8= | ||||
| 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 v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs= | ||||
| 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/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/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.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/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= | ||||
| 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.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.4 h1:bsPHfODES+/yx2PCWzUYMH8xj6PVniPI8DQrsJuSXSs= | ||||
| 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.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= | ||||
| 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.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | ||||
| 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.16.0 h1:uIWEbdeb4vpKPGITLsRVUS44L5oDbDUCZxn8lkxhmgw= | ||||
| go.opentelemetry.io/otel v0.16.0/go.mod h1:e4GKElweB8W2gWUqbghw0B8t5MCTccc9212eNHnOHwA= | ||||
| go.opentelemetry.io/otel v0.17.0 h1:6MKOu8WY4hmfpQ4oQn34u6rYhnf2sWf1LXYO/UFm71U= | ||||
| 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.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.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= | ||||
| 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.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/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/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.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.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-20181029021203-45a5f77698d3/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-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-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= | ||||
| golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | ||||
| golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g= | ||||
| 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-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||
| 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-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-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-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-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= | ||||
| 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.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= | ||||
| golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||
| golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= | ||||
| golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||
| golang.org/x/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-20180724234803-3673e40ba225/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-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-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-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-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-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-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||
| 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-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-20210210192628-66670185b0cd h1:2arJsLyTCJGek+eeptQ3z49Rqndm0f+zvvpwNIXWNIA= | ||||
| golang.org/x/oauth2 v0.0.0-20210210192628-66670185b0cd/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||
| golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/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-20181108010431-42b317875d0f/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-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-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-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-20180830151530-49385e6e1522/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-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-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-20191001151750-bb3f8db39f24/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-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-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-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-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-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-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= | ||||
| 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-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-20201208040808-7e3f01d25324 h1:Hir2P/De0WpUhtrKGGjvSb2YxUgyZ7EFOSLIcSSpiwE= | ||||
| golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||
| golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE= | ||||
| 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-20180828015842-6cd1fcedba52/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-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-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-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-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||
| 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/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.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= | ||||
| 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.2.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-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-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.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | ||||
| 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.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.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-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= | ||||
| 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.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-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-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-20190102054323-c2f93a96b099/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= | ||||
| 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= | ||||
| 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.9 h1:Sd65/LdWyO7LR8+Cbd+e7mm3sK/7U9k0jS3999IDHMc= | ||||
| 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.7 h1:26yBTDVI+CfQpVz2Y88fISh+aiJXIPP4eNoTJlwzsC4= | ||||
| 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 | ||||
| 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, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| 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/blevesearch/bleve_index_api v1.0.0 | ||||
| 	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/snowballstem v0.9.0 | ||||
| 	github.com/blevesearch/upsidedown_store_api v1.0.1 | ||||
| 	github.com/blevesearch/zapx/v11 v11.1.10 | ||||
| 	github.com/blevesearch/zapx/v12 v12.1.10 | ||||
| 	github.com/blevesearch/zapx/v13 v13.1.10 | ||||
| 	github.com/blevesearch/zapx/v14 v14.1.10 | ||||
| 	github.com/blevesearch/zapx/v15 v15.1.10 | ||||
| 	github.com/blevesearch/vellum v1.0.3 | ||||
| 	github.com/blevesearch/zapx/v11 v11.2.0 | ||||
| 	github.com/blevesearch/zapx/v12 v12.2.0 | ||||
| 	github.com/blevesearch/zapx/v13 v13.2.0 | ||||
| 	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/vellum v1.0.2 | ||||
| 	github.com/golang/protobuf v1.3.2 | ||||
| 	github.com/kljensen/snowball v0.6.0 | ||||
| 	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/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= | ||||
| 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/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/go.mod h1:9PfHYUdQCgHktBgvtUOF4x+pc4/l8rdH0u5spnW85UQ= | ||||
| 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/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/zapx/v11 v11.1.10 h1:8Eo3rXiHsVSP9Sk+4StrrwLrj9vyulhMVPmxTf8ZuDg= | ||||
| 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/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/v13 v13.1.10/go.mod h1:YsVY6YGpTEAlJOMjdL7EsdBLvjWd8kPa2gwJDNpqLJo= | ||||
| github.com/blevesearch/zapx/v14 v14.1.10 h1:nD0vw2jxKogJFfA5WyoS4wNwZlVby3Aq8aW7CZi6YIw= | ||||
| 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/v15 v15.1.10/go.mod h1:4ypq25bwtSQKzwEF1UERyIhmGTbMT3brY/n4NC5gRnM= | ||||
| 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.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.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.2.0 h1:mUqbaqQABp8nBE4t4q2qMyHCCq4sykoV8r7aJk4ih3s= | ||||
| github.com/blevesearch/zapx/v13 v13.2.0/go.mod h1:o5rAy/lRS5JpAbITdrOHBS/TugWYbkcYZTz6VfEinAQ= | ||||
| 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.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/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= | ||||
|  | @ -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/moss v0.1.0 h1:HCL+xxHUwmOaL44kMM/gU08OW6QGCui1WVFO58bjhNI= | ||||
| 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/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= | ||||
|  |  | |||
							
								
								
									
										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" | ||||
| 	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" | ||||
| ) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										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 | ||||
| 
 | ||||
| import segment "github.com/blevesearch/scorch_segment_api" | ||||
| import segment "github.com/blevesearch/scorch_segment_api/v2" | ||||
| 
 | ||||
| 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" | ||||
| 	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 { | ||||
|  |  | |||
							
								
								
									
										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/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() { | ||||
|  |  | |||
							
								
								
									
										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" | ||||
| 	"github.com/RoaringBitmap/roaring" | ||||
| 	index "github.com/blevesearch/bleve_index_api" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||
| 	"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" | ||||
| 	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" | ||||
| ) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										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 ( | ||||
| 	"regexp/syntax" | ||||
| 
 | ||||
| 	"github.com/couchbase/vellum/regexp" | ||||
| 	"github.com/blevesearch/vellum/regexp" | ||||
| ) | ||||
| 
 | ||||
| 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/blevesearch/bleve/v2/registry" | ||||
| 	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" | ||||
| ) | ||||
| 
 | ||||
|  | @ -199,11 +199,9 @@ func (s *Scorch) openBolt() error { | |||
| 		s.unsafeBatch = true | ||||
| 	} | ||||
| 
 | ||||
| 	var rootBoltOpt *bolt.Options | ||||
| 	var rootBoltOpt = *bolt.DefaultOptions | ||||
| 	if s.readOnly { | ||||
| 		rootBoltOpt = &bolt.Options{ | ||||
| 			ReadOnly: true, | ||||
| 		} | ||||
| 		rootBoltOpt.ReadOnly = true | ||||
| 	} else { | ||||
| 		if s.path != "" { | ||||
| 			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" | ||||
| 	var err error | ||||
| 	if s.path != "" { | ||||
| 		s.rootBolt, err = bolt.Open(rootBoltPath, 0600, rootBoltOpt) | ||||
| 		s.rootBolt, err = bolt.Open(rootBoltPath, 0600, &rootBoltOpt) | ||||
| 		if err != nil { | ||||
| 			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" | ||||
| 	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" | ||||
| 	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/blevesearch/bleve/v2/document" | ||||
| 	index "github.com/blevesearch/bleve_index_api" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api" | ||||
| 	"github.com/couchbase/vellum" | ||||
| 	lev "github.com/couchbase/vellum/levenshtein" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||
| 	"github.com/blevesearch/vellum" | ||||
| 	lev "github.com/blevesearch/vellum/levenshtein" | ||||
| ) | ||||
| 
 | ||||
| // 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" | ||||
| 
 | ||||
| 	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 { | ||||
|  |  | |||
							
								
								
									
										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" | ||||
| 	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 | ||||
|  |  | |||
							
								
								
									
										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/blevesearch/bleve/v2/size" | ||||
| 	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 | ||||
|  |  | |||
							
								
								
									
										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 ( | ||||
| 	"github.com/RoaringBitmap/roaring" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||
| 	"math" | ||||
| 	"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() | ||||
| 	} | ||||
| 
 | ||||
| 	// highlighting, store
 | ||||
| 	// overhead from fields, highlighting
 | ||||
| 	var d document.Document | ||||
| 	if len(req.Fields) > 0 || req.Highlight != nil { | ||||
| 		for i := 0; i < (req.Size + req.From); i++ { | ||||
| 			estimate += (req.Size + req.From) * d.Size() | ||||
| 		numDocsApplicable := req.Size | ||||
| 		if numDocsApplicable > collector.PreAllocSizeSkipCap { | ||||
| 			numDocsApplicable = collector.PreAllocSizeSkipCap | ||||
| 		} | ||||
| 		estimate += numDocsApplicable * d.Size() | ||||
| 	} | ||||
| 
 | ||||
| 	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 | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/RoaringBitmap/roaring v0.4.23 | ||||
| 	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 | ||||
| ) | ||||
|  | @ -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/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/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.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||
| 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/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= | ||||
| 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/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/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/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.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM= | ||||
| 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/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/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/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/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/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/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/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= | ||||
|  | @ -19,7 +19,6 @@ import ( | |||
| 
 | ||||
| 	"github.com/RoaringBitmap/roaring" | ||||
| 	index "github.com/blevesearch/bleve_index_api" | ||||
| 	"github.com/couchbase/vellum" | ||||
| ) | ||||
| 
 | ||||
| var ErrClosed = fmt.Errorf("index closed") | ||||
|  | @ -63,7 +62,7 @@ type PersistedSegment interface { | |||
| type TermDictionary interface { | ||||
| 	PostingsList(term []byte, except *roaring.Bitmap, prealloc PostingsList) (PostingsList, error) | ||||
| 
 | ||||
| 	AutomatonIterator(a vellum.Automaton, | ||||
| 	AutomatonIterator(a Automaton, | ||||
| 		startKeyInclusive, endKeyExclusive []byte) DictionaryIterator | ||||
| 
 | ||||
| 	Contains(key []byte) (bool, error) | ||||
|  | @ -1,4 +1,4 @@ | |||
| module github.com/couchbase/vellum | ||||
| module github.com/blevesearch/vellum | ||||
| 
 | ||||
| go 1.12 | ||||
| 
 | ||||
|  | @ -20,7 +20,7 @@ import ( | |||
| 
 | ||||
| 	unicode_utf8 "unicode/utf8" | ||||
| 
 | ||||
| 	"github.com/couchbase/vellum/utf8" | ||||
| 	"github.com/blevesearch/vellum/utf8" | ||||
| ) | ||||
| 
 | ||||
| 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" | ||||
| 	"os" | ||||
| 
 | ||||
| 	"github.com/couchbase/vellum" | ||||
| 	"github.com/blevesearch/vellum" | ||||
| ) | ||||
| 
 | ||||
| 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" | ||||
| 	"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
 | ||||
|  |  | |||
							
								
								
									
										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" | ||||
| 	index "github.com/blevesearch/bleve_index_api" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api" | ||||
| 	"github.com/couchbase/vellum" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||
| 	"github.com/blevesearch/vellum" | ||||
| ) | ||||
| 
 | ||||
| // 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
 | ||||
| // 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 { | ||||
| 	if d.fst != nil { | ||||
| 		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" | ||||
| 
 | ||||
| 	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" | ||||
| ) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										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 ( | ||||
| 	"bytes" | ||||
| 
 | ||||
| 	"github.com/couchbase/vellum" | ||||
| 	"github.com/blevesearch/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/blevesearch/bleve_index_api v1.0.0 | ||||
| 	github.com/blevesearch/mmap-go v1.0.2 | ||||
| 	github.com/blevesearch/scorch_segment_api v1.0.0 | ||||
| 	github.com/couchbase/vellum v1.0.2 | ||||
| 	github.com/blevesearch/scorch_segment_api/v2 v2.0.1 | ||||
| 	github.com/blevesearch/vellum v1.0.3 | ||||
| 	github.com/golang/snappy v0.0.1 | ||||
| 	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/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= | ||||
| 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/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/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/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.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" | ||||
| 
 | ||||
| 	"github.com/RoaringBitmap/roaring" | ||||
| 	seg "github.com/blevesearch/scorch_segment_api" | ||||
| 	"github.com/couchbase/vellum" | ||||
| 	seg "github.com/blevesearch/scorch_segment_api/v2" | ||||
| 	"github.com/blevesearch/vellum" | ||||
| 	"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" | ||||
| 	index "github.com/blevesearch/bleve_index_api" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api" | ||||
| 	"github.com/couchbase/vellum" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||
| 	"github.com/blevesearch/vellum" | ||||
| 	"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" | ||||
| 
 | ||||
| 	"github.com/RoaringBitmap/roaring" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||
| ) | ||||
| 
 | ||||
| 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" | ||||
| 	mmap "github.com/blevesearch/mmap-go" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api" | ||||
| 	"github.com/couchbase/vellum" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||
| 	"github.com/blevesearch/vellum" | ||||
| 	"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" | ||||
| 	"os" | ||||
| 
 | ||||
| 	"github.com/couchbase/vellum" | ||||
| 	"github.com/blevesearch/vellum" | ||||
| ) | ||||
| 
 | ||||
| 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" | ||||
| 	"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
 | ||||
|  |  | |||
							
								
								
									
										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" | ||||
| 	index "github.com/blevesearch/bleve_index_api" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api" | ||||
| 	"github.com/couchbase/vellum" | ||||
| 	segment "github.com/blevesearch/scorch_segment_api/v2" | ||||
| 	"github.com/blevesearch/vellum" | ||||
| ) | ||||
| 
 | ||||
| // 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
 | ||||
| // 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 { | ||||
| 	if d.fst != nil { | ||||
| 		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" | ||||
| 
 | ||||
| 	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" | ||||
| ) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										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 ( | ||||
| 	"bytes" | ||||
| 
 | ||||
| 	"github.com/couchbase/vellum" | ||||
| 	"github.com/blevesearch/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/blevesearch/bleve_index_api v1.0.0 | ||||
| 	github.com/blevesearch/mmap-go v1.0.2 | ||||
| 	github.com/blevesearch/scorch_segment_api v1.0.0 | ||||
| 	github.com/couchbase/vellum v1.0.2 | ||||
| 	github.com/blevesearch/scorch_segment_api/v2 v2.0.1 | ||||
| 	github.com/blevesearch/vellum v1.0.3 | ||||
| 	github.com/golang/snappy v0.0.1 | ||||
| 	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/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= | ||||
| 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/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/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/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.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||
|  |  | |||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
		Reference in a new issue