Update Vendor (#16325)
* Add Dependencie Update Script * update gitea.com/lunny/levelqueue * update github.com/PuerkitoBio/goquery * update github.com/alecthomas/chroma * update github.com/blevesearch/bleve/v2 * update github.com/caddyserver/certmagic * update github.com/go-enry/go-enry/v2 * update github.com/go-redis/redis/v8 * update github.com/hashicorp/golang-lru * update github.com/klauspost/compress * update github.com/markbates/goth * update github.com/mholt/archiver/v3 * update github.com/microcosm-cc/bluemonday * update github.com/minio/minio-go/v7 * update github.com/olivere/elastic/v7 * update github.com/xanzy/go-gitlab * update github.com/yuin/goldmark
This commit is contained in:
		
							parent
							
								
									65ae46bc20
								
							
						
					
					
						commit
						fae07cbc8f
					
				
					 319 changed files with 33568 additions and 21050 deletions
				
			
		
							
								
								
									
										8
									
								
								contrib/update_dependencies.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								contrib/update_dependencies.sh
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
grep 'git' go.mod | grep '\.com' | grep -v indirect | grep -v replace | cut -f 2 | cut -d ' ' -f 1 | while read line; do
 | 
			
		||||
  go get -u "$line"
 | 
			
		||||
  make vendor
 | 
			
		||||
  git add .
 | 
			
		||||
  git commit -S -m "update $line"
 | 
			
		||||
done
 | 
			
		||||
							
								
								
									
										43
									
								
								go.mod
									
										
									
									
									
								
							
							
						
						
									
										43
									
								
								go.mod
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -14,15 +14,15 @@ require (
 | 
			
		|||
	github.com/Microsoft/go-winio v0.5.0 // indirect
 | 
			
		||||
	github.com/NYTimes/gziphandler v1.1.1
 | 
			
		||||
	github.com/ProtonMail/go-crypto v0.0.0-20210512092938-c05353c2d58c // indirect
 | 
			
		||||
	github.com/PuerkitoBio/goquery v1.6.1
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.7.3 // indirect
 | 
			
		||||
	github.com/alecthomas/chroma v0.9.1
 | 
			
		||||
	github.com/PuerkitoBio/goquery v1.7.0
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.8.0 // indirect
 | 
			
		||||
	github.com/alecthomas/chroma v0.9.2
 | 
			
		||||
	github.com/andybalholm/brotli v1.0.3 // indirect
 | 
			
		||||
	github.com/andybalholm/cascadia v1.2.0 // indirect
 | 
			
		||||
	github.com/blevesearch/bleve/v2 v2.0.5
 | 
			
		||||
	github.com/blevesearch/bleve/v2 v2.0.6
 | 
			
		||||
	github.com/boombuler/barcode v1.0.1 // indirect
 | 
			
		||||
	github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // indirect
 | 
			
		||||
	github.com/caddyserver/certmagic v0.13.1
 | 
			
		||||
	github.com/caddyserver/certmagic v0.14.0
 | 
			
		||||
	github.com/chi-middleware/proxy v1.1.1
 | 
			
		||||
	github.com/couchbase/go-couchbase v0.0.0-20210224140812-5740cd35f448 // indirect
 | 
			
		||||
	github.com/couchbase/gomemcached v0.1.2 // indirect
 | 
			
		||||
| 
						 | 
				
			
			@ -39,11 +39,11 @@ require (
 | 
			
		|||
	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.2.0
 | 
			
		||||
	github.com/go-enry/go-enry/v2 v2.7.0
 | 
			
		||||
	github.com/go-enry/go-enry/v2 v2.7.1
 | 
			
		||||
	github.com/go-git/go-billy/v5 v5.3.1
 | 
			
		||||
	github.com/go-git/go-git/v5 v5.4.3-0.20210630082519-b4368b2a2ca4
 | 
			
		||||
	github.com/go-ldap/ldap/v3 v3.3.0
 | 
			
		||||
	github.com/go-redis/redis/v8 v8.10.0
 | 
			
		||||
	github.com/go-redis/redis/v8 v8.11.0
 | 
			
		||||
	github.com/go-sql-driver/mysql v1.6.0
 | 
			
		||||
	github.com/go-swagger/go-swagger v0.27.0
 | 
			
		||||
	github.com/go-testfixtures/testfixtures/v3 v3.6.1
 | 
			
		||||
| 
						 | 
				
			
			@ -51,6 +51,7 @@ require (
 | 
			
		|||
	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.4 // indirect
 | 
			
		||||
	github.com/google/go-github/v32 v32.1.0
 | 
			
		||||
	github.com/google/go-querystring v1.1.0 // indirect
 | 
			
		||||
	github.com/google/uuid v1.2.0
 | 
			
		||||
| 
						 | 
				
			
			@ -60,7 +61,7 @@ require (
 | 
			
		|||
	github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
 | 
			
		||||
	github.com/hashicorp/go-retryablehttp v0.7.0 // indirect
 | 
			
		||||
	github.com/hashicorp/go-version v1.3.1
 | 
			
		||||
	github.com/hashicorp/golang-lru v0.5.1
 | 
			
		||||
	github.com/hashicorp/golang-lru v0.5.4
 | 
			
		||||
	github.com/huandu/xstrings v1.3.2
 | 
			
		||||
	github.com/issue9/identicon v1.2.0
 | 
			
		||||
	github.com/jaytaylor/html2text v0.0.0-20200412013138-3577fbdbcff7
 | 
			
		||||
| 
						 | 
				
			
			@ -68,21 +69,21 @@ require (
 | 
			
		|||
	github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
 | 
			
		||||
	github.com/kevinburke/ssh_config v1.1.0 // indirect
 | 
			
		||||
	github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4
 | 
			
		||||
	github.com/klauspost/compress v1.13.0
 | 
			
		||||
	github.com/klauspost/compress v1.13.1
 | 
			
		||||
	github.com/klauspost/cpuid/v2 v2.0.7 // indirect
 | 
			
		||||
	github.com/klauspost/pgzip v1.2.5 // indirect
 | 
			
		||||
	github.com/lafriks/xormstore v1.4.0
 | 
			
		||||
	github.com/lib/pq v1.10.2
 | 
			
		||||
	github.com/libdns/libdns v0.2.1 // indirect
 | 
			
		||||
	github.com/lunny/dingtalk_webhook v0.0.0-20171025031554-e3534c89ef96
 | 
			
		||||
	github.com/markbates/goth v1.67.1
 | 
			
		||||
	github.com/mattn/go-isatty v0.0.13
 | 
			
		||||
	github.com/mattn/go-runewidth v0.0.13 // indirect
 | 
			
		||||
	github.com/mattn/go-sqlite3 v1.14.7
 | 
			
		||||
	github.com/mholt/archiver/v3 v3.5.0
 | 
			
		||||
	github.com/microcosm-cc/bluemonday v1.0.9
 | 
			
		||||
	github.com/miekg/dns v1.1.42 // indirect
 | 
			
		||||
	github.com/microcosm-cc/bluemonday v1.0.14
 | 
			
		||||
	github.com/miekg/dns v1.1.43 // indirect
 | 
			
		||||
	github.com/minio/md5-simd v1.1.2 // indirect
 | 
			
		||||
	github.com/minio/minio-go/v7 v7.0.10
 | 
			
		||||
	github.com/minio/minio-go/v7 v7.0.12
 | 
			
		||||
	github.com/minio/sha256-simd v1.0.0 // indirect
 | 
			
		||||
	github.com/mrjones/oauth v0.0.0-20190623134757-126b35219450 // indirect
 | 
			
		||||
	github.com/msteinert/pam v0.0.0-20201130170657-e61372126161
 | 
			
		||||
| 
						 | 
				
			
			@ -90,9 +91,9 @@ require (
 | 
			
		|||
	github.com/niklasfasching/go-org v1.5.0
 | 
			
		||||
	github.com/olekukonko/tablewriter v0.0.5 // indirect
 | 
			
		||||
	github.com/oliamb/cutter v0.2.2
 | 
			
		||||
	github.com/olivere/elastic/v7 v7.0.24
 | 
			
		||||
	github.com/olivere/elastic/v7 v7.0.25
 | 
			
		||||
	github.com/pelletier/go-toml v1.9.0 // indirect
 | 
			
		||||
	github.com/pierrec/lz4/v4 v4.1.7 // indirect
 | 
			
		||||
	github.com/pierrec/lz4/v4 v4.1.8 // indirect
 | 
			
		||||
	github.com/pkg/errors v0.9.1
 | 
			
		||||
	github.com/pquerna/otp v1.3.0
 | 
			
		||||
	github.com/prometheus/client_golang v1.11.0
 | 
			
		||||
| 
						 | 
				
			
			@ -112,23 +113,25 @@ require (
 | 
			
		|||
	github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae
 | 
			
		||||
	github.com/unrolled/render v1.4.0
 | 
			
		||||
	github.com/urfave/cli v1.22.5
 | 
			
		||||
	github.com/xanzy/go-gitlab v0.50.0
 | 
			
		||||
	github.com/xanzy/go-gitlab v0.50.1
 | 
			
		||||
	github.com/yohcop/openid-go v1.0.0
 | 
			
		||||
	github.com/yuin/goldmark v1.3.7
 | 
			
		||||
	github.com/yuin/goldmark v1.3.9
 | 
			
		||||
	github.com/yuin/goldmark-highlighting v0.0.0-20210516132338-9216f9c5aa01
 | 
			
		||||
	github.com/yuin/goldmark-meta v1.0.0
 | 
			
		||||
	go.etcd.io/bbolt v1.3.6 // indirect
 | 
			
		||||
	go.jolheiser.com/hcaptcha v0.0.4
 | 
			
		||||
	go.jolheiser.com/pwn v0.0.3
 | 
			
		||||
	go.uber.org/atomic v1.8.0 // indirect
 | 
			
		||||
	go.uber.org/multierr v1.7.0 // indirect
 | 
			
		||||
	go.uber.org/zap v1.17.0 // indirect
 | 
			
		||||
	go.uber.org/zap v1.18.1 // indirect
 | 
			
		||||
	golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e
 | 
			
		||||
	golang.org/x/net v0.0.0-20210614182718-04defd469f4e
 | 
			
		||||
	golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c
 | 
			
		||||
	golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914
 | 
			
		||||
	golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c
 | 
			
		||||
	golang.org/x/text v0.3.6
 | 
			
		||||
	golang.org/x/time v0.0.0-20210608053304-ed9ce3a009e4 // indirect
 | 
			
		||||
	golang.org/x/time v0.0.0-20210611083556-38a9dc6acbc6 // indirect
 | 
			
		||||
	golang.org/x/tools v0.1.0
 | 
			
		||||
	google.golang.org/protobuf v1.27.1 // indirect
 | 
			
		||||
	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
 | 
			
		||||
	gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
 | 
			
		||||
	gopkg.in/ini.v1 v1.62.0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										145
									
								
								go.sum
									
										
									
									
									
								
							
							
						
						
									
										145
									
								
								go.sum
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -71,17 +71,17 @@ github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/
 | 
			
		|||
github.com/ProtonMail/go-crypto v0.0.0-20210512092938-c05353c2d58c h1:bNpaLLv2Y4kslsdkdCwAYu8Bak1aGVtxwi8Z/wy4Yuo=
 | 
			
		||||
github.com/ProtonMail/go-crypto v0.0.0-20210512092938-c05353c2d58c/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
 | 
			
		||||
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
 | 
			
		||||
github.com/PuerkitoBio/goquery v1.6.1 h1:FgjbQZKl5HTmcn4sKBgvx8vv63nhyhIpv7lJpFGCWpk=
 | 
			
		||||
github.com/PuerkitoBio/goquery v1.6.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
 | 
			
		||||
github.com/PuerkitoBio/goquery v1.7.0 h1:O5SP3b9JWqMSVMG69zMfj577zwkSNpxrFf7ybS74eiw=
 | 
			
		||||
github.com/PuerkitoBio/goquery v1.7.0/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
 | 
			
		||||
github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
 | 
			
		||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
 | 
			
		||||
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/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.1/go.mod h1:jdT9ykXwHFNdJbEtxePexlFYH9LXucApeS0/+/g+p1I=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3 h1:RwirWpvFONt2EwHHEHhER7S4BHZkyj3qL5LXLlnQPZ4=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3/go.mod h1:jdT9ykXwHFNdJbEtxePexlFYH9LXucApeS0/+/g+p1I=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.8.0 h1:3naGkGvYAANr3ntyV+OpyhH+/rDaE2om9coNpIIdWAA=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.8.0/go.mod h1:jdT9ykXwHFNdJbEtxePexlFYH9LXucApeS0/+/g+p1I=
 | 
			
		||||
github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk=
 | 
			
		||||
github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4=
 | 
			
		||||
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
 | 
			
		||||
| 
						 | 
				
			
			@ -89,8 +89,8 @@ github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 h1:smF2tmSOzy2Mm
 | 
			
		|||
github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI=
 | 
			
		||||
github.com/alecthomas/chroma v0.7.2-0.20200305040604-4f3623dce67a/go.mod h1:fv5SzZPFJbwp2NXJWpFIX7DZS4HgV1K4ew4Pc2OZD9s=
 | 
			
		||||
github.com/alecthomas/chroma v0.8.2/go.mod h1:sko8vR34/90zvl5QdcUdvzL3J8NKjAUx9va9jPuFNoM=
 | 
			
		||||
github.com/alecthomas/chroma v0.9.1 h1:cBmvQqRImzR5aWqdMxYZByND4S7BCS/g0svZb28h0Dc=
 | 
			
		||||
github.com/alecthomas/chroma v0.9.1/go.mod h1:eMuEnpA18XbG/WhOWtCzJHS7WqEtDAI+HxdwoW0nVSk=
 | 
			
		||||
github.com/alecthomas/chroma v0.9.2 h1:yU1sE2+TZbLIQPMk30SolL2Hn53SR/Pv750f7qZ/XMs=
 | 
			
		||||
github.com/alecthomas/chroma v0.9.2/go.mod h1:eMuEnpA18XbG/WhOWtCzJHS7WqEtDAI+HxdwoW0nVSk=
 | 
			
		||||
github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 h1:JHZL0hZKJ1VENNfmXvHbgYlbUOvpzYzvy2aZU5gXVeo=
 | 
			
		||||
github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0=
 | 
			
		||||
github.com/alecthomas/kong v0.2.1-0.20190708041108-0548c6b1afae/go.mod h1:+inYUSluD+p4L8KdviBSgzcqEjUQOfC5fQDRFuc36lI=
 | 
			
		||||
| 
						 | 
				
			
			@ -126,22 +126,23 @@ github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:W
 | 
			
		|||
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ=
 | 
			
		||||
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
 | 
			
		||||
github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
 | 
			
		||||
github.com/aws/aws-sdk-go v1.38.3/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
 | 
			
		||||
github.com/aws/aws-sdk-go v1.38.17/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
 | 
			
		||||
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 | 
			
		||||
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 | 
			
		||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
 | 
			
		||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
 | 
			
		||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
 | 
			
		||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
 | 
			
		||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
 | 
			
		||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
 | 
			
		||||
github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=
 | 
			
		||||
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.1.10/go.mod h1:w0XsmFg8qg6cmpTtJ0z3pKgjTDBMMnI/+I2syrE6XBE=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
 | 
			
		||||
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
 | 
			
		||||
github.com/blevesearch/bleve/v2 v2.0.1/go.mod h1:OBP2Pktqik8vEiUlGhuWjYx7KiO4zD542+DHqICwM5w=
 | 
			
		||||
github.com/blevesearch/bleve/v2 v2.0.5 h1:184yM7uei4Cmw2SdKSdMWYg46OFRKsr+s8hBYc2FbuU=
 | 
			
		||||
github.com/blevesearch/bleve/v2 v2.0.5/go.mod h1:ZjWibgnbRX33c+vBRgla9QhPb4QOjD6fdVJ+R1Bk8LM=
 | 
			
		||||
github.com/blevesearch/bleve/v2 v2.0.6 h1:2dV2S4pyUqQHftUFzM0htUCWC8MeRg2qsmgIvjnKlgU=
 | 
			
		||||
github.com/blevesearch/bleve/v2 v2.0.6/go.mod h1:UhqLjgDhN4mji6F1dL3fPghcqaBV6r6bXwKCdaBa3Is=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -158,32 +159,31 @@ github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD
 | 
			
		|||
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/vellum v1.0.3/go.mod h1:2u5ax02KeDuNWu4/C+hVQMD6uLN4txH1JbtpaDNLJRo=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.4 h1:o6t7NxTnThp1es52uQvOJJx+9yK/nKXlWC5xl4LCz1U=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.4/go.mod h1:cMhywHI0de50f7Nj42YgvyD6bFJ2WkNRvNBlNMrEVgY=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.5 h1:L5dJ7hKauRVbuH7I8uqLeSK92CPPY6FfrbAmLhAug8A=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.5/go.mod h1:atE0EH3fvk43zzS7t1YNdNC7DbmcC3uz+eMD5xZ2OyQ=
 | 
			
		||||
github.com/blevesearch/zapx/v11 v11.1.10/go.mod h1:DTjbcBqrr/Uo82UBilDC8lEew42gN/OcIyiTNFtSijc=
 | 
			
		||||
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/v11 v11.2.1 h1:udluDHdr99gGSeL3vZLtJbML0OJ98mK1Peivtm5OYho=
 | 
			
		||||
github.com/blevesearch/zapx/v11 v11.2.1/go.mod h1:TBkJF5Qq0EwZbbBQmkW6/AQVSYwXXpp0xwtQ5wXHVMI=
 | 
			
		||||
github.com/blevesearch/zapx/v12 v12.1.10/go.mod h1:14NmKnPrnKAIyiEJM566k/Jk+FQpuiflT5d3uaaK3MI=
 | 
			
		||||
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/v12 v12.2.1 h1:nbeecR8M3dEcIIYfKDaSRpJ9E205E7BvjhVwf/l5ajI=
 | 
			
		||||
github.com/blevesearch/zapx/v12 v12.2.1/go.mod h1:sSXvgEs7MKqqDIRSpyFd6ZJUEVlhxuDB0d8/WT2WlgA=
 | 
			
		||||
github.com/blevesearch/zapx/v13 v13.1.10/go.mod h1:YsVY6YGpTEAlJOMjdL7EsdBLvjWd8kPa2gwJDNpqLJo=
 | 
			
		||||
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/v13 v13.2.1 h1:6K797fvkurY6heEMPhyUlq3VULIpkD1sbBqqQUMFf4g=
 | 
			
		||||
github.com/blevesearch/zapx/v13 v13.2.1/go.mod h1:Fblcy4ykPy7XiaZ2svvpQaYgEqI+8vkdvMVx5zcawF4=
 | 
			
		||||
github.com/blevesearch/zapx/v14 v14.1.10/go.mod h1:hsULl5eJSxs5NEfBsmeT9qrqdCP+/ecpVZKt60M4V64=
 | 
			
		||||
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/v14 v14.2.1 h1:V3RzDc7XZ51Kv9ZhhzMlHCSoY4+jxqy9VBqHxTqW4pg=
 | 
			
		||||
github.com/blevesearch/zapx/v14 v14.2.1/go.mod h1:veKtVCDzl4vvYeT5zULXEXqPR948uilzixzmmdtpCkU=
 | 
			
		||||
github.com/blevesearch/zapx/v15 v15.1.10/go.mod h1:4ypq25bwtSQKzwEF1UERyIhmGTbMT3brY/n4NC5gRnM=
 | 
			
		||||
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/blevesearch/zapx/v15 v15.2.1 h1:ZaqQiWLo0srtPvy3ozgpR9+Oabs3HQrF4uJM0HiKVBY=
 | 
			
		||||
github.com/blevesearch/zapx/v15 v15.2.1/go.mod h1:pUCN72ZJkVd7dU9lA4Fd8E3+fl5wv3JPpThk4FQ5bpA=
 | 
			
		||||
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/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.13.1 h1:A5qLxh9J6/CYWEOHaj135IWAjCY0193ONxEy8jbOlPw=
 | 
			
		||||
github.com/caddyserver/certmagic v0.13.1/go.mod h1:+zhQtEgLOyXRA/KRduHXNhGGdTeqRM4ePj8eBGD/2CQ=
 | 
			
		||||
github.com/caddyserver/certmagic v0.14.0 h1:XW1o32s7smIYEJSc6g+N8YXljpjRo5ZE2zi3CIYTs74=
 | 
			
		||||
github.com/caddyserver/certmagic v0.14.0/go.mod h1:oRQOZmUVKwlpgNidslysHt05osM9uMrJ4YMk+Ot4P4Q=
 | 
			
		||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 | 
			
		||||
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
 | 
			
		||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
 | 
			
		||||
| 
						 | 
				
			
			@ -302,8 +302,8 @@ github.com/go-chi/chi/v5 v5.0.1 h1:ALxjCrTf1aflOlkhMnCUP86MubbWFrzB3gkRPReLpTo=
 | 
			
		|||
github.com/go-chi/chi/v5 v5.0.1/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
 | 
			
		||||
github.com/go-chi/cors v1.2.0 h1:tV1g1XENQ8ku4Bq3K9ub2AtgG+p16SmzeMSGTwrOKdE=
 | 
			
		||||
github.com/go-chi/cors v1.2.0/go.mod h1:sSbTewc+6wYHBBCW7ytsFSn836hqM7JxpglAy2Vzc58=
 | 
			
		||||
github.com/go-enry/go-enry/v2 v2.7.0 h1:bcAZfvX0LmAEMl8OEd8MPsfJCN2Io4mNU1an1Hh48VA=
 | 
			
		||||
github.com/go-enry/go-enry/v2 v2.7.0/go.mod h1:GVzIiAytiS5uT/QiuakK7TF1u4xDab87Y8V5EJRpsIQ=
 | 
			
		||||
github.com/go-enry/go-enry/v2 v2.7.1 h1:WCqtfyteIz61GYk9lRVy8HblvIv4cP9GIiwm/6txCbU=
 | 
			
		||||
github.com/go-enry/go-enry/v2 v2.7.1/go.mod h1:GVzIiAytiS5uT/QiuakK7TF1u4xDab87Y8V5EJRpsIQ=
 | 
			
		||||
github.com/go-enry/go-oniguruma v1.2.1 h1:k8aAMuJfMrqm/56SG2lV9Cfti6tC4x8673aHCcBk+eo=
 | 
			
		||||
github.com/go-enry/go-oniguruma v1.2.1/go.mod h1:bWDhYP+S6xZQgiRL7wlTScFYBe023B6ilRZbCAD5Hf4=
 | 
			
		||||
github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4=
 | 
			
		||||
| 
						 | 
				
			
			@ -424,8 +424,8 @@ github.com/go-openapi/validate v0.20.2/go.mod h1:e7OJoKNgd0twXZwIn0A43tHbvIcr/rZ
 | 
			
		|||
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/go.mod h1:A1tbYoHSa1fXwN+//ljcCYYJeLmVrwL9hbQN45Jdy0M=
 | 
			
		||||
github.com/go-redis/redis/v8 v8.10.0 h1:OZwrQKuZqdJ4QIM8wn8rnuz868Li91xA3J2DEq+TPGA=
 | 
			
		||||
github.com/go-redis/redis/v8 v8.10.0/go.mod h1:vXLTvigok0VtUX0znvbcEW1SOt4OA9CU1ZfnOtKOaiM=
 | 
			
		||||
github.com/go-redis/redis/v8 v8.11.0 h1:O1Td0mQ8UFChQ3N9zFQqo6kTU2cJ+/it88gDB+zg0wo=
 | 
			
		||||
github.com/go-redis/redis/v8 v8.11.0/go.mod h1:DLomh7y2e3ggQXQLd1YgmvIfecPJoFl7WU5SOQ/r06M=
 | 
			
		||||
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
 | 
			
		||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 | 
			
		||||
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
 | 
			
		||||
| 
						 | 
				
			
			@ -508,8 +508,9 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu
 | 
			
		|||
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/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/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
 | 
			
		||||
github.com/golang/snappy v0.0.4/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=
 | 
			
		||||
| 
						 | 
				
			
			@ -522,8 +523,9 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
 | 
			
		|||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
 | 
			
		||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
 | 
			
		||||
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-github/v32 v32.1.0 h1:GWkQOdXqviCPx7Q7Fj+KyPoGm4SwHRh8rheoPhd27II=
 | 
			
		||||
github.com/google/go-github/v32 v32.1.0/go.mod h1:rIEpZD9CTDQwDK9GDrtMTycQNA4JU3qBsCizh3q2WCI=
 | 
			
		||||
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
 | 
			
		||||
| 
						 | 
				
			
			@ -598,8 +600,9 @@ github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b
 | 
			
		|||
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
 | 
			
		||||
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
 | 
			
		||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 | 
			
		||||
github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU=
 | 
			
		||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 | 
			
		||||
github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
 | 
			
		||||
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
 | 
			
		||||
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 | 
			
		||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
 | 
			
		||||
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
 | 
			
		||||
| 
						 | 
				
			
			@ -700,16 +703,17 @@ 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.13.0 h1:2T7tUoQrQT+fQWdaY5rjWztFGAFwbGD04iPJg90ZiOs=
 | 
			
		||||
github.com/klauspost/compress v1.13.0/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
 | 
			
		||||
github.com/klauspost/compress v1.13.1 h1:wXr2uRxZTJXHLly6qhJabee5JqIhTRoLBhDOA74hDEQ=
 | 
			
		||||
github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
 | 
			
		||||
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.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/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
 | 
			
		||||
github.com/klauspost/cpuid/v2 v2.0.6 h1:dQ5ueTiftKxp0gyjKSx5+8BtPWkyQbd95m8Gys/RarI=
 | 
			
		||||
github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
 | 
			
		||||
github.com/klauspost/cpuid/v2 v2.0.7 h1:U89pAFid7wpIWvTFJnMKgU+Sabb7DLEgHI7Xt8apo3Y=
 | 
			
		||||
github.com/klauspost/cpuid/v2 v2.0.7/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=
 | 
			
		||||
| 
						 | 
				
			
			@ -737,7 +741,6 @@ github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 | 
			
		|||
github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 | 
			
		||||
github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8=
 | 
			
		||||
github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 | 
			
		||||
github.com/libdns/libdns v0.2.0/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40=
 | 
			
		||||
github.com/libdns/libdns v0.2.1 h1:Wu59T7wSHRgtA0cfxC+n1c/e+O3upJGWytknkmFEDis=
 | 
			
		||||
github.com/libdns/libdns v0.2.1/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40=
 | 
			
		||||
github.com/lunny/dingtalk_webhook v0.0.0-20171025031554-e3534c89ef96 h1:uNwtsDp7ci48vBTTxDuwcoTXz4lwtDTe7TjCQ0noaWY=
 | 
			
		||||
| 
						 | 
				
			
			@ -790,17 +793,17 @@ 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/microcosm-cc/bluemonday v1.0.9 h1:dpCwruVKoyrULicJwhuY76jB+nIxRVKv/e248Vx/BXg=
 | 
			
		||||
github.com/microcosm-cc/bluemonday v1.0.9/go.mod h1:B2riunDr9benLHghZB7hjIgdwSUzzs0pjCxFrWYEZFU=
 | 
			
		||||
github.com/microcosm-cc/bluemonday v1.0.14 h1:Djd+GeTanVeA23todvVC0AO5hsI+vAwQMLTy794Zr5I=
 | 
			
		||||
github.com/microcosm-cc/bluemonday v1.0.14/go.mod h1:beubO5lmWoy1tU8niaMyXNriNgROO37H3U/tsrcZsy0=
 | 
			
		||||
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
 | 
			
		||||
github.com/miekg/dns v1.1.30/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
 | 
			
		||||
github.com/miekg/dns v1.1.42 h1:gWGe42RGaIqXQZ+r3WUGEKBEtvPHY2SXo4dqixDNxuY=
 | 
			
		||||
github.com/miekg/dns v1.1.42/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
 | 
			
		||||
github.com/miekg/dns v1.1.43 h1:JKfpVSCB84vrAmHzyrsxB5NAr5kLoMXZArPSw7Qlgyg=
 | 
			
		||||
github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
 | 
			
		||||
github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw=
 | 
			
		||||
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/minio-go/v7 v7.0.12 h1:/4pxUdwn9w0QEryNkrrWaodIESPRX+NxpO0Q6hVdaAA=
 | 
			
		||||
github.com/minio/minio-go/v7 v7.0.12/go.mod h1:S23iSP5/gbMwtxeY5FM71R+TkAYyzEdoNEDDwpt8yWs=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -850,8 +853,8 @@ github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N
 | 
			
		|||
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.24 h1:9ZcCQP3Pvgese7TaypYiVAL49sCEphyIwkVxtRf8jb8=
 | 
			
		||||
github.com/olivere/elastic/v7 v7.0.24/go.mod h1:OuWmD2DiuYhddWegBKPWQuelVKBLrW0fa/VUYgxuGTY=
 | 
			
		||||
github.com/olivere/elastic/v7 v7.0.25 h1:q3ef8PqC4PyT3b8BAcjDVo48KNzr0HVKosMqMsF+oME=
 | 
			
		||||
github.com/olivere/elastic/v7 v7.0.25/go.mod h1:ySKeM+7yrE9HmsUi6+vSp0anvWiDOuPa9kpuknxjKbU=
 | 
			
		||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 | 
			
		||||
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 | 
			
		||||
github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 | 
			
		||||
| 
						 | 
				
			
			@ -877,8 +880,8 @@ github.com/pelletier/go-toml v1.9.0 h1:NOd0BRdOKpPf0SxkL3HxSQOG7rNh+4kl6PHcBPFs7
 | 
			
		|||
github.com/pelletier/go-toml v1.9.0/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
 | 
			
		||||
github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
 | 
			
		||||
github.com/pierrec/lz4/v4 v4.0.3/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
 | 
			
		||||
github.com/pierrec/lz4/v4 v4.1.7 h1:UDV9geJWhFIufAliH7HQlz9wP3JA0t748w+RwbWMLow=
 | 
			
		||||
github.com/pierrec/lz4/v4 v4.1.7/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
 | 
			
		||||
github.com/pierrec/lz4/v4 v4.1.8 h1:ieHkV+i2BRzngO4Wd/3HGowuZStgq6QkPsD1eolNAO4=
 | 
			
		||||
github.com/pierrec/lz4/v4 v4.1.8/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=
 | 
			
		||||
| 
						 | 
				
			
			@ -961,6 +964,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB
 | 
			
		|||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
 | 
			
		||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
 | 
			
		||||
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
 | 
			
		||||
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
 | 
			
		||||
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
 | 
			
		||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
 | 
			
		||||
github.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
 | 
			
		||||
github.com/smartystreets/assertions v1.1.1 h1:T/YLemO5Yp7KPzS+lVtu+WsHn8yoSwTfItdAd1r3cck=
 | 
			
		||||
| 
						 | 
				
			
			@ -1037,8 +1042,8 @@ github.com/urfave/cli v1.22.5 h1:lNq9sAHXK2qfdI8W+GRItjCEkI+2oR4d+MEHy1CKXoU=
 | 
			
		|||
github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
 | 
			
		||||
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
 | 
			
		||||
github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
 | 
			
		||||
github.com/xanzy/go-gitlab v0.50.0 h1:t7IoYTrnLSbdEZN7d8X/5zcr+ZM4TZQ2mXa8MqWlAZQ=
 | 
			
		||||
github.com/xanzy/go-gitlab v0.50.0/go.mod h1:Q+hQhV508bDPoBijv7YjK/Lvlb4PhVhJdKqXVQrUoAE=
 | 
			
		||||
github.com/xanzy/go-gitlab v0.50.1 h1:eH1G0/ZV1j81rhGrtbcePjbM5Ern7mPA4Xjt+yE+2PQ=
 | 
			
		||||
github.com/xanzy/go-gitlab v0.50.1/go.mod h1:Q+hQhV508bDPoBijv7YjK/Lvlb4PhVhJdKqXVQrUoAE=
 | 
			
		||||
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-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
 | 
			
		||||
| 
						 | 
				
			
			@ -1058,8 +1063,8 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
 | 
			
		|||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
			
		||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
			
		||||
github.com/yuin/goldmark v1.3.6/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 | 
			
		||||
github.com/yuin/goldmark v1.3.7 h1:NSaHgaeJFCtWXCBkBKXw0rhgMuJ0VoE9FB5mWldcrQ4=
 | 
			
		||||
github.com/yuin/goldmark v1.3.7/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 | 
			
		||||
github.com/yuin/goldmark v1.3.9 h1:XsVHmzm4P6g84IBbAj+WYMF/IEZ3J9+3I1wlqCNa/SQ=
 | 
			
		||||
github.com/yuin/goldmark v1.3.9/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 | 
			
		||||
github.com/yuin/goldmark-highlighting v0.0.0-20210516132338-9216f9c5aa01 h1:0SJnXjE4jDClMW6grE0xpNhwpqbPwkBTn8zpVw5C0SI=
 | 
			
		||||
github.com/yuin/goldmark-highlighting v0.0.0-20210516132338-9216f9c5aa01/go.mod h1:TwKQPa5XkCCRC2GRZ5wtfNUTQ2+9/i19mGRijFeJ4BE=
 | 
			
		||||
github.com/yuin/goldmark-meta v1.0.0 h1:ScsatUIT2gFS6azqzLGUjgOnELsBOxMXerM3ogdJhAM=
 | 
			
		||||
| 
						 | 
				
			
			@ -1091,19 +1096,14 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 | 
			
		|||
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
 | 
			
		||||
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
 | 
			
		||||
go.opentelemetry.io/otel v0.14.0/go.mod h1:vH5xEuwy7Rts0GNtsCW3HYQoZDY+OmBJ6t1bFGGlxgw=
 | 
			
		||||
go.opentelemetry.io/otel v0.20.0 h1:eaP0Fqu7SXHwvjiqDq83zImeehOHX8doTvU9AwXON8g=
 | 
			
		||||
go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo=
 | 
			
		||||
go.opentelemetry.io/otel/metric v0.20.0 h1:4kzhXFP+btKm4jwxpjIqjs41A7MakRFUS86bqLHTIw8=
 | 
			
		||||
go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU=
 | 
			
		||||
go.opentelemetry.io/otel/oteltest v0.20.0 h1:HiITxCawalo5vQzdHfKeZurV8x7ljcqAgiWzF6Vaeaw=
 | 
			
		||||
go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw=
 | 
			
		||||
go.opentelemetry.io/otel/trace v0.20.0 h1:1DL6EXUdcg95gukhuRRvLDO/4X5THh/5dIV52lqtnbw=
 | 
			
		||||
go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
 | 
			
		||||
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.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/atomic v1.8.0 h1:CUhrE4N1rqSE6FM9ecihEjRkLQu8cDfgDyoOs83mEY4=
 | 
			
		||||
go.uber.org/atomic v1.8.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
 | 
			
		||||
go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0=
 | 
			
		||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
 | 
			
		||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
 | 
			
		||||
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
 | 
			
		||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
 | 
			
		||||
| 
						 | 
				
			
			@ -1113,8 +1113,9 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E
 | 
			
		|||
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.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
 | 
			
		||||
go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U=
 | 
			
		||||
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
 | 
			
		||||
go.uber.org/zap v1.18.1 h1:CSUJ2mjFszzEWt4CdKISEuChVIXGBn3lAPwkRGyVrc4=
 | 
			
		||||
go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -1136,8 +1137,7 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh
 | 
			
		|||
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
 | 
			
		||||
| 
						 | 
				
			
			@ -1165,6 +1165,7 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl
 | 
			
		|||
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/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=
 | 
			
		||||
| 
						 | 
				
			
			@ -1202,7 +1203,6 @@ golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLL
 | 
			
		|||
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
| 
						 | 
				
			
			@ -1232,7 +1232,8 @@ golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v
 | 
			
		|||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 | 
			
		||||
golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k=
 | 
			
		||||
golang.org/x/net v0.0.0-20210331060903-cb1fcc7394e5/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
 | 
			
		||||
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
 | 
			
		||||
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 | 
			
		||||
golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 | 
			
		||||
golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
 | 
			
		||||
golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 | 
			
		||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 | 
			
		||||
| 
						 | 
				
			
			@ -1246,8 +1247,8 @@ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ
 | 
			
		|||
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-20210323180902-22b0adad7558/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 | 
			
		||||
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c h1:pkQiBZBvdos9qq4wBAHqlzuZHEXo07pqV06ef90u1WI=
 | 
			
		||||
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 | 
			
		||||
golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914 h1:3B43BWw0xEBsLZ/NO1VALz6fppU3481pik+2Ksv45z8=
 | 
			
		||||
golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/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=
 | 
			
		||||
| 
						 | 
				
			
			@ -1291,7 +1292,6 @@ golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7w
 | 
			
		|||
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=
 | 
			
		||||
golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
| 
						 | 
				
			
			@ -1333,7 +1333,6 @@ golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7w
 | 
			
		|||
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
| 
						 | 
				
			
			@ -1342,6 +1341,7 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
 | 
			
		|||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 | 
			
		||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
 | 
			
		||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 | 
			
		||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
| 
						 | 
				
			
			@ -1356,8 +1356,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
			
		|||
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-20210608053304-ed9ce3a009e4 h1:1asO3s7vR+9MvZSNRwUBBTjecxbGtfvmxjy2VWbFR5g=
 | 
			
		||||
golang.org/x/time v0.0.0-20210608053304-ed9ce3a009e4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 | 
			
		||||
golang.org/x/time v0.0.0-20210611083556-38a9dc6acbc6 h1:Vv0JUPWTyeqUq42B2WJ1FeIDjjvGKoA2Ss+Ts0lAVbs=
 | 
			
		||||
golang.org/x/time v0.0.0-20210611083556-38a9dc6acbc6/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-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
			
		||||
| 
						 | 
				
			
			@ -1387,13 +1387,13 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn
 | 
			
		|||
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
			
		||||
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
			
		||||
| 
						 | 
				
			
			@ -1526,8 +1526,9 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
 | 
			
		|||
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
 | 
			
		||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 | 
			
		||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 | 
			
		||||
google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
 | 
			
		||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 | 
			
		||||
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
 | 
			
		||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 | 
			
		||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 | 
			
		||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk=
 | 
			
		||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										17
									
								
								vendor/github.com/PuerkitoBio/goquery/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/github.com/PuerkitoBio/goquery/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -4,11 +4,6 @@ arch:
 | 
			
		|||
language: go
 | 
			
		||||
 | 
			
		||||
go:
 | 
			
		||||
    - 1.2.x
 | 
			
		||||
    - 1.3.x
 | 
			
		||||
    - 1.4.x
 | 
			
		||||
    - 1.5.x
 | 
			
		||||
    - 1.6.x
 | 
			
		||||
    - 1.7.x
 | 
			
		||||
    - 1.8.x
 | 
			
		||||
    - 1.9.x
 | 
			
		||||
| 
						 | 
				
			
			@ -16,20 +11,12 @@ go:
 | 
			
		|||
    - 1.11.x
 | 
			
		||||
    - 1.12.x
 | 
			
		||||
    - 1.13.x
 | 
			
		||||
    - 1.14.x
 | 
			
		||||
    - 1.15.x
 | 
			
		||||
    - tip
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
 exclude:
 | 
			
		||||
    - arch: ppc64le
 | 
			
		||||
      go: 1.2.x
 | 
			
		||||
    - arch: ppc64le
 | 
			
		||||
      go: 1.3.x
 | 
			
		||||
    - arch: ppc64le
 | 
			
		||||
      go: 1.4.x
 | 
			
		||||
    - arch: ppc64le
 | 
			
		||||
      go: 1.5.x
 | 
			
		||||
    - arch: ppc64le
 | 
			
		||||
      go: 1.6.x
 | 
			
		||||
    - arch: ppc64le
 | 
			
		||||
      go: 1.7.x
 | 
			
		||||
    - arch: ppc64le
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/PuerkitoBio/goquery/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/PuerkitoBio/goquery/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
Copyright (c) 2012-2016, Martin Angers & Contributors
 | 
			
		||||
Copyright (c) 2012-2021, Martin Angers & Contributors
 | 
			
		||||
All rights reserved.
 | 
			
		||||
 | 
			
		||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										29
									
								
								vendor/github.com/PuerkitoBio/goquery/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/PuerkitoBio/goquery/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
# goquery - a little like that j-thing, only in Go
 | 
			
		||||
[](http://travis-ci.org/PuerkitoBio/goquery) [](http://godoc.org/github.com/PuerkitoBio/goquery) [](https://sourcegraph.com/github.com/PuerkitoBio/goquery?badge)
 | 
			
		||||
[](https://builds.sr.ht/~mna/goquery/commits/fedora.yml?) [](http://travis-ci.org/PuerkitoBio/goquery) [](https://pkg.go.dev/github.com/PuerkitoBio/goquery) [](https://sourcegraph.com/github.com/PuerkitoBio/goquery?badge)
 | 
			
		||||
 | 
			
		||||
goquery brings a syntax and a set of features similar to [jQuery][] to the [Go language][go]. It is based on Go's [net/html package][html] and the CSS Selector library [cascadia][]. Since the net/html parser returns nodes, and not a full-featured DOM tree, jQuery's stateful manipulation functions (like height(), css(), detach()) have been left off.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -19,7 +19,7 @@ Syntax-wise, it is as close as possible to jQuery, with the same function names
 | 
			
		|||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
Please note that because of the net/html dependency, goquery requires Go1.1+.
 | 
			
		||||
Please note that because of the net/html dependency, goquery requires Go1.1+ and is tested on Go1.7+.
 | 
			
		||||
 | 
			
		||||
    $ go get github.com/PuerkitoBio/goquery
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -37,6 +37,7 @@ Please note that because of the net/html dependency, goquery requires Go1.1+.
 | 
			
		|||
 | 
			
		||||
**Note that goquery's API is now stable, and will not break.**
 | 
			
		||||
 | 
			
		||||
*    **2021-06-14 (v1.7.0)** : Add `Single` and `SingleMatcher` functions to optimize first-match selection (thanks [@gdollardollar](https://github.com/gdollardollar)).
 | 
			
		||||
*    **2021-01-11 (v1.6.1)** : Fix panic when calling `{Prepend,Append,Set}Html` on a `Selection` that contains non-Element nodes.
 | 
			
		||||
*    **2020-10-08 (v1.6.0)** : Parse html in context of the container node for all functions that deal with html strings (`AfterHtml`, `AppendHtml`, etc.). Thanks to [@thiemok][thiemok] and [@davidjwilkins][djw] for their work on this.
 | 
			
		||||
*    **2020-02-04 (v1.5.1)** : Update module dependencies.
 | 
			
		||||
| 
						 | 
				
			
			@ -50,7 +51,7 @@ Please note that because of the net/html dependency, goquery requires Go1.1+.
 | 
			
		|||
*    **2016-08-28 (v1.0.1)** : Optimize performance for large documents.
 | 
			
		||||
*    **2016-07-27 (v1.0.0)** : Tag version 1.0.0.
 | 
			
		||||
*    **2016-06-15** : Invalid selector strings internally compile to a `Matcher` implementation that never matches any node (instead of a panic). So for example, `doc.Find("~")` returns an empty `*Selection` object.
 | 
			
		||||
*    **2016-02-02** : Add `NodeName` utility function similar to the DOM's `nodeName` property. It returns the tag name of the first element in a selection, and other relevant values of non-element nodes (see godoc for details). Add `OuterHtml` utility function similar to the DOM's `outerHTML` property (named `OuterHtml` in small caps for consistency with the existing `Html` method on the `Selection`).
 | 
			
		||||
*    **2016-02-02** : Add `NodeName` utility function similar to the DOM's `nodeName` property. It returns the tag name of the first element in a selection, and other relevant values of non-element nodes (see [doc][] for details). Add `OuterHtml` utility function similar to the DOM's `outerHTML` property (named `OuterHtml` in small caps for consistency with the existing `Html` method on the `Selection`).
 | 
			
		||||
*    **2015-04-20** : Add `AttrOr` helper method to return the attribute's value or a default value if absent. Thanks to [piotrkowalczuk][piotr].
 | 
			
		||||
*    **2015-02-04** : Add more manipulation functions - Prepend* - thanks again to [Andrew Stone][thatguystone].
 | 
			
		||||
*    **2014-11-28** : Add more manipulation functions - ReplaceWith*, Wrap* and Unwrap - thanks again to [Andrew Stone][thatguystone].
 | 
			
		||||
| 
						 | 
				
			
			@ -79,7 +80,7 @@ jQuery often has many variants for the same function (no argument, a selector st
 | 
			
		|||
 | 
			
		||||
Utility functions that are not in jQuery but are useful in Go are implemented as functions (that take a `*Selection` as parameter), to avoid a potential naming clash on the `*Selection`'s methods (reserved for jQuery-equivalent behaviour).
 | 
			
		||||
 | 
			
		||||
The complete [godoc reference documentation can be found here][doc].
 | 
			
		||||
The complete [package reference documentation can be found here][doc].
 | 
			
		||||
 | 
			
		||||
Please note that Cascadia's selectors do not necessarily match all supported selectors of jQuery (Sizzle). See the [cascadia project][cascadia] for details. Invalid selector strings compile to a `Matcher` that fails to match any node. Behaviour of the various functions that take a selector string as argument follows from that fact, e.g. (where `~` is an invalid selector string):
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -123,12 +124,11 @@ func ExampleScrape() {
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  // Find the review items
 | 
			
		||||
  doc.Find(".sidebar-reviews article .content-block").Each(func(i int, s *goquery.Selection) {
 | 
			
		||||
    // For each item found, get the band and title
 | 
			
		||||
    band := s.Find("a").Text()
 | 
			
		||||
    title := s.Find("i").Text()
 | 
			
		||||
    fmt.Printf("Review %d: %s - %s\n", i, band, title)
 | 
			
		||||
  })
 | 
			
		||||
  doc.Find(".left-content article .post-title").Each(func(i int, s *goquery.Selection) {
 | 
			
		||||
		// For each item found, get the title
 | 
			
		||||
		title := s.Find("a").Text()
 | 
			
		||||
		fmt.Printf("Review %d: %s\n", i, title)
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
| 
						 | 
				
			
			@ -161,8 +161,9 @@ There are a number of ways you can support the project:
 | 
			
		|||
* Pull requests: please discuss new code in an issue first, unless the fix is really trivial.
 | 
			
		||||
  - Make sure new code is tested.
 | 
			
		||||
  - Be mindful of existing code - PRs that break existing code have a high probability of being declined, unless it fixes a serious issue.
 | 
			
		||||
 | 
			
		||||
If you desperately want to send money my way, I have a BuyMeACoffee.com page:
 | 
			
		||||
* Sponsor the developer
 | 
			
		||||
  - See the Github Sponsor button at the top of the repo on github
 | 
			
		||||
  - or via BuyMeACoffee.com, below
 | 
			
		||||
 | 
			
		||||
<a href="https://www.buymeacoffee.com/mna" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -177,10 +178,10 @@ The [BSD 3-Clause license][bsd], the same as the [Go language][golic]. Cascadia'
 | 
			
		|||
[bsd]: http://opensource.org/licenses/BSD-3-Clause
 | 
			
		||||
[golic]: http://golang.org/LICENSE
 | 
			
		||||
[caslic]: https://github.com/andybalholm/cascadia/blob/master/LICENSE
 | 
			
		||||
[doc]: http://godoc.org/github.com/PuerkitoBio/goquery
 | 
			
		||||
[doc]: https://pkg.go.dev/github.com/PuerkitoBio/goquery
 | 
			
		||||
[index]: http://api.jquery.com/index/
 | 
			
		||||
[gonet]: https://github.com/golang/net/
 | 
			
		||||
[html]: http://godoc.org/golang.org/x/net/html
 | 
			
		||||
[html]: https://pkg.go.dev/golang.org/x/net/html
 | 
			
		||||
[wiki]: https://github.com/PuerkitoBio/goquery/wiki/Tips-and-tricks
 | 
			
		||||
[thatguystone]: https://github.com/thatguystone
 | 
			
		||||
[piotr]: https://github.com/piotrkowalczuk
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										64
									
								
								vendor/github.com/PuerkitoBio/goquery/type.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								vendor/github.com/PuerkitoBio/goquery/type.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -7,7 +7,6 @@ import (
 | 
			
		|||
	"net/url"
 | 
			
		||||
 | 
			
		||||
	"github.com/andybalholm/cascadia"
 | 
			
		||||
 | 
			
		||||
	"golang.org/x/net/html"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -122,6 +121,45 @@ type Matcher interface {
 | 
			
		|||
	Filter([]*html.Node) []*html.Node
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Single compiles a selector string to a Matcher that stops after the first
 | 
			
		||||
// match is found.
 | 
			
		||||
//
 | 
			
		||||
// By default, Selection.Find and other functions that accept a selector string
 | 
			
		||||
// to select nodes will use all matches corresponding to that selector. By
 | 
			
		||||
// using the Matcher returned by Single, at most the first match will be
 | 
			
		||||
// selected.
 | 
			
		||||
//
 | 
			
		||||
// For example, those two statements are semantically equivalent:
 | 
			
		||||
//
 | 
			
		||||
//     sel1 := doc.Find("a").First()
 | 
			
		||||
//     sel2 := doc.FindMatcher(goquery.Single("a"))
 | 
			
		||||
//
 | 
			
		||||
// The one using Single is optimized to be potentially much faster on large
 | 
			
		||||
// documents.
 | 
			
		||||
//
 | 
			
		||||
// Only the behaviour of the MatchAll method of the Matcher interface is
 | 
			
		||||
// altered compared to standard Matchers. This means that the single-selection
 | 
			
		||||
// property of the Matcher only applies for Selection methods where the Matcher
 | 
			
		||||
// is used to select nodes, not to filter or check if a node matches the
 | 
			
		||||
// Matcher - in those cases, the behaviour of the Matcher is unchanged (e.g.
 | 
			
		||||
// FilterMatcher(Single("div")) will still result in a Selection with multiple
 | 
			
		||||
// "div"s if there were many "div"s in the Selection to begin with).
 | 
			
		||||
func Single(selector string) Matcher {
 | 
			
		||||
	return singleMatcher{compileMatcher(selector)}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SingleMatcher returns a Matcher matches the same nodes as m, but that stops
 | 
			
		||||
// after the first match is found.
 | 
			
		||||
//
 | 
			
		||||
// See the documentation of function Single for more details.
 | 
			
		||||
func SingleMatcher(m Matcher) Matcher {
 | 
			
		||||
	if _, ok := m.(singleMatcher); ok {
 | 
			
		||||
		// m is already a singleMatcher
 | 
			
		||||
		return m
 | 
			
		||||
	}
 | 
			
		||||
	return singleMatcher{m}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// compileMatcher compiles the selector string s and returns
 | 
			
		||||
// the corresponding Matcher. If s is an invalid selector string,
 | 
			
		||||
// it returns a Matcher that fails all matches.
 | 
			
		||||
| 
						 | 
				
			
			@ -133,6 +171,30 @@ func compileMatcher(s string) Matcher {
 | 
			
		|||
	return cs
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type singleMatcher struct {
 | 
			
		||||
	Matcher
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m singleMatcher) MatchAll(n *html.Node) []*html.Node {
 | 
			
		||||
	// Optimized version - stops finding at the first match (cascadia-compiled
 | 
			
		||||
	// matchers all use this code path).
 | 
			
		||||
	if mm, ok := m.Matcher.(interface{ MatchFirst(*html.Node) *html.Node }); ok {
 | 
			
		||||
		node := mm.MatchFirst(n)
 | 
			
		||||
		if node == nil {
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		return []*html.Node{node}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Fallback version, for e.g. test mocks that don't provide the MatchFirst
 | 
			
		||||
	// method.
 | 
			
		||||
	nodes := m.Matcher.MatchAll(n)
 | 
			
		||||
	if len(nodes) > 0 {
 | 
			
		||||
		return nodes[:1:1]
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// invalidMatcher is a Matcher that always fails to match.
 | 
			
		||||
type invalidMatcher struct{}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/RoaringBitmap/roaring/parallel.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/RoaringBitmap/roaring/parallel.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -354,7 +354,7 @@ func ParOr(parallelism int, bitmaps ...*Bitmap) *Bitmap {
 | 
			
		|||
	if lKey == MaxUint16 && hKey == 0 {
 | 
			
		||||
		return New()
 | 
			
		||||
	} else if len(bitmaps) == 1 {
 | 
			
		||||
		return bitmaps[0]
 | 
			
		||||
		return bitmaps[0].Clone()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	keyRange := int(hKey) - int(lKey) + 1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										16
									
								
								vendor/github.com/alecthomas/chroma/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/alecthomas/chroma/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -25,6 +25,17 @@ linters:
 | 
			
		|||
    - testpackage
 | 
			
		||||
    - godot
 | 
			
		||||
    - nestif
 | 
			
		||||
    - paralleltest
 | 
			
		||||
    - nlreturn
 | 
			
		||||
    - cyclop
 | 
			
		||||
    - exhaustivestruct
 | 
			
		||||
    - gci
 | 
			
		||||
    - gofumpt
 | 
			
		||||
    - errorlint
 | 
			
		||||
    - exhaustive
 | 
			
		||||
    - ifshort
 | 
			
		||||
    - wrapcheck
 | 
			
		||||
    - stylecheck
 | 
			
		||||
 | 
			
		||||
linters-settings:
 | 
			
		||||
  govet:
 | 
			
		||||
| 
						 | 
				
			
			@ -36,6 +47,11 @@ linters-settings:
 | 
			
		|||
  goconst:
 | 
			
		||||
    min-len: 8
 | 
			
		||||
    min-occurrences: 3
 | 
			
		||||
  forbidigo:
 | 
			
		||||
    forbid:
 | 
			
		||||
      - (Must)?NewLexer
 | 
			
		||||
    exclude_godoc_examples: false
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
issues:
 | 
			
		||||
  max-per-linter: 0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										34
									
								
								vendor/github.com/alecthomas/chroma/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								vendor/github.com/alecthomas/chroma/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -41,7 +41,7 @@ C | C, C#, C++, Caddyfile, Caddyfile Directives, Cap'n Proto, Cassandra CQL, Cey
 | 
			
		|||
D | D, Dart, Diff, Django/Jinja, Docker, DTD, Dylan
 | 
			
		||||
E | EBNF, Elixir, Elm, EmacsLisp, Erlang
 | 
			
		||||
F | Factor, Fish, Forth, Fortran, FSharp
 | 
			
		||||
G | GAS, GDScript, Genshi, Genshi HTML, Genshi Text, Gherkin, GLSL, Gnuplot, Go, Go HTML Template, Go Text Template, GraphQL, Groovy
 | 
			
		||||
G | GAS, GDScript, Genshi, Genshi HTML, Genshi Text, Gherkin, GLSL, Gnuplot, Go, Go HTML Template, Go Text Template, GraphQL, Groff, Groovy
 | 
			
		||||
H | Handlebars, Haskell, Haxe, HCL, Hexdump, HLB, HTML, HTTP, Hy
 | 
			
		||||
I | Idris, Igor, INI, Io
 | 
			
		||||
J | J, Java, JavaScript, JSON, Julia, Jungle
 | 
			
		||||
| 
						 | 
				
			
			@ -50,10 +50,10 @@ L | Lighttpd configuration file, LLVM, Lua
 | 
			
		|||
M | Mako, markdown, Mason, Mathematica, Matlab, MiniZinc, MLIR, Modula-2, MonkeyC, MorrowindScript, Myghty, MySQL
 | 
			
		||||
N | NASM, Newspeak, Nginx configuration file, Nim, Nix
 | 
			
		||||
O | Objective-C, OCaml, Octave, OpenSCAD, Org Mode
 | 
			
		||||
P | PacmanConf, Perl, PHP, PHTML, Pig, PkgConfig, PL/pgSQL, plaintext, Pony, PostgreSQL SQL dialect, PostScript, POVRay, PowerShell, Prolog, PromQL, Protocol Buffer, Puppet, Python, Python 3
 | 
			
		||||
P | PacmanConf, Perl, PHP, PHTML, Pig, PkgConfig, PL/pgSQL, plaintext, Pony, PostgreSQL SQL dialect, PostScript, POVRay, PowerShell, Prolog, PromQL, Protocol Buffer, Puppet, Python 2, Python
 | 
			
		||||
Q | QBasic
 | 
			
		||||
R | R, Racket, Ragel, react, ReasonML, reg, reStructuredText, Rexx, Ruby, Rust
 | 
			
		||||
S | SAS, Sass, Scala, Scheme, Scilab, SCSS, Smalltalk, Smarty, Snobol, Solidity, SPARQL, SQL, SquidConf, Standard ML, Stylus, Swift, SYSTEMD, systemverilog
 | 
			
		||||
R | R, Racket, Ragel, Raku, react, ReasonML, reg, reStructuredText, Rexx, Ruby, Rust
 | 
			
		||||
S | SAS, Sass, Scala, Scheme, Scilab, SCSS, Smalltalk, Smarty, Snobol, Solidity, SPARQL, SQL, SquidConf, Standard ML, Stylus, Svelte, Swift, SYSTEMD, systemverilog
 | 
			
		||||
T | TableGen, TASM, Tcl, Tcsh, Termcap, Terminfo, Terraform, TeX, Thrift, TOML, TradingView, Transact-SQL, Turing, Turtle, Twig, TypeScript, TypoScript, TypoScriptCssData, TypoScriptHtmlData
 | 
			
		||||
V | VB.net, verilog, VHDL, VimL, vue
 | 
			
		||||
W | WDTE
 | 
			
		||||
| 
						 | 
				
			
			@ -210,10 +210,10 @@ using the included Python 3 script `pygments2chroma.py`. I use something like
 | 
			
		|||
the following:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
python3 ~/Projects/chroma/_tools/pygments2chroma.py \
 | 
			
		||||
python3 _tools/pygments2chroma.py \
 | 
			
		||||
  pygments.lexers.jvm.KotlinLexer \
 | 
			
		||||
  > ~/Projects/chroma/lexers/kotlin.go \
 | 
			
		||||
  && gofmt -s -w ~/Projects/chroma/lexers/*.go
 | 
			
		||||
  > lexers/k/kotlin.go \
 | 
			
		||||
  && gofmt -s -w lexers/k/kotlin.go
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
See notes in [pygments-lexers.txt](https://github.com/alecthomas/chroma/blob/master/pygments-lexers.txt)
 | 
			
		||||
| 
						 | 
				
			
			@ -255,12 +255,30 @@ A command-line interface to Chroma is included. It can be installed with:
 | 
			
		|||
go get -u github.com/alecthomas/chroma/cmd/chroma
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The CLI can be used as a preprocessor to colorise output of `less(1)`,
 | 
			
		||||
see documentation for the `LESSOPEN` environment variable.
 | 
			
		||||
 | 
			
		||||
The `--fail` flag can be used to suppress output and return with exit status
 | 
			
		||||
1 to facilitate falling back to some other preprocessor in case chroma
 | 
			
		||||
does not resolve a specific lexer to use for the given file. For example:
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
export LESSOPEN='| p() { chroma --fail "$1" || cat "$1"; }; p "%s"'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Replace `cat` with your favourite fallback preprocessor.
 | 
			
		||||
 | 
			
		||||
When invoked as `.lessfilter`, the `--fail` flag is automatically turned
 | 
			
		||||
on under the hood for easy integration with [lesspipe shipping with
 | 
			
		||||
Debian and derivatives](https://manpages.debian.org/lesspipe#USER_DEFINED_FILTERS);
 | 
			
		||||
for that setup the `chroma` executable can be just symlinked to `~/.lessfilter`.
 | 
			
		||||
 | 
			
		||||
<a id="markdown-whats-missing-compared-to-pygments" name="whats-missing-compared-to-pygments"></a>
 | 
			
		||||
## What's missing compared to Pygments?
 | 
			
		||||
 | 
			
		||||
- Quite a few lexers, for various reasons (pull-requests welcome):
 | 
			
		||||
    - Pygments lexers for complex languages often include custom code to
 | 
			
		||||
      handle certain aspects, such as Perl6's ability to nest code inside
 | 
			
		||||
      handle certain aspects, such as Raku's ability to nest code inside
 | 
			
		||||
      regular expressions. These require time and effort to convert.
 | 
			
		||||
    - I mostly only converted languages I had heard of, to reduce the porting cost.
 | 
			
		||||
- Some more esoteric features of Pygments are omitted for simplicity.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/alecthomas/chroma/formatters/html/html.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/alecthomas/chroma/formatters/html/html.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -131,7 +131,7 @@ var (
 | 
			
		|||
	}
 | 
			
		||||
	defaultPreWrapper = preWrapper{
 | 
			
		||||
		start: func(code bool, styleAttr string) string {
 | 
			
		||||
			return fmt.Sprintf("<pre%s>", styleAttr)
 | 
			
		||||
			return fmt.Sprintf(`<pre tabindex="0"%s>`, styleAttr)
 | 
			
		||||
		},
 | 
			
		||||
		end: func(code bool) string {
 | 
			
		||||
			return "</pre>"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/alecthomas/chroma/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/alecthomas/chroma/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -11,15 +11,12 @@ github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9
 | 
			
		|||
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/dlclark/regexp2 v1.2.0 h1:8sAhBGEM0dRWogWqWyQeIJnxjWO6oIjl8FKqREDsGfk=
 | 
			
		||||
github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
 | 
			
		||||
github.com/dlclark/regexp2 v1.4.0 h1:F1rxgk7p4uKjwIQxBs9oAXe5CqrXlCduYEJvrF4u93E=
 | 
			
		||||
github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
 | 
			
		||||
github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE=
 | 
			
		||||
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 | 
			
		||||
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
 | 
			
		||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
 | 
			
		||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
 | 
			
		||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 | 
			
		||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 | 
			
		||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 | 
			
		||||
| 
						 | 
				
			
			@ -28,7 +25,6 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
 | 
			
		|||
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
 | 
			
		||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
 | 
			
		||||
github.com/stretchr/objx v0.1.0/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=
 | 
			
		||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
 | 
			
		||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										9
									
								
								vendor/github.com/alecthomas/chroma/lexer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/alecthomas/chroma/lexer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -2,6 +2,7 @@ package chroma
 | 
			
		|||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"strings"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
| 
						 | 
				
			
			@ -98,9 +99,11 @@ type Lexer interface {
 | 
			
		|||
// Lexers is a slice of lexers sortable by name.
 | 
			
		||||
type Lexers []Lexer
 | 
			
		||||
 | 
			
		||||
func (l Lexers) Len() int           { return len(l) }
 | 
			
		||||
func (l Lexers) Swap(i, j int)      { l[i], l[j] = l[j], l[i] }
 | 
			
		||||
func (l Lexers) Less(i, j int) bool { return l[i].Config().Name < l[j].Config().Name }
 | 
			
		||||
func (l Lexers) Len() int      { return len(l) }
 | 
			
		||||
func (l Lexers) Swap(i, j int) { l[i], l[j] = l[j], l[i] }
 | 
			
		||||
func (l Lexers) Less(i, j int) bool {
 | 
			
		||||
	return strings.ToLower(l[i].Config().Name) < strings.ToLower(l[j].Config().Name)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// PrioritisedLexers is a slice of lexers sortable by priority.
 | 
			
		||||
type PrioritisedLexers []Lexer
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										3
									
								
								vendor/github.com/alecthomas/chroma/lexers/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/alecthomas/chroma/lexers/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -3,6 +3,9 @@
 | 
			
		|||
The tests in this directory feed a known input `testdata/<name>.actual` into the parser for `<name>` and check
 | 
			
		||||
that its output matches `<name>.exported`.
 | 
			
		||||
 | 
			
		||||
It is also possible to perform several tests on a same parser `<name>`, by placing know inputs `*.actual` into a
 | 
			
		||||
directory `testdata/<name>/`.
 | 
			
		||||
 | 
			
		||||
## Running the tests
 | 
			
		||||
 | 
			
		||||
Run the tests as normal:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										6
									
								
								vendor/github.com/alecthomas/chroma/lexers/c/c.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/alecthomas/chroma/lexers/c/c.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -10,8 +10,8 @@ var C = internal.Register(MustNewLazyLexer(
 | 
			
		|||
	&Config{
 | 
			
		||||
		Name:      "C",
 | 
			
		||||
		Aliases:   []string{"c"},
 | 
			
		||||
		Filenames: []string{"*.c", "*.h", "*.idc"},
 | 
			
		||||
		MimeTypes: []string{"text/x-chdr", "text/x-csrc"},
 | 
			
		||||
		Filenames: []string{"*.c", "*.h", "*.idc", "*.x[bp]m"},
 | 
			
		||||
		MimeTypes: []string{"text/x-chdr", "text/x-csrc", "image/x-xbitmap", "image/x-xpixmap"},
 | 
			
		||||
		EnsureNL:  true,
 | 
			
		||||
	},
 | 
			
		||||
	cRules,
 | 
			
		||||
| 
						 | 
				
			
			@ -43,7 +43,7 @@ func cRules() Rules {
 | 
			
		|||
			{`[~!%^&*+=|?:<>/-]`, Operator, nil},
 | 
			
		||||
			{`[()\[\],.]`, Punctuation, nil},
 | 
			
		||||
			{Words(``, `\b`, `asm`, `auto`, `break`, `case`, `const`, `continue`, `default`, `do`, `else`, `enum`, `extern`, `for`, `goto`, `if`, `register`, `restricted`, `return`, `sizeof`, `static`, `struct`, `switch`, `typedef`, `union`, `volatile`, `while`), Keyword, nil},
 | 
			
		||||
			{`(bool|int|long|float|short|double|char|unsigned|signed|void)\b`, KeywordType, nil},
 | 
			
		||||
			{`(bool|int|long|float|short|double|char((8|16|32)_t)?|unsigned|signed|void|u?int(_fast|_least|)(8|16|32|64)_t)\b`, KeywordType, nil},
 | 
			
		||||
			{Words(``, `\b`, `inline`, `_inline`, `__inline`, `naked`, `restrict`, `thread`, `typename`), KeywordReserved, nil},
 | 
			
		||||
			{`(__m(128i|128d|128|64))\b`, KeywordReserved, nil},
 | 
			
		||||
			{Words(`__`, `\b`, `asm`, `int8`, `based`, `except`, `int16`, `stdcall`, `cdecl`, `fastcall`, `int32`, `declspec`, `finally`, `int64`, `try`, `leave`, `wchar_t`, `w64`, `unaligned`, `raise`, `noop`, `identifier`, `forceinline`, `assume`), KeywordReserved, nil},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										5
									
								
								vendor/github.com/alecthomas/chroma/lexers/circular/phtml.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/alecthomas/chroma/lexers/circular/phtml.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -13,11 +13,12 @@ var PHTML = internal.Register(DelegatingLexer(h.HTML, MustNewLazyLexer(
 | 
			
		|||
	&Config{
 | 
			
		||||
		Name:            "PHTML",
 | 
			
		||||
		Aliases:         []string{"phtml"},
 | 
			
		||||
		Filenames:       []string{"*.phtml"},
 | 
			
		||||
		MimeTypes:       []string{"application/x-php", "application/x-httpd-php", "application/x-httpd-php3", "application/x-httpd-php4", "application/x-httpd-php5"},
 | 
			
		||||
		Filenames:       []string{"*.phtml", "*.php", "*.php[345]", "*.inc"},
 | 
			
		||||
		MimeTypes:       []string{"application/x-php", "application/x-httpd-php", "application/x-httpd-php3", "application/x-httpd-php4", "application/x-httpd-php5", "text/x-php"},
 | 
			
		||||
		DotAll:          true,
 | 
			
		||||
		CaseInsensitive: true,
 | 
			
		||||
		EnsureNL:        true,
 | 
			
		||||
		Priority:        2,
 | 
			
		||||
	},
 | 
			
		||||
	phtmlRules,
 | 
			
		||||
).SetAnalyser(func(text string) float32 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										112
									
								
								vendor/github.com/alecthomas/chroma/lexers/d/dylan.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										112
									
								
								vendor/github.com/alecthomas/chroma/lexers/d/dylan.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -6,7 +6,7 @@ import (
 | 
			
		|||
)
 | 
			
		||||
 | 
			
		||||
// Dylan lexer.
 | 
			
		||||
var Dylan = internal.Register(MustNewLexer(
 | 
			
		||||
var Dylan = internal.Register(MustNewLazyLexer(
 | 
			
		||||
	&Config{
 | 
			
		||||
		Name:            "Dylan",
 | 
			
		||||
		Aliases:         []string{"dylan"},
 | 
			
		||||
| 
						 | 
				
			
			@ -14,61 +14,63 @@ var Dylan = internal.Register(MustNewLexer(
 | 
			
		|||
		MimeTypes:       []string{"text/x-dylan"},
 | 
			
		||||
		CaseInsensitive: true,
 | 
			
		||||
	},
 | 
			
		||||
	Rules{
 | 
			
		||||
		"root": {
 | 
			
		||||
			{`\s+`, Whitespace, nil},
 | 
			
		||||
			{`//.*?\n`, CommentSingle, nil},
 | 
			
		||||
			{`([a-z0-9-]+:)([ \t]*)(.*(?:\n[ \t].+)*)`, ByGroups(NameAttribute, Whitespace, LiteralString), nil},
 | 
			
		||||
			Default(Push("code")),
 | 
			
		||||
		},
 | 
			
		||||
		"code": {
 | 
			
		||||
			{`\s+`, Whitespace, nil},
 | 
			
		||||
			{`//.*?\n`, CommentSingle, nil},
 | 
			
		||||
			{`/\*`, CommentMultiline, Push("comment")},
 | 
			
		||||
			{`"`, LiteralString, Push("string")},
 | 
			
		||||
			{`'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\\'\n])'`, LiteralStringChar, nil},
 | 
			
		||||
			{`#b[01]+`, LiteralNumberBin, nil},
 | 
			
		||||
			{`#o[0-7]+`, LiteralNumberOct, nil},
 | 
			
		||||
			{`[-+]?(\d*\.\d+([ed][-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)`, LiteralNumberFloat, nil},
 | 
			
		||||
			{`[-+]?\d+`, LiteralNumberInteger, nil},
 | 
			
		||||
			{`#x[0-9a-f]+`, LiteralNumberHex, nil},
 | 
			
		||||
	func() Rules {
 | 
			
		||||
		return Rules{
 | 
			
		||||
			"root": {
 | 
			
		||||
				{`\s+`, Whitespace, nil},
 | 
			
		||||
				{`//.*?\n`, CommentSingle, nil},
 | 
			
		||||
				{`([a-z0-9-]+:)([ \t]*)(.*(?:\n[ \t].+)*)`, ByGroups(NameAttribute, Whitespace, LiteralString), nil},
 | 
			
		||||
				Default(Push("code")),
 | 
			
		||||
			},
 | 
			
		||||
			"code": {
 | 
			
		||||
				{`\s+`, Whitespace, nil},
 | 
			
		||||
				{`//.*?\n`, CommentSingle, nil},
 | 
			
		||||
				{`/\*`, CommentMultiline, Push("comment")},
 | 
			
		||||
				{`"`, LiteralString, Push("string")},
 | 
			
		||||
				{`'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\\'\n])'`, LiteralStringChar, nil},
 | 
			
		||||
				{`#b[01]+`, LiteralNumberBin, nil},
 | 
			
		||||
				{`#o[0-7]+`, LiteralNumberOct, nil},
 | 
			
		||||
				{`[-+]?(\d*\.\d+([ed][-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)`, LiteralNumberFloat, nil},
 | 
			
		||||
				{`[-+]?\d+`, LiteralNumberInteger, nil},
 | 
			
		||||
				{`#x[0-9a-f]+`, LiteralNumberHex, nil},
 | 
			
		||||
 | 
			
		||||
			{`(\?\\?)([\w!&*<>|^$%@+~?/=-]+)(:)(token|name|variable|expression|body|case-body|\*)`,
 | 
			
		||||
				ByGroups(Operator, NameVariable, Operator, NameBuiltin), nil},
 | 
			
		||||
			{`(\?)(:)(token|name|variable|expression|body|case-body|\*)`,
 | 
			
		||||
				ByGroups(Operator, Operator, NameVariable), nil},
 | 
			
		||||
			{`(\?\\?)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(Operator, NameVariable), nil},
 | 
			
		||||
				{`(\?\\?)([\w!&*<>|^$%@+~?/=-]+)(:)(token|name|variable|expression|body|case-body|\*)`,
 | 
			
		||||
					ByGroups(Operator, NameVariable, Operator, NameBuiltin), nil},
 | 
			
		||||
				{`(\?)(:)(token|name|variable|expression|body|case-body|\*)`,
 | 
			
		||||
					ByGroups(Operator, Operator, NameVariable), nil},
 | 
			
		||||
				{`(\?\\?)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(Operator, NameVariable), nil},
 | 
			
		||||
 | 
			
		||||
			{`(=>|::|#\(|#\[|##|\?\?|\?=|\?|[(){}\[\],.;])`, Punctuation, nil},
 | 
			
		||||
			{`:=`, Operator, nil},
 | 
			
		||||
			{`#[tf]`, Literal, nil},
 | 
			
		||||
			{`#"`, LiteralStringSymbol, Push("symbol")},
 | 
			
		||||
			{`#[a-z0-9-]+`, Keyword, nil},
 | 
			
		||||
			{`#(all-keys|include|key|next|rest)`, Keyword, nil},
 | 
			
		||||
			{`[\w!&*<>|^$%@+~?/=-]+:`, KeywordConstant, nil},
 | 
			
		||||
			{`<[\w!&*<>|^$%@+~?/=-]+>`, NameClass, nil},
 | 
			
		||||
			{`\*[\w!&*<>|^$%@+~?/=-]+\*`, NameVariableGlobal, nil},
 | 
			
		||||
			{`\$[\w!&*<>|^$%@+~?/=-]+`, NameConstant, nil},
 | 
			
		||||
			{`(let|method|function)([ \t]+)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(NameBuiltin, Whitespace, NameVariable), nil},
 | 
			
		||||
			{`(error|signal|return|break)`, NameException, nil},
 | 
			
		||||
			{`(\\?)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(Operator, Name), nil},
 | 
			
		||||
		},
 | 
			
		||||
		"comment": {
 | 
			
		||||
			{`[^*/]`, CommentMultiline, nil},
 | 
			
		||||
			{`/\*`, CommentMultiline, Push()},
 | 
			
		||||
			{`\*/`, CommentMultiline, Pop(1)},
 | 
			
		||||
			{`[*/]`, CommentMultiline, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"symbol": {
 | 
			
		||||
			{`"`, LiteralStringSymbol, Pop(1)},
 | 
			
		||||
			{`[^\\"]+`, LiteralStringSymbol, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"string": {
 | 
			
		||||
			{`"`, LiteralString, Pop(1)},
 | 
			
		||||
			{`\\([\\abfnrtv"\']|x[a-f0-9]{2,4}|[0-7]{1,3})`, LiteralStringEscape, nil},
 | 
			
		||||
			{`[^\\"\n]+`, LiteralString, nil},
 | 
			
		||||
			{`\\\n`, LiteralString, nil},
 | 
			
		||||
			{`\\`, LiteralString, nil},
 | 
			
		||||
		},
 | 
			
		||||
				{`(=>|::|#\(|#\[|##|\?\?|\?=|\?|[(){}\[\],.;])`, Punctuation, nil},
 | 
			
		||||
				{`:=`, Operator, nil},
 | 
			
		||||
				{`#[tf]`, Literal, nil},
 | 
			
		||||
				{`#"`, LiteralStringSymbol, Push("symbol")},
 | 
			
		||||
				{`#[a-z0-9-]+`, Keyword, nil},
 | 
			
		||||
				{`#(all-keys|include|key|next|rest)`, Keyword, nil},
 | 
			
		||||
				{`[\w!&*<>|^$%@+~?/=-]+:`, KeywordConstant, nil},
 | 
			
		||||
				{`<[\w!&*<>|^$%@+~?/=-]+>`, NameClass, nil},
 | 
			
		||||
				{`\*[\w!&*<>|^$%@+~?/=-]+\*`, NameVariableGlobal, nil},
 | 
			
		||||
				{`\$[\w!&*<>|^$%@+~?/=-]+`, NameConstant, nil},
 | 
			
		||||
				{`(let|method|function)([ \t]+)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(NameBuiltin, Whitespace, NameVariable), nil},
 | 
			
		||||
				{`(error|signal|return|break)`, NameException, nil},
 | 
			
		||||
				{`(\\?)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(Operator, Name), nil},
 | 
			
		||||
			},
 | 
			
		||||
			"comment": {
 | 
			
		||||
				{`[^*/]`, CommentMultiline, nil},
 | 
			
		||||
				{`/\*`, CommentMultiline, Push()},
 | 
			
		||||
				{`\*/`, CommentMultiline, Pop(1)},
 | 
			
		||||
				{`[*/]`, CommentMultiline, nil},
 | 
			
		||||
			},
 | 
			
		||||
			"symbol": {
 | 
			
		||||
				{`"`, LiteralStringSymbol, Pop(1)},
 | 
			
		||||
				{`[^\\"]+`, LiteralStringSymbol, nil},
 | 
			
		||||
			},
 | 
			
		||||
			"string": {
 | 
			
		||||
				{`"`, LiteralString, Pop(1)},
 | 
			
		||||
				{`\\([\\abfnrtv"\']|x[a-f0-9]{2,4}|[0-7]{1,3})`, LiteralStringEscape, nil},
 | 
			
		||||
				{`[^\\"\n]+`, LiteralString, nil},
 | 
			
		||||
				{`\\\n`, LiteralString, nil},
 | 
			
		||||
				{`\\`, LiteralString, nil},
 | 
			
		||||
			},
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										43
									
								
								vendor/github.com/alecthomas/chroma/lexers/f/fish.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										43
									
								
								vendor/github.com/alecthomas/chroma/lexers/f/fish.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -17,11 +17,32 @@ var Fish = internal.Register(MustNewLazyLexer(
 | 
			
		|||
))
 | 
			
		||||
 | 
			
		||||
func fishRules() Rules {
 | 
			
		||||
	keywords := []string{
 | 
			
		||||
		`begin`, `end`, `if`, `else`, `while`, `break`, `for`, `return`, `function`, `block`,
 | 
			
		||||
		`case`, `continue`, `switch`, `not`, `and`, `or`, `set`, `echo`, `exit`, `pwd`, `true`,
 | 
			
		||||
		`false`, `cd`, `cdh`, `count`, `test`,
 | 
			
		||||
	}
 | 
			
		||||
	keywordsPattern := Words(`\b`, `\b`, keywords...)
 | 
			
		||||
 | 
			
		||||
	builtins := []string{
 | 
			
		||||
		`alias`, `bg`, `bind`, `breakpoint`, `builtin`, `argparse`, `abbr`, `string`, `command`,
 | 
			
		||||
		`commandline`, `complete`, `contains`, `dirh`, `dirs`, `disown`, `emit`, `eval`, `exec`,
 | 
			
		||||
		`fg`, `fish`, `fish_add_path`, `fish_breakpoint_prompt`, `fish_command_not_found`,
 | 
			
		||||
		`fish_config`, `fish_git_prompt`, `fish_greeting`, `fish_hg_prompt`, `fish_indent`,
 | 
			
		||||
		`fish_is_root_user`, `fish_key_reader`, `fish_mode_prompt`, `fish_opt`, `fish_pager`,
 | 
			
		||||
		`fish_prompt`, `fish_right_prompt`, `fish_status_to_signal`, `fish_svn_prompt`,
 | 
			
		||||
		`fish_title`, `fish_update_completions`, `fish_vcs_prompt`, `fishd`, `funced`,
 | 
			
		||||
		`funcsave`, `functions`, `help`, `history`, `isatty`, `jobs`, `math`, `mimedb`, `nextd`,
 | 
			
		||||
		`open`, `prompt_pwd`, `realpath`, `popd`, `prevd`, `psub`, `pushd`, `random`, `read`,
 | 
			
		||||
		`set_color`, `source`, `status`, `suspend`, `trap`, `type`, `ulimit`, `umask`, `vared`,
 | 
			
		||||
		`fc`, `getopts`, `hash`, `kill`, `printf`, `time`, `wait`,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return Rules{
 | 
			
		||||
		"root": {
 | 
			
		||||
			Include("basic"),
 | 
			
		||||
			Include("data"),
 | 
			
		||||
			Include("interp"),
 | 
			
		||||
			Include("data"),
 | 
			
		||||
		},
 | 
			
		||||
		"interp": {
 | 
			
		||||
			{`\$\(\(`, Keyword, Push("math")},
 | 
			
		||||
| 
						 | 
				
			
			@ -29,13 +50,20 @@ func fishRules() Rules {
 | 
			
		|||
			{`\$#?(\w+|.)`, NameVariable, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"basic": {
 | 
			
		||||
			{`\b(begin|end|if|else|while|break|for|in|return|function|block|case|continue|switch|not|and|or|set|echo|exit|pwd|true|false|cd|count|test)(\s*)\b`, ByGroups(Keyword, Text), nil},
 | 
			
		||||
			{`\b(alias|bg|bind|breakpoint|builtin|command|commandline|complete|contains|dirh|dirs|emit|eval|exec|fg|fish|fish_config|fish_indent|fish_pager|fish_prompt|fish_right_prompt|fish_update_completions|fishd|funced|funcsave|functions|help|history|isatty|jobs|math|mimedb|nextd|open|popd|prevd|psub|pushd|random|read|set_color|source|status|trap|type|ulimit|umask|vared|fc|getopts|hash|kill|printf|time|wait)\s*\b(?!\.)`, NameBuiltin, nil},
 | 
			
		||||
			{Words(`(?<=(?:^|\A|;|&&|\|\||\||`+keywordsPattern+`)\s*)`, `(?=;?\b)`, keywords...), Keyword, nil},
 | 
			
		||||
			{`(?<=for\s+\S+\s+)in\b`, Keyword, nil},
 | 
			
		||||
			{Words(`\b`, `\s*\b(?!\.)`, builtins...), NameBuiltin, nil},
 | 
			
		||||
			{`#!.*\n`, CommentHashbang, nil},
 | 
			
		||||
			{`#.*\n`, Comment, nil},
 | 
			
		||||
			{`\\[\w\W]`, LiteralStringEscape, nil},
 | 
			
		||||
			{`(\b\w+)(\s*)(=)`, ByGroups(NameVariable, Text, Operator), nil},
 | 
			
		||||
			{`[\[\]()=]`, Operator, nil},
 | 
			
		||||
			{`[\[\]()={}]`, Operator, nil},
 | 
			
		||||
			{`(?<=\[[^\]]+)\.\.|-(?=[^\[]+\])`, Operator, nil},
 | 
			
		||||
			{`<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2`, LiteralString, nil},
 | 
			
		||||
			{`(?<=set\s+(?:--?[^\d\W][\w-]*\s+)?)\w+`, NameVariable, nil},
 | 
			
		||||
			{`(?<=for\s+)\w[\w-]*(?=\s+in)`, NameVariable, nil},
 | 
			
		||||
			{`(?<=function\s+)\w(?:[^\n])*?(?= *[-\n])`, NameFunction, nil},
 | 
			
		||||
			{`(?<=(?:^|\b(?:and|or|sudo)\b|;|\|\||&&|\||\(|(?:\b\w+\s*=\S+\s)) *)\w[\w-]*`, NameFunction, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"data": {
 | 
			
		||||
			{`(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"`, LiteralStringDouble, nil},
 | 
			
		||||
| 
						 | 
				
			
			@ -43,10 +71,11 @@ func fishRules() Rules {
 | 
			
		|||
			{`(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'`, LiteralStringSingle, nil},
 | 
			
		||||
			{`(?s)'.*?'`, LiteralStringSingle, nil},
 | 
			
		||||
			{`;`, Punctuation, nil},
 | 
			
		||||
			{`&|\||\^|<|>`, Operator, nil},
 | 
			
		||||
			{`&&|\|\||&|\||\^|<|>`, Operator, nil},
 | 
			
		||||
			{`\s+`, Text, nil},
 | 
			
		||||
			{`\d+(?= |\Z)`, LiteralNumber, nil},
 | 
			
		||||
			{"[^=\\s\\[\\]{}()$\"\\'`\\\\<&|;]+", Text, nil},
 | 
			
		||||
			{`\b\d+\b`, LiteralNumber, nil},
 | 
			
		||||
			{`--?[^\d][\w-]*`, NameAttribute, nil},
 | 
			
		||||
			{".+?", Text, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"string": {
 | 
			
		||||
			{`"`, LiteralStringDouble, Pop(1)},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										39
									
								
								vendor/github.com/alecthomas/chroma/lexers/f/fortran_fixed.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								vendor/github.com/alecthomas/chroma/lexers/f/fortran_fixed.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
package f
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	. "github.com/alecthomas/chroma" // nolint
 | 
			
		||||
	"github.com/alecthomas/chroma/lexers/internal"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// FortranFixed lexer.
 | 
			
		||||
var FortranFixed = internal.Register(MustNewLazyLexer(
 | 
			
		||||
	&Config{
 | 
			
		||||
		Name:            "FortranFixed",
 | 
			
		||||
		Aliases:         []string{"fortranfixed"},
 | 
			
		||||
		Filenames:       []string{"*.f", "*.F"},
 | 
			
		||||
		MimeTypes:       []string{"text/x-fortran"},
 | 
			
		||||
		NotMultiline:    true,
 | 
			
		||||
		CaseInsensitive: true,
 | 
			
		||||
	},
 | 
			
		||||
	func() Rules {
 | 
			
		||||
		return Rules{
 | 
			
		||||
			"root": {
 | 
			
		||||
				{`[C*].*\n`, Comment, nil},
 | 
			
		||||
				{`#.*\n`, CommentPreproc, nil},
 | 
			
		||||
				{`[\t ]*!.*\n`, Comment, nil},
 | 
			
		||||
				{`(.{5})`, NameLabel, Push("cont-char")},
 | 
			
		||||
				{`.*\n`, Using(Fortran), nil},
 | 
			
		||||
			},
 | 
			
		||||
			"cont-char": {
 | 
			
		||||
				{` `, Text, Push("code")},
 | 
			
		||||
				{`0`, Comment, Push("code")},
 | 
			
		||||
				{`.`, GenericStrong, Push("code")},
 | 
			
		||||
			},
 | 
			
		||||
			"code": {
 | 
			
		||||
				{`(.{66})(.*)(\n)`, ByGroups(Using(Fortran), Comment, Text), Push("root")},
 | 
			
		||||
				{`.*\n`, Using(Fortran), Push("root")},
 | 
			
		||||
				Default(Push("root")),
 | 
			
		||||
			},
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
))
 | 
			
		||||
							
								
								
									
										47
									
								
								vendor/github.com/alecthomas/chroma/lexers/g/groff.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								vendor/github.com/alecthomas/chroma/lexers/g/groff.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
package g
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	. "github.com/alecthomas/chroma" // nolint
 | 
			
		||||
	"github.com/alecthomas/chroma/lexers/internal"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Groff lexer.
 | 
			
		||||
var Groff = internal.Register(MustNewLazyLexer(
 | 
			
		||||
	&Config{
 | 
			
		||||
		Name:      "Groff",
 | 
			
		||||
		Aliases:   []string{"groff", "nroff", "man"},
 | 
			
		||||
		Filenames: []string{"*.[1-9]", "*.1p", "*.3pm", "*.man"},
 | 
			
		||||
		MimeTypes: []string{"application/x-troff", "text/troff"},
 | 
			
		||||
	},
 | 
			
		||||
	func() Rules {
 | 
			
		||||
		return Rules{
 | 
			
		||||
			"root": {
 | 
			
		||||
				{`(\.)(\w+)`, ByGroups(Text, Keyword), Push("request")},
 | 
			
		||||
				{`\.`, Punctuation, Push("request")},
 | 
			
		||||
				{`[^\\\n]+`, Text, Push("textline")},
 | 
			
		||||
				Default(Push("textline")),
 | 
			
		||||
			},
 | 
			
		||||
			"textline": {
 | 
			
		||||
				Include("escapes"),
 | 
			
		||||
				{`[^\\\n]+`, Text, nil},
 | 
			
		||||
				{`\n`, Text, Pop(1)},
 | 
			
		||||
			},
 | 
			
		||||
			"escapes": {
 | 
			
		||||
				{`\\"[^\n]*`, Comment, nil},
 | 
			
		||||
				{`\\[fn]\w`, LiteralStringEscape, nil},
 | 
			
		||||
				{`\\\(.{2}`, LiteralStringEscape, nil},
 | 
			
		||||
				{`\\.\[.*\]`, LiteralStringEscape, nil},
 | 
			
		||||
				{`\\.`, LiteralStringEscape, nil},
 | 
			
		||||
				{`\\\n`, Text, Push("request")},
 | 
			
		||||
			},
 | 
			
		||||
			"request": {
 | 
			
		||||
				{`\n`, Text, Pop(1)},
 | 
			
		||||
				Include("escapes"),
 | 
			
		||||
				{`"[^\n"]+"`, LiteralStringDouble, nil},
 | 
			
		||||
				{`\d+`, LiteralNumber, nil},
 | 
			
		||||
				{`\S+`, LiteralString, nil},
 | 
			
		||||
				{`\s+`, Text, nil},
 | 
			
		||||
			},
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
))
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/http.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/http.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -37,14 +37,14 @@ func httpRules() Rules {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func httpContentBlock(groups []string, lexer Lexer) Iterator {
 | 
			
		||||
func httpContentBlock(groups []string, state *LexerState) Iterator {
 | 
			
		||||
	tokens := []Token{
 | 
			
		||||
		{Generic, groups[0]},
 | 
			
		||||
	}
 | 
			
		||||
	return Literator(tokens...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func httpHeaderBlock(groups []string, lexer Lexer) Iterator {
 | 
			
		||||
func httpHeaderBlock(groups []string, state *LexerState) Iterator {
 | 
			
		||||
	tokens := []Token{
 | 
			
		||||
		{Name, groups[1]},
 | 
			
		||||
		{Text, groups[2]},
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +56,7 @@ func httpHeaderBlock(groups []string, lexer Lexer) Iterator {
 | 
			
		|||
	return Literator(tokens...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func httpContinuousHeaderBlock(groups []string, lexer Lexer) Iterator {
 | 
			
		||||
func httpContinuousHeaderBlock(groups []string, state *LexerState) Iterator {
 | 
			
		||||
	tokens := []Token{
 | 
			
		||||
		{Text, groups[1]},
 | 
			
		||||
		{Literal, groups[2]},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										27
									
								
								vendor/github.com/alecthomas/chroma/lexers/internal/api.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/github.com/alecthomas/chroma/lexers/internal/api.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -11,6 +11,19 @@ import (
 | 
			
		|||
	"github.com/alecthomas/chroma"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	ignoredSuffixes = [...]string{
 | 
			
		||||
		// Editor backups
 | 
			
		||||
		"~", ".bak", ".old", ".orig",
 | 
			
		||||
		// Debian and derivatives apt/dpkg backups
 | 
			
		||||
		".dpkg-dist", ".dpkg-old",
 | 
			
		||||
		// Red Hat and derivatives rpm backups
 | 
			
		||||
		".rpmnew", ".rpmorig", ".rpmsave",
 | 
			
		||||
		// Build system input/template files
 | 
			
		||||
		".in",
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Registry of Lexers.
 | 
			
		||||
var Registry = struct {
 | 
			
		||||
	Lexers  chroma.Lexers
 | 
			
		||||
| 
						 | 
				
			
			@ -93,6 +106,13 @@ func Match(filename string) chroma.Lexer {
 | 
			
		|||
		for _, glob := range config.Filenames {
 | 
			
		||||
			if fnmatch.Match(glob, filename, 0) {
 | 
			
		||||
				matched = append(matched, lexer)
 | 
			
		||||
			} else {
 | 
			
		||||
				for _, suf := range &ignoredSuffixes {
 | 
			
		||||
					if fnmatch.Match(glob+suf, filename, 0) {
 | 
			
		||||
						matched = append(matched, lexer)
 | 
			
		||||
						break
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -107,6 +127,13 @@ func Match(filename string) chroma.Lexer {
 | 
			
		|||
		for _, glob := range config.AliasFilenames {
 | 
			
		||||
			if fnmatch.Match(glob, filename, 0) {
 | 
			
		||||
				matched = append(matched, lexer)
 | 
			
		||||
			} else {
 | 
			
		||||
				for _, suf := range &ignoredSuffixes {
 | 
			
		||||
					if fnmatch.Match(glob+suf, filename, 0) {
 | 
			
		||||
						matched = append(matched, lexer)
 | 
			
		||||
						break
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/alecthomas/chroma/lexers/j/javascript.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/alecthomas/chroma/lexers/j/javascript.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -61,7 +61,7 @@ var JavascriptRules = Rules{
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// Javascript lexer.
 | 
			
		||||
var Javascript = internal.Register(MustNewLexer(
 | 
			
		||||
var Javascript = internal.Register(MustNewLexer( // nolint: forbidigo
 | 
			
		||||
	&Config{
 | 
			
		||||
		Name:      "JavaScript",
 | 
			
		||||
		Aliases:   []string{"js", "javascript"},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/alecthomas/chroma/lexers/lexers.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/alecthomas/chroma/lexers/lexers.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
// Sub-packages contain lexer implementations.
 | 
			
		||||
package lexers
 | 
			
		||||
 | 
			
		||||
// nolint: golint
 | 
			
		||||
// nolint
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/alecthomas/chroma"
 | 
			
		||||
	_ "github.com/alecthomas/chroma/lexers/a"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/alecthomas/chroma/lexers/m/markdown.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/alecthomas/chroma/lexers/m/markdown.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -40,7 +40,7 @@ func markdownRules() Rules {
 | 
			
		|||
		},
 | 
			
		||||
		"inline": {
 | 
			
		||||
			{`\\.`, Text, nil},
 | 
			
		||||
			{`(\s)([*_][^*_]+[*_])(\W|\n)`, ByGroups(Text, GenericEmph, Text), nil},
 | 
			
		||||
			{`(\s)(\*|_)((?:(?!\2).)*)(\2)((?=\W|\n))`, ByGroups(Text, GenericEmph, GenericEmph, GenericEmph, Text), nil},
 | 
			
		||||
			{`(\s)((\*\*|__).*?)\3((?=\W|\n))`, ByGroups(Text, GenericStrong, GenericStrong, Text), nil},
 | 
			
		||||
			{`(\s)(~~[^~]+~~)((?=\W|\n))`, ByGroups(Text, GenericDeleted, Text), nil},
 | 
			
		||||
			{"`[^`]+`", LiteralStringBacktick, nil},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										180
									
								
								vendor/github.com/alecthomas/chroma/lexers/m/mcfunction.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										180
									
								
								vendor/github.com/alecthomas/chroma/lexers/m/mcfunction.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -6,7 +6,7 @@ import (
 | 
			
		|||
)
 | 
			
		||||
 | 
			
		||||
// mcfunction lexer.
 | 
			
		||||
var MCFunction = internal.Register(MustNewLexer(
 | 
			
		||||
var MCFunction = internal.Register(MustNewLazyLexer(
 | 
			
		||||
	&Config{
 | 
			
		||||
		Name:         "mcfunction",
 | 
			
		||||
		Aliases:      []string{"mcfunction"},
 | 
			
		||||
| 
						 | 
				
			
			@ -15,93 +15,95 @@ var MCFunction = internal.Register(MustNewLexer(
 | 
			
		|||
		NotMultiline: true,
 | 
			
		||||
		DotAll:       true,
 | 
			
		||||
	},
 | 
			
		||||
	Rules{
 | 
			
		||||
		"simplevalue": {
 | 
			
		||||
			{`(true|false)`, KeywordConstant, nil},
 | 
			
		||||
			{`[01]b`, LiteralNumber, nil},
 | 
			
		||||
			{`-?(0|[1-9]\d*)(\.\d+[eE](\+|-)?\d+|[eE](\+|-)?\d+|\.\d+)`, LiteralNumberFloat, nil},
 | 
			
		||||
			{`(-?\d+)(\.\.)(-?\d+)`, ByGroups(LiteralNumberInteger, Punctuation, LiteralNumberInteger), nil},
 | 
			
		||||
			{`-?(0|[1-9]\d*)`, LiteralNumberInteger, nil},
 | 
			
		||||
			{`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil},
 | 
			
		||||
			{`'[^']+'`, LiteralStringSingle, nil},
 | 
			
		||||
			{`([!#]?)(\w+)`, ByGroups(Punctuation, Text), nil},
 | 
			
		||||
		},
 | 
			
		||||
		"nbtobjectattribute": {
 | 
			
		||||
			Include("nbtvalue"),
 | 
			
		||||
			{`:`, Punctuation, nil},
 | 
			
		||||
			{`,`, Punctuation, Pop(1)},
 | 
			
		||||
			{`\}`, Punctuation, Pop(2)},
 | 
			
		||||
		},
 | 
			
		||||
		"nbtobjectvalue": {
 | 
			
		||||
			{`("(\\\\|\\"|[^"])*"|[a-zA-Z0-9_]+)`, NameTag, Push("nbtobjectattribute")},
 | 
			
		||||
			{`\}`, Punctuation, Pop(1)},
 | 
			
		||||
		},
 | 
			
		||||
		"nbtarrayvalue": {
 | 
			
		||||
			Include("nbtvalue"),
 | 
			
		||||
			{`,`, Punctuation, nil},
 | 
			
		||||
			{`\]`, Punctuation, Pop(1)},
 | 
			
		||||
		},
 | 
			
		||||
		"nbtvalue": {
 | 
			
		||||
			Include("simplevalue"),
 | 
			
		||||
			{`\{`, Punctuation, Push("nbtobjectvalue")},
 | 
			
		||||
			{`\[`, Punctuation, Push("nbtarrayvalue")},
 | 
			
		||||
		},
 | 
			
		||||
		"argumentvalue": {
 | 
			
		||||
			Include("simplevalue"),
 | 
			
		||||
			{`,`, Punctuation, Pop(1)},
 | 
			
		||||
			{`[}\]]`, Punctuation, Pop(2)},
 | 
			
		||||
		},
 | 
			
		||||
		"argumentlist": {
 | 
			
		||||
			{`(nbt)(={)`, ByGroups(NameAttribute, Punctuation), Push("nbtobjectvalue")},
 | 
			
		||||
			{`([A-Za-z0-9/_!]+)(={)`, ByGroups(NameAttribute, Punctuation), Push("argumentlist")},
 | 
			
		||||
			{`([A-Za-z0-9/_!]+)(=)`, ByGroups(NameAttribute, Punctuation), Push("argumentvalue")},
 | 
			
		||||
			Include("simplevalue"),
 | 
			
		||||
			{`,`, Punctuation, nil},
 | 
			
		||||
			{`[}\]]`, Punctuation, Pop(1)},
 | 
			
		||||
		},
 | 
			
		||||
		"root": {
 | 
			
		||||
			{`#.*?\n`, CommentSingle, nil},
 | 
			
		||||
			{Words(`/?`, `\b`, `ability`, `attributes`, `advancement`,
 | 
			
		||||
				`ban`, `ban-ip`, `banlist`, `bossbar`,
 | 
			
		||||
				`camerashake`, `classroommode`, `clear`,
 | 
			
		||||
				`clearspawnpoint`, `clone`, `code`, `collect`,
 | 
			
		||||
				`createagent`, `data`, `datapack`, `debug`,
 | 
			
		||||
				`defaultgamemode`, `deop`, `destroy`, `detect`,
 | 
			
		||||
				`detectredstone`, `difficulty`, `dropall`,
 | 
			
		||||
				`effect`, `enchant`, `event`, `execute`,
 | 
			
		||||
				`experience`, `fill`, `flog`, `forceload`,
 | 
			
		||||
				`function`, `gamemode`, `gamerule`,
 | 
			
		||||
				`geteduclientinfo`, `give`, `help`, `item`,
 | 
			
		||||
				`immutableworld`, `kick`, `kill`, `list`,
 | 
			
		||||
				`locate`, `locatebiome`, `loot`, `me`, `mixer`,
 | 
			
		||||
				`mobevent`, `move`, `msg`, `music`, `op`,
 | 
			
		||||
				`pardon`, `particle`, `playanimation`,
 | 
			
		||||
				`playsound`, `position`, `publish`,
 | 
			
		||||
				`raytracefog`, `recipe`, `reload`, `remove`,
 | 
			
		||||
				`replaceitem`, `ride`, `save`, `save-all`,
 | 
			
		||||
				`save-off`, `save-on`, `say`, `schedule`,
 | 
			
		||||
				`scoreboard`, `seed`, `setblock`,
 | 
			
		||||
				`setidletimeout`, `setmaxplayers`,
 | 
			
		||||
				`setworldspawn`, `spawnpoint`, `spectate`,
 | 
			
		||||
				`spreadplayers`, `stop`, `stopsound`,
 | 
			
		||||
				`structure`, `summon`, `tag`, `team`, `teammsg`,
 | 
			
		||||
				`teleport`, `tell`, `tellraw`, `testfor`,
 | 
			
		||||
				`testforblock`, `testforblocks`, `tickingarea`,
 | 
			
		||||
				`time`, `title`, `toggledownfall`, `tp`,
 | 
			
		||||
				`tpagent`, `transfer`, `transferserver`,
 | 
			
		||||
				`trigger`, `turn`, `w`, `weather`, `whitelist`,
 | 
			
		||||
				`worldborder`, `worldbuilder`, `wsserver`, `xp`,
 | 
			
		||||
			), KeywordReserved, nil},
 | 
			
		||||
			{Words(``, ``, `@p`, `@r`, `@a`, `@e`, `@s`, `@c`, `@v`),
 | 
			
		||||
				KeywordConstant, nil},
 | 
			
		||||
			{`\[`, Punctuation, Push("argumentlist")},
 | 
			
		||||
			{`{`, Punctuation, Push("nbtobjectvalue")},
 | 
			
		||||
			{`~`, NameBuiltin, nil},
 | 
			
		||||
			{`([a-zA-Z_]+:)?[a-zA-Z_]+\b`, Text, nil},
 | 
			
		||||
			{`([a-z]+)(\.)([0-9]+)\b`, ByGroups(Text, Punctuation, LiteralNumber), nil},
 | 
			
		||||
			{`([<>=]|<=|>=)`, Punctuation, nil},
 | 
			
		||||
			Include("simplevalue"),
 | 
			
		||||
			{`\s+`, TextWhitespace, nil},
 | 
			
		||||
		},
 | 
			
		||||
	func() Rules {
 | 
			
		||||
		return Rules{
 | 
			
		||||
			"simplevalue": {
 | 
			
		||||
				{`(true|false)`, KeywordConstant, nil},
 | 
			
		||||
				{`[01]b`, LiteralNumber, nil},
 | 
			
		||||
				{`-?(0|[1-9]\d*)(\.\d+[eE](\+|-)?\d+|[eE](\+|-)?\d+|\.\d+)`, LiteralNumberFloat, nil},
 | 
			
		||||
				{`(-?\d+)(\.\.)(-?\d+)`, ByGroups(LiteralNumberInteger, Punctuation, LiteralNumberInteger), nil},
 | 
			
		||||
				{`-?(0|[1-9]\d*)`, LiteralNumberInteger, nil},
 | 
			
		||||
				{`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil},
 | 
			
		||||
				{`'[^']+'`, LiteralStringSingle, nil},
 | 
			
		||||
				{`([!#]?)(\w+)`, ByGroups(Punctuation, Text), nil},
 | 
			
		||||
			},
 | 
			
		||||
			"nbtobjectattribute": {
 | 
			
		||||
				Include("nbtvalue"),
 | 
			
		||||
				{`:`, Punctuation, nil},
 | 
			
		||||
				{`,`, Punctuation, Pop(1)},
 | 
			
		||||
				{`\}`, Punctuation, Pop(2)},
 | 
			
		||||
			},
 | 
			
		||||
			"nbtobjectvalue": {
 | 
			
		||||
				{`("(\\\\|\\"|[^"])*"|[a-zA-Z0-9_]+)`, NameTag, Push("nbtobjectattribute")},
 | 
			
		||||
				{`\}`, Punctuation, Pop(1)},
 | 
			
		||||
			},
 | 
			
		||||
			"nbtarrayvalue": {
 | 
			
		||||
				Include("nbtvalue"),
 | 
			
		||||
				{`,`, Punctuation, nil},
 | 
			
		||||
				{`\]`, Punctuation, Pop(1)},
 | 
			
		||||
			},
 | 
			
		||||
			"nbtvalue": {
 | 
			
		||||
				Include("simplevalue"),
 | 
			
		||||
				{`\{`, Punctuation, Push("nbtobjectvalue")},
 | 
			
		||||
				{`\[`, Punctuation, Push("nbtarrayvalue")},
 | 
			
		||||
			},
 | 
			
		||||
			"argumentvalue": {
 | 
			
		||||
				Include("simplevalue"),
 | 
			
		||||
				{`,`, Punctuation, Pop(1)},
 | 
			
		||||
				{`[}\]]`, Punctuation, Pop(2)},
 | 
			
		||||
			},
 | 
			
		||||
			"argumentlist": {
 | 
			
		||||
				{`(nbt)(={)`, ByGroups(NameAttribute, Punctuation), Push("nbtobjectvalue")},
 | 
			
		||||
				{`([A-Za-z0-9/_!]+)(={)`, ByGroups(NameAttribute, Punctuation), Push("argumentlist")},
 | 
			
		||||
				{`([A-Za-z0-9/_!]+)(=)`, ByGroups(NameAttribute, Punctuation), Push("argumentvalue")},
 | 
			
		||||
				Include("simplevalue"),
 | 
			
		||||
				{`,`, Punctuation, nil},
 | 
			
		||||
				{`[}\]]`, Punctuation, Pop(1)},
 | 
			
		||||
			},
 | 
			
		||||
			"root": {
 | 
			
		||||
				{`#.*?\n`, CommentSingle, nil},
 | 
			
		||||
				{Words(`/?`, `\b`, `ability`, `attributes`, `advancement`,
 | 
			
		||||
					`ban`, `ban-ip`, `banlist`, `bossbar`,
 | 
			
		||||
					`camerashake`, `classroommode`, `clear`,
 | 
			
		||||
					`clearspawnpoint`, `clone`, `code`, `collect`,
 | 
			
		||||
					`createagent`, `data`, `datapack`, `debug`,
 | 
			
		||||
					`defaultgamemode`, `deop`, `destroy`, `detect`,
 | 
			
		||||
					`detectredstone`, `difficulty`, `dropall`,
 | 
			
		||||
					`effect`, `enchant`, `event`, `execute`,
 | 
			
		||||
					`experience`, `fill`, `flog`, `forceload`,
 | 
			
		||||
					`function`, `gamemode`, `gamerule`,
 | 
			
		||||
					`geteduclientinfo`, `give`, `help`, `item`,
 | 
			
		||||
					`immutableworld`, `kick`, `kill`, `list`,
 | 
			
		||||
					`locate`, `locatebiome`, `loot`, `me`, `mixer`,
 | 
			
		||||
					`mobevent`, `move`, `msg`, `music`, `op`,
 | 
			
		||||
					`pardon`, `particle`, `playanimation`,
 | 
			
		||||
					`playsound`, `position`, `publish`,
 | 
			
		||||
					`raytracefog`, `recipe`, `reload`, `remove`,
 | 
			
		||||
					`replaceitem`, `ride`, `save`, `save-all`,
 | 
			
		||||
					`save-off`, `save-on`, `say`, `schedule`,
 | 
			
		||||
					`scoreboard`, `seed`, `setblock`,
 | 
			
		||||
					`setidletimeout`, `setmaxplayers`,
 | 
			
		||||
					`setworldspawn`, `spawnpoint`, `spectate`,
 | 
			
		||||
					`spreadplayers`, `stop`, `stopsound`,
 | 
			
		||||
					`structure`, `summon`, `tag`, `team`, `teammsg`,
 | 
			
		||||
					`teleport`, `tell`, `tellraw`, `testfor`,
 | 
			
		||||
					`testforblock`, `testforblocks`, `tickingarea`,
 | 
			
		||||
					`time`, `title`, `toggledownfall`, `tp`,
 | 
			
		||||
					`tpagent`, `transfer`, `transferserver`,
 | 
			
		||||
					`trigger`, `turn`, `w`, `weather`, `whitelist`,
 | 
			
		||||
					`worldborder`, `worldbuilder`, `wsserver`, `xp`,
 | 
			
		||||
				), KeywordReserved, nil},
 | 
			
		||||
				{Words(``, ``, `@p`, `@r`, `@a`, `@e`, `@s`, `@c`, `@v`),
 | 
			
		||||
					KeywordConstant, nil},
 | 
			
		||||
				{`\[`, Punctuation, Push("argumentlist")},
 | 
			
		||||
				{`{`, Punctuation, Push("nbtobjectvalue")},
 | 
			
		||||
				{`~`, NameBuiltin, nil},
 | 
			
		||||
				{`([a-zA-Z_]+:)?[a-zA-Z_]+\b`, Text, nil},
 | 
			
		||||
				{`([a-z]+)(\.)([0-9]+)\b`, ByGroups(Text, Punctuation, LiteralNumber), nil},
 | 
			
		||||
				{`([<>=]|<=|>=)`, Punctuation, nil},
 | 
			
		||||
				Include("simplevalue"),
 | 
			
		||||
				{`\s+`, TextWhitespace, nil},
 | 
			
		||||
			},
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										101
									
								
								vendor/github.com/alecthomas/chroma/lexers/m/metal.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								vendor/github.com/alecthomas/chroma/lexers/m/metal.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,101 @@
 | 
			
		|||
package m
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	. "github.com/alecthomas/chroma" // nolint
 | 
			
		||||
	"github.com/alecthomas/chroma/lexers/internal"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Metal lexer.
 | 
			
		||||
var Metal = internal.Register(MustNewLazyLexer(
 | 
			
		||||
	&Config{
 | 
			
		||||
		Name:      "Metal",
 | 
			
		||||
		Aliases:   []string{"metal"},
 | 
			
		||||
		Filenames: []string{"*.metal"},
 | 
			
		||||
		MimeTypes: []string{"text/x-metal"},
 | 
			
		||||
		EnsureNL:  true,
 | 
			
		||||
	},
 | 
			
		||||
	metalRules,
 | 
			
		||||
))
 | 
			
		||||
 | 
			
		||||
func metalRules() Rules {
 | 
			
		||||
	return Rules{
 | 
			
		||||
		"statements": {
 | 
			
		||||
			{Words(``, `\b`, `namespace`, `operator`, `template`, `this`, `using`, `constexpr`), Keyword, nil},
 | 
			
		||||
			{`(enum)\b(\s+)(class)\b(\s*)`, ByGroups(Keyword, Text, Keyword, Text), Push("classname")},
 | 
			
		||||
			{`(class|struct|enum|union)\b(\s*)`, ByGroups(Keyword, Text), Push("classname")},
 | 
			
		||||
			{`\[\[.+\]\]`, NameAttribute, nil},
 | 
			
		||||
			{`(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*`, LiteralNumberFloat, nil},
 | 
			
		||||
			{`(\d+\.\d*|\.\d+|\d+[fF])[fF]?`, LiteralNumberFloat, nil},
 | 
			
		||||
			{`0[xX]([0-9A-Fa-f]('?[0-9A-Fa-f]+)*)[LlUu]*`, LiteralNumberHex, nil},
 | 
			
		||||
			{`0('?[0-7]+)+[LlUu]*`, LiteralNumberOct, nil},
 | 
			
		||||
			{`0[Bb][01]('?[01]+)*[LlUu]*`, LiteralNumberBin, nil},
 | 
			
		||||
			{`[0-9]('?[0-9]+)*[LlUu]*`, LiteralNumberInteger, nil},
 | 
			
		||||
			{`\*/`, Error, nil},
 | 
			
		||||
			{`[~!%^&*+=|?:<>/-]`, Operator, nil},
 | 
			
		||||
			{`[()\[\],.]`, Punctuation, nil},
 | 
			
		||||
			{Words(``, `\b`, `break`, `case`, `const`, `continue`, `do`, `else`, `enum`, `extern`, `for`, `if`, `return`, `sizeof`, `static`, `struct`, `switch`, `typedef`, `union`, `while`), Keyword, nil},
 | 
			
		||||
			{`(bool|float|half|long|ptrdiff_t|size_t|unsigned|u?char|u?int((8|16|32|64)_t)?|u?short)\b`, KeywordType, nil},
 | 
			
		||||
			{`(bool|float|half|u?(char|int|long|short))(2|3|4)\b`, KeywordType, nil},
 | 
			
		||||
			{`packed_(float|half|long|u?(char|int|short))(2|3|4)\b`, KeywordType, nil},
 | 
			
		||||
			{`(float|half)(2|3|4)x(2|3|4)\b`, KeywordType, nil},
 | 
			
		||||
			{`atomic_u?int\b`, KeywordType, nil},
 | 
			
		||||
			{`(rg?(8|16)(u|s)norm|rgba(8|16)(u|s)norm|srgba8unorm|rgb10a2|rg11b10f|rgb9e5)\b`, KeywordType, nil},
 | 
			
		||||
			{`(array|depth(2d|cube)(_array)?|depth2d_ms(_array)?|sampler|texture_buffer|texture(1|2)d(_array)?|texture2d_ms(_array)?|texture3d|texturecube(_array)?|uniform|visible_function_table)\b`, KeywordType, nil},
 | 
			
		||||
			{`(true|false|NULL)\b`, NameBuiltin, nil},
 | 
			
		||||
			{Words(``, `\b`, `device`, `constant`, `ray_data`, `thread`, `threadgroup`, `threadgroup_imageblock`), Keyword, nil},
 | 
			
		||||
			{`([a-zA-Z_]\w*)(\s*)(:)(?!:)`, ByGroups(NameLabel, Text, Punctuation), nil},
 | 
			
		||||
			{`[a-zA-Z_]\w*`, Name, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"root": {
 | 
			
		||||
			Include("whitespace"),
 | 
			
		||||
			{`(fragment|kernel|vertex)?((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)`, ByGroups(Keyword, UsingSelf("root"), NameFunction, UsingSelf("root"), UsingSelf("root"), Punctuation), Push("function")},
 | 
			
		||||
			{`(fragment|kernel|vertex)?((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)`, ByGroups(Keyword, UsingSelf("root"), NameFunction, UsingSelf("root"), UsingSelf("root"), Punctuation), nil},
 | 
			
		||||
			Default(Push("statement")),
 | 
			
		||||
		},
 | 
			
		||||
		"classname": {
 | 
			
		||||
			{`(\[\[.+\]\])(\s*)`, ByGroups(NameAttribute, Text), nil},
 | 
			
		||||
			{`[a-zA-Z_]\w*`, NameClass, Pop(1)},
 | 
			
		||||
			{`\s*(?=[>{])`, Text, Pop(1)},
 | 
			
		||||
		},
 | 
			
		||||
		"whitespace": {
 | 
			
		||||
			{`^#if\s+0`, CommentPreproc, Push("if0")},
 | 
			
		||||
			{`^#`, CommentPreproc, Push("macro")},
 | 
			
		||||
			{`^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)`, ByGroups(UsingSelf("root"), CommentPreproc), Push("if0")},
 | 
			
		||||
			{`^(\s*(?:/[*].*?[*]/\s*)?)(#)`, ByGroups(UsingSelf("root"), CommentPreproc), Push("macro")},
 | 
			
		||||
			{`\n`, Text, nil},
 | 
			
		||||
			{`\s+`, Text, nil},
 | 
			
		||||
			{`\\\n`, Text, nil},
 | 
			
		||||
			{`//(\n|[\w\W]*?[^\\]\n)`, CommentSingle, nil},
 | 
			
		||||
			{`/(\\\n)?[*][\w\W]*?[*](\\\n)?/`, CommentMultiline, nil},
 | 
			
		||||
			{`/(\\\n)?[*][\w\W]*`, CommentMultiline, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"statement": {
 | 
			
		||||
			Include("whitespace"),
 | 
			
		||||
			Include("statements"),
 | 
			
		||||
			{`[{]`, Punctuation, Push("root")},
 | 
			
		||||
			{`[;}]`, Punctuation, Pop(1)},
 | 
			
		||||
		},
 | 
			
		||||
		"function": {
 | 
			
		||||
			Include("whitespace"),
 | 
			
		||||
			Include("statements"),
 | 
			
		||||
			{`;`, Punctuation, nil},
 | 
			
		||||
			{`\{`, Punctuation, Push()},
 | 
			
		||||
			{`\}`, Punctuation, Pop(1)},
 | 
			
		||||
		},
 | 
			
		||||
		"macro": {
 | 
			
		||||
			{`(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)`, ByGroups(CommentPreproc, Text, CommentPreprocFile), nil},
 | 
			
		||||
			{`[^/\n]+`, CommentPreproc, nil},
 | 
			
		||||
			{`/[*](.|\n)*?[*]/`, CommentMultiline, nil},
 | 
			
		||||
			{`//.*?\n`, CommentSingle, Pop(1)},
 | 
			
		||||
			{`/`, CommentPreproc, nil},
 | 
			
		||||
			{`(?<=\\)\n`, CommentPreproc, nil},
 | 
			
		||||
			{`\n`, CommentPreproc, Pop(1)},
 | 
			
		||||
		},
 | 
			
		||||
		"if0": {
 | 
			
		||||
			{`^\s*#if.*?(?<!\\)\n`, CommentPreproc, Push()},
 | 
			
		||||
			{`^\s*#el(?:se|if).*\n`, CommentPreproc, Pop(1)},
 | 
			
		||||
			{`^\s*#endif.*?(?<!\\)\n`, CommentPreproc, Pop(1)},
 | 
			
		||||
			{`.*?\n`, Comment, nil},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/github.com/alecthomas/chroma/lexers/m/myghty.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/alecthomas/chroma/lexers/m/myghty.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -22,13 +22,13 @@ func myghtyRules() Rules {
 | 
			
		|||
		"root": {
 | 
			
		||||
			{`\s+`, Text, nil},
 | 
			
		||||
			{`(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, Text, NameFunction, NameTag, UsingSelf("root"), NameTag), nil},
 | 
			
		||||
			{`(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, NameFunction, NameTag, Using(Python), NameTag), nil},
 | 
			
		||||
			{`(<&[^|])(.*?)(,.*?)?(&>)`, ByGroups(NameTag, NameFunction, Using(Python), NameTag), nil},
 | 
			
		||||
			{`(<&\|)(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using(Python), NameTag), nil},
 | 
			
		||||
			{`(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, NameFunction, NameTag, Using(Python2), NameTag), nil},
 | 
			
		||||
			{`(<&[^|])(.*?)(,.*?)?(&>)`, ByGroups(NameTag, NameFunction, Using(Python2), NameTag), nil},
 | 
			
		||||
			{`(<&\|)(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using(Python2), NameTag), nil},
 | 
			
		||||
			{`</&>`, NameTag, nil},
 | 
			
		||||
			{`(<%!?)(.*?)(%>)(?s)`, ByGroups(NameTag, Using(Python), NameTag), nil},
 | 
			
		||||
			{`(<%!?)(.*?)(%>)(?s)`, ByGroups(NameTag, Using(Python2), NameTag), nil},
 | 
			
		||||
			{`(?<=^)#[^\n]*(\n|\Z)`, Comment, nil},
 | 
			
		||||
			{`(?<=^)(%)([^\n]*)(\n|\Z)`, ByGroups(NameTag, Using(Python), Other), nil},
 | 
			
		||||
			{`(?<=^)(%)([^\n]*)(\n|\Z)`, ByGroups(NameTag, Using(Python2), Other), nil},
 | 
			
		||||
			{`(?sx)
 | 
			
		||||
                 (.+?)               # anything, followed by:
 | 
			
		||||
                 (?:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										27
									
								
								vendor/github.com/alecthomas/chroma/lexers/m/mysql.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/github.com/alecthomas/chroma/lexers/m/mysql.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,10 +1,17 @@
 | 
			
		|||
package m
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"regexp"
 | 
			
		||||
 | 
			
		||||
	. "github.com/alecthomas/chroma" // nolint
 | 
			
		||||
	"github.com/alecthomas/chroma/lexers/internal"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	mysqlAnalyserNameBetweenBacktickRe = regexp.MustCompile("`[a-zA-Z_]\\w*`")
 | 
			
		||||
	mysqlAnalyserNameBetweenBracketRe  = regexp.MustCompile(`\[[a-zA-Z_]\w*\]`)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// MySQL lexer.
 | 
			
		||||
var MySQL = internal.Register(MustNewLazyLexer(
 | 
			
		||||
	&Config{
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +23,25 @@ var MySQL = internal.Register(MustNewLazyLexer(
 | 
			
		|||
		CaseInsensitive: true,
 | 
			
		||||
	},
 | 
			
		||||
	mySQLRules,
 | 
			
		||||
))
 | 
			
		||||
).SetAnalyser(func(text string) float32 {
 | 
			
		||||
	nameBetweenBacktickCount := len(mysqlAnalyserNameBetweenBacktickRe.FindAllString(text, -1))
 | 
			
		||||
	nameBetweenBracketCount := len(mysqlAnalyserNameBetweenBracketRe.FindAllString(text, -1))
 | 
			
		||||
 | 
			
		||||
	var result float32
 | 
			
		||||
 | 
			
		||||
	// Same logic as above in the TSQL analysis.
 | 
			
		||||
	dialectNameCount := nameBetweenBacktickCount + nameBetweenBracketCount
 | 
			
		||||
	if dialectNameCount >= 1 && nameBetweenBacktickCount >= (2*nameBetweenBracketCount) {
 | 
			
		||||
		// Found at least twice as many `name` as [name].
 | 
			
		||||
		result += 0.5
 | 
			
		||||
	} else if nameBetweenBacktickCount > nameBetweenBracketCount {
 | 
			
		||||
		result += 0.2
 | 
			
		||||
	} else if nameBetweenBacktickCount > 0 {
 | 
			
		||||
		result += 0.1
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return result
 | 
			
		||||
}))
 | 
			
		||||
 | 
			
		||||
func mySQLRules() Rules {
 | 
			
		||||
	return Rules{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										38
									
								
								vendor/github.com/alecthomas/chroma/lexers/p/powerquery.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								vendor/github.com/alecthomas/chroma/lexers/p/powerquery.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
package p
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	. "github.com/alecthomas/chroma" // nolint
 | 
			
		||||
	"github.com/alecthomas/chroma/lexers/internal"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// PowerQuery lexer.
 | 
			
		||||
var PowerQuery = internal.Register(MustNewLazyLexer(
 | 
			
		||||
	&Config{
 | 
			
		||||
		Name:            "PowerQuery",
 | 
			
		||||
		Aliases:         []string{"powerquery", "pq"},
 | 
			
		||||
		Filenames:       []string{"*.pq"},
 | 
			
		||||
		MimeTypes:       []string{"text/x-powerquery"},
 | 
			
		||||
		DotAll:          true,
 | 
			
		||||
		CaseInsensitive: true,
 | 
			
		||||
	},
 | 
			
		||||
	powerqueryRules,
 | 
			
		||||
))
 | 
			
		||||
 | 
			
		||||
func powerqueryRules() Rules {
 | 
			
		||||
	return Rules{
 | 
			
		||||
		"root": {
 | 
			
		||||
			{`\s+`, Text, nil},
 | 
			
		||||
			{`//.*?\n`, CommentSingle, nil},
 | 
			
		||||
			{`/\*.*?\*/`, CommentMultiline, nil},
 | 
			
		||||
			{`"(\\\\|\\"|[^"])*"`, LiteralString, nil},
 | 
			
		||||
			{`(and|as|each|else|error|false|if|in|is|let|meta|not|null|or|otherwise|section|shared|then|true|try|type)\b`, Keyword, nil},
 | 
			
		||||
			{`(#binary|#date|#datetime|#datetimezone|#duration|#infinity|#nan|#sections|#shared|#table|#time)\b`, KeywordType, nil},
 | 
			
		||||
			{`(([a-zA-Z]|_)[\w|._]*|#"[^"]+")`, Name, nil},
 | 
			
		||||
			{`0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?`, LiteralNumberHex, nil},
 | 
			
		||||
			{`([0-9]+\.[0-9]+|\.[0-9]+)([eE][0-9]+)?`, LiteralNumberFloat, nil},
 | 
			
		||||
			{`[0-9]+`, LiteralNumberInteger, nil},
 | 
			
		||||
			{`[\(\)\[\]\{\}]`, Punctuation, nil},
 | 
			
		||||
			{`\.\.|\.\.\.|=>|<=|>=|<>|[@!?,;=<>\+\-\*\/&]`, Operator, nil},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										170
									
								
								vendor/github.com/alecthomas/chroma/lexers/p/python.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										170
									
								
								vendor/github.com/alecthomas/chroma/lexers/p/python.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										141
									
								
								vendor/github.com/alecthomas/chroma/lexers/p/python2.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								vendor/github.com/alecthomas/chroma/lexers/p/python2.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,141 @@
 | 
			
		|||
package p
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	. "github.com/alecthomas/chroma" // nolint
 | 
			
		||||
	"github.com/alecthomas/chroma/lexers/internal"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Python2 lexer.
 | 
			
		||||
var Python2 = internal.Register(MustNewLazyLexer(
 | 
			
		||||
	&Config{
 | 
			
		||||
		Name:      "Python 2",
 | 
			
		||||
		Aliases:   []string{"python2", "py2"},
 | 
			
		||||
		Filenames: []string{},
 | 
			
		||||
		MimeTypes: []string{"text/x-python2", "application/x-python2"},
 | 
			
		||||
	},
 | 
			
		||||
	python2Rules,
 | 
			
		||||
))
 | 
			
		||||
 | 
			
		||||
func python2Rules() Rules {
 | 
			
		||||
	return Rules{
 | 
			
		||||
		"root": {
 | 
			
		||||
			{`\n`, Text, nil},
 | 
			
		||||
			{`^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")`, ByGroups(Text, LiteralStringAffix, LiteralStringDoc), nil},
 | 
			
		||||
			{`^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')`, ByGroups(Text, LiteralStringAffix, LiteralStringDoc), nil},
 | 
			
		||||
			{`[^\S\n]+`, Text, nil},
 | 
			
		||||
			{`\A#!.+$`, CommentHashbang, nil},
 | 
			
		||||
			{`#.*$`, CommentSingle, nil},
 | 
			
		||||
			{`[]{}:(),;[]`, Punctuation, nil},
 | 
			
		||||
			{`\\\n`, Text, nil},
 | 
			
		||||
			{`\\`, Text, nil},
 | 
			
		||||
			{`(in|is|and|or|not)\b`, OperatorWord, nil},
 | 
			
		||||
			{`!=|==|<<|>>|[-~+/*%=<>&^|.]`, Operator, nil},
 | 
			
		||||
			Include("keywords"),
 | 
			
		||||
			{`(def)((?:\s|\\\s)+)`, ByGroups(Keyword, Text), Push("funcname")},
 | 
			
		||||
			{`(class)((?:\s|\\\s)+)`, ByGroups(Keyword, Text), Push("classname")},
 | 
			
		||||
			{`(from)((?:\s|\\\s)+)`, ByGroups(KeywordNamespace, Text), Push("fromimport")},
 | 
			
		||||
			{`(import)((?:\s|\\\s)+)`, ByGroups(KeywordNamespace, Text), Push("import")},
 | 
			
		||||
			Include("builtins"),
 | 
			
		||||
			Include("magicfuncs"),
 | 
			
		||||
			Include("magicvars"),
 | 
			
		||||
			Include("backtick"),
 | 
			
		||||
			{`([rR]|[uUbB][rR]|[rR][uUbB])(""")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Push("tdqs")},
 | 
			
		||||
			{`([rR]|[uUbB][rR]|[rR][uUbB])(''')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("tsqs")},
 | 
			
		||||
			{`([rR]|[uUbB][rR]|[rR][uUbB])(")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Push("dqs")},
 | 
			
		||||
			{`([rR]|[uUbB][rR]|[rR][uUbB])(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("sqs")},
 | 
			
		||||
			{`([uUbB]?)(""")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Combined("stringescape", "tdqs")},
 | 
			
		||||
			{`([uUbB]?)(''')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Combined("stringescape", "tsqs")},
 | 
			
		||||
			{`([uUbB]?)(")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Combined("stringescape", "dqs")},
 | 
			
		||||
			{`([uUbB]?)(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Combined("stringescape", "sqs")},
 | 
			
		||||
			Include("name"),
 | 
			
		||||
			Include("numbers"),
 | 
			
		||||
		},
 | 
			
		||||
		"keywords": {
 | 
			
		||||
			{Words(``, `\b`, `assert`, `break`, `continue`, `del`, `elif`, `else`, `except`, `exec`, `finally`, `for`, `global`, `if`, `lambda`, `pass`, `print`, `raise`, `return`, `try`, `while`, `yield`, `yield from`, `as`, `with`), Keyword, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"builtins": {
 | 
			
		||||
			{Words(`(?<!\.)`, `\b`, `__import__`, `abs`, `all`, `any`, `apply`, `basestring`, `bin`, `bool`, `buffer`, `bytearray`, `bytes`, `callable`, `chr`, `classmethod`, `cmp`, `coerce`, `compile`, `complex`, `delattr`, `dict`, `dir`, `divmod`, `enumerate`, `eval`, `execfile`, `exit`, `file`, `filter`, `float`, `frozenset`, `getattr`, `globals`, `hasattr`, `hash`, `hex`, `id`, `input`, `int`, `intern`, `isinstance`, `issubclass`, `iter`, `len`, `list`, `locals`, `long`, `map`, `max`, `min`, `next`, `object`, `oct`, `open`, `ord`, `pow`, `property`, `range`, `raw_input`, `reduce`, `reload`, `repr`, `reversed`, `round`, `set`, `setattr`, `slice`, `sorted`, `staticmethod`, `str`, `sum`, `super`, `tuple`, `type`, `unichr`, `unicode`, `vars`, `xrange`, `zip`), NameBuiltin, nil},
 | 
			
		||||
			{`(?<!\.)(self|None|Ellipsis|NotImplemented|False|True|cls)\b`, NameBuiltinPseudo, nil},
 | 
			
		||||
			{Words(`(?<!\.)`, `\b`, `ArithmeticError`, `AssertionError`, `AttributeError`, `BaseException`, `DeprecationWarning`, `EOFError`, `EnvironmentError`, `Exception`, `FloatingPointError`, `FutureWarning`, `GeneratorExit`, `IOError`, `ImportError`, `ImportWarning`, `IndentationError`, `IndexError`, `KeyError`, `KeyboardInterrupt`, `LookupError`, `MemoryError`, `NameError`, `NotImplementedError`, `OSError`, `OverflowError`, `OverflowWarning`, `PendingDeprecationWarning`, `ReferenceError`, `RuntimeError`, `RuntimeWarning`, `StandardError`, `StopIteration`, `SyntaxError`, `SyntaxWarning`, `SystemError`, `SystemExit`, `TabError`, `TypeError`, `UnboundLocalError`, `UnicodeDecodeError`, `UnicodeEncodeError`, `UnicodeError`, `UnicodeTranslateError`, `UnicodeWarning`, `UserWarning`, `ValueError`, `VMSError`, `Warning`, `WindowsError`, `ZeroDivisionError`), NameException, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"magicfuncs": {
 | 
			
		||||
			{Words(``, `\b`, `__abs__`, `__add__`, `__and__`, `__call__`, `__cmp__`, `__coerce__`, `__complex__`, `__contains__`, `__del__`, `__delattr__`, `__delete__`, `__delitem__`, `__delslice__`, `__div__`, `__divmod__`, `__enter__`, `__eq__`, `__exit__`, `__float__`, `__floordiv__`, `__ge__`, `__get__`, `__getattr__`, `__getattribute__`, `__getitem__`, `__getslice__`, `__gt__`, `__hash__`, `__hex__`, `__iadd__`, `__iand__`, `__idiv__`, `__ifloordiv__`, `__ilshift__`, `__imod__`, `__imul__`, `__index__`, `__init__`, `__instancecheck__`, `__int__`, `__invert__`, `__iop__`, `__ior__`, `__ipow__`, `__irshift__`, `__isub__`, `__iter__`, `__itruediv__`, `__ixor__`, `__le__`, `__len__`, `__long__`, `__lshift__`, `__lt__`, `__missing__`, `__mod__`, `__mul__`, `__ne__`, `__neg__`, `__new__`, `__nonzero__`, `__oct__`, `__op__`, `__or__`, `__pos__`, `__pow__`, `__radd__`, `__rand__`, `__rcmp__`, `__rdiv__`, `__rdivmod__`, `__repr__`, `__reversed__`, `__rfloordiv__`, `__rlshift__`, `__rmod__`, `__rmul__`, `__rop__`, `__ror__`, `__rpow__`, `__rrshift__`, `__rshift__`, `__rsub__`, `__rtruediv__`, `__rxor__`, `__set__`, `__setattr__`, `__setitem__`, `__setslice__`, `__str__`, `__sub__`, `__subclasscheck__`, `__truediv__`, `__unicode__`, `__xor__`), NameFunctionMagic, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"magicvars": {
 | 
			
		||||
			{Words(``, `\b`, `__bases__`, `__class__`, `__closure__`, `__code__`, `__defaults__`, `__dict__`, `__doc__`, `__file__`, `__func__`, `__globals__`, `__metaclass__`, `__module__`, `__mro__`, `__name__`, `__self__`, `__slots__`, `__weakref__`), NameVariableMagic, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"numbers": {
 | 
			
		||||
			{`(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?`, LiteralNumberFloat, nil},
 | 
			
		||||
			{`\d+[eE][+-]?[0-9]+j?`, LiteralNumberFloat, nil},
 | 
			
		||||
			{`0[0-7]+j?`, LiteralNumberOct, nil},
 | 
			
		||||
			{`0[bB][01]+`, LiteralNumberBin, nil},
 | 
			
		||||
			{`0[xX][a-fA-F0-9]+`, LiteralNumberHex, nil},
 | 
			
		||||
			{`\d+L`, LiteralNumberIntegerLong, nil},
 | 
			
		||||
			{`\d+j?`, LiteralNumberInteger, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"backtick": {
 | 
			
		||||
			{"`.*?`", LiteralStringBacktick, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"name": {
 | 
			
		||||
			{`@[\w.]+`, NameDecorator, nil},
 | 
			
		||||
			{`[a-zA-Z_]\w*`, Name, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"funcname": {
 | 
			
		||||
			Include("magicfuncs"),
 | 
			
		||||
			{`[a-zA-Z_]\w*`, NameFunction, Pop(1)},
 | 
			
		||||
			Default(Pop(1)),
 | 
			
		||||
		},
 | 
			
		||||
		"classname": {
 | 
			
		||||
			{`[a-zA-Z_]\w*`, NameClass, Pop(1)},
 | 
			
		||||
		},
 | 
			
		||||
		"import": {
 | 
			
		||||
			{`(?:[ \t]|\\\n)+`, Text, nil},
 | 
			
		||||
			{`as\b`, KeywordNamespace, nil},
 | 
			
		||||
			{`,`, Operator, nil},
 | 
			
		||||
			{`[a-zA-Z_][\w.]*`, NameNamespace, nil},
 | 
			
		||||
			Default(Pop(1)),
 | 
			
		||||
		},
 | 
			
		||||
		"fromimport": {
 | 
			
		||||
			{`(?:[ \t]|\\\n)+`, Text, nil},
 | 
			
		||||
			{`import\b`, KeywordNamespace, Pop(1)},
 | 
			
		||||
			{`None\b`, NameBuiltinPseudo, Pop(1)},
 | 
			
		||||
			{`[a-zA-Z_.][\w.]*`, NameNamespace, nil},
 | 
			
		||||
			Default(Pop(1)),
 | 
			
		||||
		},
 | 
			
		||||
		"stringescape": {
 | 
			
		||||
			{`\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})`, LiteralStringEscape, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"strings-single": {
 | 
			
		||||
			{`%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]`, LiteralStringInterpol, nil},
 | 
			
		||||
			{`[^\\\'"%\n]+`, LiteralStringSingle, nil},
 | 
			
		||||
			{`[\'"\\]`, LiteralStringSingle, nil},
 | 
			
		||||
			{`%`, LiteralStringSingle, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"strings-double": {
 | 
			
		||||
			{`%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]`, LiteralStringInterpol, nil},
 | 
			
		||||
			{`[^\\\'"%\n]+`, LiteralStringDouble, nil},
 | 
			
		||||
			{`[\'"\\]`, LiteralStringDouble, nil},
 | 
			
		||||
			{`%`, LiteralStringDouble, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"dqs": {
 | 
			
		||||
			{`"`, LiteralStringDouble, Pop(1)},
 | 
			
		||||
			{`\\\\|\\"|\\\n`, LiteralStringEscape, nil},
 | 
			
		||||
			Include("strings-double"),
 | 
			
		||||
		},
 | 
			
		||||
		"sqs": {
 | 
			
		||||
			{`'`, LiteralStringSingle, Pop(1)},
 | 
			
		||||
			{`\\\\|\\'|\\\n`, LiteralStringEscape, nil},
 | 
			
		||||
			Include("strings-single"),
 | 
			
		||||
		},
 | 
			
		||||
		"tdqs": {
 | 
			
		||||
			{`"""`, LiteralStringDouble, Pop(1)},
 | 
			
		||||
			Include("strings-double"),
 | 
			
		||||
			{`\n`, LiteralStringDouble, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"tsqs": {
 | 
			
		||||
			{`'''`, LiteralStringSingle, Pop(1)},
 | 
			
		||||
			Include("strings-single"),
 | 
			
		||||
			{`\n`, LiteralStringSingle, nil},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										141
									
								
								vendor/github.com/alecthomas/chroma/lexers/p/python3.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										141
									
								
								vendor/github.com/alecthomas/chroma/lexers/p/python3.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1496
									
								
								vendor/github.com/alecthomas/chroma/lexers/r/raku.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1496
									
								
								vendor/github.com/alecthomas/chroma/lexers/r/raku.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										4
									
								
								vendor/github.com/alecthomas/chroma/lexers/r/rst.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/alecthomas/chroma/lexers/r/rst.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -63,7 +63,7 @@ func restructuredtextRules() Rules {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func rstCodeBlock(groups []string, lexer Lexer) Iterator {
 | 
			
		||||
func rstCodeBlock(groups []string, state *LexerState) Iterator {
 | 
			
		||||
	iterators := []Iterator{}
 | 
			
		||||
	tokens := []Token{
 | 
			
		||||
		{Punctuation, groups[1]},
 | 
			
		||||
| 
						 | 
				
			
			@ -75,7 +75,7 @@ func rstCodeBlock(groups []string, lexer Lexer) Iterator {
 | 
			
		|||
		{Text, groups[7]},
 | 
			
		||||
	}
 | 
			
		||||
	code := strings.Join(groups[8:], "")
 | 
			
		||||
	lexer = internal.Get(groups[6])
 | 
			
		||||
	lexer := internal.Get(groups[6])
 | 
			
		||||
	if lexer == nil {
 | 
			
		||||
		tokens = append(tokens, Token{String, code})
 | 
			
		||||
		iterators = append(iterators, Literator(tokens...))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										47
									
								
								vendor/github.com/alecthomas/chroma/lexers/s/scss.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								vendor/github.com/alecthomas/chroma/lexers/s/scss.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										32
									
								
								vendor/github.com/alecthomas/chroma/lexers/s/solidity.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								vendor/github.com/alecthomas/chroma/lexers/s/solidity.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -39,17 +39,16 @@ func solidityRules() Rules {
 | 
			
		|||
			{`/[*][\w\W]*`, CommentMultiline, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"keywords-other": {
 | 
			
		||||
			{Words(``, `\b`, `for`, `in`, `while`, `do`, `break`, `return`, `returns`, `continue`, `if`, `else`, `throw`, `new`, `delete`), Keyword, nil},
 | 
			
		||||
			{Words(``, `\b`, `for`, `in`, `while`, `do`, `break`, `return`, `returns`, `continue`, `if`, `else`, `try`, `catch`, `throw`, `_`, `new`, `delete`, `is`, `as`, `from`, `memory`, `storage`), Keyword, nil},
 | 
			
		||||
			{`assembly\b`, Keyword, Push("assembly")},
 | 
			
		||||
			{Words(``, `\b`, `contract`, `interface`, `enum`, `event`, `function`, `library`, `mapping`, `modifier`, `struct`, `var`), KeywordDeclaration, nil},
 | 
			
		||||
			{`(contract|interface|enum|event|struct)(\s+)([a-zA-Z_]\w*)`, ByGroups(KeywordDeclaration, Text, NameClass), nil},
 | 
			
		||||
			{`(function|modifier)(\s+)([a-zA-Z_]\w*)`, ByGroups(KeywordDeclaration, Text, NameFunction), nil},
 | 
			
		||||
			{Words(``, `\b`, `contract`, `interface`, `enum`, `event`, `constructor`, `function`, `library`, `mapping`, `modifier`, `struct`, `var`), KeywordDeclaration, nil},
 | 
			
		||||
			{Words(``, `\b`, `abstract`, `external`, `internal`, `private`, `public`), Keyword, nil},
 | 
			
		||||
			{Words(``, `\b`, `anonymous`, `constant`, `immutable`, `indexed`, `override`, `payable`, `pure`, `view`, `virtual`), Keyword, nil},
 | 
			
		||||
			{`(import|using)\b`, KeywordNamespace, nil},
 | 
			
		||||
			{`pragma (solidity|experimental)\b`, KeywordReserved, nil},
 | 
			
		||||
			{`(_|as|constant|default|from|is)\b`, KeywordReserved, nil},
 | 
			
		||||
			{`payable\b`, KeywordReserved, nil},
 | 
			
		||||
			{`(memory|storage)\b`, KeywordReserved, nil},
 | 
			
		||||
			{`(external|internal|private|public)\b`, KeywordReserved, nil},
 | 
			
		||||
			{`(anonymous|indexed)\b`, KeywordReserved, nil},
 | 
			
		||||
			{`(abstract|pure|static|view)\b`, KeywordReserved, nil},
 | 
			
		||||
			{`pragma (solidity|experimental)\b`, Keyword, nil},
 | 
			
		||||
			{Words(``, `\b`, `after`, `alias`, `apply`, `auto`, `case`, `copyof`, `default`, `define`, `final`, `implements`, `inline`, `let`, `macro`, `match`, `mutable`, `null`, `of`, `partial`, `promise`, `reference`, `relocatable`, `sealed`, `sizeof`, `static`, `supports`, `switch`, `typedef`, `typeof`, `unchecked`), KeywordReserved, nil},
 | 
			
		||||
			{`(true|false)\b`, KeywordConstant, nil},
 | 
			
		||||
			{`(wei|finney|szabo|ether)\b`, KeywordConstant, nil},
 | 
			
		||||
			{`(seconds|minutes|hours|days|weeks|years)\b`, KeywordConstant, nil},
 | 
			
		||||
| 
						 | 
				
			
			@ -99,15 +98,20 @@ func solidityRules() Rules {
 | 
			
		|||
			{`\+\+|--|\*\*|\?|:|~|&&|\|\||=>|==?|!=?|(<<|>>>?|[-<>+*%&|^/])=?`, Operator, nil},
 | 
			
		||||
			{`[{(\[;,]`, Punctuation, nil},
 | 
			
		||||
			{`[})\].]`, Punctuation, nil},
 | 
			
		||||
			{`(block|msg|now|this|super|tx)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(sender|origin)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(gas|value)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(abi|block|msg|tx)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(?!abi\.)(decode|encode|encodePacked|encodeWithSelector|encodeWithSignature|encodeWithSelector)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(?!block\.)(chainid|coinbase|difficulty|gaslimit|number|timestamp)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(?!msg\.)(data|gas|sender|value)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(?!tx\.)(gasprice|origin)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(type)(\()([a-zA-Z_]\w*)(\))`, ByGroups(NameBuiltin, Punctuation, NameClass, Punctuation), nil},
 | 
			
		||||
			{`(?!type\([a-zA-Z_]\w*\)\.)(creationCode|interfaceId|max|min|name|runtimeCode)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(now|this|super|gasleft)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(selfdestruct|suicide)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(balance|send|transfer)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(?!0x[0-9a-fA-F]+\.)(balance|code|codehash|send|transfer)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(assert|revert|require)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(call|callcode|delegatecall)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`selector\b`, NameBuiltin, nil},
 | 
			
		||||
			{`(addmod|ecrecover|keccak256|mulmod|ripemd160|sha256|sha3)\b`, NameFunction, nil},
 | 
			
		||||
			{`(addmod|blockhash|ecrecover|keccak256|mulmod|ripemd160|sha256|sha3)\b`, NameBuiltin, nil},
 | 
			
		||||
			{`[a-zA-Z_]\w*`, Name, nil},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										73
									
								
								vendor/github.com/alecthomas/chroma/lexers/s/svelte.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								vendor/github.com/alecthomas/chroma/lexers/s/svelte.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,73 @@
 | 
			
		|||
package s
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	. "github.com/alecthomas/chroma" // nolint
 | 
			
		||||
	"github.com/alecthomas/chroma/lexers/h"
 | 
			
		||||
	"github.com/alecthomas/chroma/lexers/internal"
 | 
			
		||||
	"github.com/alecthomas/chroma/lexers/t"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Svelte lexer.
 | 
			
		||||
var Svelte = internal.Register(DelegatingLexer(h.HTML, MustNewLazyLexer(
 | 
			
		||||
	&Config{
 | 
			
		||||
		Name:      "Svelte",
 | 
			
		||||
		Aliases:   []string{"svelte"},
 | 
			
		||||
		Filenames: []string{"*.svelte"},
 | 
			
		||||
		MimeTypes: []string{"application/x-svelte"},
 | 
			
		||||
		DotAll:    true,
 | 
			
		||||
	},
 | 
			
		||||
	svelteRules,
 | 
			
		||||
)))
 | 
			
		||||
 | 
			
		||||
func svelteRules() Rules {
 | 
			
		||||
	return Rules{
 | 
			
		||||
		"root": {
 | 
			
		||||
			// Let HTML handle the comments, including comments containing script and style tags
 | 
			
		||||
			{`<!--`, Other, Push("comment")},
 | 
			
		||||
			{
 | 
			
		||||
				// Highlight script and style tags based on lang attribute
 | 
			
		||||
				// and allow attributes besides lang
 | 
			
		||||
				`(<\s*(?:script|style).*?lang\s*=\s*['"])` +
 | 
			
		||||
					`(.+?)(['"].*?>)` +
 | 
			
		||||
					`(.+?)` +
 | 
			
		||||
					`(<\s*/\s*(?:script|style)\s*>)`,
 | 
			
		||||
				UsingByGroup(internal.Get, 2, 4, Other, Other, Other, Other, Other),
 | 
			
		||||
				nil,
 | 
			
		||||
			},
 | 
			
		||||
			{
 | 
			
		||||
				// Make sure `{` is not inside script or style tags
 | 
			
		||||
				`(?<!<\s*(?:script|style)(?:(?!(?:script|style)\s*>).)*?)` +
 | 
			
		||||
					`{` +
 | 
			
		||||
					`(?!(?:(?!<\s*(?:script|style)).)*?(?:script|style)\s*>)`,
 | 
			
		||||
				Punctuation,
 | 
			
		||||
				Push("templates"),
 | 
			
		||||
			},
 | 
			
		||||
			// on:submit|preventDefault
 | 
			
		||||
			{`(?<=\s+on:\w+(?:\|\w+)*)\|(?=\w+)`, Operator, nil},
 | 
			
		||||
			{`.+?`, Other, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"comment": {
 | 
			
		||||
			{`-->`, Other, Pop(1)},
 | 
			
		||||
			{`.+?`, Other, nil},
 | 
			
		||||
		},
 | 
			
		||||
		"templates": {
 | 
			
		||||
			{`}`, Punctuation, Pop(1)},
 | 
			
		||||
			// Let TypeScript handle strings and the curly braces inside them
 | 
			
		||||
			{`(?<!(?<!\\)\\)(['"` + "`])" + `.*?(?<!(?<!\\)\\)\1`, Using(t.TypeScript), nil},
 | 
			
		||||
			// If there is another opening curly brace push to templates again
 | 
			
		||||
			{"{", Punctuation, Push("templates")},
 | 
			
		||||
			{`@(debug|html)\b`, Keyword, nil},
 | 
			
		||||
			{
 | 
			
		||||
				`(#await)(\s+)(\w+)(\s+)(then|catch)(\s+)(\w+)`,
 | 
			
		||||
				ByGroups(Keyword, Text, Using(t.TypeScript), Text,
 | 
			
		||||
					Keyword, Text, Using(t.TypeScript),
 | 
			
		||||
				),
 | 
			
		||||
				nil,
 | 
			
		||||
			},
 | 
			
		||||
			{`(#|/)(await|each|if|key)\b`, Keyword, nil},
 | 
			
		||||
			{`(:else)(\s+)(if)?\b`, ByGroups(Keyword, Text, Keyword), nil},
 | 
			
		||||
			{`:(catch|then)\b`, Keyword, nil},
 | 
			
		||||
			{`[^{}]+`, Using(t.TypeScript), nil},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								vendor/github.com/alecthomas/chroma/lexers/s/systemd.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/alecthomas/chroma/lexers/s/systemd.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -7,9 +7,10 @@ import (
 | 
			
		|||
 | 
			
		||||
var SYSTEMD = internal.Register(MustNewLazyLexer(
 | 
			
		||||
	&Config{
 | 
			
		||||
		Name:      "SYSTEMD",
 | 
			
		||||
		Aliases:   []string{"systemd"},
 | 
			
		||||
		Filenames: []string{"*.service"},
 | 
			
		||||
		Name:    "SYSTEMD",
 | 
			
		||||
		Aliases: []string{"systemd"},
 | 
			
		||||
		// Suspects: man systemd.index | grep -E 'systemd\..*configuration'
 | 
			
		||||
		Filenames: []string{"*.automount", "*.device", "*.dnssd", "*.link", "*.mount", "*.netdev", "*.network", "*.path", "*.scope", "*.service", "*.slice", "*.socket", "*.swap", "*.target", "*.timer"},
 | 
			
		||||
		MimeTypes: []string{"text/plain"},
 | 
			
		||||
	},
 | 
			
		||||
	systemdRules,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/alecthomas/chroma/lexers/t/toml.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/alecthomas/chroma/lexers/t/toml.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -27,7 +27,7 @@ func tomlRules() Rules {
 | 
			
		|||
			{`"(\\\\|\\"|[^"])*"`, StringDouble, nil},
 | 
			
		||||
			{`'(\\\\|\\'|[^'])*'`, StringSingle, nil},
 | 
			
		||||
			{`[.,=\[\]{}]`, Punctuation, nil},
 | 
			
		||||
			{`[^\W\d]\w*`, NameOther, nil},
 | 
			
		||||
			{`[A-Za-z0-9_-]+`, NameOther, nil},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										3
									
								
								vendor/github.com/alecthomas/chroma/pygments-lexers.txt
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/alecthomas/chroma/pygments-lexers.txt
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -2,9 +2,6 @@ Generated with:
 | 
			
		|||
 | 
			
		||||
  g 'class.*RegexLexer' | pawk --strict -F: '"pygments.lexers.%s.%s" % (f[0].split(".")[0], f[2].split()[1].split("(")[0])' > lexers.txt
 | 
			
		||||
 | 
			
		||||
perl6:
 | 
			
		||||
  Requires a bunch of helpers that I do not have the time to convert.
 | 
			
		||||
 | 
			
		||||
kotlin:
 | 
			
		||||
  invalid unicode escape sequences
 | 
			
		||||
  FIXED: Have to disable wide Unicode characters in unistring.py
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										95
									
								
								vendor/github.com/alecthomas/chroma/regexp.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										95
									
								
								vendor/github.com/alecthomas/chroma/regexp.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -4,6 +4,7 @@ import (
 | 
			
		|||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"regexp"
 | 
			
		||||
	"sort"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"sync"
 | 
			
		||||
	"time"
 | 
			
		||||
| 
						 | 
				
			
			@ -22,25 +23,57 @@ type Rule struct {
 | 
			
		|||
// An Emitter takes group matches and returns tokens.
 | 
			
		||||
type Emitter interface {
 | 
			
		||||
	// Emit tokens for the given regex groups.
 | 
			
		||||
	Emit(groups []string, lexer Lexer) Iterator
 | 
			
		||||
	Emit(groups []string, state *LexerState) Iterator
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// EmitterFunc is a function that is an Emitter.
 | 
			
		||||
type EmitterFunc func(groups []string, lexer Lexer) Iterator
 | 
			
		||||
type EmitterFunc func(groups []string, state *LexerState) Iterator
 | 
			
		||||
 | 
			
		||||
// Emit tokens for groups.
 | 
			
		||||
func (e EmitterFunc) Emit(groups []string, lexer Lexer) Iterator { return e(groups, lexer) }
 | 
			
		||||
func (e EmitterFunc) Emit(groups []string, state *LexerState) Iterator {
 | 
			
		||||
	return e(groups, state)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ByGroups emits a token for each matching group in the rule's regex.
 | 
			
		||||
func ByGroups(emitters ...Emitter) Emitter {
 | 
			
		||||
	return EmitterFunc(func(groups []string, lexer Lexer) Iterator {
 | 
			
		||||
	return EmitterFunc(func(groups []string, state *LexerState) Iterator {
 | 
			
		||||
		iterators := make([]Iterator, 0, len(groups)-1)
 | 
			
		||||
		if len(emitters) != len(groups)-1 {
 | 
			
		||||
			iterators = append(iterators, Error.Emit(groups, lexer))
 | 
			
		||||
			iterators = append(iterators, Error.Emit(groups, state))
 | 
			
		||||
			// panic(errors.Errorf("number of groups %q does not match number of emitters %v", groups, emitters))
 | 
			
		||||
		} else {
 | 
			
		||||
			for i, group := range groups[1:] {
 | 
			
		||||
				iterators = append(iterators, emitters[i].Emit([]string{group}, lexer))
 | 
			
		||||
				if emitters[i] != nil {
 | 
			
		||||
					iterators = append(iterators, emitters[i].Emit([]string{group}, state))
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return Concaterator(iterators...)
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ByGroupNames emits a token for each named matching group in the rule's regex.
 | 
			
		||||
func ByGroupNames(emitters map[string]Emitter) Emitter {
 | 
			
		||||
	return EmitterFunc(func(groups []string, state *LexerState) Iterator {
 | 
			
		||||
		iterators := make([]Iterator, 0, len(state.NamedGroups)-1)
 | 
			
		||||
		if len(state.NamedGroups)-1 == 0 {
 | 
			
		||||
			if emitter, ok := emitters[`0`]; ok {
 | 
			
		||||
				iterators = append(iterators, emitter.Emit(groups, state))
 | 
			
		||||
			} else {
 | 
			
		||||
				iterators = append(iterators, Error.Emit(groups, state))
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			ruleRegex := state.Rules[state.State][state.Rule].Regexp
 | 
			
		||||
			for i := 1; i < len(state.NamedGroups); i++ {
 | 
			
		||||
				groupName := ruleRegex.GroupNameFromNumber(i)
 | 
			
		||||
				group := state.NamedGroups[groupName]
 | 
			
		||||
				if emitter, ok := emitters[groupName]; ok {
 | 
			
		||||
					if emitter != nil {
 | 
			
		||||
						iterators = append(iterators, emitter.Emit([]string{group}, state))
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
					iterators = append(iterators, Error.Emit([]string{group}, state))
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return Concaterator(iterators...)
 | 
			
		||||
| 
						 | 
				
			
			@ -88,7 +121,7 @@ func ByGroups(emitters ...Emitter) Emitter {
 | 
			
		|||
// Note: panic's if the number emitters does not equal the number of matched
 | 
			
		||||
// groups in the regex.
 | 
			
		||||
func UsingByGroup(sublexerGetFunc func(string) Lexer, sublexerNameGroup, codeGroup int, emitters ...Emitter) Emitter {
 | 
			
		||||
	return EmitterFunc(func(groups []string, lexer Lexer) Iterator {
 | 
			
		||||
	return EmitterFunc(func(groups []string, state *LexerState) Iterator {
 | 
			
		||||
		// bounds check
 | 
			
		||||
		if len(emitters) != len(groups)-1 {
 | 
			
		||||
			panic("UsingByGroup expects number of emitters to be the same as len(groups)-1")
 | 
			
		||||
| 
						 | 
				
			
			@ -106,8 +139,8 @@ func UsingByGroup(sublexerGetFunc func(string) Lexer, sublexerNameGroup, codeGro
 | 
			
		|||
				if err != nil {
 | 
			
		||||
					panic(err)
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				iterators[i] = emitters[i].Emit([]string{group}, lexer)
 | 
			
		||||
			} else if emitters[i] != nil {
 | 
			
		||||
				iterators[i] = emitters[i].Emit([]string{group}, state)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -117,7 +150,7 @@ func UsingByGroup(sublexerGetFunc func(string) Lexer, sublexerNameGroup, codeGro
 | 
			
		|||
 | 
			
		||||
// Using returns an Emitter that uses a given Lexer for parsing and emitting.
 | 
			
		||||
func Using(lexer Lexer) Emitter {
 | 
			
		||||
	return EmitterFunc(func(groups []string, _ Lexer) Iterator {
 | 
			
		||||
	return EmitterFunc(func(groups []string, _ *LexerState) Iterator {
 | 
			
		||||
		it, err := lexer.Tokenise(&TokeniseOptions{State: "root", Nested: true}, groups[0])
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			panic(err)
 | 
			
		||||
| 
						 | 
				
			
			@ -127,9 +160,9 @@ func Using(lexer Lexer) Emitter {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// UsingSelf is like Using, but uses the current Lexer.
 | 
			
		||||
func UsingSelf(state string) Emitter {
 | 
			
		||||
	return EmitterFunc(func(groups []string, lexer Lexer) Iterator {
 | 
			
		||||
		it, err := lexer.Tokenise(&TokeniseOptions{State: state, Nested: true}, groups[0])
 | 
			
		||||
func UsingSelf(stateName string) Emitter {
 | 
			
		||||
	return EmitterFunc(func(groups []string, state *LexerState) Iterator {
 | 
			
		||||
		it, err := state.Lexer.Tokenise(&TokeniseOptions{State: stateName, Nested: true}, groups[0])
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			panic(err)
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -139,6 +172,9 @@ func UsingSelf(state string) Emitter {
 | 
			
		|||
 | 
			
		||||
// Words creates a regex that matches any of the given literal words.
 | 
			
		||||
func Words(prefix, suffix string, words ...string) string {
 | 
			
		||||
	sort.Slice(words, func(i, j int) bool {
 | 
			
		||||
		return len(words[j]) < len(words[i])
 | 
			
		||||
	})
 | 
			
		||||
	for i, word := range words {
 | 
			
		||||
		words[i] = regexp.QuoteMeta(word)
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -162,10 +198,10 @@ func Tokenise(lexer Lexer, options *TokeniseOptions, text string) ([]Token, erro
 | 
			
		|||
type Rules map[string][]Rule
 | 
			
		||||
 | 
			
		||||
// Rename clones rules then a rule.
 | 
			
		||||
func (r Rules) Rename(old, new string) Rules {
 | 
			
		||||
func (r Rules) Rename(oldRule, newRule string) Rules {
 | 
			
		||||
	r = r.Clone()
 | 
			
		||||
	r[new] = r[old]
 | 
			
		||||
	delete(r, old)
 | 
			
		||||
	r[newRule] = r[oldRule]
 | 
			
		||||
	delete(r, oldRule)
 | 
			
		||||
	return r
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -209,8 +245,10 @@ func NewLazyLexer(config *Config, rulesFunc func() Rules) (*RegexLexer, error) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// MustNewLexer creates a new Lexer or panics.
 | 
			
		||||
func MustNewLexer(config *Config, rules Rules) *RegexLexer {
 | 
			
		||||
	lexer, err := NewLexer(config, rules)
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: Use MustNewLazyLexer instead.
 | 
			
		||||
func MustNewLexer(config *Config, rules Rules) *RegexLexer { // nolint: forbidigo
 | 
			
		||||
	lexer, err := NewLexer(config, rules) // nolint: forbidigo
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -221,7 +259,9 @@ func MustNewLexer(config *Config, rules Rules) *RegexLexer {
 | 
			
		|||
//
 | 
			
		||||
// "rules" is a state machine transitition map. Each key is a state. Values are sets of rules
 | 
			
		||||
// that match input, optionally modify lexer state, and output tokens.
 | 
			
		||||
func NewLexer(config *Config, rules Rules) (*RegexLexer, error) {
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: Use NewLazyLexer instead.
 | 
			
		||||
func NewLexer(config *Config, rules Rules) (*RegexLexer, error) { // nolint: forbidigo
 | 
			
		||||
	return NewLazyLexer(config, func() Rules { return rules })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -254,6 +294,8 @@ type LexerState struct {
 | 
			
		|||
	Rule  int
 | 
			
		||||
	// Group matches.
 | 
			
		||||
	Groups []string
 | 
			
		||||
	// Named Group matches.
 | 
			
		||||
	NamedGroups map[string]string
 | 
			
		||||
	// Custum context for mutators.
 | 
			
		||||
	MutatorContext map[interface{}]interface{}
 | 
			
		||||
	iteratorStack  []Iterator
 | 
			
		||||
| 
						 | 
				
			
			@ -297,7 +339,7 @@ func (l *LexerState) Iterator() Token { // nolint: gocognit
 | 
			
		|||
		if !ok {
 | 
			
		||||
			panic("unknown state " + l.State)
 | 
			
		||||
		}
 | 
			
		||||
		ruleIndex, rule, groups := matchRules(l.Text, l.Pos, selectedRule)
 | 
			
		||||
		ruleIndex, rule, groups, namedGroups := matchRules(l.Text, l.Pos, selectedRule)
 | 
			
		||||
		// No match.
 | 
			
		||||
		if groups == nil {
 | 
			
		||||
			// From Pygments :\
 | 
			
		||||
| 
						 | 
				
			
			@ -315,6 +357,7 @@ func (l *LexerState) Iterator() Token { // nolint: gocognit
 | 
			
		|||
		}
 | 
			
		||||
		l.Rule = ruleIndex
 | 
			
		||||
		l.Groups = groups
 | 
			
		||||
		l.NamedGroups = namedGroups
 | 
			
		||||
		l.Pos += utf8.RuneCountInString(groups[0])
 | 
			
		||||
		if rule.Mutator != nil {
 | 
			
		||||
			if err := rule.Mutator.Mutate(l); err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -322,7 +365,7 @@ func (l *LexerState) Iterator() Token { // nolint: gocognit
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if rule.Type != nil {
 | 
			
		||||
			l.iteratorStack = append(l.iteratorStack, rule.Type.Emit(l.Groups, l.Lexer))
 | 
			
		||||
			l.iteratorStack = append(l.iteratorStack, rule.Type.Emit(l.Groups, l))
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	// Exhaust the IteratorStack, if any.
 | 
			
		||||
| 
						 | 
				
			
			@ -391,7 +434,7 @@ func (r *RegexLexer) maybeCompile() (err error) {
 | 
			
		|||
					pattern = "(?" + rule.flags + ")" + pattern
 | 
			
		||||
				}
 | 
			
		||||
				pattern = `\G` + pattern
 | 
			
		||||
				rule.Regexp, err = regexp2.Compile(pattern, 0)
 | 
			
		||||
				rule.Regexp, err = regexp2.Compile(pattern, regexp2.RE2)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					return fmt.Errorf("failed to compile rule %s.%d: %s", state, i, err)
 | 
			
		||||
				}
 | 
			
		||||
| 
						 | 
				
			
			@ -486,18 +529,20 @@ func (r *RegexLexer) Tokenise(options *TokeniseOptions, text string) (Iterator,
 | 
			
		|||
	return state.Iterator, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func matchRules(text []rune, pos int, rules []*CompiledRule) (int, *CompiledRule, []string) {
 | 
			
		||||
func matchRules(text []rune, pos int, rules []*CompiledRule) (int, *CompiledRule, []string, map[string]string) {
 | 
			
		||||
	for i, rule := range rules {
 | 
			
		||||
		match, err := rule.Regexp.FindRunesMatchStartingAt(text, pos)
 | 
			
		||||
		if match != nil && err == nil && match.Index == pos {
 | 
			
		||||
			groups := []string{}
 | 
			
		||||
			namedGroups := make(map[string]string)
 | 
			
		||||
			for _, g := range match.Groups() {
 | 
			
		||||
				namedGroups[g.Name] = g.String()
 | 
			
		||||
				groups = append(groups, g.String())
 | 
			
		||||
			}
 | 
			
		||||
			return i, rule, groups
 | 
			
		||||
			return i, rule, groups, namedGroups
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return 0, &CompiledRule{}, nil
 | 
			
		||||
	return 0, &CompiledRule{}, nil, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// replace \r and \r\n with \n
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/alecthomas/chroma/style.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/alecthomas/chroma/style.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -287,8 +287,10 @@ func (s *Style) synthesise(ttype TokenType) StyleEntry {
 | 
			
		|||
	// If we don't have line numbers, use the text colour but 20% brighter/darker
 | 
			
		||||
	case LineNumbers, LineNumbersTable:
 | 
			
		||||
		return text
 | 
			
		||||
 | 
			
		||||
	default:
 | 
			
		||||
		return StyleEntry{}
 | 
			
		||||
	}
 | 
			
		||||
	return StyleEntry{}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *Style) synthesisable(ttype TokenType) bool {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										58
									
								
								vendor/github.com/alecthomas/chroma/styles/doom-one.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								vendor/github.com/alecthomas/chroma/styles/doom-one.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,58 @@
 | 
			
		|||
package styles
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/alecthomas/chroma"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Doom One style. Inspired by Atom One and Doom Emacs's Atom One theme
 | 
			
		||||
var DoomOne = Register(chroma.MustNewStyle("doom-one", chroma.StyleEntries{
 | 
			
		||||
	chroma.Text:                 "#b0c4de",
 | 
			
		||||
	chroma.Error:                "#b0c4de",
 | 
			
		||||
	chroma.Comment:              "italic #8a93a5",
 | 
			
		||||
	chroma.CommentHashbang:      "bold",
 | 
			
		||||
	chroma.Keyword:              "#c678dd",
 | 
			
		||||
	chroma.KeywordType:          "#ef8383",
 | 
			
		||||
	chroma.KeywordConstant:      "bold #b756ff",
 | 
			
		||||
	chroma.Operator:             "#c7bf54",
 | 
			
		||||
	chroma.OperatorWord:         "bold #b756ff",
 | 
			
		||||
	chroma.Punctuation:          "#b0c4de",
 | 
			
		||||
	chroma.Name:                 "#c1abea",
 | 
			
		||||
	chroma.NameAttribute:        "#b3d23c",
 | 
			
		||||
	chroma.NameBuiltin:          "#ef8383",
 | 
			
		||||
	chroma.NameClass:            "#76a9f9",
 | 
			
		||||
	chroma.NameConstant:         "bold #b756ff",
 | 
			
		||||
	chroma.NameDecorator:        "#e5c07b",
 | 
			
		||||
	chroma.NameEntity:           "#bda26f",
 | 
			
		||||
	chroma.NameException:        "bold #fd7474",
 | 
			
		||||
	chroma.NameFunction:         "#00b1f7",
 | 
			
		||||
	chroma.NameProperty:         "#cebc3a",
 | 
			
		||||
	chroma.NameLabel:            "#f5a40d",
 | 
			
		||||
	chroma.NameNamespace:        "#76a9f9",
 | 
			
		||||
	chroma.NameTag:              "#e06c75",
 | 
			
		||||
	chroma.NameVariable:         "#DCAEEA",
 | 
			
		||||
	chroma.NameVariableGlobal:   "bold #DCAEEA",
 | 
			
		||||
	chroma.NameVariableInstance: "#e06c75",
 | 
			
		||||
	chroma.Literal:              "#98c379",
 | 
			
		||||
	chroma.Number:               "#d19a66",
 | 
			
		||||
	chroma.String:               "#98c379",
 | 
			
		||||
	chroma.StringDoc:            "#7e97c3",
 | 
			
		||||
	chroma.StringDouble:         "#63c381",
 | 
			
		||||
	chroma.StringEscape:         "bold #d26464",
 | 
			
		||||
	chroma.StringHeredoc:        "#98c379",
 | 
			
		||||
	chroma.StringInterpol:       "#98c379",
 | 
			
		||||
	chroma.StringOther:          "#70b33f",
 | 
			
		||||
	chroma.StringRegex:          "#56b6c2",
 | 
			
		||||
	chroma.StringSingle:         "#98c379",
 | 
			
		||||
	chroma.StringSymbol:         "#56b6c2",
 | 
			
		||||
	chroma.Generic:              "#b0c4de",
 | 
			
		||||
	chroma.GenericEmph:          "italic",
 | 
			
		||||
	chroma.GenericHeading:       "bold #a2cbff",
 | 
			
		||||
	chroma.GenericInserted:      "#a6e22e",
 | 
			
		||||
	chroma.GenericOutput:        "#a6e22e",
 | 
			
		||||
	chroma.GenericUnderline:     "underline",
 | 
			
		||||
	chroma.GenericPrompt:        "#a6e22e",
 | 
			
		||||
	chroma.GenericStrong:        "bold",
 | 
			
		||||
	chroma.GenericSubheading:    "#a2cbff",
 | 
			
		||||
	chroma.GenericTraceback:     "#a2cbff",
 | 
			
		||||
	chroma.Background:           "#b0c4de bg:#282c34",
 | 
			
		||||
}))
 | 
			
		||||
							
								
								
									
										71
									
								
								vendor/github.com/alecthomas/chroma/styles/doom-one2.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								vendor/github.com/alecthomas/chroma/styles/doom-one2.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,71 @@
 | 
			
		|||
package styles
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/alecthomas/chroma"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Doom One 2 style. Inspired by Atom One and Doom Emacs's Atom One theme
 | 
			
		||||
var DoomOne2 = Register(chroma.MustNewStyle("doom-one2", chroma.StyleEntries{
 | 
			
		||||
	chroma.Text:                 "#b0c4de",
 | 
			
		||||
	chroma.Error:                "#b0c4de",
 | 
			
		||||
	chroma.Comment:              "italic #8a93a5",
 | 
			
		||||
	chroma.CommentHashbang:      "bold",
 | 
			
		||||
	chroma.Keyword:              "#76a9f9",
 | 
			
		||||
	chroma.KeywordConstant:      "#e5c07b",
 | 
			
		||||
	chroma.KeywordType:          "#e5c07b",
 | 
			
		||||
	chroma.Operator:             "#54b1c7",
 | 
			
		||||
	chroma.OperatorWord:         "bold #b756ff",
 | 
			
		||||
	chroma.Punctuation:          "#abb2bf",
 | 
			
		||||
	chroma.Name:                 "#aa89ea",
 | 
			
		||||
	chroma.NameAttribute:        "#cebc3a",
 | 
			
		||||
	chroma.NameBuiltin:          "#e5c07b",
 | 
			
		||||
	chroma.NameClass:            "#ca72ff",
 | 
			
		||||
	chroma.NameConstant:         "bold",
 | 
			
		||||
	chroma.NameDecorator:        "#e5c07b",
 | 
			
		||||
	chroma.NameEntity:           "#bda26f",
 | 
			
		||||
	chroma.NameException:        "bold #fd7474",
 | 
			
		||||
	chroma.NameFunction:         "#00b1f7",
 | 
			
		||||
	chroma.NameProperty:         "#cebc3a",
 | 
			
		||||
	chroma.NameLabel:            "#f5a40d",
 | 
			
		||||
	chroma.NameNamespace:        "#ca72ff",
 | 
			
		||||
	chroma.NameTag:              "#76a9f9",
 | 
			
		||||
	chroma.NameVariable:         "#DCAEEA",
 | 
			
		||||
	chroma.NameVariableClass:    "#DCAEEA",
 | 
			
		||||
	chroma.NameVariableGlobal:   "bold #DCAEEA",
 | 
			
		||||
	chroma.NameVariableInstance: "#e06c75",
 | 
			
		||||
	chroma.NameVariableMagic:    "#DCAEEA",
 | 
			
		||||
	chroma.Literal:              "#98c379",
 | 
			
		||||
	chroma.LiteralDate:          "#98c379",
 | 
			
		||||
	chroma.Number:               "#d19a66",
 | 
			
		||||
	chroma.NumberBin:            "#d19a66",
 | 
			
		||||
	chroma.NumberFloat:          "#d19a66",
 | 
			
		||||
	chroma.NumberHex:            "#d19a66",
 | 
			
		||||
	chroma.NumberInteger:        "#d19a66",
 | 
			
		||||
	chroma.NumberIntegerLong:    "#d19a66",
 | 
			
		||||
	chroma.NumberOct:            "#d19a66",
 | 
			
		||||
	chroma.String:               "#98c379",
 | 
			
		||||
	chroma.StringAffix:          "#98c379",
 | 
			
		||||
	chroma.StringBacktick:       "#98c379",
 | 
			
		||||
	chroma.StringDelimiter:      "#98c379",
 | 
			
		||||
	chroma.StringDoc:            "#7e97c3",
 | 
			
		||||
	chroma.StringDouble:         "#63c381",
 | 
			
		||||
	chroma.StringEscape:         "bold #d26464",
 | 
			
		||||
	chroma.StringHeredoc:        "#98c379",
 | 
			
		||||
	chroma.StringInterpol:       "#98c379",
 | 
			
		||||
	chroma.StringOther:          "#70b33f",
 | 
			
		||||
	chroma.StringRegex:          "#56b6c2",
 | 
			
		||||
	chroma.StringSingle:         "#98c379",
 | 
			
		||||
	chroma.StringSymbol:         "#56b6c2",
 | 
			
		||||
	chroma.Generic:              "#b0c4de",
 | 
			
		||||
	chroma.GenericDeleted:       "#b0c4de",
 | 
			
		||||
	chroma.GenericEmph:          "italic",
 | 
			
		||||
	chroma.GenericHeading:       "bold #a2cbff",
 | 
			
		||||
	chroma.GenericInserted:      "#a6e22e",
 | 
			
		||||
	chroma.GenericOutput:        "#a6e22e",
 | 
			
		||||
	chroma.GenericUnderline:     "underline",
 | 
			
		||||
	chroma.GenericPrompt:        "#a6e22e",
 | 
			
		||||
	chroma.GenericStrong:        "bold",
 | 
			
		||||
	chroma.GenericSubheading:    "#a2cbff",
 | 
			
		||||
	chroma.GenericTraceback:     "#a2cbff",
 | 
			
		||||
	chroma.Background:           "#b0c4de bg:#282c34",
 | 
			
		||||
}))
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/alecthomas/chroma/styles/dracula.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/alecthomas/chroma/styles/dracula.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -13,11 +13,11 @@ var Dracula = Register(chroma.MustNewStyle("dracula", chroma.StyleEntries{
 | 
			
		|||
	chroma.CommentSingle:            "#6272a4",
 | 
			
		||||
	chroma.CommentSpecial:           "#6272a4",
 | 
			
		||||
	chroma.Generic:                  "#f8f8f2",
 | 
			
		||||
	chroma.GenericDeleted:           "#8b080b",
 | 
			
		||||
	chroma.GenericDeleted:           "#ff5555",
 | 
			
		||||
	chroma.GenericEmph:              "#f8f8f2 underline",
 | 
			
		||||
	chroma.GenericError:             "#f8f8f2",
 | 
			
		||||
	chroma.GenericHeading:           "#f8f8f2 bold",
 | 
			
		||||
	chroma.GenericInserted:          "#f8f8f2 bold",
 | 
			
		||||
	chroma.GenericInserted:          "#50fa7b bold",
 | 
			
		||||
	chroma.GenericOutput:            "#44475a",
 | 
			
		||||
	chroma.GenericPrompt:            "#f8f8f2",
 | 
			
		||||
	chroma.GenericStrong:            "#f8f8f2",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										17
									
								
								vendor/github.com/alecthomas/chroma/styles/hr_dark.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								vendor/github.com/alecthomas/chroma/styles/hr_dark.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
package styles
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/alecthomas/chroma"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Theme based on HackerRank Dark Editor theme
 | 
			
		||||
var HrDark = Register(chroma.MustNewStyle("hrdark", chroma.StyleEntries{
 | 
			
		||||
	chroma.Comment:      "italic #828b96",
 | 
			
		||||
	chroma.Keyword:      "#ff636f",
 | 
			
		||||
	chroma.OperatorWord: "#ff636f",
 | 
			
		||||
	chroma.Name:         "#58a1dd",
 | 
			
		||||
	chroma.Literal:      "#a6be9d",
 | 
			
		||||
	chroma.Operator:     "#ff636f",
 | 
			
		||||
	chroma.Background:   "#1d2432",
 | 
			
		||||
	chroma.Other:        "#fff",
 | 
			
		||||
}))
 | 
			
		||||
							
								
								
									
										19
									
								
								vendor/github.com/alecthomas/chroma/styles/hr_high_contrast.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								vendor/github.com/alecthomas/chroma/styles/hr_high_contrast.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
package styles
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/alecthomas/chroma"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Theme based on HackerRank High Contrast Editor Theme
 | 
			
		||||
var HrHighContrast = Register(chroma.MustNewStyle("hr_high_contrast", chroma.StyleEntries{
 | 
			
		||||
	chroma.Comment:              "#5a8349",
 | 
			
		||||
	chroma.Keyword:              "#467faf",
 | 
			
		||||
	chroma.OperatorWord:         "#467faf",
 | 
			
		||||
	chroma.Name:                 "#ffffff",
 | 
			
		||||
	chroma.LiteralString:        "#a87662",
 | 
			
		||||
	chroma.LiteralNumber:        "#fff",
 | 
			
		||||
	chroma.LiteralStringBoolean: "#467faf",
 | 
			
		||||
	chroma.Operator:             "#e4e400",
 | 
			
		||||
	chroma.Background:           "#000",
 | 
			
		||||
	chroma.Other:                "#d5d500",
 | 
			
		||||
}))
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/alecthomas/chroma/types.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/alecthomas/chroma/types.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -342,6 +342,6 @@ func (t TokenType) InSubCategory(other TokenType) bool {
 | 
			
		|||
	return t/100 == other/100
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (t TokenType) Emit(groups []string, lexer Lexer) Iterator {
 | 
			
		||||
func (t TokenType) Emit(groups []string, _ *LexerState) Iterator {
 | 
			
		||||
	return Literator(Token{Type: t, Value: groups[0]})
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										14
									
								
								vendor/github.com/blevesearch/bleve/v2/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/blevesearch/bleve/v2/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -3,7 +3,7 @@ module github.com/blevesearch/bleve/v2
 | 
			
		|||
go 1.13
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.7.1
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.7.3
 | 
			
		||||
	github.com/bits-and-blooms/bitset v1.2.0
 | 
			
		||||
	github.com/blevesearch/bleve_index_api v1.0.0
 | 
			
		||||
	github.com/blevesearch/go-porterstemmer v1.0.3
 | 
			
		||||
| 
						 | 
				
			
			@ -11,12 +11,12 @@ require (
 | 
			
		|||
	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/vellum v1.0.4
 | 
			
		||||
	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/blevesearch/vellum v1.0.5
 | 
			
		||||
	github.com/blevesearch/zapx/v11 v11.2.1
 | 
			
		||||
	github.com/blevesearch/zapx/v12 v12.2.1
 | 
			
		||||
	github.com/blevesearch/zapx/v13 v13.2.1
 | 
			
		||||
	github.com/blevesearch/zapx/v14 v14.2.1
 | 
			
		||||
	github.com/blevesearch/zapx/v15 v15.2.1
 | 
			
		||||
	github.com/couchbase/moss v0.1.0
 | 
			
		||||
	github.com/golang/protobuf v1.3.2
 | 
			
		||||
	github.com/kljensen/snowball v0.6.0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										30
									
								
								vendor/github.com/blevesearch/bleve/v2/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/github.com/blevesearch/bleve/v2/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,10 +1,9 @@
 | 
			
		|||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/Julusian/godocdown v0.0.0-20170816220326-6d19f8ff2df8/go.mod h1:INZr5t32rG59/5xeltqoCJoNY7e5x/3xoY9WSWVWg74=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.1 h1:HkcLv8q/kwGJnhEWe+vinu+04DGDdQ7nVivMhNhxP2g=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.1/go.mod h1:jdT9ykXwHFNdJbEtxePexlFYH9LXucApeS0/+/g+p1I=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3 h1:RwirWpvFONt2EwHHEHhER7S4BHZkyj3qL5LXLlnQPZ4=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3/go.mod h1:jdT9ykXwHFNdJbEtxePexlFYH9LXucApeS0/+/g+p1I=
 | 
			
		||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.1.10/go.mod h1:w0XsmFg8qg6cmpTtJ0z3pKgjTDBMMnI/+I2syrE6XBE=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
 | 
			
		||||
github.com/blevesearch/bleve_index_api v1.0.0 h1:Ds3XeuTxjXCkG6pgIwWDRyooJKNIuOKemnN0N0IkhTU=
 | 
			
		||||
| 
						 | 
				
			
			@ -21,19 +20,18 @@ github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD
 | 
			
		|||
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/vellum v1.0.3/go.mod h1:2u5ax02KeDuNWu4/C+hVQMD6uLN4txH1JbtpaDNLJRo=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.4 h1:o6t7NxTnThp1es52uQvOJJx+9yK/nKXlWC5xl4LCz1U=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.4/go.mod h1:cMhywHI0de50f7Nj42YgvyD6bFJ2WkNRvNBlNMrEVgY=
 | 
			
		||||
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/blevesearch/vellum v1.0.5 h1:L5dJ7hKauRVbuH7I8uqLeSK92CPPY6FfrbAmLhAug8A=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.5/go.mod h1:atE0EH3fvk43zzS7t1YNdNC7DbmcC3uz+eMD5xZ2OyQ=
 | 
			
		||||
github.com/blevesearch/zapx/v11 v11.2.1 h1:udluDHdr99gGSeL3vZLtJbML0OJ98mK1Peivtm5OYho=
 | 
			
		||||
github.com/blevesearch/zapx/v11 v11.2.1/go.mod h1:TBkJF5Qq0EwZbbBQmkW6/AQVSYwXXpp0xwtQ5wXHVMI=
 | 
			
		||||
github.com/blevesearch/zapx/v12 v12.2.1 h1:nbeecR8M3dEcIIYfKDaSRpJ9E205E7BvjhVwf/l5ajI=
 | 
			
		||||
github.com/blevesearch/zapx/v12 v12.2.1/go.mod h1:sSXvgEs7MKqqDIRSpyFd6ZJUEVlhxuDB0d8/WT2WlgA=
 | 
			
		||||
github.com/blevesearch/zapx/v13 v13.2.1 h1:6K797fvkurY6heEMPhyUlq3VULIpkD1sbBqqQUMFf4g=
 | 
			
		||||
github.com/blevesearch/zapx/v13 v13.2.1/go.mod h1:Fblcy4ykPy7XiaZ2svvpQaYgEqI+8vkdvMVx5zcawF4=
 | 
			
		||||
github.com/blevesearch/zapx/v14 v14.2.1 h1:V3RzDc7XZ51Kv9ZhhzMlHCSoY4+jxqy9VBqHxTqW4pg=
 | 
			
		||||
github.com/blevesearch/zapx/v14 v14.2.1/go.mod h1:veKtVCDzl4vvYeT5zULXEXqPR948uilzixzmmdtpCkU=
 | 
			
		||||
github.com/blevesearch/zapx/v15 v15.2.1 h1:ZaqQiWLo0srtPvy3ozgpR9+Oabs3HQrF4uJM0HiKVBY=
 | 
			
		||||
github.com/blevesearch/zapx/v15 v15.2.1/go.mod h1:pUCN72ZJkVd7dU9lA4Fd8E3+fl5wv3JPpThk4FQ5bpA=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/blevesearch/vellum/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/blevesearch/vellum/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -3,7 +3,7 @@ module github.com/blevesearch/vellum
 | 
			
		|||
go 1.12
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/bits-and-blooms/bitset v1.1.10
 | 
			
		||||
	github.com/bits-and-blooms/bitset v1.2.0
 | 
			
		||||
	github.com/blevesearch/mmap-go v1.0.2
 | 
			
		||||
	github.com/spf13/cobra v0.0.5
 | 
			
		||||
	golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // indirect
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/blevesearch/vellum/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/blevesearch/vellum/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.1.10 h1:oTle449SfMfXO0BpZN1bMPe5SCRlQct8pX7siV30jGA=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.1.10/go.mod h1:w0XsmFg8qg6cmpTtJ0z3pKgjTDBMMnI/+I2syrE6XBE=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v11/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v11/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -3,11 +3,11 @@ module github.com/blevesearch/zapx/v11
 | 
			
		|||
go 1.12
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.4.23
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.7.3
 | 
			
		||||
	github.com/blevesearch/bleve_index_api v1.0.0
 | 
			
		||||
	github.com/blevesearch/mmap-go v1.0.2
 | 
			
		||||
	github.com/blevesearch/scorch_segment_api/v2 v2.0.1
 | 
			
		||||
	github.com/blevesearch/vellum v1.0.3
 | 
			
		||||
	github.com/blevesearch/vellum v1.0.5
 | 
			
		||||
	github.com/golang/snappy v0.0.1
 | 
			
		||||
	github.com/spf13/cobra v0.0.5
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										45
									
								
								vendor/github.com/blevesearch/zapx/v11/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								vendor/github.com/blevesearch/zapx/v11/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,15 +1,19 @@
 | 
			
		|||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo=
 | 
			
		||||
github.com/Julusian/godocdown v0.0.0-20170816220326-6d19f8ff2df8/go.mod h1:INZr5t32rG59/5xeltqoCJoNY7e5x/3xoY9WSWVWg74=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3 h1:RwirWpvFONt2EwHHEHhER7S4BHZkyj3qL5LXLlnQPZ4=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3/go.mod h1:jdT9ykXwHFNdJbEtxePexlFYH9LXucApeS0/+/g+p1I=
 | 
			
		||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
 | 
			
		||||
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/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/blevesearch/vellum v1.0.5 h1:L5dJ7hKauRVbuH7I8uqLeSK92CPPY6FfrbAmLhAug8A=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.5/go.mod h1:atE0EH3fvk43zzS7t1YNdNC7DbmcC3uz+eMD5xZ2OyQ=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -17,19 +21,17 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc
 | 
			
		|||
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/dvyukov/go-fuzz v0.0.0-20210429054444-fca39067bc72/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw=
 | 
			
		||||
github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
 | 
			
		||||
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=
 | 
			
		||||
github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
 | 
			
		||||
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 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -38,10 +40,10 @@ github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE
 | 
			
		|||
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/robertkrimen/godocdown v0.0.0-20130622164427-0bfa04905481/go.mod h1:C9WhFzY47SzYBIvzFqSvHIR6ROgDo4TtdTuRaOMjF/s=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -51,22 +53,43 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6
 | 
			
		|||
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
 | 
			
		||||
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/stephens2424/writerset v1.0.2/go.mod h1:aS2JhsMn6eA7e82oNmW4rfsgAOp9COBTTl8mzkwADnc=
 | 
			
		||||
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.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
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=
 | 
			
		||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 | 
			
		||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 | 
			
		||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
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-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
			
		||||
golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v12/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v12/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -3,11 +3,11 @@ module github.com/blevesearch/zapx/v12
 | 
			
		|||
go 1.12
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.4.23
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.7.3
 | 
			
		||||
	github.com/blevesearch/bleve_index_api v1.0.0
 | 
			
		||||
	github.com/blevesearch/mmap-go v1.0.2
 | 
			
		||||
	github.com/blevesearch/scorch_segment_api/v2 v2.0.1
 | 
			
		||||
	github.com/blevesearch/vellum v1.0.3
 | 
			
		||||
	github.com/blevesearch/vellum v1.0.5
 | 
			
		||||
	github.com/golang/snappy v0.0.1
 | 
			
		||||
	github.com/spf13/cobra v0.0.5
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										45
									
								
								vendor/github.com/blevesearch/zapx/v12/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								vendor/github.com/blevesearch/zapx/v12/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,15 +1,19 @@
 | 
			
		|||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo=
 | 
			
		||||
github.com/Julusian/godocdown v0.0.0-20170816220326-6d19f8ff2df8/go.mod h1:INZr5t32rG59/5xeltqoCJoNY7e5x/3xoY9WSWVWg74=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3 h1:RwirWpvFONt2EwHHEHhER7S4BHZkyj3qL5LXLlnQPZ4=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3/go.mod h1:jdT9ykXwHFNdJbEtxePexlFYH9LXucApeS0/+/g+p1I=
 | 
			
		||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
 | 
			
		||||
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/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/blevesearch/vellum v1.0.5 h1:L5dJ7hKauRVbuH7I8uqLeSK92CPPY6FfrbAmLhAug8A=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.5/go.mod h1:atE0EH3fvk43zzS7t1YNdNC7DbmcC3uz+eMD5xZ2OyQ=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -17,19 +21,17 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc
 | 
			
		|||
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/dvyukov/go-fuzz v0.0.0-20210429054444-fca39067bc72/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw=
 | 
			
		||||
github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
 | 
			
		||||
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=
 | 
			
		||||
github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
 | 
			
		||||
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 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -38,10 +40,10 @@ github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE
 | 
			
		|||
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/robertkrimen/godocdown v0.0.0-20130622164427-0bfa04905481/go.mod h1:C9WhFzY47SzYBIvzFqSvHIR6ROgDo4TtdTuRaOMjF/s=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -51,22 +53,43 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6
 | 
			
		|||
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
 | 
			
		||||
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/stephens2424/writerset v1.0.2/go.mod h1:aS2JhsMn6eA7e82oNmW4rfsgAOp9COBTTl8mzkwADnc=
 | 
			
		||||
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.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
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=
 | 
			
		||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 | 
			
		||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 | 
			
		||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
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-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
			
		||||
golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v13/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v13/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -3,11 +3,11 @@ module github.com/blevesearch/zapx/v13
 | 
			
		|||
go 1.12
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.4.23
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.7.3
 | 
			
		||||
	github.com/blevesearch/bleve_index_api v1.0.0
 | 
			
		||||
	github.com/blevesearch/mmap-go v1.0.2
 | 
			
		||||
	github.com/blevesearch/scorch_segment_api/v2 v2.0.1
 | 
			
		||||
	github.com/blevesearch/vellum v1.0.3
 | 
			
		||||
	github.com/blevesearch/vellum v1.0.5
 | 
			
		||||
	github.com/golang/snappy v0.0.1
 | 
			
		||||
	github.com/spf13/cobra v0.0.5
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										45
									
								
								vendor/github.com/blevesearch/zapx/v13/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								vendor/github.com/blevesearch/zapx/v13/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,15 +1,19 @@
 | 
			
		|||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo=
 | 
			
		||||
github.com/Julusian/godocdown v0.0.0-20170816220326-6d19f8ff2df8/go.mod h1:INZr5t32rG59/5xeltqoCJoNY7e5x/3xoY9WSWVWg74=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3 h1:RwirWpvFONt2EwHHEHhER7S4BHZkyj3qL5LXLlnQPZ4=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3/go.mod h1:jdT9ykXwHFNdJbEtxePexlFYH9LXucApeS0/+/g+p1I=
 | 
			
		||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
 | 
			
		||||
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/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/blevesearch/vellum v1.0.5 h1:L5dJ7hKauRVbuH7I8uqLeSK92CPPY6FfrbAmLhAug8A=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.5/go.mod h1:atE0EH3fvk43zzS7t1YNdNC7DbmcC3uz+eMD5xZ2OyQ=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -17,19 +21,17 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc
 | 
			
		|||
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/dvyukov/go-fuzz v0.0.0-20210429054444-fca39067bc72/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw=
 | 
			
		||||
github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
 | 
			
		||||
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=
 | 
			
		||||
github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
 | 
			
		||||
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 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -38,10 +40,10 @@ github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE
 | 
			
		|||
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/robertkrimen/godocdown v0.0.0-20130622164427-0bfa04905481/go.mod h1:C9WhFzY47SzYBIvzFqSvHIR6ROgDo4TtdTuRaOMjF/s=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -51,22 +53,43 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6
 | 
			
		|||
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
 | 
			
		||||
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/stephens2424/writerset v1.0.2/go.mod h1:aS2JhsMn6eA7e82oNmW4rfsgAOp9COBTTl8mzkwADnc=
 | 
			
		||||
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.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
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=
 | 
			
		||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 | 
			
		||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 | 
			
		||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
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-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
			
		||||
golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v14/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v14/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -3,11 +3,11 @@ module github.com/blevesearch/zapx/v14
 | 
			
		|||
go 1.12
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.4.23
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.7.3
 | 
			
		||||
	github.com/blevesearch/bleve_index_api v1.0.0
 | 
			
		||||
	github.com/blevesearch/mmap-go v1.0.2
 | 
			
		||||
	github.com/blevesearch/scorch_segment_api/v2 v2.0.1
 | 
			
		||||
	github.com/blevesearch/vellum v1.0.3
 | 
			
		||||
	github.com/blevesearch/vellum v1.0.5
 | 
			
		||||
	github.com/golang/snappy v0.0.1
 | 
			
		||||
	github.com/spf13/cobra v0.0.5
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										45
									
								
								vendor/github.com/blevesearch/zapx/v14/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								vendor/github.com/blevesearch/zapx/v14/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,15 +1,19 @@
 | 
			
		|||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo=
 | 
			
		||||
github.com/Julusian/godocdown v0.0.0-20170816220326-6d19f8ff2df8/go.mod h1:INZr5t32rG59/5xeltqoCJoNY7e5x/3xoY9WSWVWg74=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3 h1:RwirWpvFONt2EwHHEHhER7S4BHZkyj3qL5LXLlnQPZ4=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3/go.mod h1:jdT9ykXwHFNdJbEtxePexlFYH9LXucApeS0/+/g+p1I=
 | 
			
		||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
 | 
			
		||||
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/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/blevesearch/vellum v1.0.5 h1:L5dJ7hKauRVbuH7I8uqLeSK92CPPY6FfrbAmLhAug8A=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.5/go.mod h1:atE0EH3fvk43zzS7t1YNdNC7DbmcC3uz+eMD5xZ2OyQ=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -17,19 +21,17 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc
 | 
			
		|||
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/dvyukov/go-fuzz v0.0.0-20210429054444-fca39067bc72/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw=
 | 
			
		||||
github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
 | 
			
		||||
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=
 | 
			
		||||
github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
 | 
			
		||||
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 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -38,10 +40,10 @@ github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE
 | 
			
		|||
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/robertkrimen/godocdown v0.0.0-20130622164427-0bfa04905481/go.mod h1:C9WhFzY47SzYBIvzFqSvHIR6ROgDo4TtdTuRaOMjF/s=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -51,22 +53,43 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6
 | 
			
		|||
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
 | 
			
		||||
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/stephens2424/writerset v1.0.2/go.mod h1:aS2JhsMn6eA7e82oNmW4rfsgAOp9COBTTl8mzkwADnc=
 | 
			
		||||
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.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
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=
 | 
			
		||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 | 
			
		||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 | 
			
		||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
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-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
			
		||||
golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v15/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/blevesearch/zapx/v15/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -3,11 +3,11 @@ module github.com/blevesearch/zapx/v15
 | 
			
		|||
go 1.12
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.4.23
 | 
			
		||||
	github.com/RoaringBitmap/roaring v0.7.3
 | 
			
		||||
	github.com/blevesearch/bleve_index_api v1.0.0
 | 
			
		||||
	github.com/blevesearch/mmap-go v1.0.2
 | 
			
		||||
	github.com/blevesearch/scorch_segment_api/v2 v2.0.1
 | 
			
		||||
	github.com/blevesearch/vellum v1.0.3
 | 
			
		||||
	github.com/blevesearch/vellum v1.0.5
 | 
			
		||||
	github.com/golang/snappy v0.0.1
 | 
			
		||||
	github.com/spf13/cobra v0.0.5
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										45
									
								
								vendor/github.com/blevesearch/zapx/v15/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								vendor/github.com/blevesearch/zapx/v15/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,15 +1,19 @@
 | 
			
		|||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo=
 | 
			
		||||
github.com/Julusian/godocdown v0.0.0-20170816220326-6d19f8ff2df8/go.mod h1:INZr5t32rG59/5xeltqoCJoNY7e5x/3xoY9WSWVWg74=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3 h1:RwirWpvFONt2EwHHEHhER7S4BHZkyj3qL5LXLlnQPZ4=
 | 
			
		||||
github.com/RoaringBitmap/roaring v0.7.3/go.mod h1:jdT9ykXwHFNdJbEtxePexlFYH9LXucApeS0/+/g+p1I=
 | 
			
		||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=
 | 
			
		||||
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
 | 
			
		||||
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/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/blevesearch/vellum v1.0.5 h1:L5dJ7hKauRVbuH7I8uqLeSK92CPPY6FfrbAmLhAug8A=
 | 
			
		||||
github.com/blevesearch/vellum v1.0.5/go.mod h1:atE0EH3fvk43zzS7t1YNdNC7DbmcC3uz+eMD5xZ2OyQ=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -17,19 +21,17 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc
 | 
			
		|||
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/dvyukov/go-fuzz v0.0.0-20210429054444-fca39067bc72/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw=
 | 
			
		||||
github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
 | 
			
		||||
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=
 | 
			
		||||
github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
 | 
			
		||||
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 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -38,10 +40,10 @@ github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE
 | 
			
		|||
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/robertkrimen/godocdown v0.0.0-20130622164427-0bfa04905481/go.mod h1:C9WhFzY47SzYBIvzFqSvHIR6ROgDo4TtdTuRaOMjF/s=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -51,22 +53,43 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6
 | 
			
		|||
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
 | 
			
		||||
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/stephens2424/writerset v1.0.2/go.mod h1:aS2JhsMn6eA7e82oNmW4rfsgAOp9COBTTl8mzkwADnc=
 | 
			
		||||
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.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
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=
 | 
			
		||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 | 
			
		||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 | 
			
		||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
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-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
			
		||||
golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										12
									
								
								vendor/github.com/caddyserver/certmagic/acmeclient.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/caddyserver/certmagic/acmeclient.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -298,14 +298,22 @@ func (c *acmeClient) throttle(ctx context.Context, names []string) error {
 | 
			
		|||
	}
 | 
			
		||||
	rateLimitersMu.Unlock()
 | 
			
		||||
	if c.mgr.Logger != nil {
 | 
			
		||||
		c.mgr.Logger.Info("waiting on internal rate limiter", zap.Strings("identifiers", names))
 | 
			
		||||
		c.mgr.Logger.Info("waiting on internal rate limiter",
 | 
			
		||||
			zap.Strings("identifiers", names),
 | 
			
		||||
			zap.String("ca", c.acmeClient.Directory),
 | 
			
		||||
			zap.String("account", c.mgr.Email),
 | 
			
		||||
		)
 | 
			
		||||
	}
 | 
			
		||||
	err := rl.Wait(ctx)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if c.mgr.Logger != nil {
 | 
			
		||||
		c.mgr.Logger.Info("done waiting on internal rate limiter", zap.Strings("identifiers", names))
 | 
			
		||||
		c.mgr.Logger.Info("done waiting on internal rate limiter",
 | 
			
		||||
			zap.Strings("identifiers", names),
 | 
			
		||||
			zap.String("ca", c.acmeClient.Directory),
 | 
			
		||||
			zap.String("account", c.mgr.Email),
 | 
			
		||||
		)
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										6
									
								
								vendor/github.com/caddyserver/certmagic/certificates.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/caddyserver/certmagic/certificates.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -47,8 +47,11 @@ type Certificate struct {
 | 
			
		|||
	// The hex-encoded hash of this cert's chain's bytes.
 | 
			
		||||
	hash string
 | 
			
		||||
 | 
			
		||||
	// Whether this certificate is under our management
 | 
			
		||||
	// Whether this certificate is under our management.
 | 
			
		||||
	managed bool
 | 
			
		||||
 | 
			
		||||
	// The unique string identifying the issuer of this certificate.
 | 
			
		||||
	issuerKey string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NeedsRenewal returns true if the certificate is
 | 
			
		||||
| 
						 | 
				
			
			@ -126,6 +129,7 @@ func (cfg *Config) loadManagedCertificate(domain string) (Certificate, error) {
 | 
			
		|||
		return cert, err
 | 
			
		||||
	}
 | 
			
		||||
	cert.managed = true
 | 
			
		||||
	cert.issuerKey = certRes.issuerKey
 | 
			
		||||
	return cert, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/caddyserver/certmagic/certmagic.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/caddyserver/certmagic/certmagic.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -410,6 +410,10 @@ type CertificateResource struct {
 | 
			
		|||
	// Any extra information associated with the certificate,
 | 
			
		||||
	// usually provided by the issuer implementation.
 | 
			
		||||
	IssuerData interface{} `json:"issuer_data,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// The unique string identifying the issuer of the
 | 
			
		||||
	// certificate; internally useful for storage access.
 | 
			
		||||
	issuerKey string `json:"-"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NamesKey returns the list of SANs as a single string,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										233
									
								
								vendor/github.com/caddyserver/certmagic/config.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										233
									
								
								vendor/github.com/caddyserver/certmagic/config.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -24,6 +24,7 @@ import (
 | 
			
		|||
	"crypto/x509/pkix"
 | 
			
		||||
	"encoding/asn1"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	weakrand "math/rand"
 | 
			
		||||
	"net"
 | 
			
		||||
| 
						 | 
				
			
			@ -247,7 +248,7 @@ func newWithCache(certCache *Cache, cfg Config) *Config {
 | 
			
		|||
// interactive use (i.e. when an administrator is present) so
 | 
			
		||||
// that errors can be reported and fixed immediately.
 | 
			
		||||
func (cfg *Config) ManageSync(domainNames []string) error {
 | 
			
		||||
	return cfg.manageAll(nil, domainNames, false)
 | 
			
		||||
	return cfg.manageAll(context.Background(), domainNames, false)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ClientCredentials returns a list of TLS client certificate chains for the given identifiers.
 | 
			
		||||
| 
						 | 
				
			
			@ -326,7 +327,12 @@ func (cfg *Config) manageOne(ctx context.Context, domainName string, async bool)
 | 
			
		|||
		}
 | 
			
		||||
		// if we don't have one in storage, obtain one
 | 
			
		||||
		obtain := func() error {
 | 
			
		||||
			err := cfg.ObtainCert(ctx, domainName, !async)
 | 
			
		||||
			var err error
 | 
			
		||||
			if async {
 | 
			
		||||
				err = cfg.ObtainCertAsync(ctx, domainName)
 | 
			
		||||
			} else {
 | 
			
		||||
				err = cfg.ObtainCertSync(ctx, domainName)
 | 
			
		||||
			}
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return fmt.Errorf("%s: obtaining certificate: %w", domainName, err)
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			@ -357,7 +363,12 @@ func (cfg *Config) manageOne(ctx context.Context, domainName string, async bool)
 | 
			
		|||
 | 
			
		||||
	// for an existing certificate, make sure it is renewed
 | 
			
		||||
	renew := func() error {
 | 
			
		||||
		err := cfg.RenewCert(ctx, domainName, !async)
 | 
			
		||||
		var err error
 | 
			
		||||
		if async {
 | 
			
		||||
			err = cfg.RenewCertAsync(ctx, domainName, false)
 | 
			
		||||
		} else {
 | 
			
		||||
			err = cfg.RenewCertSync(ctx, domainName, false)
 | 
			
		||||
		}
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return fmt.Errorf("%s: renewing certificate: %w", domainName, err)
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -401,34 +412,38 @@ func (cfg *Config) Unmanage(domainNames []string) {
 | 
			
		|||
	cfg.certCache.mu.Unlock()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ObtainCert obtains a certificate for name using cfg, as long
 | 
			
		||||
// as a certificate does not already exist in storage for that
 | 
			
		||||
// name. The name must qualify and cfg must be flagged as Managed.
 | 
			
		||||
// This function is a no-op if storage already has a certificate
 | 
			
		||||
// for name.
 | 
			
		||||
//
 | 
			
		||||
// It only obtains and stores certificates (and their keys),
 | 
			
		||||
// it does not load them into memory. If interactive is true,
 | 
			
		||||
// the user may be shown a prompt.
 | 
			
		||||
// TODO: consider moving interactive param into the Config struct,
 | 
			
		||||
// and maybe retry settings into the Config struct as well? (same for RenewCert)
 | 
			
		||||
func (cfg *Config) ObtainCert(ctx context.Context, name string, interactive bool) error {
 | 
			
		||||
// ObtainCertSync generates a new private key and obtains a certificate for
 | 
			
		||||
// name using cfg in the foreground; i.e. interactively and without retries.
 | 
			
		||||
// It stows the renewed certificate and its assets in storage if successful.
 | 
			
		||||
// It DOES NOT load the certificate into the in-memory cache. This method
 | 
			
		||||
// is a no-op if storage already has a certificate for name.
 | 
			
		||||
func (cfg *Config) ObtainCertSync(ctx context.Context, name string) error {
 | 
			
		||||
	return cfg.obtainCert(ctx, name, true)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ObtainCertAsync is the same as ObtainCertSync(), except it runs in the
 | 
			
		||||
// background; i.e. non-interactively, and with retries if it fails.
 | 
			
		||||
func (cfg *Config) ObtainCertAsync(ctx context.Context, name string) error {
 | 
			
		||||
	return cfg.obtainCert(ctx, name, false)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cfg *Config) obtainCert(ctx context.Context, name string, interactive bool) error {
 | 
			
		||||
	if len(cfg.Issuers) == 0 {
 | 
			
		||||
		return fmt.Errorf("no issuers configured; impossible to obtain or check for existing certificate in storage")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// if storage has all resources for this certificate, obtain is a no-op
 | 
			
		||||
	if cfg.storageHasCertResourcesAnyIssuer(name) {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// ensure storage is writeable and readable
 | 
			
		||||
	// TODO: this is not necessary every time; should only perform check once every so often for each storage, which may require some global state...
 | 
			
		||||
	err := cfg.checkStorage()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("failed storage check: %v - storage is probably misconfigured", err)
 | 
			
		||||
	}
 | 
			
		||||
	return cfg.obtainCert(ctx, name, interactive)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cfg *Config) obtainCert(ctx context.Context, name string, interactive bool) error {
 | 
			
		||||
	log := loggerNamed(cfg.Logger, "obtain")
 | 
			
		||||
 | 
			
		||||
	if log != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -437,7 +452,7 @@ func (cfg *Config) obtainCert(ctx context.Context, name string, interactive bool
 | 
			
		|||
 | 
			
		||||
	// ensure idempotency of the obtain operation for this name
 | 
			
		||||
	lockKey := cfg.lockKey(certIssueLockOp, name)
 | 
			
		||||
	err := acquireLock(ctx, cfg.Storage, lockKey)
 | 
			
		||||
	err = acquireLock(ctx, cfg.Storage, lockKey)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("unable to acquire lock '%s': %v", lockKey, err)
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -467,16 +482,24 @@ func (cfg *Config) obtainCert(ctx context.Context, name string, interactive bool
 | 
			
		|||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		privateKey, err := cfg.KeySource.GenerateKey()
 | 
			
		||||
		// if storage has a private key already, use it; otherwise,
 | 
			
		||||
		// we'll generate our own
 | 
			
		||||
		privKey, privKeyPEM, issuers, err := cfg.reusePrivateKey(name)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		privKeyPEM, err := encodePrivateKey(privateKey)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		if privKey == nil {
 | 
			
		||||
			privKey, err = cfg.KeySource.GenerateKey()
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			privKeyPEM, err = encodePrivateKey(privKey)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		csr, err := cfg.generateCSR(privateKey, []string{name})
 | 
			
		||||
		csr, err := cfg.generateCSR(privKey, []string{name})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -484,21 +507,37 @@ func (cfg *Config) obtainCert(ctx context.Context, name string, interactive bool
 | 
			
		|||
		// try to obtain from each issuer until we succeed
 | 
			
		||||
		var issuedCert *IssuedCertificate
 | 
			
		||||
		var issuerUsed Issuer
 | 
			
		||||
		for _, issuer := range cfg.Issuers {
 | 
			
		||||
		for i, issuer := range issuers {
 | 
			
		||||
			log.Debug(fmt.Sprintf("trying issuer %d/%d", i+1, len(cfg.Issuers)),
 | 
			
		||||
				zap.String("issuer", issuer.IssuerKey()))
 | 
			
		||||
 | 
			
		||||
			if prechecker, ok := issuer.(PreChecker); ok {
 | 
			
		||||
				err = prechecker.PreCheck(ctx, []string{name}, interactive)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					continue
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			issuedCert, err = issuer.Issue(ctx, csr)
 | 
			
		||||
			if err == nil {
 | 
			
		||||
				issuerUsed = issuer
 | 
			
		||||
				break
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// err is usually wrapped, which is nice for simply printing it, but
 | 
			
		||||
			// with our structured error logs we only need the problem string
 | 
			
		||||
			errToLog := err
 | 
			
		||||
			var problem acme.Problem
 | 
			
		||||
			if errors.As(err, &problem) {
 | 
			
		||||
				errToLog = problem
 | 
			
		||||
			}
 | 
			
		||||
			log.Error("could not get certificate from issuer",
 | 
			
		||||
				zap.String("identifier", name),
 | 
			
		||||
				zap.String("issuer", issuer.IssuerKey()),
 | 
			
		||||
				zap.Error(errToLog))
 | 
			
		||||
		}
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			// TODO: only the error from the last issuer will be returned, oh well?
 | 
			
		||||
			// only the error from the last issuer will be returned, but we logged the others
 | 
			
		||||
			return fmt.Errorf("[%s] Obtain: %w", name, err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -532,6 +571,47 @@ func (cfg *Config) obtainCert(ctx context.Context, name string, interactive bool
 | 
			
		|||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// reusePrivateKey looks for a private key for domain in storage in the configured issuers
 | 
			
		||||
// paths. For the first private key it finds, it returns that key both decoded and PEM-encoded,
 | 
			
		||||
// as well as the reordered list of issuers to use instead of cfg.Issuers (because if a key
 | 
			
		||||
// is found, that issuer should be tried first, so it is moved to the front in a copy of
 | 
			
		||||
// cfg.Issuers).
 | 
			
		||||
func (cfg *Config) reusePrivateKey(domain string) (privKey crypto.PrivateKey, privKeyPEM []byte, issuers []Issuer, err error) {
 | 
			
		||||
	// make a copy of cfg.Issuers so that if we have to reorder elements, we don't
 | 
			
		||||
	// inadvertently mutate the configured issuers (see append calls below)
 | 
			
		||||
	issuers = make([]Issuer, len(cfg.Issuers))
 | 
			
		||||
	copy(issuers, cfg.Issuers)
 | 
			
		||||
 | 
			
		||||
	for i, issuer := range issuers {
 | 
			
		||||
		// see if this issuer location in storage has a private key for the domain
 | 
			
		||||
		privateKeyStorageKey := StorageKeys.SitePrivateKey(issuer.IssuerKey(), domain)
 | 
			
		||||
		privKeyPEM, err = cfg.Storage.Load(privateKeyStorageKey)
 | 
			
		||||
		if _, ok := err.(ErrNotExist); ok {
 | 
			
		||||
			err = nil // obviously, it's OK to not have a private key; so don't prevent obtaining a cert
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, nil, nil, fmt.Errorf("loading existing private key for reuse with issuer %s: %v", issuer.IssuerKey(), err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// we loaded a private key; try decoding it so we can use it
 | 
			
		||||
		privKey, err = decodePrivateKey(privKeyPEM)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, nil, nil, err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// since the private key was found in storage for this issuer, move it
 | 
			
		||||
		// to the front of the list so we prefer this issuer first
 | 
			
		||||
		issuers = append([]Issuer{issuer}, append(issuers[:i], issuers[i+1:]...)...)
 | 
			
		||||
		break
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// storageHasCertResourcesAnyIssuer returns true if storage has all the
 | 
			
		||||
// certificate resources in storage from any configured issuer. It checks
 | 
			
		||||
// all configured issuers in order.
 | 
			
		||||
func (cfg *Config) storageHasCertResourcesAnyIssuer(name string) bool {
 | 
			
		||||
	for _, iss := range cfg.Issuers {
 | 
			
		||||
		if cfg.storageHasCertResources(iss, name) {
 | 
			
		||||
| 
						 | 
				
			
			@ -541,23 +621,36 @@ func (cfg *Config) storageHasCertResourcesAnyIssuer(name string) bool {
 | 
			
		|||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RenewCert renews the certificate for name using cfg. It stows the
 | 
			
		||||
// renewed certificate and its assets in storage if successful. It
 | 
			
		||||
// DOES NOT update the in-memory cache with the new certificate.
 | 
			
		||||
func (cfg *Config) RenewCert(ctx context.Context, name string, interactive bool) error {
 | 
			
		||||
// RenewCertSync renews the certificate for name using cfg in the foreground;
 | 
			
		||||
// i.e. interactively and without retries. It stows the renewed certificate
 | 
			
		||||
// and its assets in storage if successful. It DOES NOT update the in-memory
 | 
			
		||||
// cache with the new certificate. The certificate will not be renewed if it
 | 
			
		||||
// is not close to expiring unless force is true.
 | 
			
		||||
//
 | 
			
		||||
// Renewing a certificate is the same as obtaining a certificate, except that
 | 
			
		||||
// the existing private key already in storage is reused.
 | 
			
		||||
func (cfg *Config) RenewCertSync(ctx context.Context, name string, force bool) error {
 | 
			
		||||
	return cfg.renewCert(ctx, name, force, true)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RenewCertAsync is the same as RenewCertSync(), except it runs in the
 | 
			
		||||
// background; i.e. non-interactively, and with retries if it fails.
 | 
			
		||||
func (cfg *Config) RenewCertAsync(ctx context.Context, name string, force bool) error {
 | 
			
		||||
	return cfg.renewCert(ctx, name, force, false)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cfg *Config) renewCert(ctx context.Context, name string, force, interactive bool) error {
 | 
			
		||||
	if len(cfg.Issuers) == 0 {
 | 
			
		||||
		return fmt.Errorf("no issuers configured; impossible to renew or check existing certificate in storage")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// ensure storage is writeable and readable
 | 
			
		||||
	// TODO: this is not necessary every time; should only perform check once every so often for each storage, which may require some global state...
 | 
			
		||||
	err := cfg.checkStorage()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("failed storage check: %v - storage is probably misconfigured", err)
 | 
			
		||||
	}
 | 
			
		||||
	return cfg.renewCert(ctx, name, interactive)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cfg *Config) renewCert(ctx context.Context, name string, interactive bool) error {
 | 
			
		||||
	log := loggerNamed(cfg.Logger, "renew")
 | 
			
		||||
 | 
			
		||||
	if log != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -566,7 +659,7 @@ func (cfg *Config) renewCert(ctx context.Context, name string, interactive bool)
 | 
			
		|||
 | 
			
		||||
	// ensure idempotency of the renew operation for this name
 | 
			
		||||
	lockKey := cfg.lockKey(certIssueLockOp, name)
 | 
			
		||||
	err := acquireLock(ctx, cfg.Storage, lockKey)
 | 
			
		||||
	err = acquireLock(ctx, cfg.Storage, lockKey)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("unable to acquire lock '%s': %v", lockKey, err)
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -597,13 +690,22 @@ func (cfg *Config) renewCert(ctx context.Context, name string, interactive bool)
 | 
			
		|||
		// check if renew is still needed - might have been renewed while waiting for lock
 | 
			
		||||
		timeLeft, needsRenew := cfg.managedCertNeedsRenewal(certRes)
 | 
			
		||||
		if !needsRenew {
 | 
			
		||||
			if log != nil {
 | 
			
		||||
				log.Info("certificate appears to have been renewed already",
 | 
			
		||||
					zap.String("identifier", name),
 | 
			
		||||
					zap.Duration("remaining", timeLeft))
 | 
			
		||||
			if force {
 | 
			
		||||
				if log != nil {
 | 
			
		||||
					log.Info("certificate does not need to be renewed, but renewal is being forced",
 | 
			
		||||
						zap.String("identifier", name),
 | 
			
		||||
						zap.Duration("remaining", timeLeft))
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				if log != nil {
 | 
			
		||||
					log.Info("certificate appears to have been renewed already",
 | 
			
		||||
						zap.String("identifier", name),
 | 
			
		||||
						zap.Duration("remaining", timeLeft))
 | 
			
		||||
				}
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if log != nil {
 | 
			
		||||
			log.Info("renewing certificate",
 | 
			
		||||
				zap.String("identifier", name),
 | 
			
		||||
| 
						 | 
				
			
			@ -629,14 +731,27 @@ func (cfg *Config) renewCert(ctx context.Context, name string, interactive bool)
 | 
			
		|||
					continue
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			issuedCert, err = issuer.Issue(ctx, csr)
 | 
			
		||||
			if err == nil {
 | 
			
		||||
				issuerUsed = issuer
 | 
			
		||||
				break
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// err is usually wrapped, which is nice for simply printing it, but
 | 
			
		||||
			// with our structured error logs we only need the problem string
 | 
			
		||||
			errToLog := err
 | 
			
		||||
			var problem acme.Problem
 | 
			
		||||
			if errors.As(err, &problem) {
 | 
			
		||||
				errToLog = problem
 | 
			
		||||
			}
 | 
			
		||||
			log.Error("could not get certificate from issuer",
 | 
			
		||||
				zap.String("identifier", name),
 | 
			
		||||
				zap.String("issuer", issuer.IssuerKey()),
 | 
			
		||||
				zap.Error(errToLog))
 | 
			
		||||
		}
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			// TODO: only the error from the last issuer will be returned, oh well?
 | 
			
		||||
			// only the error from the last issuer will be returned, but we logged the others
 | 
			
		||||
			return fmt.Errorf("[%s] Renew: %w", name, err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -705,6 +820,9 @@ func (cfg *Config) generateCSR(privateKey crypto.PrivateKey, sans []string) (*x5
 | 
			
		|||
// RevokeCert revokes the certificate for domain via ACME protocol. It requires
 | 
			
		||||
// that cfg.Issuers is properly configured with the same issuer that issued the
 | 
			
		||||
// certificate being revoked. See RFC 5280 §5.3.1 for reason codes.
 | 
			
		||||
//
 | 
			
		||||
// The certificate assets are deleted from storage after successful revocation
 | 
			
		||||
// to prevent reuse.
 | 
			
		||||
func (cfg *Config) RevokeCert(ctx context.Context, domain string, reason int, interactive bool) error {
 | 
			
		||||
	for i, issuer := range cfg.Issuers {
 | 
			
		||||
		issuerKey := issuer.IssuerKey()
 | 
			
		||||
| 
						 | 
				
			
			@ -730,17 +848,9 @@ func (cfg *Config) RevokeCert(ctx context.Context, domain string, reason int, in
 | 
			
		|||
 | 
			
		||||
		cfg.emit("cert_revoked", domain)
 | 
			
		||||
 | 
			
		||||
		err = cfg.Storage.Delete(StorageKeys.SiteCert(issuerKey, domain))
 | 
			
		||||
		err = cfg.deleteSiteAssets(issuerKey, domain)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return fmt.Errorf("certificate revoked, but unable to delete certificate file: %v", err)
 | 
			
		||||
		}
 | 
			
		||||
		err = cfg.Storage.Delete(StorageKeys.SitePrivateKey(issuerKey, domain))
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return fmt.Errorf("certificate revoked, but unable to delete private key: %v", err)
 | 
			
		||||
		}
 | 
			
		||||
		err = cfg.Storage.Delete(StorageKeys.SiteMeta(issuerKey, domain))
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return fmt.Errorf("certificate revoked, but unable to delete certificate metadata: %v", err)
 | 
			
		||||
			return fmt.Errorf("certificate revoked, but unable to fully clean up assets from issuer %s: %v", issuerKey, err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -877,6 +987,29 @@ func (cfg *Config) storageHasCertResources(issuer Issuer, domain string) bool {
 | 
			
		|||
		cfg.Storage.Exists(metaKey)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// deleteSiteAssets deletes the folder in storage containing the
 | 
			
		||||
// certificate, private key, and metadata file for domain from the
 | 
			
		||||
// issuer with the given issuer key.
 | 
			
		||||
func (cfg *Config) deleteSiteAssets(issuerKey, domain string) error {
 | 
			
		||||
	err := cfg.Storage.Delete(StorageKeys.SiteCert(issuerKey, domain))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("deleting certificate file: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	err = cfg.Storage.Delete(StorageKeys.SitePrivateKey(issuerKey, domain))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("deleting private key: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	err = cfg.Storage.Delete(StorageKeys.SiteMeta(issuerKey, domain))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("deleting metadata file: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	err = cfg.Storage.Delete(StorageKeys.CertsSitePrefix(issuerKey, domain))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("deleting site asset folder: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// lockKey returns a key for a lock that is specific to the operation
 | 
			
		||||
// named op being performed related to domainName and this config's CA.
 | 
			
		||||
func (cfg *Config) lockKey(op, domainName string) string {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										11
									
								
								vendor/github.com/caddyserver/certmagic/crypto.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/caddyserver/certmagic/crypto.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -229,25 +229,24 @@ func (cfg *Config) loadCertResourceAnyIssuer(certNamesKey string) (CertificateRe
 | 
			
		|||
 | 
			
		||||
// loadCertResource loads a certificate resource from the given issuer's storage location.
 | 
			
		||||
func (cfg *Config) loadCertResource(issuer Issuer, certNamesKey string) (CertificateResource, error) {
 | 
			
		||||
	var certRes CertificateResource
 | 
			
		||||
	issuerKey := issuer.IssuerKey()
 | 
			
		||||
	certRes := CertificateResource{issuerKey: issuer.IssuerKey()}
 | 
			
		||||
 | 
			
		||||
	normalizedName, err := idna.ToASCII(certNamesKey)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return certRes, fmt.Errorf("converting '%s' to ASCII: %v", certNamesKey, err)
 | 
			
		||||
		return CertificateResource{}, fmt.Errorf("converting '%s' to ASCII: %v", certNamesKey, err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	certBytes, err := cfg.Storage.Load(StorageKeys.SiteCert(issuerKey, normalizedName))
 | 
			
		||||
	certBytes, err := cfg.Storage.Load(StorageKeys.SiteCert(certRes.issuerKey, normalizedName))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return CertificateResource{}, err
 | 
			
		||||
	}
 | 
			
		||||
	certRes.CertificatePEM = certBytes
 | 
			
		||||
	keyBytes, err := cfg.Storage.Load(StorageKeys.SitePrivateKey(issuerKey, normalizedName))
 | 
			
		||||
	keyBytes, err := cfg.Storage.Load(StorageKeys.SitePrivateKey(certRes.issuerKey, normalizedName))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return CertificateResource{}, err
 | 
			
		||||
	}
 | 
			
		||||
	certRes.PrivateKeyPEM = keyBytes
 | 
			
		||||
	metaBytes, err := cfg.Storage.Load(StorageKeys.SiteMeta(issuerKey, normalizedName))
 | 
			
		||||
	metaBytes, err := cfg.Storage.Load(StorageKeys.SiteMeta(certRes.issuerKey, normalizedName))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return CertificateResource{}, err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										14
									
								
								vendor/github.com/caddyserver/certmagic/dnsutil.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/caddyserver/certmagic/dnsutil.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -313,11 +313,17 @@ func updateDomainWithCName(r *dns.Msg, fqdn string) string {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// recursiveNameservers are used to pre-check DNS propagation. It
 | 
			
		||||
// prepends user-configured nameservers (custom) to the defaults
 | 
			
		||||
// obtained from resolv.conf and defaultNameservers and ensures
 | 
			
		||||
// that all server addresses have a port value.
 | 
			
		||||
// picks user-configured nameservers (custom) OR the defaults
 | 
			
		||||
// obtained from resolv.conf and defaultNameservers if none is
 | 
			
		||||
// configured and ensures that all server addresses have a port value.
 | 
			
		||||
func recursiveNameservers(custom []string) []string {
 | 
			
		||||
	servers := append(custom, systemOrDefaultNameservers(defaultResolvConf, defaultNameservers)...)
 | 
			
		||||
	var servers []string
 | 
			
		||||
	if len(custom) == 0 {
 | 
			
		||||
		servers = systemOrDefaultNameservers(defaultResolvConf, defaultNameservers)
 | 
			
		||||
	} else {
 | 
			
		||||
		servers = make([]string, len(custom))
 | 
			
		||||
		copy(servers, custom)
 | 
			
		||||
	}
 | 
			
		||||
	populateNameserverPorts(servers)
 | 
			
		||||
	return servers
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								vendor/github.com/caddyserver/certmagic/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/caddyserver/certmagic/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -4,10 +4,10 @@ go 1.14
 | 
			
		|||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/klauspost/cpuid/v2 v2.0.6
 | 
			
		||||
	github.com/libdns/libdns v0.2.0
 | 
			
		||||
	github.com/libdns/libdns v0.2.1
 | 
			
		||||
	github.com/mholt/acmez v0.1.3
 | 
			
		||||
	github.com/miekg/dns v1.1.30
 | 
			
		||||
	go.uber.org/zap v1.15.0
 | 
			
		||||
	golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de
 | 
			
		||||
	golang.org/x/net v0.0.0-20200707034311-ab3426394381
 | 
			
		||||
	github.com/miekg/dns v1.1.42
 | 
			
		||||
	go.uber.org/zap v1.17.0
 | 
			
		||||
	golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a
 | 
			
		||||
	golang.org/x/net v0.0.0-20210525063256-abc453219eb5
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										59
									
								
								vendor/github.com/caddyserver/certmagic/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										59
									
								
								vendor/github.com/caddyserver/certmagic/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,4 +1,3 @@
 | 
			
		|||
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 | 
			
		||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
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=
 | 
			
		||||
| 
						 | 
				
			
			@ -12,12 +11,12 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN
 | 
			
		|||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 | 
			
		||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
 | 
			
		||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 | 
			
		||||
github.com/libdns/libdns v0.2.0 h1:ewg3ByWrdUrxrje8ChPVMBNcotg7H9LQYg+u5De2RzI=
 | 
			
		||||
github.com/libdns/libdns v0.2.0/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40=
 | 
			
		||||
github.com/libdns/libdns v0.2.1 h1:Wu59T7wSHRgtA0cfxC+n1c/e+O3upJGWytknkmFEDis=
 | 
			
		||||
github.com/libdns/libdns v0.2.1/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40=
 | 
			
		||||
github.com/mholt/acmez v0.1.3 h1:J7MmNIk4Qf9b8mAGqAh4XkNeowv3f1zW816yf4zt7Qk=
 | 
			
		||||
github.com/mholt/acmez v0.1.3/go.mod h1:8qnn8QA/Ewx8E3ZSsmscqsIjhhpxuy9vqdgbX2ceceM=
 | 
			
		||||
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.42 h1:gWGe42RGaIqXQZ+r3WUGEKBEtvPHY2SXo4dqixDNxuY=
 | 
			
		||||
github.com/miekg/dns v1.1.42/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
 | 
			
		||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
 | 
			
		||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 | 
			
		||||
| 
						 | 
				
			
			@ -25,54 +24,62 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
 | 
			
		|||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 | 
			
		||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
			
		||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
 | 
			
		||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 | 
			
		||||
go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk=
 | 
			
		||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
 | 
			
		||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 | 
			
		||||
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
 | 
			
		||||
go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A=
 | 
			
		||||
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.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.15.0 h1:ZZCA22JRF2gQE5FoNmhmrf7jeJJ2uhqDUNRYKm8dvmM=
 | 
			
		||||
go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
 | 
			
		||||
go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U=
 | 
			
		||||
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de h1:ikNHVSjEfnvz6sxdSPCaPt572qowuyMDMJLLm3Db3ig=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a h1:kr2P4QFmQr29mSLA43kwrOcgcReGTfbE9N577tCTuBc=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 | 
			
		||||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
 | 
			
		||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 | 
			
		||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
 | 
			
		||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
 | 
			
		||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 | 
			
		||||
golang.org/x/net v0.0.0-20210525063256-abc453219eb5 h1:wjuX4b5yYQnEQHzd+CBcrcC6OVR2J1CN6mUy0oSxIPo=
 | 
			
		||||
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
 | 
			
		||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
			
		||||
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
 | 
			
		||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191216052735-49a3e744a425 h1:VvQyQJN0tSuecqgcIxMWnnfG5kSmgy9KZR9sW3W5QeA=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
			
		||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
 | 
			
		||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
			
		||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/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.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/caddyserver/certmagic/handshake.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/caddyserver/certmagic/handshake.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -375,7 +375,7 @@ func (cfg *Config) obtainOnDemandCertificate(hello *tls.ClientHelloInfo) (Certif
 | 
			
		|||
	defer cancel()
 | 
			
		||||
 | 
			
		||||
	// Obtain the certificate
 | 
			
		||||
	err = cfg.ObtainCert(ctx, name, false)
 | 
			
		||||
	err = cfg.ObtainCertAsync(ctx, name)
 | 
			
		||||
 | 
			
		||||
	// immediately unblock anyone waiting for it; doing this in
 | 
			
		||||
	// a defer would risk deadlock because of the recursive call
 | 
			
		||||
| 
						 | 
				
			
			@ -520,7 +520,7 @@ func (cfg *Config) renewDynamicCertificate(hello *tls.ClientHelloInfo, currentCe
 | 
			
		|||
	// Renew and reload the certificate
 | 
			
		||||
	renewAndReload := func(ctx context.Context, cancel context.CancelFunc) (Certificate, error) {
 | 
			
		||||
		defer cancel()
 | 
			
		||||
		err = cfg.RenewCert(ctx, name, false)
 | 
			
		||||
		err = cfg.RenewCertAsync(ctx, name, false)
 | 
			
		||||
		if err == nil {
 | 
			
		||||
			// even though the recursive nature of the dynamic cert loading
 | 
			
		||||
			// would just call this function anyway, we do it here to
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										126
									
								
								vendor/github.com/caddyserver/certmagic/maintain.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										126
									
								
								vendor/github.com/caddyserver/certmagic/maintain.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -25,6 +25,7 @@ import (
 | 
			
		|||
	"strings"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/mholt/acmez/acme"
 | 
			
		||||
	"go.uber.org/zap"
 | 
			
		||||
	"golang.org/x/crypto/ocsp"
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			@ -250,7 +251,7 @@ func (certCache *Cache) queueRenewalTask(ctx context.Context, oldCert Certificat
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		// perform renewal - crucially, this happens OUTSIDE a lock on certCache
 | 
			
		||||
		err := cfg.RenewCert(ctx, renewName, false)
 | 
			
		||||
		err := cfg.RenewCertAsync(ctx, renewName, false)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if cfg.OnDemand != nil {
 | 
			
		||||
				// loaded dynamically, remove dynamically
 | 
			
		||||
| 
						 | 
				
			
			@ -280,7 +281,7 @@ func (certCache *Cache) queueRenewalTask(ctx context.Context, oldCert Certificat
 | 
			
		|||
// Ryan Sleevi's recommendations for good OCSP support:
 | 
			
		||||
// https://gist.github.com/sleevi/5efe9ef98961ecfb4da8
 | 
			
		||||
func (certCache *Cache) updateOCSPStaples(ctx context.Context) {
 | 
			
		||||
	log := loggerNamed(certCache.logger, "maintenance")
 | 
			
		||||
	logger := loggerNamed(certCache.logger, "maintenance")
 | 
			
		||||
 | 
			
		||||
	// temporary structures to store updates or tasks
 | 
			
		||||
	// so that we can keep our locks short-lived
 | 
			
		||||
| 
						 | 
				
			
			@ -293,9 +294,13 @@ func (certCache *Cache) updateOCSPStaples(ctx context.Context) {
 | 
			
		|||
		certHash       string
 | 
			
		||||
		lastNextUpdate time.Time
 | 
			
		||||
	}
 | 
			
		||||
	type renewQueueEntry struct {
 | 
			
		||||
		oldCert  Certificate
 | 
			
		||||
		ocspResp *ocsp.Response
 | 
			
		||||
	}
 | 
			
		||||
	updated := make(map[string]ocspUpdate)
 | 
			
		||||
	var updateQueue []updateQueueEntry
 | 
			
		||||
	var renewQueue []Certificate
 | 
			
		||||
	var updateQueue []updateQueueEntry // certs that need a refreshed staple
 | 
			
		||||
	var renewQueue []renewQueueEntry   // certs that need to be renewed (due to revocation)
 | 
			
		||||
	configs := make(map[string]*Config)
 | 
			
		||||
 | 
			
		||||
	// obtain brief read lock during our scan to see which staples need updating
 | 
			
		||||
| 
						 | 
				
			
			@ -324,8 +329,8 @@ func (certCache *Cache) updateOCSPStaples(ctx context.Context) {
 | 
			
		|||
 | 
			
		||||
		cfg, err := certCache.getConfig(cert)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if log != nil {
 | 
			
		||||
				log.Error("unable to refresh OCSP staple because getting automation config for certificate failed",
 | 
			
		||||
			if logger != nil {
 | 
			
		||||
				logger.Error("unable to refresh OCSP staple because getting automation config for certificate failed",
 | 
			
		||||
					zap.Strings("identifiers", cert.Names),
 | 
			
		||||
					zap.Error(err))
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			@ -333,8 +338,8 @@ func (certCache *Cache) updateOCSPStaples(ctx context.Context) {
 | 
			
		|||
		}
 | 
			
		||||
		if cfg == nil {
 | 
			
		||||
			// this is bad if this happens, probably a programmer error (oops)
 | 
			
		||||
			if log != nil {
 | 
			
		||||
				log.Error("no configuration associated with certificate; unable to manage OCSP staples",
 | 
			
		||||
			if logger != nil {
 | 
			
		||||
				logger.Error("no configuration associated with certificate; unable to manage OCSP staples",
 | 
			
		||||
					zap.Strings("identifiers", cert.Names))
 | 
			
		||||
			}
 | 
			
		||||
			continue
 | 
			
		||||
| 
						 | 
				
			
			@ -344,8 +349,8 @@ func (certCache *Cache) updateOCSPStaples(ctx context.Context) {
 | 
			
		|||
		if err != nil || ocspResp == nil {
 | 
			
		||||
			if cert.ocsp != nil {
 | 
			
		||||
				// if there was no staple before, that's fine; otherwise we should log the error
 | 
			
		||||
				if log != nil {
 | 
			
		||||
					log.Error("stapling OCSP",
 | 
			
		||||
				if logger != nil {
 | 
			
		||||
					logger.Error("stapling OCSP",
 | 
			
		||||
						zap.Strings("identifiers", cert.Names),
 | 
			
		||||
						zap.Error(err))
 | 
			
		||||
				}
 | 
			
		||||
| 
						 | 
				
			
			@ -357,8 +362,8 @@ func (certCache *Cache) updateOCSPStaples(ctx context.Context) {
 | 
			
		|||
		// If there was no staple before, or if the response is updated, make
 | 
			
		||||
		// sure we apply the update to all names on the certificate.
 | 
			
		||||
		if cert.ocsp != nil && (lastNextUpdate.IsZero() || lastNextUpdate != cert.ocsp.NextUpdate) {
 | 
			
		||||
			if log != nil {
 | 
			
		||||
				log.Info("advancing OCSP staple",
 | 
			
		||||
			if logger != nil {
 | 
			
		||||
				logger.Info("advancing OCSP staple",
 | 
			
		||||
					zap.Strings("identifiers", cert.Names),
 | 
			
		||||
					zap.Time("from", lastNextUpdate),
 | 
			
		||||
					zap.Time("to", cert.ocsp.NextUpdate))
 | 
			
		||||
| 
						 | 
				
			
			@ -366,10 +371,12 @@ func (certCache *Cache) updateOCSPStaples(ctx context.Context) {
 | 
			
		|||
			updated[certHash] = ocspUpdate{rawBytes: cert.Certificate.OCSPStaple, parsed: cert.ocsp}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// If a managed certificate was revoked, we should attempt
 | 
			
		||||
		// to replace it with a new one. If that fails, oh well.
 | 
			
		||||
		// If a managed certificate was revoked, we should attempt to replace it with a new one.
 | 
			
		||||
		if cert.managed && ocspResp.Status == ocsp.Revoked && len(cert.Names) > 0 {
 | 
			
		||||
			renewQueue = append(renewQueue, cert)
 | 
			
		||||
			renewQueue = append(renewQueue, renewQueueEntry{
 | 
			
		||||
				oldCert:  cert,
 | 
			
		||||
				ocspResp: ocspResp,
 | 
			
		||||
			})
 | 
			
		||||
			configs[cert.Names[0]] = cfg
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -386,35 +393,61 @@ func (certCache *Cache) updateOCSPStaples(ctx context.Context) {
 | 
			
		|||
 | 
			
		||||
	// We attempt to replace any certificates that were revoked.
 | 
			
		||||
	// Crucially, this happens OUTSIDE a lock on the certCache.
 | 
			
		||||
	for _, oldCert := range renewQueue {
 | 
			
		||||
		if log != nil {
 | 
			
		||||
			log.Warn("OCSP status for managed certificate is REVOKED; attempting to replace with new certificate",
 | 
			
		||||
				zap.Strings("identifiers", oldCert.Names),
 | 
			
		||||
				zap.Time("expiration", oldCert.Leaf.NotAfter))
 | 
			
		||||
	for _, renew := range renewQueue {
 | 
			
		||||
		if logger != nil {
 | 
			
		||||
			logger.Warn("OCSP status for managed certificate is REVOKED; attempting to replace with new certificate",
 | 
			
		||||
				zap.Strings("identifiers", renew.oldCert.Names),
 | 
			
		||||
				zap.Time("expiration", renew.oldCert.Leaf.NotAfter))
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		renewName := oldCert.Names[0]
 | 
			
		||||
		renewName := renew.oldCert.Names[0]
 | 
			
		||||
		cfg := configs[renewName]
 | 
			
		||||
 | 
			
		||||
		// TODO: consider using a new key in this situation, but we don't know if key storage has been compromised...
 | 
			
		||||
		err := cfg.RenewCert(ctx, renewName, false)
 | 
			
		||||
		// if revoked for key compromise, we can't be sure whether the storage of
 | 
			
		||||
		// the key is still safe; however, we KNOW the old key is not safe, and we
 | 
			
		||||
		// can only hope by the time of revocation that storage has been secured;
 | 
			
		||||
		// key management is not something we want to get into, but in this case
 | 
			
		||||
		// it seems prudent to replace the key - and since renewal requires reuse
 | 
			
		||||
		// of a prior key, we can't do a "renew" to replace the cert if we need a
 | 
			
		||||
		// new key, so we'll have to do an obtain instead
 | 
			
		||||
		var obtainInsteadOfRenew bool
 | 
			
		||||
		if renew.ocspResp.RevocationReason == acme.ReasonKeyCompromise {
 | 
			
		||||
			err := cfg.moveCompromisedPrivateKey(renew.oldCert, logger)
 | 
			
		||||
			if err != nil && logger != nil {
 | 
			
		||||
				logger.Error("could not remove compromised private key from use",
 | 
			
		||||
					zap.Strings("identifiers", renew.oldCert.Names),
 | 
			
		||||
					zap.String("issuer", renew.oldCert.issuerKey),
 | 
			
		||||
					zap.Error(err))
 | 
			
		||||
			}
 | 
			
		||||
			obtainInsteadOfRenew = true
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		var err error
 | 
			
		||||
		if obtainInsteadOfRenew {
 | 
			
		||||
			err = cfg.ObtainCertAsync(ctx, renewName)
 | 
			
		||||
		} else {
 | 
			
		||||
			// notice that we force renewal; otherwise, it might see that the
 | 
			
		||||
			// certificate isn't close to expiring and return, but we really
 | 
			
		||||
			// need a replacement certificate! see issue #4191
 | 
			
		||||
			err = cfg.RenewCertAsync(ctx, renewName, true)
 | 
			
		||||
		}
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			// probably better to not serve a revoked certificate at all
 | 
			
		||||
			if log != nil {
 | 
			
		||||
				log.Error("unable to obtain new to certificate after OCSP status of REVOKED; removing from cache",
 | 
			
		||||
					zap.Strings("identifiers", oldCert.Names),
 | 
			
		||||
			if logger != nil {
 | 
			
		||||
				logger.Error("unable to obtain new to certificate after OCSP status of REVOKED; removing from cache",
 | 
			
		||||
					zap.Strings("identifiers", renew.oldCert.Names),
 | 
			
		||||
					zap.Error(err))
 | 
			
		||||
			}
 | 
			
		||||
			certCache.mu.Lock()
 | 
			
		||||
			certCache.removeCertificate(oldCert)
 | 
			
		||||
			certCache.removeCertificate(renew.oldCert)
 | 
			
		||||
			certCache.mu.Unlock()
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		err = cfg.reloadManagedCertificate(oldCert)
 | 
			
		||||
		err = cfg.reloadManagedCertificate(renew.oldCert)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if log != nil {
 | 
			
		||||
				log.Error("after obtaining new certificate due to OCSP status of REVOKED",
 | 
			
		||||
					zap.Strings("identifiers", oldCert.Names),
 | 
			
		||||
			if logger != nil {
 | 
			
		||||
				logger.Error("after obtaining new certificate due to OCSP status of REVOKED",
 | 
			
		||||
					zap.Strings("identifiers", renew.oldCert.Names),
 | 
			
		||||
					zap.Error(err))
 | 
			
		||||
			}
 | 
			
		||||
			continue
 | 
			
		||||
| 
						 | 
				
			
			@ -566,6 +599,37 @@ func deleteExpiredCerts(ctx context.Context, storage Storage, gracePeriod time.D
 | 
			
		|||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// moveCompromisedPrivateKey moves the private key for cert to a ".compromised" file
 | 
			
		||||
// by copying the data to the new file, then deleting the old one.
 | 
			
		||||
func (cfg *Config) moveCompromisedPrivateKey(cert Certificate, logger *zap.Logger) error {
 | 
			
		||||
	privKeyStorageKey := StorageKeys.SitePrivateKey(cert.issuerKey, cert.Names[0])
 | 
			
		||||
 | 
			
		||||
	privKeyPEM, err := cfg.Storage.Load(privKeyStorageKey)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	compromisedPrivKeyStorageKey := privKeyStorageKey + ".compromised"
 | 
			
		||||
	err = cfg.Storage.Store(compromisedPrivKeyStorageKey, privKeyPEM)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		// better safe than sorry: as a last resort, try deleting the key so it won't be reused
 | 
			
		||||
		cfg.Storage.Delete(privKeyStorageKey)
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = cfg.Storage.Delete(privKeyStorageKey)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	logger.Info("removed certificate's compromised private key from use",
 | 
			
		||||
		zap.String("storage_path", compromisedPrivKeyStorageKey),
 | 
			
		||||
		zap.Strings("identifiers", cert.Names),
 | 
			
		||||
		zap.String("issuer", cert.issuerKey))
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	// DefaultRenewCheckInterval is how often to check certificates for expiration.
 | 
			
		||||
	// Scans are very lightweight, so this can be semi-frequent. This default should
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/go-enry/go-enry/v2/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-enry/go-enry/v2/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -156,7 +156,7 @@ Generated Rust bindings using a C static library are available at https://github
 | 
			
		|||
 | 
			
		||||
## Divergences from Linguist
 | 
			
		||||
 | 
			
		||||
The `enry` library is based on the data from `github/linguist` version **v7.13.0**.
 | 
			
		||||
The `enry` library is based on the data from `github/linguist` version **v7.14.0**.
 | 
			
		||||
 | 
			
		||||
Parsing [linguist/samples](https://github.com/github/linguist/tree/master/samples) the following `enry` results are different from the Linguist:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										34
									
								
								vendor/github.com/go-enry/go-enry/v2/data/alias.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								vendor/github.com/go-enry/go-enry/v2/data/alias.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -80,6 +80,7 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"ballerina":                          "Ballerina",
 | 
			
		||||
	"bash":                               "Shell",
 | 
			
		||||
	"bash_session":                       "ShellSession",
 | 
			
		||||
	"basic":                              "BASIC",
 | 
			
		||||
	"bat":                                "Batchfile",
 | 
			
		||||
	"batch":                              "Batchfile",
 | 
			
		||||
	"batchfile":                          "Batchfile",
 | 
			
		||||
| 
						 | 
				
			
			@ -87,6 +88,7 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"beef":                               "Beef",
 | 
			
		||||
	"befunge":                            "Befunge",
 | 
			
		||||
	"bibtex":                             "BibTeX",
 | 
			
		||||
	"bicep":                              "Bicep",
 | 
			
		||||
	"bison":                              "Bison",
 | 
			
		||||
	"bitbake":                            "BitBake",
 | 
			
		||||
	"blade":                              "Blade",
 | 
			
		||||
| 
						 | 
				
			
			@ -141,6 +143,7 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"cmake":                              "CMake",
 | 
			
		||||
	"cobol":                              "COBOL",
 | 
			
		||||
	"coccinelle":                         "SmPL",
 | 
			
		||||
	"codeowners":                         "CODEOWNERS",
 | 
			
		||||
	"codeql":                             "CodeQL",
 | 
			
		||||
	"coffee":                             "CoffeeScript",
 | 
			
		||||
	"coffee-script":                      "CoffeeScript",
 | 
			
		||||
| 
						 | 
				
			
			@ -195,7 +198,8 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"digital_command_language":           "DIGITAL Command Language",
 | 
			
		||||
	"dircolors":                          "dircolors",
 | 
			
		||||
	"directx_3d_file":                    "DirectX 3D File",
 | 
			
		||||
	"django":                             "HTML+Django",
 | 
			
		||||
	"django":                             "Jinja",
 | 
			
		||||
	"dlang":                              "D",
 | 
			
		||||
	"dm":                                 "DM",
 | 
			
		||||
	"dns_zone":                           "DNS Zone",
 | 
			
		||||
	"dockerfile":                         "Dockerfile",
 | 
			
		||||
| 
						 | 
				
			
			@ -240,6 +244,7 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"fancy":                              "Fancy",
 | 
			
		||||
	"fantom":                             "Fantom",
 | 
			
		||||
	"faust":                              "Faust",
 | 
			
		||||
	"fb":                                 "FreeBasic",
 | 
			
		||||
	"figfont":                            "FIGlet Font",
 | 
			
		||||
	"figlet_font":                        "FIGlet Font",
 | 
			
		||||
	"filebench_wml":                      "Filebench WML",
 | 
			
		||||
| 
						 | 
				
			
			@ -252,6 +257,7 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"fortran":                            "Fortran",
 | 
			
		||||
	"fortran_free_form":                  "Fortran Free Form",
 | 
			
		||||
	"foxpro":                             "xBase",
 | 
			
		||||
	"freebasic":                          "FreeBasic",
 | 
			
		||||
	"freemarker":                         "FreeMarker",
 | 
			
		||||
	"frege":                              "Frege",
 | 
			
		||||
	"fsharp":                             "F#",
 | 
			
		||||
| 
						 | 
				
			
			@ -268,6 +274,7 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"gdb":                                "GDB",
 | 
			
		||||
	"gdscript":                           "GDScript",
 | 
			
		||||
	"gedcom":                             "GEDCOM",
 | 
			
		||||
	"gemfile.lock":                       "Gemfile.lock",
 | 
			
		||||
	"genie":                              "Genie",
 | 
			
		||||
	"genshi":                             "Genshi",
 | 
			
		||||
	"gentoo_ebuild":                      "Gentoo Ebuild",
 | 
			
		||||
| 
						 | 
				
			
			@ -316,17 +323,16 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"hlsl":                               "HLSL",
 | 
			
		||||
	"holyc":                              "HolyC",
 | 
			
		||||
	"html":                               "HTML",
 | 
			
		||||
	"html+django":                        "HTML+Django",
 | 
			
		||||
	"html+django/jinja":                  "HTML+Django",
 | 
			
		||||
	"html+django":                        "Jinja",
 | 
			
		||||
	"html+ecr":                           "HTML+ECR",
 | 
			
		||||
	"html+eex":                           "HTML+EEX",
 | 
			
		||||
	"html+erb":                           "HTML+ERB",
 | 
			
		||||
	"html+jinja":                         "HTML+Django",
 | 
			
		||||
	"html+jinja":                         "Jinja",
 | 
			
		||||
	"html+php":                           "HTML+PHP",
 | 
			
		||||
	"html+razor":                         "HTML+Razor",
 | 
			
		||||
	"html+ruby":                          "HTML+ERB",
 | 
			
		||||
	"htmlbars":                           "Handlebars",
 | 
			
		||||
	"htmldjango":                         "HTML+Django",
 | 
			
		||||
	"htmldjango":                         "Jinja",
 | 
			
		||||
	"http":                               "HTTP",
 | 
			
		||||
	"hxml":                               "HXML",
 | 
			
		||||
	"hy":                                 "Hy",
 | 
			
		||||
| 
						 | 
				
			
			@ -365,9 +371,11 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"javascript":                         "JavaScript",
 | 
			
		||||
	"javascript+erb":                     "JavaScript+ERB",
 | 
			
		||||
	"jflex":                              "JFlex",
 | 
			
		||||
	"jinja":                              "Jinja",
 | 
			
		||||
	"jison":                              "Jison",
 | 
			
		||||
	"jison_lex":                          "Jison Lex",
 | 
			
		||||
	"jolie":                              "Jolie",
 | 
			
		||||
	"jq":                                 "jq",
 | 
			
		||||
	"jruby":                              "Ruby",
 | 
			
		||||
	"js":                                 "JavaScript",
 | 
			
		||||
	"json":                               "JSON",
 | 
			
		||||
| 
						 | 
				
			
			@ -388,6 +396,7 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"kotlin":                             "Kotlin",
 | 
			
		||||
	"krl":                                "KRL",
 | 
			
		||||
	"ksy":                                "Kaitai Struct",
 | 
			
		||||
	"kusto":                              "Kusto",
 | 
			
		||||
	"labview":                            "LabVIEW",
 | 
			
		||||
	"lark":                               "Lark",
 | 
			
		||||
	"lasso":                              "Lasso",
 | 
			
		||||
| 
						 | 
				
			
			@ -456,6 +465,7 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"metal":                              "Metal",
 | 
			
		||||
	"mf":                                 "Makefile",
 | 
			
		||||
	"microsoft_developer_studio_project": "Microsoft Developer Studio Project",
 | 
			
		||||
	"microsoft_visual_studio_solution":   "Microsoft Visual Studio Solution",
 | 
			
		||||
	"minid":                              "MiniD",
 | 
			
		||||
	"mirah":                              "Mirah",
 | 
			
		||||
	"mirc_script":                        "mIRC Script",
 | 
			
		||||
| 
						 | 
				
			
			@ -649,6 +659,8 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"red":                                "Red",
 | 
			
		||||
	"red/system":                         "Red",
 | 
			
		||||
	"redcode":                            "Redcode",
 | 
			
		||||
	"redirect_rules":                     "Redirect Rules",
 | 
			
		||||
	"redirects":                          "Redirect Rules",
 | 
			
		||||
	"regex":                              "Regular Expression",
 | 
			
		||||
	"regexp":                             "Regular Expression",
 | 
			
		||||
	"regular_expression":                 "Regular Expression",
 | 
			
		||||
| 
						 | 
				
			
			@ -664,6 +676,9 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"riot":                               "Riot",
 | 
			
		||||
	"rmarkdown":                          "RMarkdown",
 | 
			
		||||
	"robotframework":                     "RobotFramework",
 | 
			
		||||
	"robots":                             "robots.txt",
 | 
			
		||||
	"robots.txt":                         "robots.txt",
 | 
			
		||||
	"robots_txt":                         "robots.txt",
 | 
			
		||||
	"roff":                               "Roff",
 | 
			
		||||
	"roff_manpage":                       "Roff Manpage",
 | 
			
		||||
	"rouge":                              "Rouge",
 | 
			
		||||
| 
						 | 
				
			
			@ -698,6 +713,7 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"shellsession":                       "ShellSession",
 | 
			
		||||
	"shen":                               "Shen",
 | 
			
		||||
	"sieve":                              "Sieve",
 | 
			
		||||
	"singularity":                        "Singularity",
 | 
			
		||||
	"slash":                              "Slash",
 | 
			
		||||
	"slice":                              "Slice",
 | 
			
		||||
	"slim":                               "Slim",
 | 
			
		||||
| 
						 | 
				
			
			@ -729,6 +745,7 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"starlark":                           "Starlark",
 | 
			
		||||
	"stata":                              "Stata",
 | 
			
		||||
	"ston":                               "STON",
 | 
			
		||||
	"stringtemplate":                     "StringTemplate",
 | 
			
		||||
	"stylus":                             "Stylus",
 | 
			
		||||
	"subrip_text":                        "SubRip Text",
 | 
			
		||||
	"sugarss":                            "SugarSS",
 | 
			
		||||
| 
						 | 
				
			
			@ -812,6 +829,10 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"winbatch":                           "Batchfile",
 | 
			
		||||
	"windows_registry_entries":           "Windows Registry Entries",
 | 
			
		||||
	"wisp":                               "wisp",
 | 
			
		||||
	"wl":                                 "Mathematica",
 | 
			
		||||
	"wolfram":                            "Mathematica",
 | 
			
		||||
	"wolfram_lang":                       "Mathematica",
 | 
			
		||||
	"wolfram_language":                   "Mathematica",
 | 
			
		||||
	"wollok":                             "Wollok",
 | 
			
		||||
	"world_of_warcraft_addon_data":       "World of Warcraft Addon Data",
 | 
			
		||||
	"wsdl":                               "XML",
 | 
			
		||||
| 
						 | 
				
			
			@ -830,6 +851,7 @@ var LanguageByAliasMap = map[string]string{
 | 
			
		|||
	"xml+kid":                            "Genshi",
 | 
			
		||||
	"xml_property_list":                  "XML Property List",
 | 
			
		||||
	"xojo":                               "Xojo",
 | 
			
		||||
	"xonsh":                              "Xonsh",
 | 
			
		||||
	"xpages":                             "XPages",
 | 
			
		||||
	"xpm":                                "X PixMap",
 | 
			
		||||
	"xproc":                              "XProc",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										13
									
								
								vendor/github.com/go-enry/go-enry/v2/data/colors.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/go-enry/go-enry/v2/data/colors.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -29,9 +29,11 @@ var LanguagesColor = map[string]string{
 | 
			
		|||
	"Asymptote":                "#ff0000",
 | 
			
		||||
	"AutoHotkey":               "#6594b9",
 | 
			
		||||
	"AutoIt":                   "#1C3552",
 | 
			
		||||
	"BASIC":                    "#ff0000",
 | 
			
		||||
	"Ballerina":                "#FF5000",
 | 
			
		||||
	"Batchfile":                "#C1F12E",
 | 
			
		||||
	"Beef":                     "#a52f4e",
 | 
			
		||||
	"Bicep":                    "#519aba",
 | 
			
		||||
	"Bison":                    "#6A463F",
 | 
			
		||||
	"Blade":                    "#f7523f",
 | 
			
		||||
	"BlitzMax":                 "#cd6400",
 | 
			
		||||
| 
						 | 
				
			
			@ -89,6 +91,7 @@ var LanguagesColor = map[string]string{
 | 
			
		|||
	"Faust":                    "#c37240",
 | 
			
		||||
	"Forth":                    "#341708",
 | 
			
		||||
	"Fortran":                  "#4d41b1",
 | 
			
		||||
	"FreeBasic":                "#867db1",
 | 
			
		||||
	"FreeMarker":               "#0050b2",
 | 
			
		||||
	"Frege":                    "#00cafe",
 | 
			
		||||
	"Futhark":                  "#5f021f",
 | 
			
		||||
| 
						 | 
				
			
			@ -96,6 +99,7 @@ var LanguagesColor = map[string]string{
 | 
			
		|||
	"GAML":                     "#FFC766",
 | 
			
		||||
	"GDScript":                 "#355570",
 | 
			
		||||
	"Game Maker Language":      "#71b417",
 | 
			
		||||
	"Gemfile.lock":             "#701516",
 | 
			
		||||
	"Genie":                    "#fb855d",
 | 
			
		||||
	"Gherkin":                  "#5B2063",
 | 
			
		||||
	"Glyph":                    "#c1ac7f",
 | 
			
		||||
| 
						 | 
				
			
			@ -128,6 +132,7 @@ var LanguagesColor = map[string]string{
 | 
			
		|||
	"JSONiq":                   "#40d47e",
 | 
			
		||||
	"Java":                     "#b07219",
 | 
			
		||||
	"JavaScript":               "#f1e05a",
 | 
			
		||||
	"Jinja":                    "#a52a22",
 | 
			
		||||
	"Jolie":                    "#843179",
 | 
			
		||||
	"Jsonnet":                  "#0064bd",
 | 
			
		||||
	"Julia":                    "#a270ba",
 | 
			
		||||
| 
						 | 
				
			
			@ -139,7 +144,7 @@ var LanguagesColor = map[string]string{
 | 
			
		|||
	"LLVM":                     "#185619",
 | 
			
		||||
	"LOLCODE":                  "#cc9900",
 | 
			
		||||
	"LSL":                      "#3d9970",
 | 
			
		||||
	"Lark":                     "#0b130f",
 | 
			
		||||
	"Lark":                     "#2980B9",
 | 
			
		||||
	"Lasso":                    "#999999",
 | 
			
		||||
	"Latte":                    "#f2a542",
 | 
			
		||||
	"Less":                     "#1d365d",
 | 
			
		||||
| 
						 | 
				
			
			@ -254,6 +259,7 @@ var LanguagesColor = map[string]string{
 | 
			
		|||
	"Self":                     "#0579aa",
 | 
			
		||||
	"Shell":                    "#89e051",
 | 
			
		||||
	"Shen":                     "#120F14",
 | 
			
		||||
	"Singularity":              "#64E6AD",
 | 
			
		||||
	"Slash":                    "#007eff",
 | 
			
		||||
	"Slice":                    "#003fa2",
 | 
			
		||||
	"Slim":                     "#2b2b2b",
 | 
			
		||||
| 
						 | 
				
			
			@ -265,6 +271,7 @@ var LanguagesColor = map[string]string{
 | 
			
		|||
	"Stan":                     "#b2011d",
 | 
			
		||||
	"Standard ML":              "#dc566d",
 | 
			
		||||
	"Starlark":                 "#76d275",
 | 
			
		||||
	"StringTemplate":           "#3fb34f",
 | 
			
		||||
	"Stylus":                   "#ff6347",
 | 
			
		||||
	"SuperCollider":            "#46390b",
 | 
			
		||||
	"Svelte":                   "#ff3e00",
 | 
			
		||||
| 
						 | 
				
			
			@ -297,6 +304,7 @@ var LanguagesColor = map[string]string{
 | 
			
		|||
	"XC":                       "#99DA07",
 | 
			
		||||
	"XQuery":                   "#5232e7",
 | 
			
		||||
	"XSLT":                     "#EB8CEB",
 | 
			
		||||
	"Xonsh":                    "#285EEF",
 | 
			
		||||
	"YAML":                     "#cb171e",
 | 
			
		||||
	"YARA":                     "#220000",
 | 
			
		||||
	"YASnippet":                "#32AB90",
 | 
			
		||||
| 
						 | 
				
			
			@ -307,6 +315,7 @@ var LanguagesColor = map[string]string{
 | 
			
		|||
	"Zephir":                   "#118f9e",
 | 
			
		||||
	"Zig":                      "#ec915c",
 | 
			
		||||
	"eC":                       "#913960",
 | 
			
		||||
	"jq":                       "#c7254e",
 | 
			
		||||
	"mIRC Script":              "#3d57c3",
 | 
			
		||||
	"mcfunction":               "#E22837",
 | 
			
		||||
	"nesC":                     "#94B0C7",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/go-enry/go-enry/v2/data/commit.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/go-enry/go-enry/v2/data/commit.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
// linguist's commit from which files were generated.
 | 
			
		||||
var LinguistCommit = "6aed0bd564f55c4f2d987c2e6035eda7aea26375"
 | 
			
		||||
var LinguistCommit = "95636e415749b0bf8fbf3f86922f788cf91c11a2"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										36
									
								
								vendor/github.com/go-enry/go-enry/v2/data/content.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/github.com/go-enry/go-enry/v2/data/content.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -619,6 +619,16 @@ var ContentHeuristics = map[string]*Heuristics{
 | 
			
		|||
			rule.MatchingLanguages("Asymptote"),
 | 
			
		||||
		),
 | 
			
		||||
	},
 | 
			
		||||
	".bas": &Heuristics{
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("FreeBasic"),
 | 
			
		||||
			regexp.MustCompile(`(?m)^[ \t]*#(?:define|endif|endmacro|ifn?def|if|include|lang|macro)\s`),
 | 
			
		||||
		),
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("BASIC"),
 | 
			
		||||
			regexp.MustCompile(`(?m)^\s*\d+`),
 | 
			
		||||
		),
 | 
			
		||||
	},
 | 
			
		||||
	".bb": &Heuristics{
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("BlitzBasic"),
 | 
			
		||||
| 
						 | 
				
			
			@ -629,6 +639,12 @@ var ContentHeuristics = map[string]*Heuristics{
 | 
			
		|||
			regexp.MustCompile(`(?m)^\s*(# |include|require)\b`),
 | 
			
		||||
		),
 | 
			
		||||
	},
 | 
			
		||||
	".bi": &Heuristics{
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("FreeBasic"),
 | 
			
		||||
			regexp.MustCompile(`(?m)^[ \t]*#(?:define|endif|endmacro|ifn?def|if|include|lang|macro)\s`),
 | 
			
		||||
		),
 | 
			
		||||
	},
 | 
			
		||||
	".builds": &Heuristics{
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("XML"),
 | 
			
		||||
| 
						 | 
				
			
			@ -658,7 +674,7 @@ var ContentHeuristics = map[string]*Heuristics{
 | 
			
		|||
	".cls": &Heuristics{
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("TeX"),
 | 
			
		||||
			regexp.MustCompile(`(?m)\\\w+{`),
 | 
			
		||||
			regexp.MustCompile(`(?m)^\s*\\(?:NeedsTeXFormat|ProvidesClass){`),
 | 
			
		||||
		),
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("ObjectScript"),
 | 
			
		||||
| 
						 | 
				
			
			@ -681,6 +697,16 @@ var ContentHeuristics = map[string]*Heuristics{
 | 
			
		|||
			regexp.MustCompile(`(?m)^(\s*namespace\s*[\w\.]+\s*{|\s*\/\/)`),
 | 
			
		||||
		),
 | 
			
		||||
	},
 | 
			
		||||
	".csl": &Heuristics{
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("XML"),
 | 
			
		||||
			regexp.MustCompile(`(?m)(?i:^\s*(\<\?xml|xmlns))`),
 | 
			
		||||
		),
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("Kusto"),
 | 
			
		||||
			regexp.MustCompile(`(?m)(^\|\s*(where|extend|project|limit|summarize))|(^\.\w+)`),
 | 
			
		||||
		),
 | 
			
		||||
	},
 | 
			
		||||
	".d": &Heuristics{
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("D"),
 | 
			
		||||
| 
						 | 
				
			
			@ -1390,6 +1416,12 @@ var ContentHeuristics = map[string]*Heuristics{
 | 
			
		|||
			regexp.MustCompile(`(?m)^(\d{2}:\d{2}:\d{2},\d{3})\s*(-->)\s*(\d{2}:\d{2}:\d{2},\d{3})$`),
 | 
			
		||||
		),
 | 
			
		||||
	},
 | 
			
		||||
	".st": &Heuristics{
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("Smalltalk"),
 | 
			
		||||
			regexp.MustCompile(`(?m)\A\s*[\[{(^"'\w#]|[a-zA-Z_]\w*\s*:=\s*[a-zA-Z_]\w*|class\s*>>\s*[a-zA-Z_]\w*|^[a-zA-Z_]\w*\s+[a-zA-Z_]\w*:|^Class\s*{|if(?:True|False):\s*\[`),
 | 
			
		||||
		),
 | 
			
		||||
	},
 | 
			
		||||
	".t": &Heuristics{
 | 
			
		||||
		rule.Or(
 | 
			
		||||
			rule.MatchingLanguages("Perl"),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/go-enry/go-enry/v2/data/documentation.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-enry/go-enry/v2/data/documentation.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										38
									
								
								vendor/github.com/go-enry/go-enry/v2/data/extension.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								vendor/github.com/go-enry/go-enry/v2/data/extension.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -97,7 +97,7 @@ var LanguagesByExtension = map[string][]string{
 | 
			
		|||
	".axs.erb":             {"NetLinx+ERB"},
 | 
			
		||||
	".b":                   {"Brainfuck", "Limbo"},
 | 
			
		||||
	".bal":                 {"Ballerina"},
 | 
			
		||||
	".bas":                 {"VBA"},
 | 
			
		||||
	".bas":                 {"BASIC", "FreeBasic", "VBA"},
 | 
			
		||||
	".bash":                {"Shell"},
 | 
			
		||||
	".bat":                 {"Batchfile"},
 | 
			
		||||
	".bats":                {"Shell"},
 | 
			
		||||
| 
						 | 
				
			
			@ -107,8 +107,10 @@ var LanguagesByExtension = map[string][]string{
 | 
			
		|||
	".bdy":                 {"PLSQL"},
 | 
			
		||||
	".befunge":             {"Befunge"},
 | 
			
		||||
	".bf":                  {"Beef", "Brainfuck", "HyPhy"},
 | 
			
		||||
	".bi":                  {"FreeBasic"},
 | 
			
		||||
	".bib":                 {"BibTeX"},
 | 
			
		||||
	".bibtex":              {"BibTeX"},
 | 
			
		||||
	".bicep":               {"Bicep"},
 | 
			
		||||
	".bison":               {"Bison"},
 | 
			
		||||
	".blade":               {"Blade"},
 | 
			
		||||
	".blade.php":           {"Blade"},
 | 
			
		||||
| 
						 | 
				
			
			@ -200,7 +202,7 @@ var LanguagesByExtension = map[string][]string{
 | 
			
		|||
	".csdef":               {"XML"},
 | 
			
		||||
	".csh":                 {"Tcsh"},
 | 
			
		||||
	".cshtml":              {"HTML+Razor"},
 | 
			
		||||
	".csl":                 {"XML"},
 | 
			
		||||
	".csl":                 {"Kusto", "XML"},
 | 
			
		||||
	".cson":                {"CSON"},
 | 
			
		||||
	".csproj":              {"XML"},
 | 
			
		||||
	".css":                 {"CSS"},
 | 
			
		||||
| 
						 | 
				
			
			@ -474,19 +476,19 @@ var LanguagesByExtension = map[string][]string{
 | 
			
		|||
	".iuml":                {"PlantUML"},
 | 
			
		||||
	".ivy":                 {"XML"},
 | 
			
		||||
	".j":                   {"Jasmin", "Objective-J"},
 | 
			
		||||
	".j2":                  {"HTML+Django"},
 | 
			
		||||
	".j2":                  {"Jinja"},
 | 
			
		||||
	".jade":                {"Pug"},
 | 
			
		||||
	".jake":                {"JavaScript"},
 | 
			
		||||
	".java":                {"Java"},
 | 
			
		||||
	".jbuilder":            {"Ruby"},
 | 
			
		||||
	".jelly":               {"XML"},
 | 
			
		||||
	".jflex":               {"JFlex"},
 | 
			
		||||
	".jinja":               {"HTML+Django"},
 | 
			
		||||
	".jinja2":              {"HTML+Django"},
 | 
			
		||||
	".jinja":               {"Jinja"},
 | 
			
		||||
	".jinja2":              {"Jinja"},
 | 
			
		||||
	".jison":               {"Jison"},
 | 
			
		||||
	".jisonlex":            {"Jison Lex"},
 | 
			
		||||
	".jl":                  {"Julia"},
 | 
			
		||||
	".jq":                  {"JSONiq"},
 | 
			
		||||
	".jq":                  {"JSONiq", "jq"},
 | 
			
		||||
	".js":                  {"JavaScript"},
 | 
			
		||||
	".js.erb":              {"JavaScript+ERB"},
 | 
			
		||||
	".jsb":                 {"JavaScript"},
 | 
			
		||||
| 
						 | 
				
			
			@ -781,6 +783,7 @@ var LanguagesByExtension = map[string][]string{
 | 
			
		|||
	".pov":                 {"POV-Ray SDL"},
 | 
			
		||||
	".pp":                  {"Pascal", "Puppet"},
 | 
			
		||||
	".pprx":                {"REXX"},
 | 
			
		||||
	".prawn":               {"Ruby"},
 | 
			
		||||
	".prc":                 {"PLSQL", "SQL"},
 | 
			
		||||
	".prefab":              {"Unity3D Asset"},
 | 
			
		||||
	".prefs":               {"INI"},
 | 
			
		||||
| 
						 | 
				
			
			@ -938,6 +941,7 @@ var LanguagesByExtension = map[string][]string{
 | 
			
		|||
	".sl":                  {"Slash"},
 | 
			
		||||
	".sld":                 {"Scheme"},
 | 
			
		||||
	".slim":                {"Slim"},
 | 
			
		||||
	".sln":                 {"Microsoft Visual Studio Solution"},
 | 
			
		||||
	".sls":                 {"SaltStack", "Scheme"},
 | 
			
		||||
	".sma":                 {"Pawn"},
 | 
			
		||||
	".smali":               {"Smali"},
 | 
			
		||||
| 
						 | 
				
			
			@ -966,7 +970,7 @@ var LanguagesByExtension = map[string][]string{
 | 
			
		|||
	".ss":                  {"Scheme"},
 | 
			
		||||
	".ssjs":                {"JavaScript"},
 | 
			
		||||
	".sss":                 {"SugarSS"},
 | 
			
		||||
	".st":                  {"HTML", "Smalltalk"},
 | 
			
		||||
	".st":                  {"Smalltalk", "StringTemplate"},
 | 
			
		||||
	".stan":                {"Stan"},
 | 
			
		||||
	".sthlp":               {"Stata"},
 | 
			
		||||
	".ston":                {"STON"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1138,6 +1142,7 @@ var LanguagesByExtension = map[string][]string{
 | 
			
		|||
	".xmi":                 {"XML"},
 | 
			
		||||
	".xml":                 {"XML"},
 | 
			
		||||
	".xml.dist":            {"XML"},
 | 
			
		||||
	".xmp":                 {"XML"},
 | 
			
		||||
	".xojo_code":           {"Xojo"},
 | 
			
		||||
	".xojo_menu":           {"Xojo"},
 | 
			
		||||
	".xojo_report":         {"Xojo"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1157,6 +1162,7 @@ var LanguagesByExtension = map[string][]string{
 | 
			
		|||
	".xrl":                 {"Erlang"},
 | 
			
		||||
	".xs":                  {"XS"},
 | 
			
		||||
	".xsd":                 {"XML"},
 | 
			
		||||
	".xsh":                 {"Xonsh"},
 | 
			
		||||
	".xsjs":                {"JavaScript"},
 | 
			
		||||
	".xsjslib":             {"JavaScript"},
 | 
			
		||||
	".xsl":                 {"XSLT"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1233,11 +1239,13 @@ var ExtensionsByLanguage = map[string][]string{
 | 
			
		|||
	"AutoIt":                             {".au3"},
 | 
			
		||||
	"Avro IDL":                           {".avdl"},
 | 
			
		||||
	"Awk":                                {".awk", ".auk", ".gawk", ".mawk", ".nawk"},
 | 
			
		||||
	"BASIC":                              {".bas"},
 | 
			
		||||
	"Ballerina":                          {".bal"},
 | 
			
		||||
	"Batchfile":                          {".bat", ".cmd"},
 | 
			
		||||
	"Beef":                               {".bf"},
 | 
			
		||||
	"Befunge":                            {".befunge"},
 | 
			
		||||
	"BibTeX":                             {".bib", ".bibtex"},
 | 
			
		||||
	"Bicep":                              {".bicep"},
 | 
			
		||||
	"Bison":                              {".bison"},
 | 
			
		||||
	"BitBake":                            {".bb"},
 | 
			
		||||
	"Blade":                              {".blade", ".blade.php"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1341,6 +1349,7 @@ var ExtensionsByLanguage = map[string][]string{
 | 
			
		|||
	"Forth":                              {".fth", ".4th", ".f", ".for", ".forth", ".fr", ".frt", ".fs"},
 | 
			
		||||
	"Fortran":                            {".f", ".f77", ".for", ".fpp"},
 | 
			
		||||
	"Fortran Free Form":                  {".f90", ".f03", ".f08", ".f95"},
 | 
			
		||||
	"FreeBasic":                          {".bi", ".bas"},
 | 
			
		||||
	"FreeMarker":                         {".ftl"},
 | 
			
		||||
	"Frege":                              {".fr"},
 | 
			
		||||
	"Futhark":                            {".fut"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1380,8 +1389,7 @@ var ExtensionsByLanguage = map[string][]string{
 | 
			
		|||
	"HAProxy":                            {".cfg"},
 | 
			
		||||
	"HCL":                                {".hcl", ".nomad", ".tf", ".tfvars", ".workflow"},
 | 
			
		||||
	"HLSL":                               {".hlsl", ".cginc", ".fx", ".fxh", ".hlsli"},
 | 
			
		||||
	"HTML":                               {".html", ".htm", ".html.hl", ".inc", ".st", ".xht", ".xhtml"},
 | 
			
		||||
	"HTML+Django":                        {".jinja", ".j2", ".jinja2"},
 | 
			
		||||
	"HTML":                               {".html", ".htm", ".html.hl", ".inc", ".xht", ".xhtml"},
 | 
			
		||||
	"HTML+ECR":                           {".ecr"},
 | 
			
		||||
	"HTML+EEX":                           {".eex", ".html.leex"},
 | 
			
		||||
	"HTML+ERB":                           {".erb", ".erb.deface", ".rhtml"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1424,6 +1432,7 @@ var ExtensionsByLanguage = map[string][]string{
 | 
			
		|||
	"Java Server Pages":                  {".jsp"},
 | 
			
		||||
	"JavaScript":                         {".js", "._js", ".bones", ".cjs", ".es", ".es6", ".frag", ".gs", ".jake", ".jsb", ".jscad", ".jsfl", ".jsm", ".jss", ".jsx", ".mjs", ".njs", ".pac", ".sjs", ".ssjs", ".xsjs", ".xsjslib"},
 | 
			
		||||
	"JavaScript+ERB":                     {".js.erb"},
 | 
			
		||||
	"Jinja":                              {".jinja", ".j2", ".jinja2"},
 | 
			
		||||
	"Jison":                              {".jison"},
 | 
			
		||||
	"Jison Lex":                          {".jisonlex"},
 | 
			
		||||
	"Jolie":                              {".ol", ".iol"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1437,6 +1446,7 @@ var ExtensionsByLanguage = map[string][]string{
 | 
			
		|||
	"KiCad Schematic":                    {".sch"},
 | 
			
		||||
	"Kit":                                {".kit"},
 | 
			
		||||
	"Kotlin":                             {".kt", ".ktm", ".kts"},
 | 
			
		||||
	"Kusto":                              {".csl"},
 | 
			
		||||
	"LFE":                                {".lfe"},
 | 
			
		||||
	"LLVM":                               {".ll"},
 | 
			
		||||
	"LOLCODE":                            {".lol"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1485,6 +1495,7 @@ var ExtensionsByLanguage = map[string][]string{
 | 
			
		|||
	"Mercury":                            {".m", ".moo"},
 | 
			
		||||
	"Metal":                              {".metal"},
 | 
			
		||||
	"Microsoft Developer Studio Project": {".dsp"},
 | 
			
		||||
	"Microsoft Visual Studio Solution":   {".sln"},
 | 
			
		||||
	"MiniD":                              {".minid"},
 | 
			
		||||
	"Mirah":                              {".druby", ".duby", ".mirah"},
 | 
			
		||||
	"Modelica":                           {".mo"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1616,7 +1627,7 @@ var ExtensionsByLanguage = map[string][]string{
 | 
			
		|||
	"Roff":                               {".roff", ".1", ".1in", ".1m", ".1x", ".2", ".3", ".3in", ".3m", ".3p", ".3pm", ".3qt", ".3x", ".4", ".5", ".6", ".7", ".8", ".9", ".l", ".man", ".mdoc", ".me", ".ms", ".n", ".nr", ".rno", ".tmac"},
 | 
			
		||||
	"Roff Manpage":                       {".1", ".1in", ".1m", ".1x", ".2", ".3", ".3in", ".3m", ".3p", ".3pm", ".3qt", ".3x", ".4", ".5", ".6", ".7", ".8", ".9", ".man", ".mdoc"},
 | 
			
		||||
	"Rouge":                              {".rg"},
 | 
			
		||||
	"Ruby":                               {".rb", ".builder", ".eye", ".fcgi", ".gemspec", ".god", ".jbuilder", ".mspec", ".pluginspec", ".podspec", ".rabl", ".rake", ".rbi", ".rbuild", ".rbw", ".rbx", ".ru", ".ruby", ".spec", ".thor", ".watchr"},
 | 
			
		||||
	"Ruby":                               {".rb", ".builder", ".eye", ".fcgi", ".gemspec", ".god", ".jbuilder", ".mspec", ".pluginspec", ".podspec", ".prawn", ".rabl", ".rake", ".rbi", ".rbuild", ".rbw", ".rbx", ".ru", ".ruby", ".spec", ".thor", ".watchr"},
 | 
			
		||||
	"Rust":                               {".rs", ".rs.in"},
 | 
			
		||||
	"SAS":                                {".sas"},
 | 
			
		||||
	"SCSS":                               {".scss"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1657,6 +1668,7 @@ var ExtensionsByLanguage = map[string][]string{
 | 
			
		|||
	"Standard ML":                        {".ml", ".fun", ".sig", ".sml"},
 | 
			
		||||
	"Starlark":                           {".bzl"},
 | 
			
		||||
	"Stata":                              {".do", ".ado", ".doh", ".ihlp", ".mata", ".matah", ".sthlp"},
 | 
			
		||||
	"StringTemplate":                     {".st"},
 | 
			
		||||
	"Stylus":                             {".styl"},
 | 
			
		||||
	"SubRip Text":                        {".srt"},
 | 
			
		||||
	"SugarSS":                            {".sss"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1717,7 +1729,7 @@ var ExtensionsByLanguage = map[string][]string{
 | 
			
		|||
	"X PixMap":                           {".xpm", ".pm"},
 | 
			
		||||
	"X10":                                {".x10"},
 | 
			
		||||
	"XC":                                 {".xc"},
 | 
			
		||||
	"XML":                                {".xml", ".adml", ".admx", ".ant", ".axml", ".builds", ".ccproj", ".ccxml", ".clixml", ".cproject", ".cscfg", ".csdef", ".csl", ".csproj", ".ct", ".depproj", ".dita", ".ditamap", ".ditaval", ".dll.config", ".dotsettings", ".filters", ".fsproj", ".fxml", ".glade", ".gml", ".gmx", ".grxml", ".gst", ".iml", ".ivy", ".jelly", ".jsproj", ".kml", ".launch", ".mdpolicy", ".mjml", ".mm", ".mod", ".mxml", ".natvis", ".ncl", ".ndproj", ".nproj", ".nuspec", ".odd", ".osm", ".pkgproj", ".pluginspec", ".proj", ".props", ".ps1xml", ".psc1", ".pt", ".rdf", ".res", ".resx", ".rs", ".rss", ".sch", ".scxml", ".sfproj", ".shproj", ".srdf", ".storyboard", ".sublime-snippet", ".targets", ".tml", ".ts", ".tsx", ".ui", ".urdf", ".ux", ".vbproj", ".vcxproj", ".vsixmanifest", ".vssettings", ".vstemplate", ".vxml", ".wixproj", ".workflow", ".wsdl", ".wsf", ".wxi", ".wxl", ".wxs", ".x3d", ".xacro", ".xaml", ".xib", ".xlf", ".xliff", ".xmi", ".xml.dist", ".xproj", ".xsd", ".xspec", ".xul", ".zcml"},
 | 
			
		||||
	"XML":                                {".xml", ".adml", ".admx", ".ant", ".axml", ".builds", ".ccproj", ".ccxml", ".clixml", ".cproject", ".cscfg", ".csdef", ".csl", ".csproj", ".ct", ".depproj", ".dita", ".ditamap", ".ditaval", ".dll.config", ".dotsettings", ".filters", ".fsproj", ".fxml", ".glade", ".gml", ".gmx", ".grxml", ".gst", ".iml", ".ivy", ".jelly", ".jsproj", ".kml", ".launch", ".mdpolicy", ".mjml", ".mm", ".mod", ".mxml", ".natvis", ".ncl", ".ndproj", ".nproj", ".nuspec", ".odd", ".osm", ".pkgproj", ".pluginspec", ".proj", ".props", ".ps1xml", ".psc1", ".pt", ".rdf", ".res", ".resx", ".rs", ".rss", ".sch", ".scxml", ".sfproj", ".shproj", ".srdf", ".storyboard", ".sublime-snippet", ".targets", ".tml", ".ts", ".tsx", ".ui", ".urdf", ".ux", ".vbproj", ".vcxproj", ".vsixmanifest", ".vssettings", ".vstemplate", ".vxml", ".wixproj", ".workflow", ".wsdl", ".wsf", ".wxi", ".wxl", ".wxs", ".x3d", ".xacro", ".xaml", ".xib", ".xlf", ".xliff", ".xmi", ".xml.dist", ".xmp", ".xproj", ".xsd", ".xspec", ".xul", ".zcml"},
 | 
			
		||||
	"XML Property List":                  {".plist", ".sttheme", ".tmcommand", ".tmlanguage", ".tmpreferences", ".tmsnippet", ".tmtheme"},
 | 
			
		||||
	"XPages":                             {".xsp-config", ".xsp.metadata"},
 | 
			
		||||
	"XProc":                              {".xpl", ".xproc"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1725,6 +1737,7 @@ var ExtensionsByLanguage = map[string][]string{
 | 
			
		|||
	"XS":                                 {".xs"},
 | 
			
		||||
	"XSLT":                               {".xslt", ".xsl"},
 | 
			
		||||
	"Xojo":                               {".xojo_code", ".xojo_menu", ".xojo_report", ".xojo_script", ".xojo_toolbar", ".xojo_window"},
 | 
			
		||||
	"Xonsh":                              {".xsh"},
 | 
			
		||||
	"Xtend":                              {".xtend"},
 | 
			
		||||
	"YAML":                               {".yml", ".mir", ".reek", ".rviz", ".sublime-syntax", ".syntax", ".yaml", ".yaml-tmlanguage", ".yaml.sed", ".yml.mysql"},
 | 
			
		||||
	"YANG":                               {".yang"},
 | 
			
		||||
| 
						 | 
				
			
			@ -1743,6 +1756,7 @@ var ExtensionsByLanguage = map[string][]string{
 | 
			
		|||
	"eC":                                 {".ec", ".eh"},
 | 
			
		||||
	"edn":                                {".edn"},
 | 
			
		||||
	"fish":                               {".fish"},
 | 
			
		||||
	"jq":                                 {".jq"},
 | 
			
		||||
	"mIRC Script":                        {".mrc"},
 | 
			
		||||
	"mcfunction":                         {".mcfunction"},
 | 
			
		||||
	"mupad":                              {".mu"},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										8
									
								
								vendor/github.com/go-enry/go-enry/v2/data/filename.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/go-enry/go-enry/v2/data/filename.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -98,6 +98,7 @@ var LanguagesByFilename = map[string][]string{
 | 
			
		|||
	"Brewfile":                     {"Ruby"},
 | 
			
		||||
	"Buildfile":                    {"Ruby"},
 | 
			
		||||
	"CMakeLists.txt":               {"CMake"},
 | 
			
		||||
	"CODEOWNERS":                   {"CODEOWNERS"},
 | 
			
		||||
	"COPYING":                      {"Text"},
 | 
			
		||||
	"COPYING.regex":                {"Text"},
 | 
			
		||||
	"COPYRIGHT.regex":              {"Text"},
 | 
			
		||||
| 
						 | 
				
			
			@ -116,7 +117,7 @@ var LanguagesByFilename = map[string][]string{
 | 
			
		|||
	"Fastfile":                     {"Ruby"},
 | 
			
		||||
	"GNUmakefile":                  {"Makefile"},
 | 
			
		||||
	"Gemfile":                      {"Ruby"},
 | 
			
		||||
	"Gemfile.lock":                 {"Ruby"},
 | 
			
		||||
	"Gemfile.lock":                 {"Gemfile.lock"},
 | 
			
		||||
	"Gopkg.lock":                   {"TOML"},
 | 
			
		||||
	"Guardfile":                    {"Ruby"},
 | 
			
		||||
	"INSTALL":                      {"Text"},
 | 
			
		||||
| 
						 | 
				
			
			@ -159,6 +160,7 @@ var LanguagesByFilename = map[string][]string{
 | 
			
		|||
	"SConscript":                   {"Python"},
 | 
			
		||||
	"SConstruct":                   {"Python"},
 | 
			
		||||
	"Settings.StyleCop":            {"XML"},
 | 
			
		||||
	"Singularity":                  {"Singularity"},
 | 
			
		||||
	"Slakefile":                    {"LiveScript"},
 | 
			
		||||
	"Snakefile":                    {"Python"},
 | 
			
		||||
	"Snapfile":                     {"Ruby"},
 | 
			
		||||
| 
						 | 
				
			
			@ -174,6 +176,7 @@ var LanguagesByFilename = map[string][]string{
 | 
			
		|||
	"_dir_colors":                  {"dircolors"},
 | 
			
		||||
	"_dircolors":                   {"dircolors"},
 | 
			
		||||
	"_emacs":                       {"Emacs Lisp"},
 | 
			
		||||
	"_redirects":                   {"Redirect Rules"},
 | 
			
		||||
	"_vimrc":                       {"Vim script"},
 | 
			
		||||
	"abbrev_defs":                  {"Emacs Lisp"},
 | 
			
		||||
	"ack":                          {"Perl"},
 | 
			
		||||
| 
						 | 
				
			
			@ -257,6 +260,7 @@ var LanguagesByFilename = map[string][]string{
 | 
			
		|||
	"rebar.config.lock":            {"Erlang"},
 | 
			
		||||
	"rebar.lock":                   {"Erlang"},
 | 
			
		||||
	"riemann.config":               {"Clojure"},
 | 
			
		||||
	"robots.txt":                   {"robots.txt"},
 | 
			
		||||
	"ssh-config":                   {"SSH Config"},
 | 
			
		||||
	"ssh_config":                   {"SSH Config"},
 | 
			
		||||
	"sshconfig":                    {"SSH Config"},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										22494
									
								
								vendor/github.com/go-enry/go-enry/v2/data/frequencies.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22494
									
								
								vendor/github.com/go-enry/go-enry/v2/data/frequencies.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										5
									
								
								vendor/github.com/go-enry/go-enry/v2/data/groups.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/go-enry/go-enry/v2/data/groups.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +23,6 @@ var LanguagesGroup = map[string]string{
 | 
			
		|||
	"Git Attributes":                 "INI",
 | 
			
		||||
	"Git Config":                     "INI",
 | 
			
		||||
	"Groovy Server Pages":            "Groovy",
 | 
			
		||||
	"HTML+Django":                    "HTML",
 | 
			
		||||
	"HTML+ECR":                       "HTML",
 | 
			
		||||
	"HTML+EEX":                       "HTML",
 | 
			
		||||
	"HTML+ERB":                       "HTML",
 | 
			
		||||
| 
						 | 
				
			
			@ -37,12 +36,12 @@ var LanguagesGroup = map[string]string{
 | 
			
		|||
	"JavaScript+ERB":                 "JavaScript",
 | 
			
		||||
	"Jison":                          "Yacc",
 | 
			
		||||
	"Jison Lex":                      "Lex",
 | 
			
		||||
	"Lark":                           "EBNF",
 | 
			
		||||
	"Literate Agda":                  "Agda",
 | 
			
		||||
	"Literate CoffeeScript":          "CoffeeScript",
 | 
			
		||||
	"Literate Haskell":               "Haskell",
 | 
			
		||||
	"M4Sugar":                        "M4",
 | 
			
		||||
	"MUF":                            "Forth",
 | 
			
		||||
	"Maven POM":                      "XML",
 | 
			
		||||
	"Motorola 68K Assembly":          "Assembly",
 | 
			
		||||
	"NPM Config":                     "INI",
 | 
			
		||||
	"NumPy":                          "Python",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										17
									
								
								vendor/github.com/go-enry/go-enry/v2/data/id.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/github.com/go-enry/go-enry/v2/data/id.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -42,11 +42,13 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"AutoIt":                             27,
 | 
			
		||||
	"Avro IDL":                           785497837,
 | 
			
		||||
	"Awk":                                28,
 | 
			
		||||
	"BASIC":                              28923963,
 | 
			
		||||
	"Ballerina":                          720859680,
 | 
			
		||||
	"Batchfile":                          29,
 | 
			
		||||
	"Beef":                               545626333,
 | 
			
		||||
	"Befunge":                            30,
 | 
			
		||||
	"BibTeX":                             982188347,
 | 
			
		||||
	"Bicep":                              321200902,
 | 
			
		||||
	"Bison":                              31,
 | 
			
		||||
	"BitBake":                            32,
 | 
			
		||||
	"Blade":                              33,
 | 
			
		||||
| 
						 | 
				
			
			@ -66,6 +68,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"CLIPS":                              46,
 | 
			
		||||
	"CMake":                              47,
 | 
			
		||||
	"COBOL":                              48,
 | 
			
		||||
	"CODEOWNERS":                         321684729,
 | 
			
		||||
	"COLLADA":                            49,
 | 
			
		||||
	"CSON":                               424,
 | 
			
		||||
	"CSS":                                50,
 | 
			
		||||
| 
						 | 
				
			
			@ -153,6 +156,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"Forth":                              114,
 | 
			
		||||
	"Fortran":                            107,
 | 
			
		||||
	"Fortran Free Form":                  761352333,
 | 
			
		||||
	"FreeBasic":                          472896659,
 | 
			
		||||
	"FreeMarker":                         115,
 | 
			
		||||
	"Frege":                              116,
 | 
			
		||||
	"Futhark":                            97358117,
 | 
			
		||||
| 
						 | 
				
			
			@ -167,6 +171,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"GLSL":                               124,
 | 
			
		||||
	"GN":                                 302957008,
 | 
			
		||||
	"Game Maker Language":                125,
 | 
			
		||||
	"Gemfile.lock":                       907065713,
 | 
			
		||||
	"Genie":                              792408528,
 | 
			
		||||
	"Genshi":                             126,
 | 
			
		||||
	"Gentoo Ebuild":                      127,
 | 
			
		||||
| 
						 | 
				
			
			@ -194,7 +199,6 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"HCL":                                144,
 | 
			
		||||
	"HLSL":                               145,
 | 
			
		||||
	"HTML":                               146,
 | 
			
		||||
	"HTML+Django":                        147,
 | 
			
		||||
	"HTML+ECR":                           148,
 | 
			
		||||
	"HTML+EEX":                           149,
 | 
			
		||||
	"HTML+ERB":                           150,
 | 
			
		||||
| 
						 | 
				
			
			@ -238,6 +242,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"Java Server Pages":                  182,
 | 
			
		||||
	"JavaScript":                         183,
 | 
			
		||||
	"JavaScript+ERB":                     914318960,
 | 
			
		||||
	"Jinja":                              147,
 | 
			
		||||
	"Jison":                              284531423,
 | 
			
		||||
	"Jison Lex":                          406395330,
 | 
			
		||||
	"Jolie":                              998078858,
 | 
			
		||||
| 
						 | 
				
			
			@ -251,6 +256,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"KiCad Schematic":                    622447435,
 | 
			
		||||
	"Kit":                                188,
 | 
			
		||||
	"Kotlin":                             189,
 | 
			
		||||
	"Kusto":                              225697190,
 | 
			
		||||
	"LFE":                                190,
 | 
			
		||||
	"LLVM":                               191,
 | 
			
		||||
	"LOLCODE":                            192,
 | 
			
		||||
| 
						 | 
				
			
			@ -301,6 +307,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"Meson":                              799141244,
 | 
			
		||||
	"Metal":                              230,
 | 
			
		||||
	"Microsoft Developer Studio Project": 800983837,
 | 
			
		||||
	"Microsoft Visual Studio Solution":   849523096,
 | 
			
		||||
	"MiniD":                              231,
 | 
			
		||||
	"Mirah":                              232,
 | 
			
		||||
	"Modelica":                           233,
 | 
			
		||||
| 
						 | 
				
			
			@ -428,6 +435,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"Record Jar":                         865765202,
 | 
			
		||||
	"Red":                                320,
 | 
			
		||||
	"Redcode":                            321,
 | 
			
		||||
	"Redirect Rules":                     1020148948,
 | 
			
		||||
	"Regular Expression":                 363378884,
 | 
			
		||||
	"Ren'Py":                             322,
 | 
			
		||||
	"RenderScript":                       323,
 | 
			
		||||
| 
						 | 
				
			
			@ -465,6 +473,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"ShellSession":                       347,
 | 
			
		||||
	"Shen":                               348,
 | 
			
		||||
	"Sieve":                              208976687,
 | 
			
		||||
	"Singularity":                        987024632,
 | 
			
		||||
	"Slash":                              349,
 | 
			
		||||
	"Slice":                              894641667,
 | 
			
		||||
	"Slim":                               350,
 | 
			
		||||
| 
						 | 
				
			
			@ -480,6 +489,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"Standard ML":                        357,
 | 
			
		||||
	"Starlark":                           960266174,
 | 
			
		||||
	"Stata":                              358,
 | 
			
		||||
	"StringTemplate":                     89855901,
 | 
			
		||||
	"Stylus":                             359,
 | 
			
		||||
	"SubRip Text":                        360,
 | 
			
		||||
	"SugarSS":                            826404698,
 | 
			
		||||
| 
						 | 
				
			
			@ -551,6 +561,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"XS":                                 403,
 | 
			
		||||
	"XSLT":                               404,
 | 
			
		||||
	"Xojo":                               405,
 | 
			
		||||
	"Xonsh":                              614078284,
 | 
			
		||||
	"Xtend":                              406,
 | 
			
		||||
	"YAML":                               407,
 | 
			
		||||
	"YANG":                               408,
 | 
			
		||||
| 
						 | 
				
			
			@ -570,6 +581,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"eC":                                 413,
 | 
			
		||||
	"edn":                                414,
 | 
			
		||||
	"fish":                               415,
 | 
			
		||||
	"jq":                                 905371884,
 | 
			
		||||
	"mIRC Script":                        517654727,
 | 
			
		||||
	"mcfunction":                         462488745,
 | 
			
		||||
	"mupad":                              416,
 | 
			
		||||
| 
						 | 
				
			
			@ -578,6 +590,7 @@ var IDByLanguage = map[string]int{
 | 
			
		|||
	"ooc":                                418,
 | 
			
		||||
	"q":                                  970539067,
 | 
			
		||||
	"reStructuredText":                   419,
 | 
			
		||||
	"robots.txt":                         674736065,
 | 
			
		||||
	"sed":                                847830017,
 | 
			
		||||
	"wdl":                                374521672,
 | 
			
		||||
	"wisp":                               420,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/go-enry/go-enry/v2/data/interpreter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-enry/go-enry/v2/data/interpreter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								vendor/github.com/go-enry/go-enry/v2/data/mimeType.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/go-enry/go-enry/v2/data/mimeType.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -63,6 +63,7 @@ var LanguagesMime = map[string]string{
 | 
			
		|||
	"Forth":                          "text/x-forth",
 | 
			
		||||
	"Fortran":                        "text/x-fortran",
 | 
			
		||||
	"Fortran Free Form":              "text/x-fortran",
 | 
			
		||||
	"FreeBasic":                      "text/x-vb",
 | 
			
		||||
	"GCC Machine Description":        "text/x-common-lisp",
 | 
			
		||||
	"GN":                             "text/x-python",
 | 
			
		||||
	"Game Maker Language":            "text/x-c++src",
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +79,6 @@ var LanguagesMime = map[string]string{
 | 
			
		|||
	"Groovy Server Pages":            "application/x-jsp",
 | 
			
		||||
	"HCL":                            "text/x-ruby",
 | 
			
		||||
	"HTML":                           "text/html",
 | 
			
		||||
	"HTML+Django":                    "text/x-django",
 | 
			
		||||
	"HTML+ECR":                       "text/html",
 | 
			
		||||
	"HTML+EEX":                       "text/html",
 | 
			
		||||
	"HTML+ERB":                       "application/x-erb",
 | 
			
		||||
| 
						 | 
				
			
			@ -104,6 +104,7 @@ var LanguagesMime = map[string]string{
 | 
			
		|||
	"Java Server Pages":              "application/x-jsp",
 | 
			
		||||
	"JavaScript":                     "text/javascript",
 | 
			
		||||
	"JavaScript+ERB":                 "application/javascript",
 | 
			
		||||
	"Jinja":                          "text/x-django",
 | 
			
		||||
	"Julia":                          "text/x-julia",
 | 
			
		||||
	"Jupyter Notebook":               "application/json",
 | 
			
		||||
	"Kaitai Struct":                  "text/x-yaml",
 | 
			
		||||
| 
						 | 
				
			
			@ -197,6 +198,7 @@ var LanguagesMime = map[string]string{
 | 
			
		|||
	"Squirrel":                       "text/x-c++src",
 | 
			
		||||
	"Standard ML":                    "text/x-ocaml",
 | 
			
		||||
	"Starlark":                       "text/x-python",
 | 
			
		||||
	"StringTemplate":                 "text/html",
 | 
			
		||||
	"Svelte":                         "text/html",
 | 
			
		||||
	"Swift":                          "text/x-swift",
 | 
			
		||||
	"SystemVerilog":                  "text/x-systemverilog",
 | 
			
		||||
| 
						 | 
				
			
			@ -234,6 +236,7 @@ var LanguagesMime = map[string]string{
 | 
			
		|||
	"XQuery":                         "application/xquery",
 | 
			
		||||
	"XS":                             "text/x-csrc",
 | 
			
		||||
	"XSLT":                           "text/xml",
 | 
			
		||||
	"Xonsh":                          "text/x-python",
 | 
			
		||||
	"YAML":                           "text/x-yaml",
 | 
			
		||||
	"edn":                            "text/x-clojure",
 | 
			
		||||
	"reStructuredText":               "text/x-rst",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										17
									
								
								vendor/github.com/go-enry/go-enry/v2/data/type.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/github.com/go-enry/go-enry/v2/data/type.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -42,11 +42,13 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"AutoIt":                             2,
 | 
			
		||||
	"Avro IDL":                           1,
 | 
			
		||||
	"Awk":                                2,
 | 
			
		||||
	"BASIC":                              2,
 | 
			
		||||
	"Ballerina":                          2,
 | 
			
		||||
	"Batchfile":                          2,
 | 
			
		||||
	"Beef":                               2,
 | 
			
		||||
	"Befunge":                            2,
 | 
			
		||||
	"BibTeX":                             3,
 | 
			
		||||
	"Bicep":                              2,
 | 
			
		||||
	"Bison":                              2,
 | 
			
		||||
	"BitBake":                            2,
 | 
			
		||||
	"Blade":                              3,
 | 
			
		||||
| 
						 | 
				
			
			@ -66,6 +68,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"CLIPS":                              2,
 | 
			
		||||
	"CMake":                              2,
 | 
			
		||||
	"COBOL":                              2,
 | 
			
		||||
	"CODEOWNERS":                         1,
 | 
			
		||||
	"COLLADA":                            1,
 | 
			
		||||
	"CSON":                               1,
 | 
			
		||||
	"CSS":                                3,
 | 
			
		||||
| 
						 | 
				
			
			@ -153,6 +156,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"Forth":                              2,
 | 
			
		||||
	"Fortran":                            2,
 | 
			
		||||
	"Fortran Free Form":                  2,
 | 
			
		||||
	"FreeBasic":                          2,
 | 
			
		||||
	"FreeMarker":                         2,
 | 
			
		||||
	"Frege":                              2,
 | 
			
		||||
	"Futhark":                            2,
 | 
			
		||||
| 
						 | 
				
			
			@ -167,6 +171,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"GLSL":                               2,
 | 
			
		||||
	"GN":                                 1,
 | 
			
		||||
	"Game Maker Language":                2,
 | 
			
		||||
	"Gemfile.lock":                       1,
 | 
			
		||||
	"Genie":                              2,
 | 
			
		||||
	"Genshi":                             2,
 | 
			
		||||
	"Gentoo Ebuild":                      2,
 | 
			
		||||
| 
						 | 
				
			
			@ -194,7 +199,6 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"HCL":                                2,
 | 
			
		||||
	"HLSL":                               2,
 | 
			
		||||
	"HTML":                               3,
 | 
			
		||||
	"HTML+Django":                        3,
 | 
			
		||||
	"HTML+ECR":                           3,
 | 
			
		||||
	"HTML+EEX":                           3,
 | 
			
		||||
	"HTML+ERB":                           3,
 | 
			
		||||
| 
						 | 
				
			
			@ -238,6 +242,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"Java Server Pages":                  2,
 | 
			
		||||
	"JavaScript":                         2,
 | 
			
		||||
	"JavaScript+ERB":                     2,
 | 
			
		||||
	"Jinja":                              3,
 | 
			
		||||
	"Jison":                              2,
 | 
			
		||||
	"Jison Lex":                          2,
 | 
			
		||||
	"Jolie":                              2,
 | 
			
		||||
| 
						 | 
				
			
			@ -251,6 +256,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"KiCad Schematic":                    1,
 | 
			
		||||
	"Kit":                                3,
 | 
			
		||||
	"Kotlin":                             2,
 | 
			
		||||
	"Kusto":                              1,
 | 
			
		||||
	"LFE":                                2,
 | 
			
		||||
	"LLVM":                               2,
 | 
			
		||||
	"LOLCODE":                            2,
 | 
			
		||||
| 
						 | 
				
			
			@ -301,6 +307,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"Meson":                              2,
 | 
			
		||||
	"Metal":                              2,
 | 
			
		||||
	"Microsoft Developer Studio Project": 1,
 | 
			
		||||
	"Microsoft Visual Studio Solution":   1,
 | 
			
		||||
	"MiniD":                              2,
 | 
			
		||||
	"Mirah":                              2,
 | 
			
		||||
	"Modelica":                           2,
 | 
			
		||||
| 
						 | 
				
			
			@ -428,6 +435,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"Record Jar":                         1,
 | 
			
		||||
	"Red":                                2,
 | 
			
		||||
	"Redcode":                            2,
 | 
			
		||||
	"Redirect Rules":                     1,
 | 
			
		||||
	"Regular Expression":                 1,
 | 
			
		||||
	"Ren'Py":                             2,
 | 
			
		||||
	"RenderScript":                       2,
 | 
			
		||||
| 
						 | 
				
			
			@ -465,6 +473,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"ShellSession":                       2,
 | 
			
		||||
	"Shen":                               2,
 | 
			
		||||
	"Sieve":                              2,
 | 
			
		||||
	"Singularity":                        2,
 | 
			
		||||
	"Slash":                              2,
 | 
			
		||||
	"Slice":                              2,
 | 
			
		||||
	"Slim":                               3,
 | 
			
		||||
| 
						 | 
				
			
			@ -480,6 +489,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"Standard ML":                        2,
 | 
			
		||||
	"Starlark":                           2,
 | 
			
		||||
	"Stata":                              2,
 | 
			
		||||
	"StringTemplate":                     3,
 | 
			
		||||
	"Stylus":                             3,
 | 
			
		||||
	"SubRip Text":                        1,
 | 
			
		||||
	"SugarSS":                            3,
 | 
			
		||||
| 
						 | 
				
			
			@ -551,6 +561,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"XS":                                 2,
 | 
			
		||||
	"XSLT":                               2,
 | 
			
		||||
	"Xojo":                               2,
 | 
			
		||||
	"Xonsh":                              2,
 | 
			
		||||
	"Xtend":                              2,
 | 
			
		||||
	"YAML":                               1,
 | 
			
		||||
	"YANG":                               1,
 | 
			
		||||
| 
						 | 
				
			
			@ -570,6 +581,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"eC":                                 2,
 | 
			
		||||
	"edn":                                1,
 | 
			
		||||
	"fish":                               2,
 | 
			
		||||
	"jq":                                 2,
 | 
			
		||||
	"mIRC Script":                        2,
 | 
			
		||||
	"mcfunction":                         2,
 | 
			
		||||
	"mupad":                              2,
 | 
			
		||||
| 
						 | 
				
			
			@ -578,6 +590,7 @@ var LanguagesType = map[string]int{
 | 
			
		|||
	"ooc":                                2,
 | 
			
		||||
	"q":                                  2,
 | 
			
		||||
	"reStructuredText":                   4,
 | 
			
		||||
	"robots.txt":                         1,
 | 
			
		||||
	"sed":                                2,
 | 
			
		||||
	"wdl":                                2,
 | 
			
		||||
	"wisp":                               2,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/go-enry/go-enry/v2/data/vendor.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-enry/go-enry/v2/data/vendor.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Code generated by github.com/go-enry/go-enry/v2/internal/code-generator DO NOT EDIT.
 | 
			
		||||
// Extracted from github/linguist commit: 6aed0bd564f55c4f2d987c2e6035eda7aea26375
 | 
			
		||||
// Extracted from github/linguist commit: 95636e415749b0bf8fbf3f86922f788cf91c11a2
 | 
			
		||||
 | 
			
		||||
package data
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										11
									
								
								vendor/github.com/go-redis/redis/v8/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/go-redis/redis/v8/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -17,6 +17,12 @@
 | 
			
		|||
- [Examples](https://pkg.go.dev/github.com/go-redis/redis/v8?tab=doc#pkg-examples)
 | 
			
		||||
- [RealWorld example app](https://github.com/uptrace/go-treemux-realworld-example-app)
 | 
			
		||||
 | 
			
		||||
My other projects:
 | 
			
		||||
 | 
			
		||||
- [Bun](https://bun.uptrace.dev) - fast and simple SQL client for PostgreSQL, MySQL, and SQLite.
 | 
			
		||||
- [treemux](https://github.com/vmihailenco/treemux) - high-speed, flexible, tree-based HTTP router
 | 
			
		||||
  for Go.
 | 
			
		||||
 | 
			
		||||
## Ecosystem
 | 
			
		||||
 | 
			
		||||
- [Redis Mock](https://github.com/go-redis/redismock).
 | 
			
		||||
| 
						 | 
				
			
			@ -160,8 +166,3 @@ Lastly, run:
 | 
			
		|||
```
 | 
			
		||||
go test
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## See also
 | 
			
		||||
 | 
			
		||||
- [Fast and flexible ORM](https://github.com/uptrace/bun)
 | 
			
		||||
- [msgpack for Go](https://github.com/vmihailenco/msgpack)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/go-redis/redis/v8/cluster.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-redis/redis/v8/cluster.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -91,7 +91,7 @@ func (opt *ClusterOptions) init() {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	if opt.PoolSize == 0 {
 | 
			
		||||
		opt.PoolSize = 5 * runtime.NumCPU()
 | 
			
		||||
		opt.PoolSize = 5 * runtime.GOMAXPROCS(0)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch opt.ReadTimeout {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										116
									
								
								vendor/github.com/go-redis/redis/v8/command.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										116
									
								
								vendor/github.com/go-redis/redis/v8/command.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1501,6 +1501,122 @@ func (cmd *XPendingExtCmd) readReply(rd *proto.Reader) error {
 | 
			
		|||
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
type XAutoClaimCmd struct {
 | 
			
		||||
	baseCmd
 | 
			
		||||
 | 
			
		||||
	start string
 | 
			
		||||
	val   []XMessage
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ Cmder = (*XAutoClaimCmd)(nil)
 | 
			
		||||
 | 
			
		||||
func NewXAutoClaimCmd(ctx context.Context, args ...interface{}) *XAutoClaimCmd {
 | 
			
		||||
	return &XAutoClaimCmd{
 | 
			
		||||
		baseCmd: baseCmd{
 | 
			
		||||
			ctx:  ctx,
 | 
			
		||||
			args: args,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cmd *XAutoClaimCmd) Val() (messages []XMessage, start string) {
 | 
			
		||||
	return cmd.val, cmd.start
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cmd *XAutoClaimCmd) Result() (messages []XMessage, start string, err error) {
 | 
			
		||||
	return cmd.val, cmd.start, cmd.err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cmd *XAutoClaimCmd) String() string {
 | 
			
		||||
	return cmdString(cmd, cmd.val)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cmd *XAutoClaimCmd) readReply(rd *proto.Reader) error {
 | 
			
		||||
	_, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
 | 
			
		||||
		if n != 2 {
 | 
			
		||||
			return nil, fmt.Errorf("got %d, wanted 2", n)
 | 
			
		||||
		}
 | 
			
		||||
		var err error
 | 
			
		||||
 | 
			
		||||
		cmd.start, err = rd.ReadString()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		cmd.val, err = readXMessageSlice(rd)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return nil, nil
 | 
			
		||||
	})
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
type XAutoClaimJustIDCmd struct {
 | 
			
		||||
	baseCmd
 | 
			
		||||
 | 
			
		||||
	start string
 | 
			
		||||
	val   []string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ Cmder = (*XAutoClaimJustIDCmd)(nil)
 | 
			
		||||
 | 
			
		||||
func NewXAutoClaimJustIDCmd(ctx context.Context, args ...interface{}) *XAutoClaimJustIDCmd {
 | 
			
		||||
	return &XAutoClaimJustIDCmd{
 | 
			
		||||
		baseCmd: baseCmd{
 | 
			
		||||
			ctx:  ctx,
 | 
			
		||||
			args: args,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cmd *XAutoClaimJustIDCmd) Val() (ids []string, start string) {
 | 
			
		||||
	return cmd.val, cmd.start
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cmd *XAutoClaimJustIDCmd) Result() (ids []string, start string, err error) {
 | 
			
		||||
	return cmd.val, cmd.start, cmd.err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cmd *XAutoClaimJustIDCmd) String() string {
 | 
			
		||||
	return cmdString(cmd, cmd.val)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cmd *XAutoClaimJustIDCmd) readReply(rd *proto.Reader) error {
 | 
			
		||||
	_, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
 | 
			
		||||
		if n != 2 {
 | 
			
		||||
			return nil, fmt.Errorf("got %d, wanted 2", n)
 | 
			
		||||
		}
 | 
			
		||||
		var err error
 | 
			
		||||
 | 
			
		||||
		cmd.start, err = rd.ReadString()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		nn, err := rd.ReadArrayLen()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		cmd.val = make([]string, nn)
 | 
			
		||||
		for i := 0; i < nn; i++ {
 | 
			
		||||
			cmd.val[i], err = rd.ReadString()
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return nil, err
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return nil, nil
 | 
			
		||||
	})
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
type XInfoConsumersCmd struct {
 | 
			
		||||
	baseCmd
 | 
			
		||||
	val []XInfoConsumer
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										638
									
								
								vendor/github.com/go-redis/redis/v8/commands.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										638
									
								
								vendor/github.com/go-redis/redis/v8/commands.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -9,7 +9,8 @@ import (
 | 
			
		|||
	"github.com/go-redis/redis/v8/internal"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// KeepTTL is an option for Set command to keep key's existing TTL.
 | 
			
		||||
// KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0,
 | 
			
		||||
// otherwise you will receive an error: (error) ERR syntax error.
 | 
			
		||||
// For example:
 | 
			
		||||
//
 | 
			
		||||
//    rdb.Set(ctx, key, value, redis.KeepTTL)
 | 
			
		||||
| 
						 | 
				
			
			@ -226,6 +227,7 @@ type Cmdable interface {
 | 
			
		|||
	XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd
 | 
			
		||||
	XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd
 | 
			
		||||
	XGroupDestroy(ctx context.Context, stream, group string) *IntCmd
 | 
			
		||||
	XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
 | 
			
		||||
	XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
 | 
			
		||||
	XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd
 | 
			
		||||
	XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd
 | 
			
		||||
| 
						 | 
				
			
			@ -233,20 +235,39 @@ type Cmdable interface {
 | 
			
		|||
	XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd
 | 
			
		||||
	XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd
 | 
			
		||||
	XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd
 | 
			
		||||
 | 
			
		||||
	// TODO: XTrim and XTrimApprox remove in v9.
 | 
			
		||||
	XTrim(ctx context.Context, key string, maxLen int64) *IntCmd
 | 
			
		||||
	XTrimApprox(ctx context.Context, key string, maxLen int64) *IntCmd
 | 
			
		||||
	XTrimMaxLen(ctx context.Context, key string, maxLen int64) *IntCmd
 | 
			
		||||
	XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd
 | 
			
		||||
	XTrimMinID(ctx context.Context, key string, minID string) *IntCmd
 | 
			
		||||
	XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd
 | 
			
		||||
	XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd
 | 
			
		||||
	XInfoStream(ctx context.Context, key string) *XInfoStreamCmd
 | 
			
		||||
	XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd
 | 
			
		||||
 | 
			
		||||
	BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
 | 
			
		||||
	BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
 | 
			
		||||
 | 
			
		||||
	// TODO: remove
 | 
			
		||||
	//		ZAddCh
 | 
			
		||||
	//		ZIncr
 | 
			
		||||
	//		ZAddNXCh
 | 
			
		||||
	//		ZAddXXCh
 | 
			
		||||
	//		ZIncrNX
 | 
			
		||||
	//		ZIncrXX
 | 
			
		||||
	// 	in v9.
 | 
			
		||||
	// 	use ZAddArgs and ZAddArgsIncr.
 | 
			
		||||
 | 
			
		||||
	ZAdd(ctx context.Context, key string, members ...*Z) *IntCmd
 | 
			
		||||
	ZAddNX(ctx context.Context, key string, members ...*Z) *IntCmd
 | 
			
		||||
	ZAddXX(ctx context.Context, key string, members ...*Z) *IntCmd
 | 
			
		||||
	ZAddCh(ctx context.Context, key string, members ...*Z) *IntCmd
 | 
			
		||||
	ZAddNXCh(ctx context.Context, key string, members ...*Z) *IntCmd
 | 
			
		||||
	ZAddXXCh(ctx context.Context, key string, members ...*Z) *IntCmd
 | 
			
		||||
	ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd
 | 
			
		||||
	ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd
 | 
			
		||||
	ZIncr(ctx context.Context, key string, member *Z) *FloatCmd
 | 
			
		||||
	ZIncrNX(ctx context.Context, key string, member *Z) *FloatCmd
 | 
			
		||||
	ZIncrXX(ctx context.Context, key string, member *Z) *FloatCmd
 | 
			
		||||
| 
						 | 
				
			
			@ -265,6 +286,9 @@ type Cmdable interface {
 | 
			
		|||
	ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
 | 
			
		||||
	ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
 | 
			
		||||
	ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
 | 
			
		||||
	ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd
 | 
			
		||||
	ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd
 | 
			
		||||
	ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd
 | 
			
		||||
	ZRank(ctx context.Context, key, member string) *IntCmd
 | 
			
		||||
	ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd
 | 
			
		||||
	ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd
 | 
			
		||||
| 
						 | 
				
			
			@ -278,6 +302,8 @@ type Cmdable interface {
 | 
			
		|||
	ZRevRank(ctx context.Context, key, member string) *IntCmd
 | 
			
		||||
	ZScore(ctx context.Context, key, member string) *FloatCmd
 | 
			
		||||
	ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd
 | 
			
		||||
	ZUnion(ctx context.Context, store ZStore) *StringSliceCmd
 | 
			
		||||
	ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd
 | 
			
		||||
	ZRandMember(ctx context.Context, key string, count int, withScores bool) *StringSliceCmd
 | 
			
		||||
	ZDiff(ctx context.Context, keys ...string) *StringSliceCmd
 | 
			
		||||
	ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd
 | 
			
		||||
| 
						 | 
				
			
			@ -386,7 +412,7 @@ func (c statefulCmdable) Auth(ctx context.Context, password string) *StatusCmd {
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Perform an AUTH command, using the given user and pass.
 | 
			
		||||
// AuthACL Perform an AUTH command, using the given user and pass.
 | 
			
		||||
// Should be used to authenticate the current connection with one of the connections defined in the ACL list
 | 
			
		||||
// when connecting to a Redis 6.0 instance, or greater, that is using the Redis ACL system.
 | 
			
		||||
func (c statefulCmdable) AuthACL(ctx context.Context, username, password string) *StatusCmd {
 | 
			
		||||
| 
						 | 
				
			
			@ -447,7 +473,7 @@ func (c cmdable) Ping(ctx context.Context) *StatusCmd {
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) Quit(ctx context.Context) *StatusCmd {
 | 
			
		||||
func (c cmdable) Quit(_ context.Context) *StatusCmd {
 | 
			
		||||
	panic("not implemented")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -710,7 +736,7 @@ func (c cmdable) DecrBy(ctx context.Context, key string, decrement int64) *IntCm
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `GET key` command. It returns redis.Nil error when key does not exist.
 | 
			
		||||
// Get Redis `GET key` command. It returns redis.Nil error when key does not exist.
 | 
			
		||||
func (c cmdable) Get(ctx context.Context, key string) *StringCmd {
 | 
			
		||||
	cmd := NewStringCmd(ctx, "get", key)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
| 
						 | 
				
			
			@ -729,7 +755,7 @@ func (c cmdable) GetSet(ctx context.Context, key string, value interface{}) *Str
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// An expiration of zero removes the TTL associated with the key (i.e. GETEX key persist).
 | 
			
		||||
// GetEx An expiration of zero removes the TTL associated with the key (i.e. GETEX key persist).
 | 
			
		||||
// Requires Redis >= 6.2.0.
 | 
			
		||||
func (c cmdable) GetEx(ctx context.Context, key string, expiration time.Duration) *StringCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 4)
 | 
			
		||||
| 
						 | 
				
			
			@ -749,7 +775,7 @@ func (c cmdable) GetEx(ctx context.Context, key string, expiration time.Duration
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// redis-server version >= 6.2.0.
 | 
			
		||||
// GetDel redis-server version >= 6.2.0.
 | 
			
		||||
func (c cmdable) GetDel(ctx context.Context, key string) *StringCmd {
 | 
			
		||||
	cmd := NewStringCmd(ctx, "getdel", key)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
| 
						 | 
				
			
			@ -811,11 +837,12 @@ func (c cmdable) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd {
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `SET key value [expiration]` command.
 | 
			
		||||
// Set Redis `SET key value [expiration]` command.
 | 
			
		||||
// Use expiration for `SETEX`-like behavior.
 | 
			
		||||
//
 | 
			
		||||
// Zero expiration means the key has no expiration time.
 | 
			
		||||
// KeepTTL(-1) expiration is a Redis KEEPTTL option to keep existing TTL.
 | 
			
		||||
// KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0,
 | 
			
		||||
// otherwise you will receive an error: (error) ERR syntax error.
 | 
			
		||||
func (c cmdable) Set(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd {
 | 
			
		||||
	args := make([]interface{}, 3, 5)
 | 
			
		||||
	args[0] = "set"
 | 
			
		||||
| 
						 | 
				
			
			@ -848,7 +875,8 @@ type SetArgs struct {
 | 
			
		|||
	// When Get is true, the command returns the old value stored at key, or nil when key did not exist.
 | 
			
		||||
	Get bool
 | 
			
		||||
 | 
			
		||||
	// KeepTTL is a Redis KEEPTTL option to keep existing TTL.
 | 
			
		||||
	// KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0,
 | 
			
		||||
	// otherwise you will receive an error: (error) ERR syntax error.
 | 
			
		||||
	KeepTTL bool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -886,17 +914,18 @@ func (c cmdable) SetArgs(ctx context.Context, key string, value interface{}, a S
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `SETEX key expiration value` command.
 | 
			
		||||
// SetEX Redis `SETEX key expiration value` command.
 | 
			
		||||
func (c cmdable) SetEX(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd {
 | 
			
		||||
	cmd := NewStatusCmd(ctx, "setex", key, formatSec(ctx, expiration), value)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `SET key value [expiration] NX` command.
 | 
			
		||||
// SetNX Redis `SET key value [expiration] NX` command.
 | 
			
		||||
//
 | 
			
		||||
// Zero expiration means the key has no expiration time.
 | 
			
		||||
// KeepTTL(-1) expiration is a Redis KEEPTTL option to keep existing TTL.
 | 
			
		||||
// KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0,
 | 
			
		||||
// otherwise you will receive an error: (error) ERR syntax error.
 | 
			
		||||
func (c cmdable) SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd {
 | 
			
		||||
	var cmd *BoolCmd
 | 
			
		||||
	switch expiration {
 | 
			
		||||
| 
						 | 
				
			
			@ -917,10 +946,11 @@ func (c cmdable) SetNX(ctx context.Context, key string, value interface{}, expir
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `SET key value [expiration] XX` command.
 | 
			
		||||
// SetXX Redis `SET key value [expiration] XX` command.
 | 
			
		||||
//
 | 
			
		||||
// Zero expiration means the key has no expiration time.
 | 
			
		||||
// KeepTTL(-1) expiration is a Redis KEEPTTL option to keep existing TTL.
 | 
			
		||||
// KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0,
 | 
			
		||||
// otherwise you will receive an error: (error) ERR syntax error.
 | 
			
		||||
func (c cmdable) SetXX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd {
 | 
			
		||||
	var cmd *BoolCmd
 | 
			
		||||
	switch expiration {
 | 
			
		||||
| 
						 | 
				
			
			@ -1228,7 +1258,7 @@ func (c cmdable) HVals(ctx context.Context, key string) *StringSliceCmd {
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// redis-server version >= 6.2.0.
 | 
			
		||||
// HRandField redis-server version >= 6.2.0.
 | 
			
		||||
func (c cmdable) HRandField(ctx context.Context, key string, count int, withValues bool) *StringSliceCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 4)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1521,7 +1551,7 @@ func (c cmdable) SIsMember(ctx context.Context, key string, member interface{})
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `SMISMEMBER key member [member ...]` command.
 | 
			
		||||
// SMIsMember Redis `SMISMEMBER key member [member ...]` command.
 | 
			
		||||
func (c cmdable) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd {
 | 
			
		||||
	args := make([]interface{}, 2, 2+len(members))
 | 
			
		||||
	args[0] = "smismember"
 | 
			
		||||
| 
						 | 
				
			
			@ -1532,14 +1562,14 @@ func (c cmdable) SMIsMember(ctx context.Context, key string, members ...interfac
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `SMEMBERS key` command output as a slice.
 | 
			
		||||
// SMembers Redis `SMEMBERS key` command output as a slice.
 | 
			
		||||
func (c cmdable) SMembers(ctx context.Context, key string) *StringSliceCmd {
 | 
			
		||||
	cmd := NewStringSliceCmd(ctx, "smembers", key)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `SMEMBERS key` command output as a map.
 | 
			
		||||
// SMembersMap Redis `SMEMBERS key` command output as a map.
 | 
			
		||||
func (c cmdable) SMembersMap(ctx context.Context, key string) *StringStructMapCmd {
 | 
			
		||||
	cmd := NewStringStructMapCmd(ctx, "smembers", key)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
| 
						 | 
				
			
			@ -1552,28 +1582,28 @@ func (c cmdable) SMove(ctx context.Context, source, destination string, member i
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `SPOP key` command.
 | 
			
		||||
// SPop Redis `SPOP key` command.
 | 
			
		||||
func (c cmdable) SPop(ctx context.Context, key string) *StringCmd {
 | 
			
		||||
	cmd := NewStringCmd(ctx, "spop", key)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `SPOP key count` command.
 | 
			
		||||
// SPopN Redis `SPOP key count` command.
 | 
			
		||||
func (c cmdable) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd {
 | 
			
		||||
	cmd := NewStringSliceCmd(ctx, "spop", key, count)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `SRANDMEMBER key` command.
 | 
			
		||||
// SRandMember Redis `SRANDMEMBER key` command.
 | 
			
		||||
func (c cmdable) SRandMember(ctx context.Context, key string) *StringCmd {
 | 
			
		||||
	cmd := NewStringCmd(ctx, "srandmember", key)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `SRANDMEMBER key count` command.
 | 
			
		||||
// SRandMemberN Redis `SRANDMEMBER key count` command.
 | 
			
		||||
func (c cmdable) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd {
 | 
			
		||||
	cmd := NewStringSliceCmd(ctx, "srandmember", key, count)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
| 
						 | 
				
			
			@ -1621,22 +1651,50 @@ func (c cmdable) SUnionStore(ctx context.Context, destination string, keys ...st
 | 
			
		|||
//   - XAddArgs.Values = map[string]interface{}{"key1": "value1", "key2": "value2"}
 | 
			
		||||
//
 | 
			
		||||
// Note that map will not preserve the order of key-value pairs.
 | 
			
		||||
// MaxLen/MaxLenApprox and MinID are in conflict, only one of them can be used.
 | 
			
		||||
type XAddArgs struct {
 | 
			
		||||
	Stream       string
 | 
			
		||||
	MaxLen       int64 // MAXLEN N
 | 
			
		||||
	Stream     string
 | 
			
		||||
	NoMkStream bool
 | 
			
		||||
	MaxLen     int64 // MAXLEN N
 | 
			
		||||
 | 
			
		||||
	// Deprecated: use MaxLen+Approx, remove in v9.
 | 
			
		||||
	MaxLenApprox int64 // MAXLEN ~ N
 | 
			
		||||
	ID           string
 | 
			
		||||
	Values       interface{}
 | 
			
		||||
 | 
			
		||||
	MinID string
 | 
			
		||||
	// Approx causes MaxLen and MinID to use "~" matcher (instead of "=").
 | 
			
		||||
	Approx bool
 | 
			
		||||
	Limit  int64
 | 
			
		||||
	ID     string
 | 
			
		||||
	Values interface{}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// XAdd a.Limit has a bug, please confirm it and use it.
 | 
			
		||||
// issue: https://github.com/redis/redis/issues/9046
 | 
			
		||||
func (c cmdable) XAdd(ctx context.Context, a *XAddArgs) *StringCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 8)
 | 
			
		||||
	args = append(args, "xadd")
 | 
			
		||||
	args = append(args, a.Stream)
 | 
			
		||||
	if a.MaxLen > 0 {
 | 
			
		||||
		args = append(args, "maxlen", a.MaxLen)
 | 
			
		||||
	} else if a.MaxLenApprox > 0 {
 | 
			
		||||
	args := make([]interface{}, 0, 11)
 | 
			
		||||
	args = append(args, "xadd", a.Stream)
 | 
			
		||||
	if a.NoMkStream {
 | 
			
		||||
		args = append(args, "nomkstream")
 | 
			
		||||
	}
 | 
			
		||||
	switch {
 | 
			
		||||
	case a.MaxLen > 0:
 | 
			
		||||
		if a.Approx {
 | 
			
		||||
			args = append(args, "maxlen", "~", a.MaxLen)
 | 
			
		||||
		} else {
 | 
			
		||||
			args = append(args, "maxlen", a.MaxLen)
 | 
			
		||||
		}
 | 
			
		||||
	case a.MaxLenApprox > 0:
 | 
			
		||||
		// TODO remove in v9.
 | 
			
		||||
		args = append(args, "maxlen", "~", a.MaxLenApprox)
 | 
			
		||||
	case a.MinID != "":
 | 
			
		||||
		if a.Approx {
 | 
			
		||||
			args = append(args, "minid", "~", a.MinID)
 | 
			
		||||
		} else {
 | 
			
		||||
			args = append(args, "minid", a.MinID)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if a.Limit > 0 {
 | 
			
		||||
		args = append(args, "limit", a.Limit)
 | 
			
		||||
	}
 | 
			
		||||
	if a.ID != "" {
 | 
			
		||||
		args = append(args, a.ID)
 | 
			
		||||
| 
						 | 
				
			
			@ -1757,6 +1815,12 @@ func (c cmdable) XGroupDestroy(ctx context.Context, stream, group string) *IntCm
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd {
 | 
			
		||||
	cmd := NewIntCmd(ctx, "xgroup", "createconsumer", stream, group, consumer)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd {
 | 
			
		||||
	cmd := NewIntCmd(ctx, "xgroup", "delconsumer", stream, group, consumer)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
| 
						 | 
				
			
			@ -1845,6 +1909,39 @@ func (c cmdable) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingE
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type XAutoClaimArgs struct {
 | 
			
		||||
	Stream   string
 | 
			
		||||
	Group    string
 | 
			
		||||
	MinIdle  time.Duration
 | 
			
		||||
	Start    string
 | 
			
		||||
	Count    int64
 | 
			
		||||
	Consumer string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd {
 | 
			
		||||
	args := xAutoClaimArgs(ctx, a)
 | 
			
		||||
	cmd := NewXAutoClaimCmd(ctx, args...)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd {
 | 
			
		||||
	args := xAutoClaimArgs(ctx, a)
 | 
			
		||||
	args = append(args, "justid")
 | 
			
		||||
	cmd := NewXAutoClaimJustIDCmd(ctx, args...)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func xAutoClaimArgs(ctx context.Context, a *XAutoClaimArgs) []interface{} {
 | 
			
		||||
	args := make([]interface{}, 0, 9)
 | 
			
		||||
	args = append(args, "xautoclaim", a.Stream, a.Group, a.Consumer, formatMs(ctx, a.MinIdle), a.Start)
 | 
			
		||||
	if a.Count > 0 {
 | 
			
		||||
		args = append(args, "count", a.Count)
 | 
			
		||||
	}
 | 
			
		||||
	return args
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type XClaimArgs struct {
 | 
			
		||||
	Stream   string
 | 
			
		||||
	Group    string
 | 
			
		||||
| 
						 | 
				
			
			@ -1881,16 +1978,63 @@ func xClaimArgs(a *XClaimArgs) []interface{} {
 | 
			
		|||
	return args
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) XTrim(ctx context.Context, key string, maxLen int64) *IntCmd {
 | 
			
		||||
	cmd := NewIntCmd(ctx, "xtrim", key, "maxlen", maxLen)
 | 
			
		||||
// xTrim If approx is true, add the "~" parameter, otherwise it is the default "=" (redis default).
 | 
			
		||||
// example:
 | 
			
		||||
//		XTRIM key MAXLEN/MINID threshold LIMIT limit.
 | 
			
		||||
//		XTRIM key MAXLEN/MINID ~ threshold LIMIT limit.
 | 
			
		||||
// The redis-server version is lower than 6.2, please set limit to 0.
 | 
			
		||||
func (c cmdable) xTrim(
 | 
			
		||||
	ctx context.Context, key, strategy string,
 | 
			
		||||
	approx bool, threshold interface{}, limit int64,
 | 
			
		||||
) *IntCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 7)
 | 
			
		||||
	args = append(args, "xtrim", key, strategy)
 | 
			
		||||
	if approx {
 | 
			
		||||
		args = append(args, "~")
 | 
			
		||||
	}
 | 
			
		||||
	args = append(args, threshold)
 | 
			
		||||
	if limit > 0 {
 | 
			
		||||
		args = append(args, "limit", limit)
 | 
			
		||||
	}
 | 
			
		||||
	cmd := NewIntCmd(ctx, args...)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: use XTrimMaxLen, remove in v9.
 | 
			
		||||
func (c cmdable) XTrim(ctx context.Context, key string, maxLen int64) *IntCmd {
 | 
			
		||||
	return c.xTrim(ctx, key, "maxlen", false, maxLen, 0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: use XTrimMaxLenApprox, remove in v9.
 | 
			
		||||
func (c cmdable) XTrimApprox(ctx context.Context, key string, maxLen int64) *IntCmd {
 | 
			
		||||
	cmd := NewIntCmd(ctx, "xtrim", key, "maxlen", "~", maxLen)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
	return c.xTrim(ctx, key, "maxlen", true, maxLen, 0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// XTrimMaxLen No `~` rules are used, `limit` cannot be used.
 | 
			
		||||
// cmd: XTRIM key MAXLEN maxLen
 | 
			
		||||
func (c cmdable) XTrimMaxLen(ctx context.Context, key string, maxLen int64) *IntCmd {
 | 
			
		||||
	return c.xTrim(ctx, key, "maxlen", false, maxLen, 0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// XTrimMaxLenApprox LIMIT has a bug, please confirm it and use it.
 | 
			
		||||
// issue: https://github.com/redis/redis/issues/9046
 | 
			
		||||
// cmd: XTRIM key MAXLEN ~ maxLen LIMIT limit
 | 
			
		||||
func (c cmdable) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd {
 | 
			
		||||
	return c.xTrim(ctx, key, "maxlen", true, maxLen, limit)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// XTrimMinID No `~` rules are used, `limit` cannot be used.
 | 
			
		||||
// cmd: XTRIM key MINID minID
 | 
			
		||||
func (c cmdable) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd {
 | 
			
		||||
	return c.xTrim(ctx, key, "minid", false, minID, 0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// XTrimMinIDApprox LIMIT has a bug, please confirm it and use it.
 | 
			
		||||
// issue: https://github.com/redis/redis/issues/9046
 | 
			
		||||
// cmd: XTRIM key MINID ~ minID LIMIT limit
 | 
			
		||||
func (c cmdable) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd {
 | 
			
		||||
	return c.xTrim(ctx, key, "minid", true, minID, limit)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd {
 | 
			
		||||
| 
						 | 
				
			
			@ -1938,7 +2082,7 @@ type ZWithKey struct {
 | 
			
		|||
	Key string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ZStore is used as an arg to ZInterStore and ZUnionStore.
 | 
			
		||||
// ZStore is used as an arg to ZInter/ZInterStore and ZUnion/ZUnionStore.
 | 
			
		||||
type ZStore struct {
 | 
			
		||||
	Keys    []string
 | 
			
		||||
	Weights []float64
 | 
			
		||||
| 
						 | 
				
			
			@ -1946,7 +2090,7 @@ type ZStore struct {
 | 
			
		|||
	Aggregate string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (z *ZStore) len() (n int) {
 | 
			
		||||
func (z ZStore) len() (n int) {
 | 
			
		||||
	n = len(z.Keys)
 | 
			
		||||
	if len(z.Weights) > 0 {
 | 
			
		||||
		n += 1 + len(z.Weights)
 | 
			
		||||
| 
						 | 
				
			
			@ -1957,7 +2101,23 @@ func (z *ZStore) len() (n int) {
 | 
			
		|||
	return n
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `BZPOPMAX key [key ...] timeout` command.
 | 
			
		||||
func (z ZStore) appendArgs(args []interface{}) []interface{} {
 | 
			
		||||
	for _, key := range z.Keys {
 | 
			
		||||
		args = append(args, key)
 | 
			
		||||
	}
 | 
			
		||||
	if len(z.Weights) > 0 {
 | 
			
		||||
		args = append(args, "weights")
 | 
			
		||||
		for _, weights := range z.Weights {
 | 
			
		||||
			args = append(args, weights)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if z.Aggregate != "" {
 | 
			
		||||
		args = append(args, "aggregate", z.Aggregate)
 | 
			
		||||
	}
 | 
			
		||||
	return args
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.
 | 
			
		||||
func (c cmdable) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd {
 | 
			
		||||
	args := make([]interface{}, 1+len(keys)+1)
 | 
			
		||||
	args[0] = "bzpopmax"
 | 
			
		||||
| 
						 | 
				
			
			@ -1971,7 +2131,7 @@ func (c cmdable) BZPopMax(ctx context.Context, timeout time.Duration, keys ...st
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `BZPOPMIN key [key ...] timeout` command.
 | 
			
		||||
// BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.
 | 
			
		||||
func (c cmdable) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd {
 | 
			
		||||
	args := make([]interface{}, 1+len(keys)+1)
 | 
			
		||||
	args[0] = "bzpopmin"
 | 
			
		||||
| 
						 | 
				
			
			@ -1985,96 +2145,169 @@ func (c cmdable) BZPopMin(ctx context.Context, timeout time.Duration, keys ...st
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) zAdd(ctx context.Context, a []interface{}, n int, members ...*Z) *IntCmd {
 | 
			
		||||
	for i, m := range members {
 | 
			
		||||
		a[n+2*i] = m.Score
 | 
			
		||||
		a[n+2*i+1] = m.Member
 | 
			
		||||
// ZAddArgs WARN: The GT, LT and NX options are mutually exclusive.
 | 
			
		||||
type ZAddArgs struct {
 | 
			
		||||
	NX      bool
 | 
			
		||||
	XX      bool
 | 
			
		||||
	LT      bool
 | 
			
		||||
	GT      bool
 | 
			
		||||
	Ch      bool
 | 
			
		||||
	Members []Z
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) zAddArgs(key string, args ZAddArgs, incr bool) []interface{} {
 | 
			
		||||
	a := make([]interface{}, 0, 6+2*len(args.Members))
 | 
			
		||||
	a = append(a, "zadd", key)
 | 
			
		||||
 | 
			
		||||
	// The GT, LT and NX options are mutually exclusive.
 | 
			
		||||
	if args.NX {
 | 
			
		||||
		a = append(a, "nx")
 | 
			
		||||
	} else {
 | 
			
		||||
		if args.XX {
 | 
			
		||||
			a = append(a, "xx")
 | 
			
		||||
		}
 | 
			
		||||
		if args.GT {
 | 
			
		||||
			a = append(a, "gt")
 | 
			
		||||
		} else if args.LT {
 | 
			
		||||
			a = append(a, "lt")
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	cmd := NewIntCmd(ctx, a...)
 | 
			
		||||
	if args.Ch {
 | 
			
		||||
		a = append(a, "ch")
 | 
			
		||||
	}
 | 
			
		||||
	if incr {
 | 
			
		||||
		a = append(a, "incr")
 | 
			
		||||
	}
 | 
			
		||||
	for _, m := range args.Members {
 | 
			
		||||
		a = append(a, m.Score)
 | 
			
		||||
		a = append(a, m.Member)
 | 
			
		||||
	}
 | 
			
		||||
	return a
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd {
 | 
			
		||||
	cmd := NewIntCmd(ctx, c.zAddArgs(key, args, false)...)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `ZADD key score member [score member ...]` command.
 | 
			
		||||
func (c cmdable) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd {
 | 
			
		||||
	cmd := NewFloatCmd(ctx, c.zAddArgs(key, args, true)...)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TODO: Compatible with v8 api, will be removed in v9.
 | 
			
		||||
func (c cmdable) zAdd(ctx context.Context, key string, args ZAddArgs, members ...*Z) *IntCmd {
 | 
			
		||||
	args.Members = make([]Z, len(members))
 | 
			
		||||
	for i, m := range members {
 | 
			
		||||
		args.Members[i] = *m
 | 
			
		||||
	}
 | 
			
		||||
	cmd := NewIntCmd(ctx, c.zAddArgs(key, args, false)...)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ZAdd Redis `ZADD key score member [score member ...]` command.
 | 
			
		||||
func (c cmdable) ZAdd(ctx context.Context, key string, members ...*Z) *IntCmd {
 | 
			
		||||
	const n = 2
 | 
			
		||||
	a := make([]interface{}, n+2*len(members))
 | 
			
		||||
	a[0], a[1] = "zadd", key
 | 
			
		||||
	return c.zAdd(ctx, a, n, members...)
 | 
			
		||||
	return c.zAdd(ctx, key, ZAddArgs{}, members...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `ZADD key NX score member [score member ...]` command.
 | 
			
		||||
// ZAddNX Redis `ZADD key NX score member [score member ...]` command.
 | 
			
		||||
func (c cmdable) ZAddNX(ctx context.Context, key string, members ...*Z) *IntCmd {
 | 
			
		||||
	const n = 3
 | 
			
		||||
	a := make([]interface{}, n+2*len(members))
 | 
			
		||||
	a[0], a[1], a[2] = "zadd", key, "nx"
 | 
			
		||||
	return c.zAdd(ctx, a, n, members...)
 | 
			
		||||
	return c.zAdd(ctx, key, ZAddArgs{
 | 
			
		||||
		NX: true,
 | 
			
		||||
	}, members...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `ZADD key XX score member [score member ...]` command.
 | 
			
		||||
// ZAddXX Redis `ZADD key XX score member [score member ...]` command.
 | 
			
		||||
func (c cmdable) ZAddXX(ctx context.Context, key string, members ...*Z) *IntCmd {
 | 
			
		||||
	const n = 3
 | 
			
		||||
	a := make([]interface{}, n+2*len(members))
 | 
			
		||||
	a[0], a[1], a[2] = "zadd", key, "xx"
 | 
			
		||||
	return c.zAdd(ctx, a, n, members...)
 | 
			
		||||
	return c.zAdd(ctx, key, ZAddArgs{
 | 
			
		||||
		XX: true,
 | 
			
		||||
	}, members...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `ZADD key CH score member [score member ...]` command.
 | 
			
		||||
// ZAddCh Redis `ZADD key CH score member [score member ...]` command.
 | 
			
		||||
// Deprecated: Use
 | 
			
		||||
//		client.ZAddArgs(ctx, ZAddArgs{
 | 
			
		||||
//			Ch: true,
 | 
			
		||||
//			Members: []Z,
 | 
			
		||||
//		})
 | 
			
		||||
//	remove in v9.
 | 
			
		||||
func (c cmdable) ZAddCh(ctx context.Context, key string, members ...*Z) *IntCmd {
 | 
			
		||||
	const n = 3
 | 
			
		||||
	a := make([]interface{}, n+2*len(members))
 | 
			
		||||
	a[0], a[1], a[2] = "zadd", key, "ch"
 | 
			
		||||
	return c.zAdd(ctx, a, n, members...)
 | 
			
		||||
	return c.zAdd(ctx, key, ZAddArgs{
 | 
			
		||||
		Ch: true,
 | 
			
		||||
	}, members...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `ZADD key NX CH score member [score member ...]` command.
 | 
			
		||||
// ZAddNXCh Redis `ZADD key NX CH score member [score member ...]` command.
 | 
			
		||||
// Deprecated: Use
 | 
			
		||||
//		client.ZAddArgs(ctx, ZAddArgs{
 | 
			
		||||
//			NX: true,
 | 
			
		||||
//			Ch: true,
 | 
			
		||||
//			Members: []Z,
 | 
			
		||||
//		})
 | 
			
		||||
//	remove in v9.
 | 
			
		||||
func (c cmdable) ZAddNXCh(ctx context.Context, key string, members ...*Z) *IntCmd {
 | 
			
		||||
	const n = 4
 | 
			
		||||
	a := make([]interface{}, n+2*len(members))
 | 
			
		||||
	a[0], a[1], a[2], a[3] = "zadd", key, "nx", "ch"
 | 
			
		||||
	return c.zAdd(ctx, a, n, members...)
 | 
			
		||||
	return c.zAdd(ctx, key, ZAddArgs{
 | 
			
		||||
		NX: true,
 | 
			
		||||
		Ch: true,
 | 
			
		||||
	}, members...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `ZADD key XX CH score member [score member ...]` command.
 | 
			
		||||
// ZAddXXCh Redis `ZADD key XX CH score member [score member ...]` command.
 | 
			
		||||
// Deprecated: Use
 | 
			
		||||
//		client.ZAddArgs(ctx, ZAddArgs{
 | 
			
		||||
//			XX: true,
 | 
			
		||||
//			Ch: true,
 | 
			
		||||
//			Members: []Z,
 | 
			
		||||
//		})
 | 
			
		||||
//	remove in v9.
 | 
			
		||||
func (c cmdable) ZAddXXCh(ctx context.Context, key string, members ...*Z) *IntCmd {
 | 
			
		||||
	const n = 4
 | 
			
		||||
	a := make([]interface{}, n+2*len(members))
 | 
			
		||||
	a[0], a[1], a[2], a[3] = "zadd", key, "xx", "ch"
 | 
			
		||||
	return c.zAdd(ctx, a, n, members...)
 | 
			
		||||
	return c.zAdd(ctx, key, ZAddArgs{
 | 
			
		||||
		XX: true,
 | 
			
		||||
		Ch: true,
 | 
			
		||||
	}, members...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) zIncr(ctx context.Context, a []interface{}, n int, members ...*Z) *FloatCmd {
 | 
			
		||||
	for i, m := range members {
 | 
			
		||||
		a[n+2*i] = m.Score
 | 
			
		||||
		a[n+2*i+1] = m.Member
 | 
			
		||||
	}
 | 
			
		||||
	cmd := NewFloatCmd(ctx, a...)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `ZADD key INCR score member` command.
 | 
			
		||||
// ZIncr Redis `ZADD key INCR score member` command.
 | 
			
		||||
// Deprecated: Use
 | 
			
		||||
//		client.ZAddArgsIncr(ctx, ZAddArgs{
 | 
			
		||||
//			Members: []Z,
 | 
			
		||||
//		})
 | 
			
		||||
//	remove in v9.
 | 
			
		||||
func (c cmdable) ZIncr(ctx context.Context, key string, member *Z) *FloatCmd {
 | 
			
		||||
	const n = 3
 | 
			
		||||
	a := make([]interface{}, n+2)
 | 
			
		||||
	a[0], a[1], a[2] = "zadd", key, "incr"
 | 
			
		||||
	return c.zIncr(ctx, a, n, member)
 | 
			
		||||
	return c.ZAddArgsIncr(ctx, key, ZAddArgs{
 | 
			
		||||
		Members: []Z{*member},
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `ZADD key NX INCR score member` command.
 | 
			
		||||
// ZIncrNX Redis `ZADD key NX INCR score member` command.
 | 
			
		||||
// Deprecated: Use
 | 
			
		||||
//		client.ZAddArgsIncr(ctx, ZAddArgs{
 | 
			
		||||
//			NX: true,
 | 
			
		||||
//			Members: []Z,
 | 
			
		||||
//		})
 | 
			
		||||
//	remove in v9.
 | 
			
		||||
func (c cmdable) ZIncrNX(ctx context.Context, key string, member *Z) *FloatCmd {
 | 
			
		||||
	const n = 4
 | 
			
		||||
	a := make([]interface{}, n+2)
 | 
			
		||||
	a[0], a[1], a[2], a[3] = "zadd", key, "incr", "nx"
 | 
			
		||||
	return c.zIncr(ctx, a, n, member)
 | 
			
		||||
	return c.ZAddArgsIncr(ctx, key, ZAddArgs{
 | 
			
		||||
		NX:      true,
 | 
			
		||||
		Members: []Z{*member},
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Redis `ZADD key XX INCR score member` command.
 | 
			
		||||
// ZIncrXX Redis `ZADD key XX INCR score member` command.
 | 
			
		||||
// Deprecated: Use
 | 
			
		||||
//		client.ZAddArgsIncr(ctx, ZAddArgs{
 | 
			
		||||
//			XX: true,
 | 
			
		||||
//			Members: []Z,
 | 
			
		||||
//		})
 | 
			
		||||
//	remove in v9.
 | 
			
		||||
func (c cmdable) ZIncrXX(ctx context.Context, key string, member *Z) *FloatCmd {
 | 
			
		||||
	const n = 4
 | 
			
		||||
	a := make([]interface{}, n+2)
 | 
			
		||||
	a[0], a[1], a[2], a[3] = "zadd", key, "incr", "xx"
 | 
			
		||||
	return c.zIncr(ctx, a, n, member)
 | 
			
		||||
	return c.ZAddArgsIncr(ctx, key, ZAddArgs{
 | 
			
		||||
		XX:      true,
 | 
			
		||||
		Members: []Z{*member},
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) ZCard(ctx context.Context, key string) *IntCmd {
 | 
			
		||||
| 
						 | 
				
			
			@ -2104,18 +2337,7 @@ func (c cmdable) ZIncrBy(ctx context.Context, key string, increment float64, mem
 | 
			
		|||
func (c cmdable) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 3+store.len())
 | 
			
		||||
	args = append(args, "zinterstore", destination, len(store.Keys))
 | 
			
		||||
	for _, key := range store.Keys {
 | 
			
		||||
		args = append(args, key)
 | 
			
		||||
	}
 | 
			
		||||
	if len(store.Weights) > 0 {
 | 
			
		||||
		args = append(args, "weights")
 | 
			
		||||
		for _, weight := range store.Weights {
 | 
			
		||||
			args = append(args, weight)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if store.Aggregate != "" {
 | 
			
		||||
		args = append(args, "aggregate", store.Aggregate)
 | 
			
		||||
	}
 | 
			
		||||
	args = store.appendArgs(args)
 | 
			
		||||
	cmd := NewIntCmd(ctx, args...)
 | 
			
		||||
	cmd.setFirstKeyPos(3)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
| 
						 | 
				
			
			@ -2125,19 +2347,7 @@ func (c cmdable) ZInterStore(ctx context.Context, destination string, store *ZSt
 | 
			
		|||
func (c cmdable) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 2+store.len())
 | 
			
		||||
	args = append(args, "zinter", len(store.Keys))
 | 
			
		||||
	for _, key := range store.Keys {
 | 
			
		||||
		args = append(args, key)
 | 
			
		||||
	}
 | 
			
		||||
	if len(store.Weights) > 0 {
 | 
			
		||||
		args = append(args, "weights")
 | 
			
		||||
		for _, weights := range store.Weights {
 | 
			
		||||
			args = append(args, weights)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if store.Aggregate != "" {
 | 
			
		||||
		args = append(args, "aggregate", store.Aggregate)
 | 
			
		||||
	}
 | 
			
		||||
	args = store.appendArgs(args)
 | 
			
		||||
	cmd := NewStringSliceCmd(ctx, args...)
 | 
			
		||||
	cmd.setFirstKeyPos(2)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
| 
						 | 
				
			
			@ -2147,18 +2357,7 @@ func (c cmdable) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd {
 | 
			
		|||
func (c cmdable) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 3+store.len())
 | 
			
		||||
	args = append(args, "zinter", len(store.Keys))
 | 
			
		||||
	for _, key := range store.Keys {
 | 
			
		||||
		args = append(args, key)
 | 
			
		||||
	}
 | 
			
		||||
	if len(store.Weights) > 0 {
 | 
			
		||||
		args = append(args, "weights")
 | 
			
		||||
		for _, weights := range store.Weights {
 | 
			
		||||
			args = append(args, weights)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if store.Aggregate != "" {
 | 
			
		||||
		args = append(args, "aggregate", store.Aggregate)
 | 
			
		||||
	}
 | 
			
		||||
	args = store.appendArgs(args)
 | 
			
		||||
	args = append(args, "withscores")
 | 
			
		||||
	cmd := NewZSliceCmd(ctx, args...)
 | 
			
		||||
	cmd.setFirstKeyPos(2)
 | 
			
		||||
| 
						 | 
				
			
			@ -2218,29 +2417,112 @@ func (c cmdable) ZPopMin(ctx context.Context, key string, count ...int64) *ZSlic
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) zRange(ctx context.Context, key string, start, stop int64, withScores bool) *StringSliceCmd {
 | 
			
		||||
	args := []interface{}{
 | 
			
		||||
		"zrange",
 | 
			
		||||
		key,
 | 
			
		||||
		start,
 | 
			
		||||
		stop,
 | 
			
		||||
// ZRangeArgs is all the options of the ZRange command.
 | 
			
		||||
// In version> 6.2.0, you can replace the(cmd):
 | 
			
		||||
//		ZREVRANGE,
 | 
			
		||||
//		ZRANGEBYSCORE,
 | 
			
		||||
//		ZREVRANGEBYSCORE,
 | 
			
		||||
//		ZRANGEBYLEX,
 | 
			
		||||
//		ZREVRANGEBYLEX.
 | 
			
		||||
// Please pay attention to your redis-server version.
 | 
			
		||||
//
 | 
			
		||||
// Rev, ByScore, ByLex and Offset+Count options require redis-server 6.2.0 and higher.
 | 
			
		||||
type ZRangeArgs struct {
 | 
			
		||||
	Key string
 | 
			
		||||
 | 
			
		||||
	// When the ByScore option is provided, the open interval(exclusive) can be set.
 | 
			
		||||
	// By default, the score intervals specified by <Start> and <Stop> are closed (inclusive).
 | 
			
		||||
	// It is similar to the deprecated(6.2.0+) ZRangeByScore command.
 | 
			
		||||
	// For example:
 | 
			
		||||
	//		ZRangeArgs{
 | 
			
		||||
	//			Key: 				"example-key",
 | 
			
		||||
	//	 		Start: 				"(3",
 | 
			
		||||
	//	 		Stop: 				8,
 | 
			
		||||
	//			ByScore:			true,
 | 
			
		||||
	//	 	}
 | 
			
		||||
	// 	 	cmd: "ZRange example-key (3 8 ByScore"  (3 < score <= 8).
 | 
			
		||||
	//
 | 
			
		||||
	// For the ByLex option, it is similar to the deprecated(6.2.0+) ZRangeByLex command.
 | 
			
		||||
	// You can set the <Start> and <Stop> options as follows:
 | 
			
		||||
	//		ZRangeArgs{
 | 
			
		||||
	//			Key: 				"example-key",
 | 
			
		||||
	//	 		Start: 				"[abc",
 | 
			
		||||
	//	 		Stop: 				"(def",
 | 
			
		||||
	//			ByLex:				true,
 | 
			
		||||
	//	 	}
 | 
			
		||||
	//		cmd: "ZRange example-key [abc (def ByLex"
 | 
			
		||||
	//
 | 
			
		||||
	// For normal cases (ByScore==false && ByLex==false), <Start> and <Stop> should be set to the index range (int).
 | 
			
		||||
	// You can read the documentation for more information: https://redis.io/commands/zrange
 | 
			
		||||
	Start interface{}
 | 
			
		||||
	Stop  interface{}
 | 
			
		||||
 | 
			
		||||
	// The ByScore and ByLex options are mutually exclusive.
 | 
			
		||||
	ByScore bool
 | 
			
		||||
	ByLex   bool
 | 
			
		||||
 | 
			
		||||
	Rev bool
 | 
			
		||||
 | 
			
		||||
	// limit offset count.
 | 
			
		||||
	Offset int64
 | 
			
		||||
	Count  int64
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (z ZRangeArgs) appendArgs(args []interface{}) []interface{} {
 | 
			
		||||
	// For Rev+ByScore/ByLex, we need to adjust the position of <Start> and <Stop>.
 | 
			
		||||
	if z.Rev && (z.ByScore || z.ByLex) {
 | 
			
		||||
		args = append(args, z.Key, z.Stop, z.Start)
 | 
			
		||||
	} else {
 | 
			
		||||
		args = append(args, z.Key, z.Start, z.Stop)
 | 
			
		||||
	}
 | 
			
		||||
	if withScores {
 | 
			
		||||
		args = append(args, "withscores")
 | 
			
		||||
 | 
			
		||||
	if z.ByScore {
 | 
			
		||||
		args = append(args, "byscore")
 | 
			
		||||
	} else if z.ByLex {
 | 
			
		||||
		args = append(args, "bylex")
 | 
			
		||||
	}
 | 
			
		||||
	if z.Rev {
 | 
			
		||||
		args = append(args, "rev")
 | 
			
		||||
	}
 | 
			
		||||
	if z.Offset != 0 || z.Count != 0 {
 | 
			
		||||
		args = append(args, "limit", z.Offset, z.Count)
 | 
			
		||||
	}
 | 
			
		||||
	return args
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 9)
 | 
			
		||||
	args = append(args, "zrange")
 | 
			
		||||
	args = z.appendArgs(args)
 | 
			
		||||
	cmd := NewStringSliceCmd(ctx, args...)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 10)
 | 
			
		||||
	args = append(args, "zrange")
 | 
			
		||||
	args = z.appendArgs(args)
 | 
			
		||||
	args = append(args, "withscores")
 | 
			
		||||
	cmd := NewZSliceCmd(ctx, args...)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd {
 | 
			
		||||
	return c.zRange(ctx, key, start, stop, false)
 | 
			
		||||
	return c.ZRangeArgs(ctx, ZRangeArgs{
 | 
			
		||||
		Key:   key,
 | 
			
		||||
		Start: start,
 | 
			
		||||
		Stop:  stop,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd {
 | 
			
		||||
	cmd := NewZSliceCmd(ctx, "zrange", key, start, stop, "withscores")
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
	return c.ZRangeArgsWithScores(ctx, ZRangeArgs{
 | 
			
		||||
		Key:   key,
 | 
			
		||||
		Start: start,
 | 
			
		||||
		Stop:  stop,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ZRangeBy struct {
 | 
			
		||||
| 
						 | 
				
			
			@ -2289,6 +2571,15 @@ func (c cmdable) ZRangeByScoreWithScores(ctx context.Context, key string, opt *Z
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 10)
 | 
			
		||||
	args = append(args, "zrangestore", dst)
 | 
			
		||||
	args = z.appendArgs(args)
 | 
			
		||||
	cmd := NewIntCmd(ctx, args...)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) ZRank(ctx context.Context, key, member string) *IntCmd {
 | 
			
		||||
	cmd := NewIntCmd(ctx, "zrank", key, member)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
| 
						 | 
				
			
			@ -2391,29 +2682,38 @@ func (c cmdable) ZScore(ctx context.Context, key, member string) *FloatCmd {
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 2+store.len())
 | 
			
		||||
	args = append(args, "zunion", len(store.Keys))
 | 
			
		||||
	args = store.appendArgs(args)
 | 
			
		||||
	cmd := NewStringSliceCmd(ctx, args...)
 | 
			
		||||
	cmd.setFirstKeyPos(2)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 3+store.len())
 | 
			
		||||
	args = append(args, "zunion", len(store.Keys))
 | 
			
		||||
	args = store.appendArgs(args)
 | 
			
		||||
	args = append(args, "withscores")
 | 
			
		||||
	cmd := NewZSliceCmd(ctx, args...)
 | 
			
		||||
	cmd.setFirstKeyPos(2)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 3+store.len())
 | 
			
		||||
	args = append(args, "zunionstore", dest, len(store.Keys))
 | 
			
		||||
	for _, key := range store.Keys {
 | 
			
		||||
		args = append(args, key)
 | 
			
		||||
	}
 | 
			
		||||
	if len(store.Weights) > 0 {
 | 
			
		||||
		args = append(args, "weights")
 | 
			
		||||
		for _, weight := range store.Weights {
 | 
			
		||||
			args = append(args, weight)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if store.Aggregate != "" {
 | 
			
		||||
		args = append(args, "aggregate", store.Aggregate)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	args = store.appendArgs(args)
 | 
			
		||||
	cmd := NewIntCmd(ctx, args...)
 | 
			
		||||
	cmd.setFirstKeyPos(3)
 | 
			
		||||
	_ = c(ctx, cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// redis-server version >= 6.2.0.
 | 
			
		||||
// ZRandMember redis-server version >= 6.2.0.
 | 
			
		||||
func (c cmdable) ZRandMember(ctx context.Context, key string, count int, withScores bool) *StringSliceCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 4)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2428,7 +2728,7 @@ func (c cmdable) ZRandMember(ctx context.Context, key string, count int, withSco
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// redis-server version >= 6.2.0.
 | 
			
		||||
// ZDiff redis-server version >= 6.2.0.
 | 
			
		||||
func (c cmdable) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd {
 | 
			
		||||
	args := make([]interface{}, 2+len(keys))
 | 
			
		||||
	args[0] = "zdiff"
 | 
			
		||||
| 
						 | 
				
			
			@ -2443,7 +2743,7 @@ func (c cmdable) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd {
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// redis-server version >= 6.2.0.
 | 
			
		||||
// ZDiffWithScores redis-server version >= 6.2.0.
 | 
			
		||||
func (c cmdable) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd {
 | 
			
		||||
	args := make([]interface{}, 3+len(keys))
 | 
			
		||||
	args[0] = "zdiff"
 | 
			
		||||
| 
						 | 
				
			
			@ -2459,7 +2759,7 @@ func (c cmdable) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// redis-server version >=6.2.0.
 | 
			
		||||
// ZDiffStore redis-server version >=6.2.0.
 | 
			
		||||
func (c cmdable) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd {
 | 
			
		||||
	args := make([]interface{}, 0, 3+len(keys))
 | 
			
		||||
	args = append(args, "zdiffstore", destination, len(keys))
 | 
			
		||||
| 
						 | 
				
			
			@ -2693,7 +2993,7 @@ func (c cmdable) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd {
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c cmdable) Sync(ctx context.Context) {
 | 
			
		||||
func (c cmdable) Sync(_ context.Context) {
 | 
			
		||||
	panic("not implemented")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -3011,7 +3311,7 @@ func (c cmdable) GeoRadiusStore(
 | 
			
		|||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GeoRadius is a read-only GEORADIUSBYMEMBER_RO command.
 | 
			
		||||
// GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.
 | 
			
		||||
func (c cmdable) GeoRadiusByMember(
 | 
			
		||||
	ctx context.Context, key, member string, query *GeoRadiusQuery,
 | 
			
		||||
) *GeoLocationCmd {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/go-redis/redis/v8/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-redis/redis/v8/go.mod
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -5,7 +5,7 @@ go 1.13
 | 
			
		|||
require (
 | 
			
		||||
	github.com/cespare/xxhash/v2 v2.1.1
 | 
			
		||||
	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
 | 
			
		||||
	github.com/google/go-cmp v0.5.6 // indirect
 | 
			
		||||
	github.com/onsi/ginkgo v1.15.0
 | 
			
		||||
	github.com/onsi/gomega v1.10.5
 | 
			
		||||
	go.opentelemetry.io/otel/metric v0.20.0
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										21
									
								
								vendor/github.com/go-redis/redis/v8/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								vendor/github.com/go-redis/redis/v8/go.sum
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,7 +1,5 @@
 | 
			
		|||
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
 | 
			
		||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
 | 
			
		||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 | 
			
		||||
| 
						 | 
				
			
			@ -18,8 +16,8 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
 | 
			
		|||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
			
		||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
			
		||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
 | 
			
		||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
 | 
			
		||||
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 | 
			
		||||
github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=
 | 
			
		||||
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
 | 
			
		||||
| 
						 | 
				
			
			@ -31,20 +29,7 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J
 | 
			
		|||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
 | 
			
		||||
github.com/onsi/gomega v1.10.5 h1:7n6FEkpFmfCoo2t+YYqXH0evK+a9ICQz0xcAy9dYcaQ=
 | 
			
		||||
github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
			
		||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
			
		||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
 | 
			
		||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 | 
			
		||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
			
		||||
go.opentelemetry.io/otel v0.20.0 h1:eaP0Fqu7SXHwvjiqDq83zImeehOHX8doTvU9AwXON8g=
 | 
			
		||||
go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo=
 | 
			
		||||
go.opentelemetry.io/otel/metric v0.20.0 h1:4kzhXFP+btKm4jwxpjIqjs41A7MakRFUS86bqLHTIw8=
 | 
			
		||||
go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU=
 | 
			
		||||
go.opentelemetry.io/otel/oteltest v0.20.0 h1:HiITxCawalo5vQzdHfKeZurV8x7ljcqAgiWzF6Vaeaw=
 | 
			
		||||
go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw=
 | 
			
		||||
go.opentelemetry.io/otel/trace v0.20.0 h1:1DL6EXUdcg95gukhuRRvLDO/4X5THh/5dIV52lqtnbw=
 | 
			
		||||
go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
| 
						 | 
				
			
			@ -95,5 +80,3 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD
 | 
			
		|||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
 | 
			
		||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
 | 
			
		||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								vendor/github.com/go-redis/redis/v8/internal/hscan/hscan.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-redis/redis/v8/internal/hscan/hscan.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -49,7 +49,7 @@ var (
 | 
			
		|||
func Struct(dst interface{}) (StructValue, error) {
 | 
			
		||||
	v := reflect.ValueOf(dst)
 | 
			
		||||
 | 
			
		||||
	// The dstination to scan into should be a struct pointer.
 | 
			
		||||
	// The destination to scan into should be a struct pointer.
 | 
			
		||||
	if v.Kind() != reflect.Ptr || v.IsNil() {
 | 
			
		||||
		return StructValue{}, fmt.Errorf("redis.Scan(non-pointer %T)", dst)
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										33
									
								
								vendor/github.com/go-redis/redis/v8/internal/instruments.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								vendor/github.com/go-redis/redis/v8/internal/instruments.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,33 +0,0 @@
 | 
			
		|||
package internal
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
 | 
			
		||||
	"go.opentelemetry.io/otel/metric"
 | 
			
		||||
	"go.opentelemetry.io/otel/metric/global"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	// WritesCounter is a count of write commands performed.
 | 
			
		||||
	WritesCounter metric.Int64Counter
 | 
			
		||||
	// NewConnectionsCounter is a count of new connections.
 | 
			
		||||
	NewConnectionsCounter metric.Int64Counter
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	defer func() {
 | 
			
		||||
		if r := recover(); r != nil {
 | 
			
		||||
			Logger.Printf(context.Background(), "Error creating meter github.com/go-redis/redis for Instruments", r)
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	meter := metric.Must(global.Meter("github.com/go-redis/redis"))
 | 
			
		||||
 | 
			
		||||
	WritesCounter = meter.NewInt64Counter("redis.writes",
 | 
			
		||||
		metric.WithDescription("the number of writes initiated"),
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	NewConnectionsCounter = meter.NewInt64Counter("redis.new_connections",
 | 
			
		||||
		metric.WithDescription("the number of connections created"),
 | 
			
		||||
	)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/go-redis/redis/v8/internal/pool/conn.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/go-redis/redis/v8/internal/pool/conn.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -7,7 +7,6 @@ import (
 | 
			
		|||
	"sync/atomic"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/go-redis/redis/v8/internal"
 | 
			
		||||
	"github.com/go-redis/redis/v8/internal/proto"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -86,13 +85,7 @@ func (cn *Conn) WithWriter(
 | 
			
		|||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := cn.bw.Flush(); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	internal.WritesCounter.Add(ctx, 1)
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
	return cn.bw.Flush()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cn *Conn) Close() error {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								vendor/github.com/go-redis/redis/v8/internal/pool/pool.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/go-redis/redis/v8/internal/pool/pool.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -188,7 +188,6 @@ func (p *ConnPool) dialConn(ctx context.Context, pooled bool) (*Conn, error) {
 | 
			
		|||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	internal.NewConnectionsCounter.Add(ctx, 1)
 | 
			
		||||
	cn := NewConn(netConn)
 | 
			
		||||
	cn.pooled = pooled
 | 
			
		||||
	return cn, nil
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								vendor/github.com/go-redis/redis/v8/options.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/go-redis/redis/v8/options.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -77,7 +77,7 @@ type Options struct {
 | 
			
		|||
	WriteTimeout time.Duration
 | 
			
		||||
 | 
			
		||||
	// Maximum number of socket connections.
 | 
			
		||||
	// Default is 10 connections per every CPU as reported by runtime.NumCPU.
 | 
			
		||||
	// Default is 10 connections per every available CPU as reported by runtime.GOMAXPROCS.
 | 
			
		||||
	PoolSize int
 | 
			
		||||
	// Minimum number of idle connections which is useful when establishing
 | 
			
		||||
	// new connection is slow.
 | 
			
		||||
| 
						 | 
				
			
			@ -136,7 +136,7 @@ func (opt *Options) init() {
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if opt.PoolSize == 0 {
 | 
			
		||||
		opt.PoolSize = 10 * runtime.NumCPU()
 | 
			
		||||
		opt.PoolSize = 10 * runtime.GOMAXPROCS(0)
 | 
			
		||||
	}
 | 
			
		||||
	switch opt.ReadTimeout {
 | 
			
		||||
	case -1:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								vendor/github.com/golang/snappy/AUTHORS
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/golang/snappy/AUTHORS
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -10,6 +10,7 @@
 | 
			
		|||
 | 
			
		||||
Amazon.com, Inc
 | 
			
		||||
Damian Gryski <dgryski@gmail.com>
 | 
			
		||||
Eric Buth <eric@topos.com>
 | 
			
		||||
Google Inc.
 | 
			
		||||
Jan Mercl <0xjnml@gmail.com>
 | 
			
		||||
Klaus Post <klauspost@gmail.com>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue