From c5c5771df22acdc6fe18ad5bc3e56fb7f92c39a8 Mon Sep 17 00:00:00 2001 From: mahakagi Date: Thu, 9 Jan 2025 14:25:20 -0600 Subject: [PATCH] Bump 1.32 containernetworking Git_Tag to v1.5.1 (#3515) * Bump containernetworking Git_tag to v1.5.1 * Patch: Bump go directive for tag 1.5.1 to fix go dependency download * fix: checksums --- .../plugins/1-32/CHECKSUMS | 72 +- .../containernetworking/plugins/1-32/GIT_TAG | 2 +- .../plugins/1-32/GOLANG_VERSION | 2 +- ...verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch | 3157 ------- ...tive-to-1.21-to-fix-go-deps-download.patch | 27 + ...-to-1.33.0-to-resolve-CVE-2024-24786.patch | 7533 ----------------- ...-to-0.23.0-to-resolve-CVE-2023-45288.patch | 2408 ------ 7 files changed, 65 insertions(+), 13136 deletions(-) delete mode 100644 projects/containernetworking/plugins/1-32/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch create mode 100644 projects/containernetworking/plugins/1-32/patches/0001-Bump-go-directive-to-1.21-to-fix-go-deps-download.patch delete mode 100644 projects/containernetworking/plugins/1-32/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch delete mode 100644 projects/containernetworking/plugins/1-32/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch diff --git a/projects/containernetworking/plugins/1-32/CHECKSUMS b/projects/containernetworking/plugins/1-32/CHECKSUMS index be08fdd98e..50fac42a15 100644 --- a/projects/containernetworking/plugins/1-32/CHECKSUMS +++ b/projects/containernetworking/plugins/1-32/CHECKSUMS @@ -1,36 +1,36 @@ -69fe6a58958ff4bc34251b2f40bbcb27cabd53f66a6c7fc0cf0b7d0b9b274e8f _output/1-32/bin/plugins/linux-amd64/bandwidth -61f5877b2061adf97886f1bd6747d1123ee0702cc0742fbb2a42498844c15753 _output/1-32/bin/plugins/linux-amd64/bridge -a7e42463fd236ad8007d5eba595b5f5e7876cebff9049f37b7bd5ade7f42c122 _output/1-32/bin/plugins/linux-amd64/dhcp -88096c4867b7de33e68742538ae26e24c897c91c7b0c5bcbf20a81acf72dc5d0 _output/1-32/bin/plugins/linux-amd64/dummy -56578f33687e984456ce01d13f8eedaeb1bf02749f2550a69fa22ea35bad293a _output/1-32/bin/plugins/linux-amd64/firewall -36974851ebb1fdad889e53694f346cb6d843bd574c5f29bd43d6898b4cc17dd4 _output/1-32/bin/plugins/linux-amd64/host-device -789f3fdc18751ca70c7ebd01ae330120ad0c92abbfde60691145d9d903e31f4f _output/1-32/bin/plugins/linux-amd64/host-local -fa47175bb2acc3e4415e9accc816ae24ba986f56c5957dac932e3fd3a055a8e3 _output/1-32/bin/plugins/linux-amd64/ipvlan -3064e7ba805d6326f66215735c074a406650aa1a04bd129f5b0d5fa49c2dfc99 _output/1-32/bin/plugins/linux-amd64/loopback -298ab32a27da6d29024dd7172de570a4a94cdf2ea42d591a503ab594ece26845 _output/1-32/bin/plugins/linux-amd64/macvlan -681558f4375a4d678f6166f6e8cff5235cb2e06e62c11fc13e88156c3f518fa1 _output/1-32/bin/plugins/linux-amd64/portmap -5485f6937fa9aa18f184407f9ce94caff4a45ba5a316fda063a0cb248113c10b _output/1-32/bin/plugins/linux-amd64/ptp -b72427fd400b6be1fe6fde7d89f363748c40eb101544c15b7052adda3ccc627a _output/1-32/bin/plugins/linux-amd64/sbr -2055e03393e5a1fc2064979ca745d05d4d1c2813f4a9cd7eb55817afc8cb3858 _output/1-32/bin/plugins/linux-amd64/static -72239e2697cfd4672ee47510097b3837f0622c11201ccf4994e76a45dff51e2f _output/1-32/bin/plugins/linux-amd64/tap -2483955dadcad43e39f859fdc8b03cfe740ec1c58fdc4e2979f4c3c27c682da1 _output/1-32/bin/plugins/linux-amd64/tuning -15cf20dc24293d7dfc9cfb2022e52515120f49b002f31f33007c5ce2bb6f9f97 _output/1-32/bin/plugins/linux-amd64/vlan -3b305a3e7bd6ead8155e1bd0b1c2727164b8dac8468d6321273ea3be7558be84 _output/1-32/bin/plugins/linux-amd64/vrf -cbb65bfa66e9d54197abe0eae61c5fbfd9eccf234707156794e81bbe4ec3cd9b _output/1-32/bin/plugins/linux-arm64/bandwidth -38cab505063772fc59ea816d61e787bf22e06847de0b13f8c4bee5bc210d791c _output/1-32/bin/plugins/linux-arm64/bridge -31d6eabea6b08dbbd2ef62da61c5eb76097fe0739eacebb5fb2884447be45a2f _output/1-32/bin/plugins/linux-arm64/dhcp -f13d7f4bcb98bf037ea499f4883a45127e756665a65b9df96c27c1125c5f08bf _output/1-32/bin/plugins/linux-arm64/dummy -80585a53dd9ff9ec1994fc16918e8083fd404e82460919e49ad707f15ec0451c _output/1-32/bin/plugins/linux-arm64/firewall -05609a30013afa583128411e64d77bcd2cea629d2653cfbf3651e8665ee38a82 _output/1-32/bin/plugins/linux-arm64/host-device -106a7526aeb039c3e9bb981c4312cc274570a99c1ca89b89412418db7db840a7 _output/1-32/bin/plugins/linux-arm64/host-local -89ac851cbb56453410a34074d2a73994664f73d8e02be3a533ebd85bcdfbf8c1 _output/1-32/bin/plugins/linux-arm64/ipvlan -2a09202dad6b0c5c13ca14344b7474cb29394042f1b650eab2b53c8ec922585a _output/1-32/bin/plugins/linux-arm64/loopback -4b087dd53bc5995dda4cd1664b29638ecb97182bdd7788dbb645b3bb43bf10a5 _output/1-32/bin/plugins/linux-arm64/macvlan -77adb8642bad700a69b0ec0f54287bd588c06a9be73d2af34333b52be85eecc7 _output/1-32/bin/plugins/linux-arm64/portmap -e7b3f058462f9075b8373877f4e3866470102b6324a851072906548ad543b89d _output/1-32/bin/plugins/linux-arm64/ptp -12e360d03c9b5a3419c2df04c3c36efa5ba1e67b4de31d015a65117eae3acde5 _output/1-32/bin/plugins/linux-arm64/sbr -5e5e51406e3b8b9e9c47ed19d808feb9f44d5d23ce898cc641e1efd275ba6966 _output/1-32/bin/plugins/linux-arm64/static -bba6e38f06b0b09ff41a35f42e2f49dca956e32edb73788e9899fc88f2aa2f10 _output/1-32/bin/plugins/linux-arm64/tap -8336ec5e0e1343b5b413bcb35ef7e5a4c2c1fc0f7be1b55183cccb9386725c79 _output/1-32/bin/plugins/linux-arm64/tuning -009eeb7203f811c8ca0f2e3ea8047643aea47a18e0fe6b0d5eda270b6b8dfaaa _output/1-32/bin/plugins/linux-arm64/vlan -01c553d29f026dd2d6b908990201083db5cb131ebc15db38e2ce500529fa4a62 _output/1-32/bin/plugins/linux-arm64/vrf +8dcca2aca05633511938ae1cebf5128c25ec295c0cb768b72da8c075a9826bbc _output/1-32/bin/plugins/linux-amd64/bandwidth +35311b5c8275df6e9f744d4e84a56f68cdd719692f1953662357af910f2849c8 _output/1-32/bin/plugins/linux-amd64/bridge +8737aee3b3fef579645bb5026719e40c86b225c4c5a8cd469b3b4f03cc523529 _output/1-32/bin/plugins/linux-amd64/dhcp +696235aa1ace55a88a7dae0494979f15a00f0f5cfb07788d951313ca9114292b _output/1-32/bin/plugins/linux-amd64/dummy +f98a41a8de6fecb7b9e6973d97e34a533fcae6299fca21bf52d0c126bb2c5ab1 _output/1-32/bin/plugins/linux-amd64/firewall +4540e2f2a6e9095091053798daf92634e2a8df654056b294259818545432420e _output/1-32/bin/plugins/linux-amd64/host-device +3f6c1bab4ee17595cba34fc9f6ca0d572fc223fd06bbf61b01ba8354c6e54677 _output/1-32/bin/plugins/linux-amd64/host-local +f659e100ffcd8482643b6c9958fc35031e2a5811909b57ace66a5da42345675c _output/1-32/bin/plugins/linux-amd64/ipvlan +f17913a346cd928315d98c10b691b0e6e321a3c94ef6b1c05c308b07d46e6704 _output/1-32/bin/plugins/linux-amd64/loopback +810b994b582e6f239690b653404bdf6c32aca10c5064ef2e09483bae1bb6ee40 _output/1-32/bin/plugins/linux-amd64/macvlan +24b0c714fc1533452a6f9e2ef06cead2ea51819c12b2c16ce31b5c097c6b3c7c _output/1-32/bin/plugins/linux-amd64/portmap +cfbacb4805c2f37a75a88a559a5fda1d17765a3bb87d80e4b8a312fbfe64fab8 _output/1-32/bin/plugins/linux-amd64/ptp +b17b1bbded781edefcc67e32fb4efdb8f83e8ebf7b9ffbd041c35c7135ae35a4 _output/1-32/bin/plugins/linux-amd64/sbr +8407c141f31e96a50f6fdb51b9bca875e8d31146f1dc87d149e7bb150cfd92e2 _output/1-32/bin/plugins/linux-amd64/static +3057279b76a2efbe06a1e7b308dd6cb6abb8767b86cf9d3f939c4b18524c4f3e _output/1-32/bin/plugins/linux-amd64/tap +269486799c37e065928754420c9637f906da3eb3544ed4240f098ca21bf651f5 _output/1-32/bin/plugins/linux-amd64/tuning +2eb218e554909c1104509e79c28a181dfb8e731d7004126f5948f1fa94b48580 _output/1-32/bin/plugins/linux-amd64/vlan +6ebe4f7e302af256201cf06b50226ea712ea84fa2888145a1441b0ed0a8c2b76 _output/1-32/bin/plugins/linux-amd64/vrf +22691664a50189a497d62659abbe4ed8b9858aaf3c0e7adbc9d7010160df8b01 _output/1-32/bin/plugins/linux-arm64/bandwidth +ef0ef188861af5ad8c7a05789215589c45c5949a331d845447789e766a17baef _output/1-32/bin/plugins/linux-arm64/bridge +518da6d7103c17b563b7466820c5c5df7f77138c908f5f1a3266acf3c6c25bc3 _output/1-32/bin/plugins/linux-arm64/dhcp +3f8731aca6367af6367d73c0147fb9fac6b1c456e9e5e92450aeaa85cd2f99bd _output/1-32/bin/plugins/linux-arm64/dummy +d4dd57d43e5eff77b7e7257b581c45b0cd8a66039a845a990953aba7193e57e8 _output/1-32/bin/plugins/linux-arm64/firewall +04c3dfcbe0547783fbf9dce417e2c0cec866bdc16e7c4488f100305c76b488d0 _output/1-32/bin/plugins/linux-arm64/host-device +32f1cf3f85f92e08da93b6e79f639c3d194087d8990012396046208bc74de642 _output/1-32/bin/plugins/linux-arm64/host-local +ee7d1b1bee4f03f8b994b5d6c096fac94716b85a875ae8c9f2b8058103709f4b _output/1-32/bin/plugins/linux-arm64/ipvlan +22e853390891b548d96a07f08f7560d6d7a0d112d398905f8856b24bf4bd0cfb _output/1-32/bin/plugins/linux-arm64/loopback +9f72ee24597a574148ac6b755f956e470cd86510a682cc59513b7d7ba3fd4899 _output/1-32/bin/plugins/linux-arm64/macvlan +740fdb77fff650b180b83e0b36719b70025c88ae7e5157a9dd00005ad7ddde08 _output/1-32/bin/plugins/linux-arm64/portmap +eafaea0f4de95c246f4ed13b6e30002fe514fcd13586c03c2550b5b7b3d135e4 _output/1-32/bin/plugins/linux-arm64/ptp +67a0867b40311d4afaafac50bc5cf61eec5c15b50dc1c3c5d39ff13795be6124 _output/1-32/bin/plugins/linux-arm64/sbr +fbe1b196bc3e5d25d7e9b676dd5f0a3d246a7c336db42e199a801a193c341fbf _output/1-32/bin/plugins/linux-arm64/static +552bae5cebee49b49a2315a0620ae551ba4855b9df56556f8a2bef83675a06fc _output/1-32/bin/plugins/linux-arm64/tap +c3d0b6f6350e4e9b366acc473bd59dd50fd3ad941382483d0082e13a065826b5 _output/1-32/bin/plugins/linux-arm64/tuning +2b43aef6b1ded8f31a1c063d6c610f030d79ae3d3e69a7a4e1e44d9fce36a97f _output/1-32/bin/plugins/linux-arm64/vlan +6dbc354c06e4c124d471c7006a654f911f64fe32efdc4b7985a141e0cb11cf68 _output/1-32/bin/plugins/linux-arm64/vrf \ No newline at end of file diff --git a/projects/containernetworking/plugins/1-32/GIT_TAG b/projects/containernetworking/plugins/1-32/GIT_TAG index 0d0c52f84d..53b5bbb127 100644 --- a/projects/containernetworking/plugins/1-32/GIT_TAG +++ b/projects/containernetworking/plugins/1-32/GIT_TAG @@ -1 +1 @@ -v1.4.0 +v1.5.1 diff --git a/projects/containernetworking/plugins/1-32/GOLANG_VERSION b/projects/containernetworking/plugins/1-32/GOLANG_VERSION index 0f6abf48ab..e342dea0de 100644 --- a/projects/containernetworking/plugins/1-32/GOLANG_VERSION +++ b/projects/containernetworking/plugins/1-32/GOLANG_VERSION @@ -1 +1 @@ -1.21 \ No newline at end of file +1.22 \ No newline at end of file diff --git a/projects/containernetworking/plugins/1-32/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch b/projects/containernetworking/plugins/1-32/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch deleted file mode 100644 index f859b72213..0000000000 --- a/projects/containernetworking/plugins/1-32/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch +++ /dev/null @@ -1,3157 +0,0 @@ -From f1e82f30296d45c942b5a45e2a922a38740366e6 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Thu, 4 Jan 2024 13:54:52 -0800 -Subject: [PATCH] Bump containerd verison to v1.7.11 to fix GHSA-7ww5-4wqc-m92c - -Signed-off-by: Sajia Zafreen ---- - go.mod | 10 +- - go.sum | 22 +- - vendor/github.com/sirupsen/logrus/README.md | 8 +- - vendor/github.com/sirupsen/logrus/writer.go | 34 +- - .../genproto/{ => googleapis/rpc}/LICENSE | 0 - .../grpc/attributes/attributes.go | 59 +- - .../grpc/grpclog/component.go | 40 +- - .../google.golang.org/grpc/grpclog/grpclog.go | 30 +- - .../google.golang.org/grpc/grpclog/logger.go | 30 +- - .../grpc/grpclog/loggerv2.go | 56 +- - .../grpc/internal/credentials/credentials.go | 8 +- - .../grpc/internal/grpclog/grpclog.go | 40 +- - .../grpc/internal/grpclog/prefixLogger.go | 8 +- - .../grpc/internal/internal.go | 45 +- - .../grpc/internal/status/status.go | 8 +- - vendor/google.golang.org/grpc/resolver/map.go | 10 +- - .../grpc/resolver/resolver.go | 84 +- - .../google.golang.org/grpc/status/status.go | 14 +- - .../protobuf/encoding/prototext/encode.go | 14 +- - .../protobuf/internal/encoding/text/encode.go | 10 +- - .../protobuf/internal/genid/descriptor_gen.go | 48 + - .../protobuf/internal/genid/type_gen.go | 6 + - .../protobuf/internal/order/order.go | 2 +- - .../protobuf/internal/version/version.go | 2 +- - .../google.golang.org/protobuf/proto/size.go | 10 +- - .../reflect/protoreflect/source_gen.go | 27 + - .../types/descriptorpb/descriptor.pb.go | 1011 +++++++++++------ - .../protobuf/types/known/anypb/any.pb.go | 70 +- - .../types/known/timestamppb/timestamp.pb.go | 2 +- - vendor/modules.txt | 14 +- - 30 files changed, 1057 insertions(+), 665 deletions(-) - rename vendor/google.golang.org/genproto/{ => googleapis/rpc}/LICENSE (100%) - -diff --git a/go.mod b/go.mod -index 11944478..5be57166 100644 ---- a/go.mod -+++ b/go.mod -@@ -26,7 +26,7 @@ require ( - require ( - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/containerd/cgroups v1.1.0 // indirect -- github.com/containerd/containerd v1.6.23 // indirect -+ github.com/containerd/containerd v1.7.11 // indirect - github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4 // indirect - github.com/go-logr/logr v1.3.0 // indirect - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect -@@ -36,15 +36,15 @@ require ( - github.com/google/go-cmp v0.6.0 // indirect - github.com/google/pprof v0.0.0-20230323073829-e72429f035bd // indirect - github.com/pkg/errors v0.9.1 // indirect -- github.com/sirupsen/logrus v1.9.0 // indirect -+ github.com/sirupsen/logrus v1.9.3 // indirect - github.com/vishvananda/netns v0.0.4 // indirect - go.opencensus.io v0.24.0 // indirect - golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.14.0 // indirect -- google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect -- google.golang.org/grpc v1.56.3 // indirect -- google.golang.org/protobuf v1.30.0 // indirect -+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect -+ google.golang.org/grpc v1.58.3 // indirect -+ google.golang.org/protobuf v1.31.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index d67f299c..128e5c25 100644 ---- a/go.sum -+++ b/go.sum -@@ -16,8 +16,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk - github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= - github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= - github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= --github.com/containerd/containerd v1.6.23 h1:KYJd6UJhKHzwMhiD70iTtSmU+k4565ac22GOTI3AuTA= --github.com/containerd/containerd v1.6.23/go.mod h1:UrQOiyzrLi3n4aezYJbQH6Il+YzTvnHFbEuO3yfDrM4= -+github.com/containerd/containerd v1.7.11 h1:lfGKw3eU35sjV0aG2eYZTiwFEY1pCzxdzicHP3SZILw= -+github.com/containerd/containerd v1.7.11/go.mod h1:5UluHxHTX2rdvYuZ5OJTC5m/KJNs0Zs9wVoJm9zf5ZE= - github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl31EQbXALQ= - github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= - github.com/coreos/go-iptables v0.7.0 h1:XWM3V+MPRr5/q51NuWSgU0fqMad64Zyxs8ZUoMsamr8= -@@ -113,8 +113,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN - github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= - github.com/safchain/ethtool v0.3.0 h1:gimQJpsI6sc1yIqP/y8GYgiXn/NjgvpM0RNoWLVVmP0= - github.com/safchain/ethtool v0.3.0/go.mod h1:SA9BwrgyAqNo7M+uaL6IYbxpm5wk3L7Mm6ocLW+CJUs= --github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= --github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -+github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -+github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= - github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= - github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= - github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -@@ -124,8 +124,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ - github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= - github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= - github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= --github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= - github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -+github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= - github.com/vishvananda/netlink v1.2.1-beta.2 h1:Llsql0lnQEbHj0I1OuKyp8otXp0r3q0mPkuhwHfStVs= - github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= - github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -@@ -220,15 +220,15 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 - google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= - google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= - google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= --google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= --google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -+google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -+google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= - google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= - google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= - google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= - google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= - google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= --google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= --google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -+google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -+google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= - google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= - google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= - google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -@@ -240,8 +240,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD - 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/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= --google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= --google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -+google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -+google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= - 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/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -diff --git a/vendor/github.com/sirupsen/logrus/README.md b/vendor/github.com/sirupsen/logrus/README.md -index b042c896..d1d4a85f 100644 ---- a/vendor/github.com/sirupsen/logrus/README.md -+++ b/vendor/github.com/sirupsen/logrus/README.md -@@ -9,7 +9,7 @@ the last thing you want from your Logging library (again...). - - This does not mean Logrus is dead. Logrus will continue to be maintained for - security, (backwards compatible) bug fixes, and performance (where we are --limited by the interface). -+limited by the interface). - - I believe Logrus' biggest contribution is to have played a part in today's - widespread use of structured logging in Golang. There doesn't seem to be a -@@ -43,7 +43,7 @@ plain text): - With `log.SetFormatter(&log.JSONFormatter{})`, for easy parsing by logstash - or Splunk: - --```json -+```text - {"animal":"walrus","level":"info","msg":"A group of walrus emerges from the - ocean","size":10,"time":"2014-03-10 19:57:38.562264131 -0400 EDT"} - -@@ -99,7 +99,7 @@ time="2015-03-26T01:27:38-04:00" level=fatal method=github.com/sirupsen/arcticcr - ``` - Note that this does add measurable overhead - the cost will depend on the version of Go, but is - between 20 and 40% in recent tests with 1.6 and 1.7. You can validate this in your --environment via benchmarks: -+environment via benchmarks: - ``` - go test -bench=.*CallerTracing - ``` -@@ -317,6 +317,8 @@ log.SetLevel(log.InfoLevel) - It may be useful to set `log.Level = logrus.DebugLevel` in a debug or verbose - environment if your application has that. - -+Note: If you want different log levels for global (`log.SetLevel(...)`) and syslog logging, please check the [syslog hook README](hooks/syslog/README.md#different-log-levels-for-local-and-remote-logging). -+ - #### Entries - - Besides the fields added with `WithField` or `WithFields` some fields are -diff --git a/vendor/github.com/sirupsen/logrus/writer.go b/vendor/github.com/sirupsen/logrus/writer.go -index 72e8e3a1..074fd4b8 100644 ---- a/vendor/github.com/sirupsen/logrus/writer.go -+++ b/vendor/github.com/sirupsen/logrus/writer.go -@@ -4,6 +4,7 @@ import ( - "bufio" - "io" - "runtime" -+ "strings" - ) - - // Writer at INFO level. See WriterLevel for details. -@@ -20,15 +21,18 @@ func (logger *Logger) WriterLevel(level Level) *io.PipeWriter { - return NewEntry(logger).WriterLevel(level) - } - -+// Writer returns an io.Writer that writes to the logger at the info log level - func (entry *Entry) Writer() *io.PipeWriter { - return entry.WriterLevel(InfoLevel) - } - -+// WriterLevel returns an io.Writer that writes to the logger at the given log level - func (entry *Entry) WriterLevel(level Level) *io.PipeWriter { - reader, writer := io.Pipe() - - var printFunc func(args ...interface{}) - -+ // Determine which log function to use based on the specified log level - switch level { - case TraceLevel: - printFunc = entry.Trace -@@ -48,23 +52,51 @@ func (entry *Entry) WriterLevel(level Level) *io.PipeWriter { - printFunc = entry.Print - } - -+ // Start a new goroutine to scan the input and write it to the logger using the specified print function. -+ // It splits the input into chunks of up to 64KB to avoid buffer overflows. - go entry.writerScanner(reader, printFunc) -+ -+ // Set a finalizer function to close the writer when it is garbage collected - runtime.SetFinalizer(writer, writerFinalizer) - - return writer - } - -+// writerScanner scans the input from the reader and writes it to the logger - func (entry *Entry) writerScanner(reader *io.PipeReader, printFunc func(args ...interface{})) { - scanner := bufio.NewScanner(reader) -+ -+ // Set the buffer size to the maximum token size to avoid buffer overflows -+ scanner.Buffer(make([]byte, bufio.MaxScanTokenSize), bufio.MaxScanTokenSize) -+ -+ // Define a split function to split the input into chunks of up to 64KB -+ chunkSize := bufio.MaxScanTokenSize // 64KB -+ splitFunc := func(data []byte, atEOF bool) (int, []byte, error) { -+ if len(data) >= chunkSize { -+ return chunkSize, data[:chunkSize], nil -+ } -+ -+ return bufio.ScanLines(data, atEOF) -+ } -+ -+ // Use the custom split function to split the input -+ scanner.Split(splitFunc) -+ -+ // Scan the input and write it to the logger using the specified print function - for scanner.Scan() { -- printFunc(scanner.Text()) -+ printFunc(strings.TrimRight(scanner.Text(), "\r\n")) - } -+ -+ // If there was an error while scanning the input, log an error - if err := scanner.Err(); err != nil { - entry.Errorf("Error while reading from Writer: %s", err) - } -+ -+ // Close the reader when we are done - reader.Close() - } - -+// WriterFinalizer is a finalizer function that closes then given writer when it is garbage collected - func writerFinalizer(writer *io.PipeWriter) { - writer.Close() - } -diff --git a/vendor/google.golang.org/genproto/LICENSE b/vendor/google.golang.org/genproto/googleapis/rpc/LICENSE -similarity index 100% -rename from vendor/google.golang.org/genproto/LICENSE -rename to vendor/google.golang.org/genproto/googleapis/rpc/LICENSE -diff --git a/vendor/google.golang.org/grpc/attributes/attributes.go b/vendor/google.golang.org/grpc/attributes/attributes.go -index 3efca459..712fef4d 100644 ---- a/vendor/google.golang.org/grpc/attributes/attributes.go -+++ b/vendor/google.golang.org/grpc/attributes/attributes.go -@@ -34,26 +34,26 @@ import ( - // key/value pairs. Keys must be hashable, and users should define their own - // types for keys. Values should not be modified after they are added to an - // Attributes or if they were received from one. If values implement 'Equal(o --// interface{}) bool', it will be called by (*Attributes).Equal to determine --// whether two values with the same key should be considered equal. -+// any) bool', it will be called by (*Attributes).Equal to determine whether -+// two values with the same key should be considered equal. - type Attributes struct { -- m map[interface{}]interface{} -+ m map[any]any - } - - // New returns a new Attributes containing the key/value pair. --func New(key, value interface{}) *Attributes { -- return &Attributes{m: map[interface{}]interface{}{key: value}} -+func New(key, value any) *Attributes { -+ return &Attributes{m: map[any]any{key: value}} - } - - // WithValue returns a new Attributes containing the previous keys and values - // and the new key/value pair. If the same key appears multiple times, the - // last value overwrites all previous values for that key. To remove an - // existing key, use a nil value. value should not be modified later. --func (a *Attributes) WithValue(key, value interface{}) *Attributes { -+func (a *Attributes) WithValue(key, value any) *Attributes { - if a == nil { - return New(key, value) - } -- n := &Attributes{m: make(map[interface{}]interface{}, len(a.m)+1)} -+ n := &Attributes{m: make(map[any]any, len(a.m)+1)} - for k, v := range a.m { - n.m[k] = v - } -@@ -63,20 +63,19 @@ func (a *Attributes) WithValue(key, value interface{}) *Attributes { - - // Value returns the value associated with these attributes for key, or nil if - // no value is associated with key. The returned value should not be modified. --func (a *Attributes) Value(key interface{}) interface{} { -+func (a *Attributes) Value(key any) any { - if a == nil { - return nil - } - return a.m[key] - } - --// Equal returns whether a and o are equivalent. If 'Equal(o interface{}) --// bool' is implemented for a value in the attributes, it is called to --// determine if the value matches the one stored in the other attributes. If --// Equal is not implemented, standard equality is used to determine if the two --// values are equal. Note that some types (e.g. maps) aren't comparable by --// default, so they must be wrapped in a struct, or in an alias type, with Equal --// defined. -+// Equal returns whether a and o are equivalent. If 'Equal(o any) bool' is -+// implemented for a value in the attributes, it is called to determine if the -+// value matches the one stored in the other attributes. If Equal is not -+// implemented, standard equality is used to determine if the two values are -+// equal. Note that some types (e.g. maps) aren't comparable by default, so -+// they must be wrapped in a struct, or in an alias type, with Equal defined. - func (a *Attributes) Equal(o *Attributes) bool { - if a == nil && o == nil { - return true -@@ -93,7 +92,7 @@ func (a *Attributes) Equal(o *Attributes) bool { - // o missing element of a - return false - } -- if eq, ok := v.(interface{ Equal(o interface{}) bool }); ok { -+ if eq, ok := v.(interface{ Equal(o any) bool }); ok { - if !eq.Equal(ov) { - return false - } -@@ -112,19 +111,31 @@ func (a *Attributes) String() string { - sb.WriteString("{") - first := true - for k, v := range a.m { -- var key, val string -- if str, ok := k.(interface{ String() string }); ok { -- key = str.String() -- } -- if str, ok := v.(interface{ String() string }); ok { -- val = str.String() -- } - if !first { - sb.WriteString(", ") - } -- sb.WriteString(fmt.Sprintf("%q: %q, ", key, val)) -+ sb.WriteString(fmt.Sprintf("%q: %q ", str(k), str(v))) - first = false - } - sb.WriteString("}") - return sb.String() - } -+ -+func str(x any) string { -+ if v, ok := x.(fmt.Stringer); ok { -+ return v.String() -+ } else if v, ok := x.(string); ok { -+ return v -+ } -+ return fmt.Sprintf("<%p>", x) -+} -+ -+// MarshalJSON helps implement the json.Marshaler interface, thereby rendering -+// the Attributes correctly when printing (via pretty.JSON) structs containing -+// Attributes as fields. -+// -+// Is it impossible to unmarshal attributes from a JSON representation and this -+// method is meant only for debugging purposes. -+func (a *Attributes) MarshalJSON() ([]byte, error) { -+ return []byte(a.String()), nil -+} -diff --git a/vendor/google.golang.org/grpc/grpclog/component.go b/vendor/google.golang.org/grpc/grpclog/component.go -index 8358dd6e..ac73c9ce 100644 ---- a/vendor/google.golang.org/grpc/grpclog/component.go -+++ b/vendor/google.golang.org/grpc/grpclog/component.go -@@ -31,71 +31,71 @@ type componentData struct { - - var cache = map[string]*componentData{} - --func (c *componentData) InfoDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) InfoDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.InfoDepth(depth+1, args...) - } - --func (c *componentData) WarningDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) WarningDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.WarningDepth(depth+1, args...) - } - --func (c *componentData) ErrorDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) ErrorDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.ErrorDepth(depth+1, args...) - } - --func (c *componentData) FatalDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) FatalDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.FatalDepth(depth+1, args...) - } - --func (c *componentData) Info(args ...interface{}) { -+func (c *componentData) Info(args ...any) { - c.InfoDepth(1, args...) - } - --func (c *componentData) Warning(args ...interface{}) { -+func (c *componentData) Warning(args ...any) { - c.WarningDepth(1, args...) - } - --func (c *componentData) Error(args ...interface{}) { -+func (c *componentData) Error(args ...any) { - c.ErrorDepth(1, args...) - } - --func (c *componentData) Fatal(args ...interface{}) { -+func (c *componentData) Fatal(args ...any) { - c.FatalDepth(1, args...) - } - --func (c *componentData) Infof(format string, args ...interface{}) { -+func (c *componentData) Infof(format string, args ...any) { - c.InfoDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Warningf(format string, args ...interface{}) { -+func (c *componentData) Warningf(format string, args ...any) { - c.WarningDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Errorf(format string, args ...interface{}) { -+func (c *componentData) Errorf(format string, args ...any) { - c.ErrorDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Fatalf(format string, args ...interface{}) { -+func (c *componentData) Fatalf(format string, args ...any) { - c.FatalDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Infoln(args ...interface{}) { -+func (c *componentData) Infoln(args ...any) { - c.InfoDepth(1, args...) - } - --func (c *componentData) Warningln(args ...interface{}) { -+func (c *componentData) Warningln(args ...any) { - c.WarningDepth(1, args...) - } - --func (c *componentData) Errorln(args ...interface{}) { -+func (c *componentData) Errorln(args ...any) { - c.ErrorDepth(1, args...) - } - --func (c *componentData) Fatalln(args ...interface{}) { -+func (c *componentData) Fatalln(args ...any) { - c.FatalDepth(1, args...) - } - -diff --git a/vendor/google.golang.org/grpc/grpclog/grpclog.go b/vendor/google.golang.org/grpc/grpclog/grpclog.go -index c8bb2be3..16928c9c 100644 ---- a/vendor/google.golang.org/grpc/grpclog/grpclog.go -+++ b/vendor/google.golang.org/grpc/grpclog/grpclog.go -@@ -42,53 +42,53 @@ func V(l int) bool { - } - - // Info logs to the INFO log. --func Info(args ...interface{}) { -+func Info(args ...any) { - grpclog.Logger.Info(args...) - } - - // Infof logs to the INFO log. Arguments are handled in the manner of fmt.Printf. --func Infof(format string, args ...interface{}) { -+func Infof(format string, args ...any) { - grpclog.Logger.Infof(format, args...) - } - - // Infoln logs to the INFO log. Arguments are handled in the manner of fmt.Println. --func Infoln(args ...interface{}) { -+func Infoln(args ...any) { - grpclog.Logger.Infoln(args...) - } - - // Warning logs to the WARNING log. --func Warning(args ...interface{}) { -+func Warning(args ...any) { - grpclog.Logger.Warning(args...) - } - - // Warningf logs to the WARNING log. Arguments are handled in the manner of fmt.Printf. --func Warningf(format string, args ...interface{}) { -+func Warningf(format string, args ...any) { - grpclog.Logger.Warningf(format, args...) - } - - // Warningln logs to the WARNING log. Arguments are handled in the manner of fmt.Println. --func Warningln(args ...interface{}) { -+func Warningln(args ...any) { - grpclog.Logger.Warningln(args...) - } - - // Error logs to the ERROR log. --func Error(args ...interface{}) { -+func Error(args ...any) { - grpclog.Logger.Error(args...) - } - - // Errorf logs to the ERROR log. Arguments are handled in the manner of fmt.Printf. --func Errorf(format string, args ...interface{}) { -+func Errorf(format string, args ...any) { - grpclog.Logger.Errorf(format, args...) - } - - // Errorln logs to the ERROR log. Arguments are handled in the manner of fmt.Println. --func Errorln(args ...interface{}) { -+func Errorln(args ...any) { - grpclog.Logger.Errorln(args...) - } - - // Fatal logs to the FATAL log. Arguments are handled in the manner of fmt.Print. - // It calls os.Exit() with exit code 1. --func Fatal(args ...interface{}) { -+func Fatal(args ...any) { - grpclog.Logger.Fatal(args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -96,7 +96,7 @@ func Fatal(args ...interface{}) { - - // Fatalf logs to the FATAL log. Arguments are handled in the manner of fmt.Printf. - // It calls os.Exit() with exit code 1. --func Fatalf(format string, args ...interface{}) { -+func Fatalf(format string, args ...any) { - grpclog.Logger.Fatalf(format, args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -104,7 +104,7 @@ func Fatalf(format string, args ...interface{}) { - - // Fatalln logs to the FATAL log. Arguments are handled in the manner of fmt.Println. - // It calle os.Exit()) with exit code 1. --func Fatalln(args ...interface{}) { -+func Fatalln(args ...any) { - grpclog.Logger.Fatalln(args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -113,20 +113,20 @@ func Fatalln(args ...interface{}) { - // Print prints to the logger. Arguments are handled in the manner of fmt.Print. - // - // Deprecated: use Info. --func Print(args ...interface{}) { -+func Print(args ...any) { - grpclog.Logger.Info(args...) - } - - // Printf prints to the logger. Arguments are handled in the manner of fmt.Printf. - // - // Deprecated: use Infof. --func Printf(format string, args ...interface{}) { -+func Printf(format string, args ...any) { - grpclog.Logger.Infof(format, args...) - } - - // Println prints to the logger. Arguments are handled in the manner of fmt.Println. - // - // Deprecated: use Infoln. --func Println(args ...interface{}) { -+func Println(args ...any) { - grpclog.Logger.Infoln(args...) - } -diff --git a/vendor/google.golang.org/grpc/grpclog/logger.go b/vendor/google.golang.org/grpc/grpclog/logger.go -index ef06a482..b1674d82 100644 ---- a/vendor/google.golang.org/grpc/grpclog/logger.go -+++ b/vendor/google.golang.org/grpc/grpclog/logger.go -@@ -24,12 +24,12 @@ import "google.golang.org/grpc/internal/grpclog" - // - // Deprecated: use LoggerV2. - type Logger interface { -- Fatal(args ...interface{}) -- Fatalf(format string, args ...interface{}) -- Fatalln(args ...interface{}) -- Print(args ...interface{}) -- Printf(format string, args ...interface{}) -- Println(args ...interface{}) -+ Fatal(args ...any) -+ Fatalf(format string, args ...any) -+ Fatalln(args ...any) -+ Print(args ...any) -+ Printf(format string, args ...any) -+ Println(args ...any) - } - - // SetLogger sets the logger that is used in grpc. Call only from -@@ -45,39 +45,39 @@ type loggerWrapper struct { - Logger - } - --func (g *loggerWrapper) Info(args ...interface{}) { -+func (g *loggerWrapper) Info(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Infoln(args ...interface{}) { -+func (g *loggerWrapper) Infoln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Infof(format string, args ...interface{}) { -+func (g *loggerWrapper) Infof(format string, args ...any) { - g.Logger.Printf(format, args...) - } - --func (g *loggerWrapper) Warning(args ...interface{}) { -+func (g *loggerWrapper) Warning(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Warningln(args ...interface{}) { -+func (g *loggerWrapper) Warningln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Warningf(format string, args ...interface{}) { -+func (g *loggerWrapper) Warningf(format string, args ...any) { - g.Logger.Printf(format, args...) - } - --func (g *loggerWrapper) Error(args ...interface{}) { -+func (g *loggerWrapper) Error(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Errorln(args ...interface{}) { -+func (g *loggerWrapper) Errorln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Errorf(format string, args ...interface{}) { -+func (g *loggerWrapper) Errorf(format string, args ...any) { - g.Logger.Printf(format, args...) - } - -diff --git a/vendor/google.golang.org/grpc/grpclog/loggerv2.go b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -index 5de66e40..ecfd36d7 100644 ---- a/vendor/google.golang.org/grpc/grpclog/loggerv2.go -+++ b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -@@ -33,35 +33,35 @@ import ( - // LoggerV2 does underlying logging work for grpclog. - type LoggerV2 interface { - // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -- Info(args ...interface{}) -+ Info(args ...any) - // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -- Infoln(args ...interface{}) -+ Infoln(args ...any) - // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -- Infof(format string, args ...interface{}) -+ Infof(format string, args ...any) - // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -- Warning(args ...interface{}) -+ Warning(args ...any) - // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -- Warningln(args ...interface{}) -+ Warningln(args ...any) - // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -- Warningf(format string, args ...interface{}) -+ Warningf(format string, args ...any) - // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -- Error(args ...interface{}) -+ Error(args ...any) - // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -- Errorln(args ...interface{}) -+ Errorln(args ...any) - // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -- Errorf(format string, args ...interface{}) -+ Errorf(format string, args ...any) - // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatal(args ...interface{}) -+ Fatal(args ...any) - // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalln(args ...interface{}) -+ Fatalln(args ...any) - // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalf(format string, args ...interface{}) -+ Fatalf(format string, args ...any) - // V reports whether verbosity level l is at least the requested verbose level. - V(l int) bool - } -@@ -182,53 +182,53 @@ func (g *loggerT) output(severity int, s string) { - g.m[severity].Output(2, string(b)) - } - --func (g *loggerT) Info(args ...interface{}) { -+func (g *loggerT) Info(args ...any) { - g.output(infoLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Infoln(args ...interface{}) { -+func (g *loggerT) Infoln(args ...any) { - g.output(infoLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Infof(format string, args ...interface{}) { -+func (g *loggerT) Infof(format string, args ...any) { - g.output(infoLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Warning(args ...interface{}) { -+func (g *loggerT) Warning(args ...any) { - g.output(warningLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Warningln(args ...interface{}) { -+func (g *loggerT) Warningln(args ...any) { - g.output(warningLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Warningf(format string, args ...interface{}) { -+func (g *loggerT) Warningf(format string, args ...any) { - g.output(warningLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Error(args ...interface{}) { -+func (g *loggerT) Error(args ...any) { - g.output(errorLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Errorln(args ...interface{}) { -+func (g *loggerT) Errorln(args ...any) { - g.output(errorLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Errorf(format string, args ...interface{}) { -+func (g *loggerT) Errorf(format string, args ...any) { - g.output(errorLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Fatal(args ...interface{}) { -+func (g *loggerT) Fatal(args ...any) { - g.output(fatalLog, fmt.Sprint(args...)) - os.Exit(1) - } - --func (g *loggerT) Fatalln(args ...interface{}) { -+func (g *loggerT) Fatalln(args ...any) { - g.output(fatalLog, fmt.Sprintln(args...)) - os.Exit(1) - } - --func (g *loggerT) Fatalf(format string, args ...interface{}) { -+func (g *loggerT) Fatalf(format string, args ...any) { - g.output(fatalLog, fmt.Sprintf(format, args...)) - os.Exit(1) - } -@@ -248,11 +248,11 @@ func (g *loggerT) V(l int) bool { - type DepthLoggerV2 interface { - LoggerV2 - // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -- InfoDepth(depth int, args ...interface{}) -+ InfoDepth(depth int, args ...any) - // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -- WarningDepth(depth int, args ...interface{}) -+ WarningDepth(depth int, args ...any) - // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -- ErrorDepth(depth int, args ...interface{}) -+ ErrorDepth(depth int, args ...any) - // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -- FatalDepth(depth int, args ...interface{}) -+ FatalDepth(depth int, args ...any) - } -diff --git a/vendor/google.golang.org/grpc/internal/credentials/credentials.go b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -index 32c9b590..9deee7f6 100644 ---- a/vendor/google.golang.org/grpc/internal/credentials/credentials.go -+++ b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -@@ -25,12 +25,12 @@ import ( - type requestInfoKey struct{} - - // NewRequestInfoContext creates a context with ri. --func NewRequestInfoContext(ctx context.Context, ri interface{}) context.Context { -+func NewRequestInfoContext(ctx context.Context, ri any) context.Context { - return context.WithValue(ctx, requestInfoKey{}, ri) - } - - // RequestInfoFromContext extracts the RequestInfo from ctx. --func RequestInfoFromContext(ctx context.Context) interface{} { -+func RequestInfoFromContext(ctx context.Context) any { - return ctx.Value(requestInfoKey{}) - } - -@@ -39,11 +39,11 @@ func RequestInfoFromContext(ctx context.Context) interface{} { - type clientHandshakeInfoKey struct{} - - // ClientHandshakeInfoFromContext extracts the ClientHandshakeInfo from ctx. --func ClientHandshakeInfoFromContext(ctx context.Context) interface{} { -+func ClientHandshakeInfoFromContext(ctx context.Context) any { - return ctx.Value(clientHandshakeInfoKey{}) - } - - // NewClientHandshakeInfoContext creates a context with chi. --func NewClientHandshakeInfoContext(ctx context.Context, chi interface{}) context.Context { -+func NewClientHandshakeInfoContext(ctx context.Context, chi any) context.Context { - return context.WithValue(ctx, clientHandshakeInfoKey{}, chi) - } -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -index b68e26a3..bfc45102 100644 ---- a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -+++ b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -@@ -30,7 +30,7 @@ var Logger LoggerV2 - var DepthLogger DepthLoggerV2 - - // InfoDepth logs to the INFO log at the specified depth. --func InfoDepth(depth int, args ...interface{}) { -+func InfoDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.InfoDepth(depth, args...) - } else { -@@ -39,7 +39,7 @@ func InfoDepth(depth int, args ...interface{}) { - } - - // WarningDepth logs to the WARNING log at the specified depth. --func WarningDepth(depth int, args ...interface{}) { -+func WarningDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.WarningDepth(depth, args...) - } else { -@@ -48,7 +48,7 @@ func WarningDepth(depth int, args ...interface{}) { - } - - // ErrorDepth logs to the ERROR log at the specified depth. --func ErrorDepth(depth int, args ...interface{}) { -+func ErrorDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.ErrorDepth(depth, args...) - } else { -@@ -57,7 +57,7 @@ func ErrorDepth(depth int, args ...interface{}) { - } - - // FatalDepth logs to the FATAL log at the specified depth. --func FatalDepth(depth int, args ...interface{}) { -+func FatalDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.FatalDepth(depth, args...) - } else { -@@ -71,35 +71,35 @@ func FatalDepth(depth int, args ...interface{}) { - // is defined here to avoid a circular dependency. - type LoggerV2 interface { - // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -- Info(args ...interface{}) -+ Info(args ...any) - // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -- Infoln(args ...interface{}) -+ Infoln(args ...any) - // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -- Infof(format string, args ...interface{}) -+ Infof(format string, args ...any) - // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -- Warning(args ...interface{}) -+ Warning(args ...any) - // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -- Warningln(args ...interface{}) -+ Warningln(args ...any) - // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -- Warningf(format string, args ...interface{}) -+ Warningf(format string, args ...any) - // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -- Error(args ...interface{}) -+ Error(args ...any) - // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -- Errorln(args ...interface{}) -+ Errorln(args ...any) - // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -- Errorf(format string, args ...interface{}) -+ Errorf(format string, args ...any) - // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatal(args ...interface{}) -+ Fatal(args ...any) - // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalln(args ...interface{}) -+ Fatalln(args ...any) - // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalf(format string, args ...interface{}) -+ Fatalf(format string, args ...any) - // V reports whether verbosity level l is at least the requested verbose level. - V(l int) bool - } -@@ -116,11 +116,11 @@ type LoggerV2 interface { - // later release. - type DepthLoggerV2 interface { - // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -- InfoDepth(depth int, args ...interface{}) -+ InfoDepth(depth int, args ...any) - // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -- WarningDepth(depth int, args ...interface{}) -+ WarningDepth(depth int, args ...any) - // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -- ErrorDepth(depth int, args ...interface{}) -+ ErrorDepth(depth int, args ...any) - // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -- FatalDepth(depth int, args ...interface{}) -+ FatalDepth(depth int, args ...any) - } -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -index 02224b42..faa998de 100644 ---- a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -+++ b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -@@ -31,7 +31,7 @@ type PrefixLogger struct { - } - - // Infof does info logging. --func (pl *PrefixLogger) Infof(format string, args ...interface{}) { -+func (pl *PrefixLogger) Infof(format string, args ...any) { - if pl != nil { - // Handle nil, so the tests can pass in a nil logger. - format = pl.prefix + format -@@ -42,7 +42,7 @@ func (pl *PrefixLogger) Infof(format string, args ...interface{}) { - } - - // Warningf does warning logging. --func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Warningf(format string, args ...any) { - if pl != nil { - format = pl.prefix + format - pl.logger.WarningDepth(1, fmt.Sprintf(format, args...)) -@@ -52,7 +52,7 @@ func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { - } - - // Errorf does error logging. --func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Errorf(format string, args ...any) { - if pl != nil { - format = pl.prefix + format - pl.logger.ErrorDepth(1, fmt.Sprintf(format, args...)) -@@ -62,7 +62,7 @@ func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { - } - - // Debugf does info logging at verbose level 2. --func (pl *PrefixLogger) Debugf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Debugf(format string, args ...any) { - // TODO(6044): Refactor interfaces LoggerV2 and DepthLogger, and maybe - // rewrite PrefixLogger a little to ensure that we don't use the global - // `Logger` here, and instead use the `logger` field. -diff --git a/vendor/google.golang.org/grpc/internal/internal.go b/vendor/google.golang.org/grpc/internal/internal.go -index 42ff39c8..c8a8c76d 100644 ---- a/vendor/google.golang.org/grpc/internal/internal.go -+++ b/vendor/google.golang.org/grpc/internal/internal.go -@@ -30,7 +30,7 @@ import ( - - var ( - // WithHealthCheckFunc is set by dialoptions.go -- WithHealthCheckFunc interface{} // func (HealthChecker) DialOption -+ WithHealthCheckFunc any // func (HealthChecker) DialOption - // HealthCheckFunc is used to provide client-side LB channel health checking - HealthCheckFunc HealthChecker - // BalancerUnregister is exported by package balancer to unregister a balancer. -@@ -38,8 +38,12 @@ var ( - // KeepaliveMinPingTime is the minimum ping interval. This must be 10s by - // default, but tests may wish to set it lower for convenience. - KeepaliveMinPingTime = 10 * time.Second -+ // KeepaliveMinServerPingTime is the minimum ping interval for servers. -+ // This must be 1s by default, but tests may wish to set it lower for -+ // convenience. -+ KeepaliveMinServerPingTime = time.Second - // ParseServiceConfig parses a JSON representation of the service config. -- ParseServiceConfig interface{} // func(string) *serviceconfig.ParseResult -+ ParseServiceConfig any // func(string) *serviceconfig.ParseResult - // EqualServiceConfigForTesting is for testing service config generation and - // parsing. Both a and b should be returned by ParseServiceConfig. - // This function compares the config without rawJSON stripped, in case the -@@ -49,33 +53,33 @@ var ( - // given name. This is set by package certprovider for use from xDS - // bootstrap code while parsing certificate provider configs in the - // bootstrap file. -- GetCertificateProviderBuilder interface{} // func(string) certprovider.Builder -+ GetCertificateProviderBuilder any // func(string) certprovider.Builder - // GetXDSHandshakeInfoForTesting returns a pointer to the xds.HandshakeInfo - // stored in the passed in attributes. This is set by - // credentials/xds/xds.go. -- GetXDSHandshakeInfoForTesting interface{} // func (*attributes.Attributes) *xds.HandshakeInfo -+ GetXDSHandshakeInfoForTesting any // func (*attributes.Attributes) *xds.HandshakeInfo - // GetServerCredentials returns the transport credentials configured on a - // gRPC server. An xDS-enabled server needs to know what type of credentials - // is configured on the underlying gRPC server. This is set by server.go. -- GetServerCredentials interface{} // func (*grpc.Server) credentials.TransportCredentials -+ GetServerCredentials any // func (*grpc.Server) credentials.TransportCredentials - // CanonicalString returns the canonical string of the code defined here: - // https://github.com/grpc/grpc/blob/master/doc/statuscodes.md. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- CanonicalString interface{} // func (codes.Code) string -+ CanonicalString any // func (codes.Code) string - // DrainServerTransports initiates a graceful close of existing connections - // on a gRPC server accepted on the provided listener address. An - // xDS-enabled server invokes this method on a grpc.Server when a particular - // listener moves to "not-serving" mode. -- DrainServerTransports interface{} // func(*grpc.Server, string) -+ DrainServerTransports any // func(*grpc.Server, string) - // AddGlobalServerOptions adds an array of ServerOption that will be - // effective globally for newly created servers. The priority will be: 1. - // user-provided; 2. this method; 3. default values. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- AddGlobalServerOptions interface{} // func(opt ...ServerOption) -+ AddGlobalServerOptions any // func(opt ...ServerOption) - // ClearGlobalServerOptions clears the array of extra ServerOption. This - // method is useful in testing and benchmarking. - // -@@ -88,14 +92,14 @@ var ( - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- AddGlobalDialOptions interface{} // func(opt ...DialOption) -+ AddGlobalDialOptions any // func(opt ...DialOption) - // DisableGlobalDialOptions returns a DialOption that prevents the - // ClientConn from applying the global DialOptions (set via - // AddGlobalDialOptions). - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- DisableGlobalDialOptions interface{} // func() grpc.DialOption -+ DisableGlobalDialOptions any // func() grpc.DialOption - // ClearGlobalDialOptions clears the array of extra DialOption. This - // method is useful in testing and benchmarking. - // -@@ -104,23 +108,26 @@ var ( - ClearGlobalDialOptions func() - // JoinDialOptions combines the dial options passed as arguments into a - // single dial option. -- JoinDialOptions interface{} // func(...grpc.DialOption) grpc.DialOption -+ JoinDialOptions any // func(...grpc.DialOption) grpc.DialOption - // JoinServerOptions combines the server options passed as arguments into a - // single server option. -- JoinServerOptions interface{} // func(...grpc.ServerOption) grpc.ServerOption -+ JoinServerOptions any // func(...grpc.ServerOption) grpc.ServerOption - - // WithBinaryLogger returns a DialOption that specifies the binary logger - // for a ClientConn. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- WithBinaryLogger interface{} // func(binarylog.Logger) grpc.DialOption -+ WithBinaryLogger any // func(binarylog.Logger) grpc.DialOption - // BinaryLogger returns a ServerOption that can set the binary logger for a - // server. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- BinaryLogger interface{} // func(binarylog.Logger) grpc.ServerOption -+ BinaryLogger any // func(binarylog.Logger) grpc.ServerOption -+ -+ // SubscribeToConnectivityStateChanges adds a grpcsync.Subscriber to a provided grpc.ClientConn -+ SubscribeToConnectivityStateChanges any // func(*grpc.ClientConn, grpcsync.Subscriber) - - // NewXDSResolverWithConfigForTesting creates a new xds resolver builder using - // the provided xds bootstrap config instead of the global configuration from -@@ -131,7 +138,7 @@ var ( - // - // This function should ONLY be used for testing and may not work with some - // other features, including the CSDS service. -- NewXDSResolverWithConfigForTesting interface{} // func([]byte) (resolver.Builder, error) -+ NewXDSResolverWithConfigForTesting any // func([]byte) (resolver.Builder, error) - - // RegisterRLSClusterSpecifierPluginForTesting registers the RLS Cluster - // Specifier Plugin for testing purposes, regardless of the XDSRLS environment -@@ -163,7 +170,11 @@ var ( - UnregisterRBACHTTPFilterForTesting func() - - // ORCAAllowAnyMinReportingInterval is for examples/orca use ONLY. -- ORCAAllowAnyMinReportingInterval interface{} // func(so *orca.ServiceOptions) -+ ORCAAllowAnyMinReportingInterval any // func(so *orca.ServiceOptions) -+ -+ // GRPCResolverSchemeExtraMetadata determines when gRPC will add extra -+ // metadata to RPCs. -+ GRPCResolverSchemeExtraMetadata string = "xds" - ) - - // HealthChecker defines the signature of the client-side LB channel health checking function. -@@ -174,7 +185,7 @@ var ( - // - // The health checking protocol is defined at: - // https://github.com/grpc/grpc/blob/master/doc/health-checking.md --type HealthChecker func(ctx context.Context, newStream func(string) (interface{}, error), setConnectivityState func(connectivity.State, error), serviceName string) error -+type HealthChecker func(ctx context.Context, newStream func(string) (any, error), setConnectivityState func(connectivity.State, error), serviceName string) error - - const ( - // CredsBundleModeFallback switches GoogleDefaultCreds to fallback mode. -diff --git a/vendor/google.golang.org/grpc/internal/status/status.go b/vendor/google.golang.org/grpc/internal/status/status.go -index b0ead4f5..4cf85cad 100644 ---- a/vendor/google.golang.org/grpc/internal/status/status.go -+++ b/vendor/google.golang.org/grpc/internal/status/status.go -@@ -49,7 +49,7 @@ func New(c codes.Code, msg string) *Status { - } - - // Newf returns New(c, fmt.Sprintf(format, a...)). --func Newf(c codes.Code, format string, a ...interface{}) *Status { -+func Newf(c codes.Code, format string, a ...any) *Status { - return New(c, fmt.Sprintf(format, a...)) - } - -@@ -64,7 +64,7 @@ func Err(c codes.Code, msg string) error { - } - - // Errorf returns Error(c, fmt.Sprintf(format, a...)). --func Errorf(c codes.Code, format string, a ...interface{}) error { -+func Errorf(c codes.Code, format string, a ...any) error { - return Err(c, fmt.Sprintf(format, a...)) - } - -@@ -120,11 +120,11 @@ func (s *Status) WithDetails(details ...proto.Message) (*Status, error) { - - // Details returns a slice of details messages attached to the status. - // If a detail cannot be decoded, the error is returned in place of the detail. --func (s *Status) Details() []interface{} { -+func (s *Status) Details() []any { - if s == nil || s.s == nil { - return nil - } -- details := make([]interface{}, 0, len(s.s.Details)) -+ details := make([]any, 0, len(s.s.Details)) - for _, any := range s.s.Details { - detail := &ptypes.DynamicAny{} - if err := ptypes.UnmarshalAny(any, detail); err != nil { -diff --git a/vendor/google.golang.org/grpc/resolver/map.go b/vendor/google.golang.org/grpc/resolver/map.go -index efcb7f3e..804be887 100644 ---- a/vendor/google.golang.org/grpc/resolver/map.go -+++ b/vendor/google.golang.org/grpc/resolver/map.go -@@ -20,7 +20,7 @@ package resolver - - type addressMapEntry struct { - addr Address -- value interface{} -+ value any - } - - // AddressMap is a map of addresses to arbitrary values taking into account -@@ -69,7 +69,7 @@ func (l addressMapEntryList) find(addr Address) int { - } - - // Get returns the value for the address in the map, if present. --func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { -+func (a *AddressMap) Get(addr Address) (value any, ok bool) { - addrKey := toMapKey(&addr) - entryList := a.m[addrKey] - if entry := entryList.find(addr); entry != -1 { -@@ -79,7 +79,7 @@ func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { - } - - // Set updates or adds the value to the address in the map. --func (a *AddressMap) Set(addr Address, value interface{}) { -+func (a *AddressMap) Set(addr Address, value any) { - addrKey := toMapKey(&addr) - entryList := a.m[addrKey] - if entry := entryList.find(addr); entry != -1 { -@@ -127,8 +127,8 @@ func (a *AddressMap) Keys() []Address { - } - - // Values returns a slice of all current map values. --func (a *AddressMap) Values() []interface{} { -- ret := make([]interface{}, 0, a.Len()) -+func (a *AddressMap) Values() []any { -+ ret := make([]any, 0, a.Len()) - for _, entryList := range a.m { - for _, entry := range entryList { - ret = append(ret, entry.value) -diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go -index 353c10b6..11384e22 100644 ---- a/vendor/google.golang.org/grpc/resolver/resolver.go -+++ b/vendor/google.golang.org/grpc/resolver/resolver.go -@@ -77,25 +77,6 @@ func GetDefaultScheme() string { - return defaultScheme - } - --// AddressType indicates the address type returned by name resolution. --// --// Deprecated: use Attributes in Address instead. --type AddressType uint8 -- --const ( -- // Backend indicates the address is for a backend server. -- // -- // Deprecated: use Attributes in Address instead. -- Backend AddressType = iota -- // GRPCLB indicates the address is for a grpclb load balancer. -- // -- // Deprecated: to select the GRPCLB load balancing policy, use a service -- // config with a corresponding loadBalancingConfig. To supply balancer -- // addresses to the GRPCLB load balancing policy, set State.Attributes -- // using balancer/grpclb/state.Set. -- GRPCLB --) -- - // Address represents a server the client connects to. - // - // # Experimental -@@ -111,9 +92,6 @@ type Address struct { - // the address, instead of the hostname from the Dial target string. In most cases, - // this should not be set. - // -- // If Type is GRPCLB, ServerName should be the name of the remote load -- // balancer, not the name of the backend. -- // - // WARNING: ServerName must only be populated with trusted values. It - // is insecure to populate it with data from untrusted inputs since untrusted - // values could be used to bypass the authority checks performed by TLS. -@@ -126,27 +104,29 @@ type Address struct { - // BalancerAttributes contains arbitrary data about this address intended - // for consumption by the LB policy. These attributes do not affect SubConn - // creation, connection establishment, handshaking, etc. -- BalancerAttributes *attributes.Attributes -- -- // Type is the type of this address. - // -- // Deprecated: use Attributes instead. -- Type AddressType -+ // Deprecated: when an Address is inside an Endpoint, this field should not -+ // be used, and it will eventually be removed entirely. -+ BalancerAttributes *attributes.Attributes - - // Metadata is the information associated with Addr, which may be used - // to make load balancing decision. - // - // Deprecated: use Attributes instead. -- Metadata interface{} -+ Metadata any - } - - // Equal returns whether a and o are identical. Metadata is compared directly, - // not with any recursive introspection. -+// -+// This method compares all fields of the address. When used to tell apart -+// addresses during subchannel creation or connection establishment, it might be -+// more appropriate for the caller to implement custom equality logic. - func (a Address) Equal(o Address) bool { - return a.Addr == o.Addr && a.ServerName == o.ServerName && - a.Attributes.Equal(o.Attributes) && - a.BalancerAttributes.Equal(o.BalancerAttributes) && -- a.Type == o.Type && a.Metadata == o.Metadata -+ a.Metadata == o.Metadata - } - - // String returns JSON formatted string representation of the address. -@@ -190,11 +170,37 @@ type BuildOptions struct { - Dialer func(context.Context, string) (net.Conn, error) - } - -+// An Endpoint is one network endpoint, or server, which may have multiple -+// addresses with which it can be accessed. -+type Endpoint struct { -+ // Addresses contains a list of addresses used to access this endpoint. -+ Addresses []Address -+ -+ // Attributes contains arbitrary data about this endpoint intended for -+ // consumption by the LB policy. -+ Attributes *attributes.Attributes -+} -+ - // State contains the current Resolver state relevant to the ClientConn. - type State struct { - // Addresses is the latest set of resolved addresses for the target. -+ // -+ // If a resolver sets Addresses but does not set Endpoints, one Endpoint -+ // will be created for each Address before the State is passed to the LB -+ // policy. The BalancerAttributes of each entry in Addresses will be set -+ // in Endpoints.Attributes, and be cleared in the Endpoint's Address's -+ // BalancerAttributes. -+ // -+ // Soon, Addresses will be deprecated and replaced fully by Endpoints. - Addresses []Address - -+ // Endpoints is the latest set of resolved endpoints for the target. -+ // -+ // If a resolver produces a State containing Endpoints but not Addresses, -+ // it must take care to ensure the LB policies it selects will support -+ // Endpoints. -+ Endpoints []Endpoint -+ - // ServiceConfig contains the result from parsing the latest service - // config. If it is nil, it indicates no service config is present or the - // resolver does not provide service configs. -@@ -254,20 +260,7 @@ type ClientConn interface { - // target does not contain a scheme or if the parsed scheme is not registered - // (i.e. no corresponding resolver available to resolve the endpoint), we will - // apply the default scheme, and will attempt to reparse it. --// --// Examples: --// --// - "dns://some_authority/foo.bar" --// Target{Scheme: "dns", Authority: "some_authority", Endpoint: "foo.bar"} --// - "foo.bar" --// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "foo.bar"} --// - "unknown_scheme://authority/endpoint" --// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "unknown_scheme://authority/endpoint"} - type Target struct { -- // Deprecated: use URL.Scheme instead. -- Scheme string -- // Deprecated: use URL.Host instead. -- Authority string - // URL contains the parsed dial target with an optional default scheme added - // to it if the original dial target contained no scheme or contained an - // unregistered scheme. Any query params specified in the original dial -@@ -321,10 +314,3 @@ type Resolver interface { - // Close closes the resolver. - Close() - } -- --// UnregisterForTesting removes the resolver builder with the given scheme from the --// resolver map. --// This function is for testing only. --func UnregisterForTesting(scheme string) { -- delete(m, scheme) --} -diff --git a/vendor/google.golang.org/grpc/status/status.go b/vendor/google.golang.org/grpc/status/status.go -index bcf2e4d8..a93360ef 100644 ---- a/vendor/google.golang.org/grpc/status/status.go -+++ b/vendor/google.golang.org/grpc/status/status.go -@@ -50,7 +50,7 @@ func New(c codes.Code, msg string) *Status { - } - - // Newf returns New(c, fmt.Sprintf(format, a...)). --func Newf(c codes.Code, format string, a ...interface{}) *Status { -+func Newf(c codes.Code, format string, a ...any) *Status { - return New(c, fmt.Sprintf(format, a...)) - } - -@@ -60,7 +60,7 @@ func Error(c codes.Code, msg string) error { - } - - // Errorf returns Error(c, fmt.Sprintf(format, a...)). --func Errorf(c codes.Code, format string, a ...interface{}) error { -+func Errorf(c codes.Code, format string, a ...any) error { - return Error(c, fmt.Sprintf(format, a...)) - } - -@@ -99,25 +99,27 @@ func FromError(err error) (s *Status, ok bool) { - } - type grpcstatus interface{ GRPCStatus() *Status } - if gs, ok := err.(grpcstatus); ok { -- if gs.GRPCStatus() == nil { -+ grpcStatus := gs.GRPCStatus() -+ if grpcStatus == nil { - // Error has status nil, which maps to codes.OK. There - // is no sensible behavior for this, so we turn it into - // an error with codes.Unknown and discard the existing - // status. - return New(codes.Unknown, err.Error()), false - } -- return gs.GRPCStatus(), true -+ return grpcStatus, true - } - var gs grpcstatus - if errors.As(err, &gs) { -- if gs.GRPCStatus() == nil { -+ grpcStatus := gs.GRPCStatus() -+ if grpcStatus == nil { - // Error wraps an error that has status nil, which maps - // to codes.OK. There is no sensible behavior for this, - // so we turn it into an error with codes.Unknown and - // discard the existing status. - return New(codes.Unknown, err.Error()), false - } -- p := gs.GRPCStatus().Proto() -+ p := grpcStatus.Proto() - p.Message = err.Error() - return status.FromProto(p), true - } -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -index ebf6c652..722a7b41 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -@@ -101,13 +101,19 @@ func (o MarshalOptions) Format(m proto.Message) string { - // MarshalOptions object. Do not depend on the output being stable. It may - // change over time across different versions of the program. - func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { -- return o.marshal(m) -+ return o.marshal(nil, m) -+} -+ -+// MarshalAppend appends the textproto format encoding of m to b, -+// returning the result. -+func (o MarshalOptions) MarshalAppend(b []byte, m proto.Message) ([]byte, error) { -+ return o.marshal(b, m) - } - - // marshal is a centralized function that all marshal operations go through. - // For profiling purposes, avoid changing the name of this function or - // introducing other code paths for marshal that do not go through this. --func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { -+func (o MarshalOptions) marshal(b []byte, m proto.Message) ([]byte, error) { - var delims = [2]byte{'{', '}'} - - if o.Multiline && o.Indent == "" { -@@ -117,7 +123,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { - o.Resolver = protoregistry.GlobalTypes - } - -- internalEnc, err := text.NewEncoder(o.Indent, delims, o.EmitASCII) -+ internalEnc, err := text.NewEncoder(b, o.Indent, delims, o.EmitASCII) - if err != nil { - return nil, err - } -@@ -125,7 +131,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { - // Treat nil message interface as an empty message, - // in which case there is nothing to output. - if m == nil { -- return []byte{}, nil -+ return b, nil - } - - enc := encoder{internalEnc, o} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -index da289ccc..cf7aed77 100644 ---- a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -@@ -53,8 +53,10 @@ type encoderState struct { - // If outputASCII is true, strings will be serialized in such a way that - // multi-byte UTF-8 sequences are escaped. This property ensures that the - // overall output is ASCII (as opposed to UTF-8). --func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { -- e := &Encoder{} -+func NewEncoder(buf []byte, indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { -+ e := &Encoder{ -+ encoderState: encoderState{out: buf}, -+ } - if len(indent) > 0 { - if strings.Trim(indent, " \t") != "" { - return nil, errors.New("indent may only be composed of space and tab characters") -@@ -195,13 +197,13 @@ func appendFloat(out []byte, n float64, bitSize int) []byte { - // WriteInt writes out the given signed integer value. - func (e *Encoder) WriteInt(n int64) { - e.prepareNext(scalar) -- e.out = append(e.out, strconv.FormatInt(n, 10)...) -+ e.out = strconv.AppendInt(e.out, n, 10) - } - - // WriteUint writes out the given unsigned integer value. - func (e *Encoder) WriteUint(n uint64) { - e.prepareNext(scalar) -- e.out = append(e.out, strconv.FormatUint(n, 10)...) -+ e.out = strconv.AppendUint(e.out, n, 10) - } - - // WriteLiteral writes out the given string as a literal value without quotes. -diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -index 5c0e8f73..136f1b21 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -@@ -183,13 +183,58 @@ const ( - // Field names for google.protobuf.ExtensionRangeOptions. - const ( - ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" -+ ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" - - ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" -+ ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" -+ ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" - ) - - // Field numbers for google.protobuf.ExtensionRangeOptions. - const ( - ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+ ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 -+) -+ -+// Full and short names for google.protobuf.ExtensionRangeOptions.VerificationState. -+const ( -+ ExtensionRangeOptions_VerificationState_enum_fullname = "google.protobuf.ExtensionRangeOptions.VerificationState" -+ ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" -+) -+ -+// Names for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" -+ ExtensionRangeOptions_Declaration_message_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration" -+) -+ -+// Field names for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -+ ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -+ ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -+ ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" -+ ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" -+ -+ ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -+ ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -+ ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -+ ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" -+ ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" -+) -+ -+// Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -+ ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -+ ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 -+ ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -+ ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.FieldDescriptorProto. -@@ -540,6 +585,7 @@ const ( - FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - FieldOptions_Retention_field_name protoreflect.Name = "retention" - FieldOptions_Target_field_name protoreflect.Name = "target" -+ FieldOptions_Targets_field_name protoreflect.Name = "targets" - FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" -@@ -552,6 +598,7 @@ const ( - FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" - FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" - FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" -+ FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" - FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" - ) - -@@ -567,6 +614,7 @@ const ( - FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 - FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 - FieldOptions_Target_field_number protoreflect.FieldNumber = 18 -+ FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 - FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -index 3bc71013..e0f75fea 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -@@ -32,6 +32,7 @@ const ( - Type_Options_field_name protoreflect.Name = "options" - Type_SourceContext_field_name protoreflect.Name = "source_context" - Type_Syntax_field_name protoreflect.Name = "syntax" -+ Type_Edition_field_name protoreflect.Name = "edition" - - Type_Name_field_fullname protoreflect.FullName = "google.protobuf.Type.name" - Type_Fields_field_fullname protoreflect.FullName = "google.protobuf.Type.fields" -@@ -39,6 +40,7 @@ const ( - Type_Options_field_fullname protoreflect.FullName = "google.protobuf.Type.options" - Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context" - Type_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Type.syntax" -+ Type_Edition_field_fullname protoreflect.FullName = "google.protobuf.Type.edition" - ) - - // Field numbers for google.protobuf.Type. -@@ -49,6 +51,7 @@ const ( - Type_Options_field_number protoreflect.FieldNumber = 4 - Type_SourceContext_field_number protoreflect.FieldNumber = 5 - Type_Syntax_field_number protoreflect.FieldNumber = 6 -+ Type_Edition_field_number protoreflect.FieldNumber = 7 - ) - - // Names for google.protobuf.Field. -@@ -121,12 +124,14 @@ const ( - Enum_Options_field_name protoreflect.Name = "options" - Enum_SourceContext_field_name protoreflect.Name = "source_context" - Enum_Syntax_field_name protoreflect.Name = "syntax" -+ Enum_Edition_field_name protoreflect.Name = "edition" - - Enum_Name_field_fullname protoreflect.FullName = "google.protobuf.Enum.name" - Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue" - Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options" - Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context" - Enum_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Enum.syntax" -+ Enum_Edition_field_fullname protoreflect.FullName = "google.protobuf.Enum.edition" - ) - - // Field numbers for google.protobuf.Enum. -@@ -136,6 +141,7 @@ const ( - Enum_Options_field_number protoreflect.FieldNumber = 3 - Enum_SourceContext_field_number protoreflect.FieldNumber = 4 - Enum_Syntax_field_number protoreflect.FieldNumber = 5 -+ Enum_Edition_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.EnumValue. -diff --git a/vendor/google.golang.org/protobuf/internal/order/order.go b/vendor/google.golang.org/protobuf/internal/order/order.go -index 33745ed0..dea522e1 100644 ---- a/vendor/google.golang.org/protobuf/internal/order/order.go -+++ b/vendor/google.golang.org/protobuf/internal/order/order.go -@@ -33,7 +33,7 @@ var ( - return !inOneof(ox) && inOneof(oy) - } - // Fields in disjoint oneof sets are sorted by declaration index. -- if ox != nil && oy != nil && ox != oy { -+ if inOneof(ox) && inOneof(oy) && ox != oy { - return ox.Index() < oy.Index() - } - // Fields sorted by field number. -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -index f7014cd5..0999f29d 100644 ---- a/vendor/google.golang.org/protobuf/internal/version/version.go -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -51,7 +51,7 @@ import ( - // 10. Send out the CL for review and submit it. - const ( - Major = 1 -- Minor = 30 -+ Minor = 31 - Patch = 0 - PreRelease = "" - ) -diff --git a/vendor/google.golang.org/protobuf/proto/size.go b/vendor/google.golang.org/protobuf/proto/size.go -index 554b9c6c..f1692b49 100644 ---- a/vendor/google.golang.org/protobuf/proto/size.go -+++ b/vendor/google.golang.org/protobuf/proto/size.go -@@ -73,23 +73,27 @@ func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protore - } - - func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { -+ sizeTag := protowire.SizeTag(num) -+ - if fd.IsPacked() && list.Len() > 0 { - content := 0 - for i, llen := 0, list.Len(); i < llen; i++ { - content += o.sizeSingular(num, fd.Kind(), list.Get(i)) - } -- return protowire.SizeTag(num) + protowire.SizeBytes(content) -+ return sizeTag + protowire.SizeBytes(content) - } - - for i, llen := 0, list.Len(); i < llen; i++ { -- size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i)) -+ size += sizeTag + o.sizeSingular(num, fd.Kind(), list.Get(i)) - } - return size - } - - func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { -+ sizeTag := protowire.SizeTag(num) -+ - mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool { -- size += protowire.SizeTag(num) -+ size += sizeTag - size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value)) - return true - }) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -index 54ce326d..717b106f 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -@@ -363,6 +363,8 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { - b = p.appendSingularField(b, "retention", nil) - case 18: - b = p.appendSingularField(b, "target", nil) -+ case 19: -+ b = p.appendRepeatedField(b, "targets", nil) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -418,6 +420,10 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { - switch (*p)[0] { - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ case 2: -+ b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) -+ case 3: -+ b = p.appendSingularField(b, "verification", nil) - } - return b - } -@@ -473,3 +479,24 @@ func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { - } - return b - } -+ -+func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "number", nil) -+ case 2: -+ b = p.appendSingularField(b, "full_name", nil) -+ case 3: -+ b = p.appendSingularField(b, "type", nil) -+ case 4: -+ b = p.appendSingularField(b, "is_repeated", nil) -+ case 5: -+ b = p.appendSingularField(b, "reserved", nil) -+ case 6: -+ b = p.appendSingularField(b, "repeated", nil) -+ } -+ return b -+} -diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -index dac5671d..04c00f73 100644 ---- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -@@ -48,6 +48,64 @@ import ( - sync "sync" - ) - -+// The verification state of the extension range. -+type ExtensionRangeOptions_VerificationState int32 -+ -+const ( -+ // All the extensions of the range must be declared. -+ ExtensionRangeOptions_DECLARATION ExtensionRangeOptions_VerificationState = 0 -+ ExtensionRangeOptions_UNVERIFIED ExtensionRangeOptions_VerificationState = 1 -+) -+ -+// Enum value maps for ExtensionRangeOptions_VerificationState. -+var ( -+ ExtensionRangeOptions_VerificationState_name = map[int32]string{ -+ 0: "DECLARATION", -+ 1: "UNVERIFIED", -+ } -+ ExtensionRangeOptions_VerificationState_value = map[string]int32{ -+ "DECLARATION": 0, -+ "UNVERIFIED": 1, -+ } -+) -+ -+func (x ExtensionRangeOptions_VerificationState) Enum() *ExtensionRangeOptions_VerificationState { -+ p := new(ExtensionRangeOptions_VerificationState) -+ *p = x -+ return p -+} -+ -+func (x ExtensionRangeOptions_VerificationState) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+} -+ -+func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[0] -+} -+ -+func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *ExtensionRangeOptions_VerificationState) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = ExtensionRangeOptions_VerificationState(num) -+ return nil -+} -+ -+// Deprecated: Use ExtensionRangeOptions_VerificationState.Descriptor instead. -+func (ExtensionRangeOptions_VerificationState) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} -+} -+ - type FieldDescriptorProto_Type int32 - - const ( -@@ -137,11 +195,11 @@ func (x FieldDescriptorProto_Type) String() string { - } - - func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() - } - - func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[0] -+ return &file_google_protobuf_descriptor_proto_enumTypes[1] - } - - func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { -@@ -197,11 +255,11 @@ func (x FieldDescriptorProto_Label) String() string { - } - - func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() - } - - func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[1] -+ return &file_google_protobuf_descriptor_proto_enumTypes[2] - } - - func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { -@@ -258,11 +316,11 @@ func (x FileOptions_OptimizeMode) String() string { - } - - func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() - } - - func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[2] -+ return &file_google_protobuf_descriptor_proto_enumTypes[3] - } - - func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { -@@ -288,7 +346,13 @@ type FieldOptions_CType int32 - - const ( - // Default mode. -- FieldOptions_STRING FieldOptions_CType = 0 -+ FieldOptions_STRING FieldOptions_CType = 0 -+ // The option [ctype=CORD] may be applied to a non-repeated field of type -+ // "bytes". It indicates that in C++, the data should be stored in a Cord -+ // instead of a string. For very large strings, this may reduce memory -+ // fragmentation. It may also allow better performance when parsing from a -+ // Cord, or when parsing with aliasing enabled, as the parsed Cord may then -+ // alias the original buffer. - FieldOptions_CORD FieldOptions_CType = 1 - FieldOptions_STRING_PIECE FieldOptions_CType = 2 - ) -@@ -318,11 +382,11 @@ func (x FieldOptions_CType) String() string { - } - - func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() - } - - func (FieldOptions_CType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[3] -+ return &file_google_protobuf_descriptor_proto_enumTypes[4] - } - - func (x FieldOptions_CType) Number() protoreflect.EnumNumber { -@@ -380,11 +444,11 @@ func (x FieldOptions_JSType) String() string { - } - - func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() - } - - func (FieldOptions_JSType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[4] -+ return &file_google_protobuf_descriptor_proto_enumTypes[5] - } - - func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { -@@ -442,11 +506,11 @@ func (x FieldOptions_OptionRetention) String() string { - } - - func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() - } - - func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[5] -+ return &file_google_protobuf_descriptor_proto_enumTypes[6] - } - - func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { -@@ -526,11 +590,11 @@ func (x FieldOptions_OptionTargetType) String() string { - } - - func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() - } - - func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[6] -+ return &file_google_protobuf_descriptor_proto_enumTypes[7] - } - - func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { -@@ -588,11 +652,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { - } - - func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() - } - - func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[7] -+ return &file_google_protobuf_descriptor_proto_enumTypes[8] - } - - func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { -@@ -652,11 +716,11 @@ func (x GeneratedCodeInfo_Annotation_Semantic) String() string { - } - - func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() - } - - func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[8] -+ return &file_google_protobuf_descriptor_proto_enumTypes[9] - } - - func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { -@@ -1015,7 +1079,21 @@ type ExtensionRangeOptions struct { - - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` --} -+ // go/protobuf-stripping-extension-declarations -+ // Like Metadata, but we use a repeated field to hold all extension -+ // declarations. This should avoid the size increases of transforming a large -+ // extension range into small ranges in generated binaries. -+ Declaration []*ExtensionRangeOptions_Declaration `protobuf:"bytes,2,rep,name=declaration" json:"declaration,omitempty"` -+ // The verification state of the range. -+ // TODO(b/278783756): flip the default to DECLARATION once all empty ranges -+ // are marked as UNVERIFIED. -+ Verification *ExtensionRangeOptions_VerificationState `protobuf:"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1" json:"verification,omitempty"` -+} -+ -+// Default values for ExtensionRangeOptions fields. -+const ( -+ Default_ExtensionRangeOptions_Verification = ExtensionRangeOptions_UNVERIFIED -+) - - func (x *ExtensionRangeOptions) Reset() { - *x = ExtensionRangeOptions{} -@@ -1056,6 +1134,20 @@ func (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption - return nil - } - -+func (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declaration { -+ if x != nil { -+ return x.Declaration -+ } -+ return nil -+} -+ -+func (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState { -+ if x != nil && x.Verification != nil { -+ return *x.Verification -+ } -+ return Default_ExtensionRangeOptions_Verification -+} -+ - // Describes a field within a message. - type FieldDescriptorProto struct { - state protoimpl.MessageState -@@ -2046,8 +2138,10 @@ type FieldOptions struct { - - // The ctype option instructs the C++ code generator to use a different - // representation of the field than it normally would. See the specific -- // options below. This option is not yet implemented in the open source -- // release -- sorry, we'll try to include it in a future version! -+ // options below. This option is only implemented to support use of -+ // [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of -+ // type "bytes" in the open source release -- sorry, we'll try to include -+ // other types in a future version! - Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` - // The packed option can be enabled for repeated primitive fields to enable - // a more efficient representation on the wire. Rather than repeatedly -@@ -2111,9 +2205,11 @@ type FieldOptions struct { - Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // Indicate that the field value should not be printed out when using debug - // formats, e.g. when the field contains sensitive credentials. -- DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -- Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -- Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -+ DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -+ Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -+ Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2224,6 +2320,7 @@ func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { - return FieldOptions_RETENTION_UNKNOWN - } - -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { - if x != nil && x.Target != nil { - return *x.Target -@@ -2231,6 +2328,13 @@ func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { - return FieldOptions_TARGET_TYPE_UNKNOWN - } - -+func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+ if x != nil { -+ return x.Targets -+ } -+ return nil -+} -+ - func (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2960,6 +3064,108 @@ func (x *DescriptorProto_ReservedRange) GetEnd() int32 { - return 0 - } - -+type ExtensionRangeOptions_Declaration struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // The extension number declared within the extension range. -+ Number *int32 `protobuf:"varint,1,opt,name=number" json:"number,omitempty"` -+ // The fully-qualified name of the extension field. There must be a leading -+ // dot in front of the full name. -+ FullName *string `protobuf:"bytes,2,opt,name=full_name,json=fullName" json:"full_name,omitempty"` -+ // The fully-qualified type name of the extension field. Unlike -+ // Metadata.type, Declaration.type must have a leading dot for messages -+ // and enums. -+ Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` -+ // Deprecated. Please use "repeated". -+ // -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ IsRepeated *bool `protobuf:"varint,4,opt,name=is_repeated,json=isRepeated" json:"is_repeated,omitempty"` -+ // If true, indicates that the number is reserved in the extension range, -+ // and any extension field with the number will fail to compile. Set this -+ // when a declared extension field is deleted. -+ Reserved *bool `protobuf:"varint,5,opt,name=reserved" json:"reserved,omitempty"` -+ // If true, indicates that the extension must be defined as repeated. -+ // Otherwise the extension must be defined as optional. -+ Repeated *bool `protobuf:"varint,6,opt,name=repeated" json:"repeated,omitempty"` -+} -+ -+func (x *ExtensionRangeOptions_Declaration) Reset() { -+ *x = ExtensionRangeOptions_Declaration{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *ExtensionRangeOptions_Declaration) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*ExtensionRangeOptions_Declaration) ProtoMessage() {} -+ -+func (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ if protoimpl.UnsafeEnabled && x != nil { -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ if ms.LoadMessageInfo() == nil { -+ ms.StoreMessageInfo(mi) -+ } -+ return ms -+ } -+ return mi.MessageOf(x) -+} -+ -+// Deprecated: Use ExtensionRangeOptions_Declaration.ProtoReflect.Descriptor instead. -+func (*ExtensionRangeOptions_Declaration) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetNumber() int32 { -+ if x != nil && x.Number != nil { -+ return *x.Number -+ } -+ return 0 -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetFullName() string { -+ if x != nil && x.FullName != nil { -+ return *x.FullName -+ } -+ return "" -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetType() string { -+ if x != nil && x.Type != nil { -+ return *x.Type -+ } -+ return "" -+} -+ -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+func (x *ExtensionRangeOptions_Declaration) GetIsRepeated() bool { -+ if x != nil && x.IsRepeated != nil { -+ return *x.IsRepeated -+ } -+ return false -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetReserved() bool { -+ if x != nil && x.Reserved != nil { -+ return *x.Reserved -+ } -+ return false -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetRepeated() bool { -+ if x != nil && x.Repeated != nil { -+ return *x.Repeated -+ } -+ return false -+} -+ - // Range of reserved numeric values. Reserved values may not be used by - // entries in the same enum. Reserved ranges may not overlap. - // -@@ -2978,7 +3184,7 @@ type EnumDescriptorProto_EnumReservedRange struct { - func (x *EnumDescriptorProto_EnumReservedRange) Reset() { - *x = EnumDescriptorProto_EnumReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2991,7 +3197,7 @@ func (x *EnumDescriptorProto_EnumReservedRange) String() string { - func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} - - func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3038,7 +3244,7 @@ type UninterpretedOption_NamePart struct { - func (x *UninterpretedOption_NamePart) Reset() { - *x = UninterpretedOption_NamePart{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3051,7 +3257,7 @@ func (x *UninterpretedOption_NamePart) String() string { - func (*UninterpretedOption_NamePart) ProtoMessage() {} - - func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3182,7 +3388,7 @@ type SourceCodeInfo_Location struct { - func (x *SourceCodeInfo_Location) Reset() { - *x = SourceCodeInfo_Location{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3195,7 +3401,7 @@ func (x *SourceCodeInfo_Location) String() string { - func (*SourceCodeInfo_Location) ProtoMessage() {} - - func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3269,7 +3475,7 @@ type GeneratedCodeInfo_Annotation struct { - func (x *GeneratedCodeInfo_Annotation) Reset() { - *x = GeneratedCodeInfo_Annotation{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3282,7 +3488,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string { - func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} - - func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3436,264 +3642,296 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, -- 0x7c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, -- 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, -- 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, -- 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -- 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, -- 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, -- 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, -- 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, -- 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0xad, 0x04, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, -+ 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, -+ 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, -+ 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, -+ 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, -+ 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -+ 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, -+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0a, -+ 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, -+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, -+ 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -+ 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -+ 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, -+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, -+ 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, -+ 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, -+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x34, -+ 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, -+ 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, -+ 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, -+ 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -+ 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, -+ 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, -+ 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, -- 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, -- 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, -- 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, -- 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, -- 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, -- 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, -- 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, -- 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, -- 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, -- 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, -- 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, -- 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, -- 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, -- 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, -- 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, -- 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, -- 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, -- 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, -- 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, -- 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, -- 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, -- 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, -- 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, -- 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, -- 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, -- 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, -- 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, -- 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, -- 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, -- 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, -- 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, -- 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, -- 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, -- 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, -- 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, -+ 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, -+ 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, -+ 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, -+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, -+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -+ 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -+ 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, -+ 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, -+ 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, -+ 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, -+ 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, -+ 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, -+ 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, -+ 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, -+ 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, -+ 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, -+ 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, -+ 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, -+ 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, -+ 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, -+ 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, -+ 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, -+ 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -+ 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, -+ 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, -+ 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, -+ 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, -+ 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, -+ 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, -+ 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, -+ 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, -+ 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, -+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, -+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, -+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, -+ 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, -+ 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, -+ 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, -+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, -+ 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, -+ 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, -+ 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -+ 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, -+ 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -+ 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, -+ 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -+ 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, -+ 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, -+ 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, -+ 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, -+ 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, -+ 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, -+ 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, -+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, -+ 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, -+ 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, -+ 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, -+ 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, -+ 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, -+ 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, -+ 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, -+ 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, -+ 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, -+ 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, -+ 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, -+ 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, -+ 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, -+ 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, -+ 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, -- 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, -- 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, -- 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, -- 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, -- 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, -- 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, -- 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, -- 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, -- 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, -- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, -- 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, -- 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, -- 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -- 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, -- 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, -- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, -- 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, -- 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, -- 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -- 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, -- 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, -- 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, -- 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, -- 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, -- 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, -- 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, -- 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, -- 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, -- 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, -- 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, -- 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, -- 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, -- 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, -- 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, -- 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, -- 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, -- 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, -- 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, -- 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, -- 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, -- 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, -- 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, -- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -- 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, -- 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, -- 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, -- 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, -- 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, -- 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, -- 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, -- 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, -- 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -- 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, -- 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, -- 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -- 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, -- 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, -- 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x65, -- 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, -- 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, -- 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, -- 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, -- 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, 0x61, 0x72, -- 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x77, -- 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x28, 0x0a, -- 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, -- 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, 0x61, 0x73, -- 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, 0x5f, 0x6e, -- 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, -- 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, -- 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, -- 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, -- 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, -- 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, -- 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, 0x50, 0x61, -- 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -- 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, -- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, -- 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, -- 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, -- 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, -- 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, -- 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, 0x03, 0x0a, -- 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, -- 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, -- 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, -- 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, -- 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, -- 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, -- 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, -- 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -- 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, -- 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, -- 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, -- 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, -- 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, -- 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, -- 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, -- 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, -+ 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, -+ 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, -+ 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, -+ 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, -+ 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, -+ 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, -+ 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, -+ 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, -+ 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, -+ 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, -+ 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, -+ 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -+ 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, -+ 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, -+ 0x72, 0x65, 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, -+ 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, -+ 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, -+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, -+ 0x61, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, -+ 0x73, 0x77, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, -+ 0x28, 0x0a, 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, -+ 0x66, 0x69, 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, -+ 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, -+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0c, 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, -+ 0x0a, 0x16, 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, -+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, -+ 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, -+ 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, -+ 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, -+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, -- 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, -- 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xb7, 0x08, 0x0a, 0x0c, 0x46, -- 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, -- 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -- 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, -- 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, -- 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, -- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, -- 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, -- 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, -- 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -- 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, -- 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, -- 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, -- 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -- 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, -- 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, -- 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, -- 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, -- 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -- 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x12, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, -- 0x79, 0x70, 0x65, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, -+ 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, -+ 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, -+ 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, -+ 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, -+ 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, -+ 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, -+ 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -+ 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, -+ 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -+ 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, -+ 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, -+ 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -+ 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -+ 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, -+ 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -+ 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -+ 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, -+ 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x85, 0x09, 0x0a, -+ 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, -+ 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, -+ 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, -+ 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, -+ 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, -+ 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, -+ 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, -+ 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, -+ 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, -+ 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, -+ 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, -+ 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, -+ 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, -+ 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, -+ 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, -+ 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -+ 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, -+ 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, -+ 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, -+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, -+ 0x74, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, -+ 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, -+ 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, - 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, -@@ -3885,98 +4123,103 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { - return file_google_protobuf_descriptor_proto_rawDescData - } - --var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 9) --var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27) -+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 28) - var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ -- (FieldDescriptorProto_Type)(0), // 0: google.protobuf.FieldDescriptorProto.Type -- (FieldDescriptorProto_Label)(0), // 1: google.protobuf.FieldDescriptorProto.Label -- (FileOptions_OptimizeMode)(0), // 2: google.protobuf.FileOptions.OptimizeMode -- (FieldOptions_CType)(0), // 3: google.protobuf.FieldOptions.CType -- (FieldOptions_JSType)(0), // 4: google.protobuf.FieldOptions.JSType -- (FieldOptions_OptionRetention)(0), // 5: google.protobuf.FieldOptions.OptionRetention -- (FieldOptions_OptionTargetType)(0), // 6: google.protobuf.FieldOptions.OptionTargetType -- (MethodOptions_IdempotencyLevel)(0), // 7: google.protobuf.MethodOptions.IdempotencyLevel -- (GeneratedCodeInfo_Annotation_Semantic)(0), // 8: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- (*FileDescriptorSet)(nil), // 9: google.protobuf.FileDescriptorSet -- (*FileDescriptorProto)(nil), // 10: google.protobuf.FileDescriptorProto -- (*DescriptorProto)(nil), // 11: google.protobuf.DescriptorProto -- (*ExtensionRangeOptions)(nil), // 12: google.protobuf.ExtensionRangeOptions -- (*FieldDescriptorProto)(nil), // 13: google.protobuf.FieldDescriptorProto -- (*OneofDescriptorProto)(nil), // 14: google.protobuf.OneofDescriptorProto -- (*EnumDescriptorProto)(nil), // 15: google.protobuf.EnumDescriptorProto -- (*EnumValueDescriptorProto)(nil), // 16: google.protobuf.EnumValueDescriptorProto -- (*ServiceDescriptorProto)(nil), // 17: google.protobuf.ServiceDescriptorProto -- (*MethodDescriptorProto)(nil), // 18: google.protobuf.MethodDescriptorProto -- (*FileOptions)(nil), // 19: google.protobuf.FileOptions -- (*MessageOptions)(nil), // 20: google.protobuf.MessageOptions -- (*FieldOptions)(nil), // 21: google.protobuf.FieldOptions -- (*OneofOptions)(nil), // 22: google.protobuf.OneofOptions -- (*EnumOptions)(nil), // 23: google.protobuf.EnumOptions -- (*EnumValueOptions)(nil), // 24: google.protobuf.EnumValueOptions -- (*ServiceOptions)(nil), // 25: google.protobuf.ServiceOptions -- (*MethodOptions)(nil), // 26: google.protobuf.MethodOptions -- (*UninterpretedOption)(nil), // 27: google.protobuf.UninterpretedOption -- (*SourceCodeInfo)(nil), // 28: google.protobuf.SourceCodeInfo -- (*GeneratedCodeInfo)(nil), // 29: google.protobuf.GeneratedCodeInfo -- (*DescriptorProto_ExtensionRange)(nil), // 30: google.protobuf.DescriptorProto.ExtensionRange -- (*DescriptorProto_ReservedRange)(nil), // 31: google.protobuf.DescriptorProto.ReservedRange -- (*EnumDescriptorProto_EnumReservedRange)(nil), // 32: google.protobuf.EnumDescriptorProto.EnumReservedRange -- (*UninterpretedOption_NamePart)(nil), // 33: google.protobuf.UninterpretedOption.NamePart -- (*SourceCodeInfo_Location)(nil), // 34: google.protobuf.SourceCodeInfo.Location -- (*GeneratedCodeInfo_Annotation)(nil), // 35: google.protobuf.GeneratedCodeInfo.Annotation -+ (ExtensionRangeOptions_VerificationState)(0), // 0: google.protobuf.ExtensionRangeOptions.VerificationState -+ (FieldDescriptorProto_Type)(0), // 1: google.protobuf.FieldDescriptorProto.Type -+ (FieldDescriptorProto_Label)(0), // 2: google.protobuf.FieldDescriptorProto.Label -+ (FileOptions_OptimizeMode)(0), // 3: google.protobuf.FileOptions.OptimizeMode -+ (FieldOptions_CType)(0), // 4: google.protobuf.FieldOptions.CType -+ (FieldOptions_JSType)(0), // 5: google.protobuf.FieldOptions.JSType -+ (FieldOptions_OptionRetention)(0), // 6: google.protobuf.FieldOptions.OptionRetention -+ (FieldOptions_OptionTargetType)(0), // 7: google.protobuf.FieldOptions.OptionTargetType -+ (MethodOptions_IdempotencyLevel)(0), // 8: google.protobuf.MethodOptions.IdempotencyLevel -+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 9: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ (*FileDescriptorSet)(nil), // 10: google.protobuf.FileDescriptorSet -+ (*FileDescriptorProto)(nil), // 11: google.protobuf.FileDescriptorProto -+ (*DescriptorProto)(nil), // 12: google.protobuf.DescriptorProto -+ (*ExtensionRangeOptions)(nil), // 13: google.protobuf.ExtensionRangeOptions -+ (*FieldDescriptorProto)(nil), // 14: google.protobuf.FieldDescriptorProto -+ (*OneofDescriptorProto)(nil), // 15: google.protobuf.OneofDescriptorProto -+ (*EnumDescriptorProto)(nil), // 16: google.protobuf.EnumDescriptorProto -+ (*EnumValueDescriptorProto)(nil), // 17: google.protobuf.EnumValueDescriptorProto -+ (*ServiceDescriptorProto)(nil), // 18: google.protobuf.ServiceDescriptorProto -+ (*MethodDescriptorProto)(nil), // 19: google.protobuf.MethodDescriptorProto -+ (*FileOptions)(nil), // 20: google.protobuf.FileOptions -+ (*MessageOptions)(nil), // 21: google.protobuf.MessageOptions -+ (*FieldOptions)(nil), // 22: google.protobuf.FieldOptions -+ (*OneofOptions)(nil), // 23: google.protobuf.OneofOptions -+ (*EnumOptions)(nil), // 24: google.protobuf.EnumOptions -+ (*EnumValueOptions)(nil), // 25: google.protobuf.EnumValueOptions -+ (*ServiceOptions)(nil), // 26: google.protobuf.ServiceOptions -+ (*MethodOptions)(nil), // 27: google.protobuf.MethodOptions -+ (*UninterpretedOption)(nil), // 28: google.protobuf.UninterpretedOption -+ (*SourceCodeInfo)(nil), // 29: google.protobuf.SourceCodeInfo -+ (*GeneratedCodeInfo)(nil), // 30: google.protobuf.GeneratedCodeInfo -+ (*DescriptorProto_ExtensionRange)(nil), // 31: google.protobuf.DescriptorProto.ExtensionRange -+ (*DescriptorProto_ReservedRange)(nil), // 32: google.protobuf.DescriptorProto.ReservedRange -+ (*ExtensionRangeOptions_Declaration)(nil), // 33: google.protobuf.ExtensionRangeOptions.Declaration -+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 34: google.protobuf.EnumDescriptorProto.EnumReservedRange -+ (*UninterpretedOption_NamePart)(nil), // 35: google.protobuf.UninterpretedOption.NamePart -+ (*SourceCodeInfo_Location)(nil), // 36: google.protobuf.SourceCodeInfo.Location -+ (*GeneratedCodeInfo_Annotation)(nil), // 37: google.protobuf.GeneratedCodeInfo.Annotation - } - var file_google_protobuf_descriptor_proto_depIdxs = []int32{ -- 10, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -- 11, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -- 15, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 17, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -- 13, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 19, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -- 28, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -- 13, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -- 13, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 11, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -- 15, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 30, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -- 14, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -- 20, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -- 31, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -- 27, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 1, // 16: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -- 0, // 17: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -- 21, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -- 22, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -- 16, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -- 23, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -- 32, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -- 24, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -- 18, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -- 25, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -- 26, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -- 2, // 27: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -- 27, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 3, // 30: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -- 4, // 31: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -- 5, // 32: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -- 6, // 33: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 27, // 34: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 35: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 36: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 37: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 38: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 7, // 39: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -- 27, // 40: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 33, // 41: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -- 34, // 42: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -- 35, // 43: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -- 12, // 44: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -- 8, // 45: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- 46, // [46:46] is the sub-list for method output_type -- 46, // [46:46] is the sub-list for method input_type -- 46, // [46:46] is the sub-list for extension type_name -- 46, // [46:46] is the sub-list for extension extendee -- 0, // [0:46] is the sub-list for field type_name -+ 11, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -+ 12, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -+ 16, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 18, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -+ 14, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 20, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -+ 29, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -+ 14, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -+ 14, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 12, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -+ 16, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 31, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -+ 15, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -+ 21, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -+ 32, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -+ 28, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 33, // 16: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -+ 0, // 17: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -+ 2, // 18: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -+ 1, // 19: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -+ 22, // 20: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -+ 23, // 21: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -+ 17, // 22: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -+ 24, // 23: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -+ 34, // 24: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -+ 25, // 25: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -+ 19, // 26: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -+ 26, // 27: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -+ 27, // 28: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -+ 3, // 29: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -+ 28, // 30: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 31: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 4, // 32: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -+ 5, // 33: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -+ 6, // 34: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -+ 7, // 35: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 7, // 36: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 28, // 37: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 38: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 39: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 40: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 41: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 8, // 42: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -+ 28, // 43: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 35, // 44: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -+ 36, // 45: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -+ 37, // 46: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -+ 13, // 47: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -+ 9, // 48: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ 49, // [49:49] is the sub-list for method output_type -+ 49, // [49:49] is the sub-list for method input_type -+ 49, // [49:49] is the sub-list for extension type_name -+ 49, // [49:49] is the sub-list for extension extendee -+ 0, // [0:49] is the sub-list for field type_name - } - - func init() { file_google_protobuf_descriptor_proto_init() } -@@ -4280,7 +4523,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { -+ switch v := v.(*ExtensionRangeOptions_Declaration); i { - case 0: - return &v.state - case 1: -@@ -4292,7 +4535,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*UninterpretedOption_NamePart); i { -+ switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4304,7 +4547,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo_Location); i { -+ switch v := v.(*UninterpretedOption_NamePart); i { - case 0: - return &v.state - case 1: -@@ -4316,6 +4559,18 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo_Location); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeneratedCodeInfo_Annotation); i { - case 0: - return &v.state -@@ -4333,8 +4588,8 @@ func file_google_protobuf_descriptor_proto_init() { - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, -- NumEnums: 9, -- NumMessages: 27, -+ NumEnums: 10, -+ NumMessages: 28, - NumExtensions: 0, - NumServices: 0, - }, -diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -index a6c7a33f..580b232f 100644 ---- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -@@ -142,39 +142,39 @@ import ( - // - // Example 2: Pack and unpack a message in Java. - // --// Foo foo = ...; --// Any any = Any.pack(foo); --// ... --// if (any.is(Foo.class)) { --// foo = any.unpack(Foo.class); --// } --// // or ... --// if (any.isSameTypeAs(Foo.getDefaultInstance())) { --// foo = any.unpack(Foo.getDefaultInstance()); --// } --// --// Example 3: Pack and unpack a message in Python. --// --// foo = Foo(...) --// any = Any() --// any.Pack(foo) --// ... --// if any.Is(Foo.DESCRIPTOR): --// any.Unpack(foo) --// ... --// --// Example 4: Pack and unpack a message in Go --// --// foo := &pb.Foo{...} --// any, err := anypb.New(foo) --// if err != nil { --// ... --// } --// ... --// foo := &pb.Foo{} --// if err := any.UnmarshalTo(foo); err != nil { --// ... --// } -+// Foo foo = ...; -+// Any any = Any.pack(foo); -+// ... -+// if (any.is(Foo.class)) { -+// foo = any.unpack(Foo.class); -+// } -+// // or ... -+// if (any.isSameTypeAs(Foo.getDefaultInstance())) { -+// foo = any.unpack(Foo.getDefaultInstance()); -+// } -+// -+// Example 3: Pack and unpack a message in Python. -+// -+// foo = Foo(...) -+// any = Any() -+// any.Pack(foo) -+// ... -+// if any.Is(Foo.DESCRIPTOR): -+// any.Unpack(foo) -+// ... -+// -+// Example 4: Pack and unpack a message in Go -+// -+// foo := &pb.Foo{...} -+// any, err := anypb.New(foo) -+// if err != nil { -+// ... -+// } -+// ... -+// foo := &pb.Foo{} -+// if err := any.UnmarshalTo(foo); err != nil { -+// ... -+// } - // - // The pack methods provided by protobuf library will by default use - // 'type.googleapis.com/full.type.name' as the type URL and the unpack -@@ -182,8 +182,8 @@ import ( - // in the type URL, for example "foo.bar.com/x/y.z" will yield type - // name "y.z". - // --// # JSON --// -+// JSON -+// ==== - // The JSON representation of an `Any` value uses the regular - // representation of the deserialized, embedded message, with an - // additional field `@type` which contains the type URL. Example: -diff --git a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -index 61f69fc1..81511a33 100644 ---- a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -@@ -167,7 +167,7 @@ import ( - // [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with - // the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use - // the Joda Time's [`ISODateTimeFormat.dateTime()`]( --// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D -+// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() - // ) to obtain a formatter capable of generating timestamps in this format. - type Timestamp struct { - state protoimpl.MessageState -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 09b061d6..987b5b1c 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -46,8 +46,8 @@ github.com/buger/jsonparser - # github.com/containerd/cgroups v1.1.0 - ## explicit; go 1.17 - github.com/containerd/cgroups/stats/v1 --# github.com/containerd/containerd v1.6.23 --## explicit; go 1.18 -+# github.com/containerd/containerd v1.7.11 -+## explicit; go 1.19 - github.com/containerd/containerd/errdefs - # github.com/containernetworking/cni v1.1.2 - ## explicit; go 1.14 -@@ -171,7 +171,7 @@ github.com/pkg/errors - # github.com/safchain/ethtool v0.3.0 - ## explicit; go 1.16 - github.com/safchain/ethtool --# github.com/sirupsen/logrus v1.9.0 -+# github.com/sirupsen/logrus v1.9.3 - ## explicit; go 1.13 - github.com/sirupsen/logrus - # github.com/vishvananda/netlink v1.2.1-beta.2 -@@ -246,11 +246,11 @@ golang.org/x/tools/internal/pkgbits - golang.org/x/tools/internal/tokeninternal - golang.org/x/tools/internal/typeparams - golang.org/x/tools/internal/typesinternal --# google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 -+# google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 - ## explicit; go 1.19 - google.golang.org/genproto/googleapis/rpc/status --# google.golang.org/grpc v1.56.3 --## explicit; go 1.17 -+# google.golang.org/grpc v1.58.3 -+## explicit; go 1.19 - google.golang.org/grpc/attributes - google.golang.org/grpc/codes - google.golang.org/grpc/connectivity -@@ -263,7 +263,7 @@ google.golang.org/grpc/internal/status - google.golang.org/grpc/resolver - google.golang.org/grpc/serviceconfig - google.golang.org/grpc/status --# google.golang.org/protobuf v1.30.0 -+# google.golang.org/protobuf v1.31.0 - ## explicit; go 1.11 - google.golang.org/protobuf/encoding/prototext - google.golang.org/protobuf/encoding/protowire --- -2.39.1 - diff --git a/projects/containernetworking/plugins/1-32/patches/0001-Bump-go-directive-to-1.21-to-fix-go-deps-download.patch b/projects/containernetworking/plugins/1-32/patches/0001-Bump-go-directive-to-1.21-to-fix-go-deps-download.patch new file mode 100644 index 0000000000..45401440d5 --- /dev/null +++ b/projects/containernetworking/plugins/1-32/patches/0001-Bump-go-directive-to-1.21-to-fix-go-deps-download.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Jun 17 00:00:00 2024 +From: Mahesh +Date: Mon, 17 Jun 2024 20:17:20 -0700 +Subject: [PATCH] --EKS-PRIVATE-- Bump go directive for tag 1.5.1 to fix go dependency download + +Description: +This patch addresses the issue in cni-plugins-1-32-presubmit. +The upstream tag 1.5.1 specifies a go directive version of 1.20, which causes go mod vendor to fail while downloading dependencies. +To resolve this, the go directive is updated to 1.21 which has been verified after running 'go mod tidy'. +While we are using same Go version 1.22, consistent with the upstream, the upstream build uses 1.22-alpine. Our build process does not use Alpine, making this the difference in causing our build to fail. + +--- + go.mod | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/go.mod b/go.mod +index 7445d206..7016423f 100644 +--- a/go.mod ++++ b/go.mod +@@ -1,6 +1,6 @@ + module github.com/containernetworking/plugins + +-go 1.20 ++go 1.21 + + require ( + github.com/Microsoft/hcsshim v0.12.3 diff --git a/projects/containernetworking/plugins/1-32/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch b/projects/containernetworking/plugins/1-32/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch deleted file mode 100644 index a69520b061..0000000000 --- a/projects/containernetworking/plugins/1-32/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch +++ /dev/null @@ -1,7533 +0,0 @@ -From 3af5aa8e661a642da31295a18e637f975a4706a5 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Fri, 22 Mar 2024 19:12:56 +0000 -Subject: [PATCH] Bump protobuf to 1.33.0 to resolve CVE-2024-24786 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 2 +- - go.sum | 4 +- - .../protobuf/encoding/prototext/decode.go | 8 +- - .../protobuf/encoding/prototext/encode.go | 4 +- - .../protobuf/encoding/protowire/wire.go | 28 +- - .../protobuf/internal/descfmt/stringer.go | 183 +- - .../internal/editiondefaults/defaults.go | 12 + - .../editiondefaults/editions_defaults.binpb | 4 + - .../protobuf/internal/filedesc/desc.go | 102 +- - .../protobuf/internal/filedesc/desc_init.go | 52 + - .../protobuf/internal/filedesc/desc_lazy.go | 28 + - .../protobuf/internal/filedesc/editions.go | 142 + - .../protobuf/internal/genid/descriptor_gen.go | 364 ++- - .../internal/genid/go_features_gen.go | 31 + - .../protobuf/internal/genid/struct_gen.go | 5 + - .../protobuf/internal/genid/type_gen.go | 38 + - .../protobuf/internal/impl/codec_extension.go | 22 +- - .../protobuf/internal/impl/codec_gen.go | 113 +- - .../protobuf/internal/impl/codec_tables.go | 2 +- - .../protobuf/internal/impl/legacy_message.go | 19 +- - .../protobuf/internal/impl/message.go | 17 +- - .../internal/impl/message_reflect_field.go | 2 +- - .../protobuf/internal/impl/pointer_reflect.go | 36 + - .../protobuf/internal/impl/pointer_unsafe.go | 40 + - .../protobuf/internal/strs/strings.go | 2 +- - ...ings_unsafe.go => strings_unsafe_go120.go} | 4 +- - .../internal/strs/strings_unsafe_go121.go | 74 + - .../protobuf/internal/version/version.go | 2 +- - .../protobuf/proto/decode.go | 2 +- - .../google.golang.org/protobuf/proto/doc.go | 58 +- - .../protobuf/proto/encode.go | 2 +- - .../protobuf/proto/extension.go | 2 +- - .../google.golang.org/protobuf/proto/merge.go | 2 +- - .../google.golang.org/protobuf/proto/proto.go | 18 +- - .../protobuf/reflect/protodesc/desc.go | 29 +- - .../protobuf/reflect/protodesc/desc_init.go | 56 + - .../reflect/protodesc/desc_resolve.go | 4 +- - .../reflect/protodesc/desc_validate.go | 6 +- - .../protobuf/reflect/protodesc/editions.go | 148 + - .../protobuf/reflect/protodesc/proto.go | 18 +- - .../protobuf/reflect/protoreflect/proto.go | 85 +- - .../reflect/protoreflect/source_gen.go | 64 +- - .../protobuf/reflect/protoreflect/type.go | 44 +- - .../protobuf/reflect/protoreflect/value.go | 24 +- - .../reflect/protoreflect/value_equal.go | 8 +- - .../reflect/protoreflect/value_union.go | 44 +- - ...{value_unsafe.go => value_unsafe_go120.go} | 4 +- - .../protoreflect/value_unsafe_go121.go | 87 + - .../reflect/protoregistry/registry.go | 24 +- - .../types/descriptorpb/descriptor.pb.go | 2475 ++++++++++++----- - .../types/gofeaturespb/go_features.pb.go | 177 ++ - .../types/gofeaturespb/go_features.proto | 28 + - .../protobuf/types/known/anypb/any.pb.go | 3 +- - vendor/modules.txt | 6 +- - 54 files changed, 3699 insertions(+), 1059 deletions(-) - create mode 100644 vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go - create mode 100644 vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/editions.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go - rename vendor/google.golang.org/protobuf/internal/strs/{strings_unsafe.go => strings_unsafe_go120.go} (96%) - create mode 100644 vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/editions.go - rename vendor/google.golang.org/protobuf/reflect/protoreflect/{value_unsafe.go => value_unsafe_go120.go} (97%) - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go - create mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go - create mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto - -diff --git a/go.mod b/go.mod -index 5be57166..47102692 100644 ---- a/go.mod -+++ b/go.mod -@@ -45,6 +45,6 @@ require ( - golang.org/x/tools v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/grpc v1.58.3 // indirect -- google.golang.org/protobuf v1.31.0 // indirect -+ google.golang.org/protobuf v1.33.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index 128e5c25..e274380d 100644 ---- a/go.sum -+++ b/go.sum -@@ -240,8 +240,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD - 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/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= --google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= --google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -+google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -+google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= - 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/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -index 4921b2d4..a45f112b 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -@@ -21,7 +21,7 @@ import ( - "google.golang.org/protobuf/reflect/protoregistry" - ) - --// Unmarshal reads the given []byte into the given proto.Message. -+// Unmarshal reads the given []byte into the given [proto.Message]. - // The provided message must be mutable (e.g., a non-nil pointer to a message). - func Unmarshal(b []byte, m proto.Message) error { - return UnmarshalOptions{}.Unmarshal(b, m) -@@ -51,7 +51,7 @@ type UnmarshalOptions struct { - } - } - --// Unmarshal reads the given []byte and populates the given proto.Message -+// Unmarshal reads the given []byte and populates the given [proto.Message] - // using options in the UnmarshalOptions object. - // The provided message must be mutable (e.g., a non-nil pointer to a message). - func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error { -@@ -739,7 +739,9 @@ func (d decoder) skipValue() error { - case text.ListClose: - return nil - case text.MessageOpen: -- return d.skipMessageValue() -+ if err := d.skipMessageValue(); err != nil { -+ return err -+ } - default: - // Skip items. This will not validate whether skipped values are - // of the same type or not, same behavior as C++ -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -index 722a7b41..95967e81 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -@@ -33,7 +33,7 @@ func Format(m proto.Message) string { - return MarshalOptions{Multiline: true}.Format(m) - } - --// Marshal writes the given proto.Message in textproto format using default -+// Marshal writes the given [proto.Message] in textproto format using default - // options. Do not depend on the output being stable. It may change over time - // across different versions of the program. - func Marshal(m proto.Message) ([]byte, error) { -@@ -97,7 +97,7 @@ func (o MarshalOptions) Format(m proto.Message) string { - return string(b) - } - --// Marshal writes the given proto.Message in textproto format using options in -+// Marshal writes the given [proto.Message] in textproto format using options in - // MarshalOptions object. Do not depend on the output being stable. It may - // change over time across different versions of the program. - func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { -diff --git a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -index f4b4686c..e942bc98 100644 ---- a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -+++ b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -@@ -6,7 +6,7 @@ - // See https://protobuf.dev/programming-guides/encoding. - // - // For marshaling and unmarshaling entire protobuf messages, --// use the "google.golang.org/protobuf/proto" package instead. -+// use the [google.golang.org/protobuf/proto] package instead. - package protowire - - import ( -@@ -87,7 +87,7 @@ func ParseError(n int) error { - - // ConsumeField parses an entire field record (both tag and value) and returns - // the field number, the wire type, and the total length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - // - // The total length includes the tag header and the end group marker (if the - // field is a group). -@@ -104,8 +104,8 @@ func ConsumeField(b []byte) (Number, Type, int) { - } - - // ConsumeFieldValue parses a field value and returns its length. --// This assumes that the field Number and wire Type have already been parsed. --// This returns a negative length upon an error (see ParseError). -+// This assumes that the field [Number] and wire [Type] have already been parsed. -+// This returns a negative length upon an error (see [ParseError]). - // - // When parsing a group, the length includes the end group marker and - // the end group is verified to match the starting field number. -@@ -164,7 +164,7 @@ func AppendTag(b []byte, num Number, typ Type) []byte { - } - - // ConsumeTag parses b as a varint-encoded tag, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeTag(b []byte) (Number, Type, int) { - v, n := ConsumeVarint(b) - if n < 0 { -@@ -263,7 +263,7 @@ func AppendVarint(b []byte, v uint64) []byte { - } - - // ConsumeVarint parses b as a varint-encoded uint64, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeVarint(b []byte) (v uint64, n int) { - var y uint64 - if len(b) <= 0 { -@@ -384,7 +384,7 @@ func AppendFixed32(b []byte, v uint32) []byte { - } - - // ConsumeFixed32 parses b as a little-endian uint32, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeFixed32(b []byte) (v uint32, n int) { - if len(b) < 4 { - return 0, errCodeTruncated -@@ -412,7 +412,7 @@ func AppendFixed64(b []byte, v uint64) []byte { - } - - // ConsumeFixed64 parses b as a little-endian uint64, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeFixed64(b []byte) (v uint64, n int) { - if len(b) < 8 { - return 0, errCodeTruncated -@@ -432,7 +432,7 @@ func AppendBytes(b []byte, v []byte) []byte { - } - - // ConsumeBytes parses b as a length-prefixed bytes value, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeBytes(b []byte) (v []byte, n int) { - m, n := ConsumeVarint(b) - if n < 0 { -@@ -456,7 +456,7 @@ func AppendString(b []byte, v string) []byte { - } - - // ConsumeString parses b as a length-prefixed bytes value, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeString(b []byte) (v string, n int) { - bb, n := ConsumeBytes(b) - return string(bb), n -@@ -471,7 +471,7 @@ func AppendGroup(b []byte, num Number, v []byte) []byte { - // ConsumeGroup parses b as a group value until the trailing end group marker, - // and verifies that the end marker matches the provided num. The value v - // does not contain the end marker, while the length does contain the end marker. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeGroup(num Number, b []byte) (v []byte, n int) { - n = ConsumeFieldValue(num, StartGroupType, b) - if n < 0 { -@@ -495,8 +495,8 @@ func SizeGroup(num Number, n int) int { - return n + SizeTag(num) - } - --// DecodeTag decodes the field Number and wire Type from its unified form. --// The Number is -1 if the decoded field number overflows int32. -+// DecodeTag decodes the field [Number] and wire [Type] from its unified form. -+// The [Number] is -1 if the decoded field number overflows int32. - // Other than overflow, this does not check for field number validity. - func DecodeTag(x uint64) (Number, Type) { - // NOTE: MessageSet allows for larger field numbers than normal. -@@ -506,7 +506,7 @@ func DecodeTag(x uint64) (Number, Type) { - return Number(x >> 3), Type(x & 7) - } - --// EncodeTag encodes the field Number and wire Type into its unified form. -+// EncodeTag encodes the field [Number] and wire [Type] into its unified form. - func EncodeTag(num Number, typ Type) uint64 { - return uint64(num)<<3 | uint64(typ&7) - } -diff --git a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -index db5248e1..a45625c8 100644 ---- a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -+++ b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -@@ -83,7 +83,13 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { - case protoreflect.FileImports: - for i := 0; i < vs.Len(); i++ { - var rs records -- rs.Append(reflect.ValueOf(vs.Get(i)), "Path", "Package", "IsPublic", "IsWeak") -+ rv := reflect.ValueOf(vs.Get(i)) -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("IsPublic"), "IsPublic"}, -+ {rv.MethodByName("IsWeak"), "IsWeak"}, -+ }...) - ss = append(ss, "{"+rs.Join()+"}") - } - return start + joinStrings(ss, allowMulti) + end -@@ -92,34 +98,26 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { - for i := 0; i < vs.Len(); i++ { - m := reflect.ValueOf(vs).MethodByName("Get") - v := m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface() -- ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue)) -+ ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue, nil)) - } - return start + joinStrings(ss, allowMulti && isEnumValue) + end - } - } - --// descriptorAccessors is a list of accessors to print for each descriptor. --// --// Do not print all accessors since some contain redundant information, --// while others are pointers that we do not want to follow since the descriptor --// is actually a cyclic graph. --// --// Using a list allows us to print the accessors in a sensible order. --var descriptorAccessors = map[reflect.Type][]string{ -- reflect.TypeOf((*protoreflect.FileDescriptor)(nil)).Elem(): {"Path", "Package", "Imports", "Messages", "Enums", "Extensions", "Services"}, -- reflect.TypeOf((*protoreflect.MessageDescriptor)(nil)).Elem(): {"IsMapEntry", "Fields", "Oneofs", "ReservedNames", "ReservedRanges", "RequiredNumbers", "ExtensionRanges", "Messages", "Enums", "Extensions"}, -- reflect.TypeOf((*protoreflect.FieldDescriptor)(nil)).Elem(): {"Number", "Cardinality", "Kind", "HasJSONName", "JSONName", "HasPresence", "IsExtension", "IsPacked", "IsWeak", "IsList", "IsMap", "MapKey", "MapValue", "HasDefault", "Default", "ContainingOneof", "ContainingMessage", "Message", "Enum"}, -- reflect.TypeOf((*protoreflect.OneofDescriptor)(nil)).Elem(): {"Fields"}, // not directly used; must keep in sync with formatDescOpt -- reflect.TypeOf((*protoreflect.EnumDescriptor)(nil)).Elem(): {"Values", "ReservedNames", "ReservedRanges"}, -- reflect.TypeOf((*protoreflect.EnumValueDescriptor)(nil)).Elem(): {"Number"}, -- reflect.TypeOf((*protoreflect.ServiceDescriptor)(nil)).Elem(): {"Methods"}, -- reflect.TypeOf((*protoreflect.MethodDescriptor)(nil)).Elem(): {"Input", "Output", "IsStreamingClient", "IsStreamingServer"}, -+type methodAndName struct { -+ method reflect.Value -+ name string - } - - func FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) { -- io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')))) -+ io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')), nil)) - } --func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { -+ -+func InternalFormatDescOptForTesting(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string { -+ return formatDescOpt(t, isRoot, allowMulti, record) -+} -+ -+func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string { - rv := reflect.ValueOf(t) - rt := rv.MethodByName("ProtoType").Type().In(0) - -@@ -129,26 +127,60 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - } - - _, isFile := t.(protoreflect.FileDescriptor) -- rs := records{allowMulti: allowMulti} -+ rs := records{ -+ allowMulti: allowMulti, -+ record: record, -+ } - if t.IsPlaceholder() { - if isFile { -- rs.Append(rv, "Path", "Package", "IsPlaceholder") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, -+ }...) - } else { -- rs.Append(rv, "FullName", "IsPlaceholder") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("FullName"), "FullName"}, -+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, -+ }...) - } - } else { - switch { - case isFile: -- rs.Append(rv, "Syntax") -+ rs.Append(rv, methodAndName{rv.MethodByName("Syntax"), "Syntax"}) - case isRoot: -- rs.Append(rv, "Syntax", "FullName") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Syntax"), "Syntax"}, -+ {rv.MethodByName("FullName"), "FullName"}, -+ }...) - default: -- rs.Append(rv, "Name") -+ rs.Append(rv, methodAndName{rv.MethodByName("Name"), "Name"}) - } - switch t := t.(type) { - case protoreflect.FieldDescriptor: -- for _, s := range descriptorAccessors[rt] { -- switch s { -+ accessors := []methodAndName{ -+ {rv.MethodByName("Number"), "Number"}, -+ {rv.MethodByName("Cardinality"), "Cardinality"}, -+ {rv.MethodByName("Kind"), "Kind"}, -+ {rv.MethodByName("HasJSONName"), "HasJSONName"}, -+ {rv.MethodByName("JSONName"), "JSONName"}, -+ {rv.MethodByName("HasPresence"), "HasPresence"}, -+ {rv.MethodByName("IsExtension"), "IsExtension"}, -+ {rv.MethodByName("IsPacked"), "IsPacked"}, -+ {rv.MethodByName("IsWeak"), "IsWeak"}, -+ {rv.MethodByName("IsList"), "IsList"}, -+ {rv.MethodByName("IsMap"), "IsMap"}, -+ {rv.MethodByName("MapKey"), "MapKey"}, -+ {rv.MethodByName("MapValue"), "MapValue"}, -+ {rv.MethodByName("HasDefault"), "HasDefault"}, -+ {rv.MethodByName("Default"), "Default"}, -+ {rv.MethodByName("ContainingOneof"), "ContainingOneof"}, -+ {rv.MethodByName("ContainingMessage"), "ContainingMessage"}, -+ {rv.MethodByName("Message"), "Message"}, -+ {rv.MethodByName("Enum"), "Enum"}, -+ } -+ for _, s := range accessors { -+ switch s.name { - case "MapKey": - if k := t.MapKey(); k != nil { - rs.recs = append(rs.recs, [2]string{"MapKey", k.Kind().String()}) -@@ -157,20 +189,20 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - if v := t.MapValue(); v != nil { - switch v.Kind() { - case protoreflect.EnumKind: -- rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Enum().FullName())}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Enum().FullName())}) - case protoreflect.MessageKind, protoreflect.GroupKind: -- rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Message().FullName())}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Message().FullName())}) - default: -- rs.recs = append(rs.recs, [2]string{"MapValue", v.Kind().String()}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", v.Kind().String()}) - } - } - case "ContainingOneof": - if od := t.ContainingOneof(); od != nil { -- rs.recs = append(rs.recs, [2]string{"Oneof", string(od.Name())}) -+ rs.AppendRecs("ContainingOneof", [2]string{"Oneof", string(od.Name())}) - } - case "ContainingMessage": - if t.IsExtension() { -- rs.recs = append(rs.recs, [2]string{"Extendee", string(t.ContainingMessage().FullName())}) -+ rs.AppendRecs("ContainingMessage", [2]string{"Extendee", string(t.ContainingMessage().FullName())}) - } - case "Message": - if !t.IsMap() { -@@ -187,13 +219,61 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - ss = append(ss, string(fs.Get(i).Name())) - } - if len(ss) > 0 { -- rs.recs = append(rs.recs, [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) -+ rs.AppendRecs("Fields", [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) - } -- default: -- rs.Append(rv, descriptorAccessors[rt]...) -+ -+ case protoreflect.FileDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("Imports"), "Imports"}, -+ {rv.MethodByName("Messages"), "Messages"}, -+ {rv.MethodByName("Enums"), "Enums"}, -+ {rv.MethodByName("Extensions"), "Extensions"}, -+ {rv.MethodByName("Services"), "Services"}, -+ }...) -+ -+ case protoreflect.MessageDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("IsMapEntry"), "IsMapEntry"}, -+ {rv.MethodByName("Fields"), "Fields"}, -+ {rv.MethodByName("Oneofs"), "Oneofs"}, -+ {rv.MethodByName("ReservedNames"), "ReservedNames"}, -+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, -+ {rv.MethodByName("RequiredNumbers"), "RequiredNumbers"}, -+ {rv.MethodByName("ExtensionRanges"), "ExtensionRanges"}, -+ {rv.MethodByName("Messages"), "Messages"}, -+ {rv.MethodByName("Enums"), "Enums"}, -+ {rv.MethodByName("Extensions"), "Extensions"}, -+ }...) -+ -+ case protoreflect.EnumDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Values"), "Values"}, -+ {rv.MethodByName("ReservedNames"), "ReservedNames"}, -+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, -+ }...) -+ -+ case protoreflect.EnumValueDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Number"), "Number"}, -+ }...) -+ -+ case protoreflect.ServiceDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Methods"), "Methods"}, -+ }...) -+ -+ case protoreflect.MethodDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Input"), "Input"}, -+ {rv.MethodByName("Output"), "Output"}, -+ {rv.MethodByName("IsStreamingClient"), "IsStreamingClient"}, -+ {rv.MethodByName("IsStreamingServer"), "IsStreamingServer"}, -+ }...) - } -- if rv.MethodByName("GoType").IsValid() { -- rs.Append(rv, "GoType") -+ if m := rv.MethodByName("GoType"); m.IsValid() { -+ rs.Append(rv, methodAndName{m, "GoType"}) - } - } - return start + rs.Join() + end -@@ -202,19 +282,34 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - type records struct { - recs [][2]string - allowMulti bool -+ -+ // record is a function that will be called for every Append() or -+ // AppendRecs() call, to be used for testing with the -+ // InternalFormatDescOptForTesting function. -+ record func(string) - } - --func (rs *records) Append(v reflect.Value, accessors ...string) { -+func (rs *records) AppendRecs(fieldName string, newRecs [2]string) { -+ if rs.record != nil { -+ rs.record(fieldName) -+ } -+ rs.recs = append(rs.recs, newRecs) -+} -+ -+func (rs *records) Append(v reflect.Value, accessors ...methodAndName) { - for _, a := range accessors { -+ if rs.record != nil { -+ rs.record(a.name) -+ } - var rv reflect.Value -- if m := v.MethodByName(a); m.IsValid() { -- rv = m.Call(nil)[0] -+ if a.method.IsValid() { -+ rv = a.method.Call(nil)[0] - } - if v.Kind() == reflect.Struct && !rv.IsValid() { -- rv = v.FieldByName(a) -+ rv = v.FieldByName(a.name) - } - if !rv.IsValid() { -- panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a)) -+ panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a.name)) - } - if _, ok := rv.Interface().(protoreflect.Value); ok { - rv = rv.MethodByName("Interface").Call(nil)[0] -@@ -261,7 +356,7 @@ func (rs *records) Append(v reflect.Value, accessors ...string) { - default: - s = fmt.Sprint(v) - } -- rs.recs = append(rs.recs, [2]string{a, s}) -+ rs.recs = append(rs.recs, [2]string{a.name, s}) - } - } - -diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go -new file mode 100644 -index 00000000..14656b65 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go -@@ -0,0 +1,12 @@ -+// Copyright 2024 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package editiondefaults contains the binary representation of the editions -+// defaults. -+package editiondefaults -+ -+import _ "embed" -+ -+//go:embed editions_defaults.binpb -+var Defaults []byte -diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb -new file mode 100644 -index 00000000..18f07568 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb -@@ -0,0 +1,4 @@ -+ -+  (0æ -+  (0ç -+  (0è æ(è -\ No newline at end of file -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -index 7c3689ba..8826bcf4 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -@@ -21,11 +21,26 @@ import ( - "google.golang.org/protobuf/reflect/protoregistry" - ) - -+// Edition is an Enum for proto2.Edition -+type Edition int32 -+ -+// These values align with the value of Enum in descriptor.proto which allows -+// direct conversion between the proto enum and this enum. -+const ( -+ EditionUnknown Edition = 0 -+ EditionProto2 Edition = 998 -+ EditionProto3 Edition = 999 -+ Edition2023 Edition = 1000 -+ EditionUnsupported Edition = 100000 -+) -+ - // The types in this file may have a suffix: - // • L0: Contains fields common to all descriptors (except File) and - // must be initialized up front. - // • L1: Contains fields specific to a descriptor and --// must be initialized up front. -+// must be initialized up front. If the associated proto uses Editions, the -+// Editions features must always be resolved. If not explicitly set, the -+// appropriate default must be resolved and set. - // • L2: Contains fields that are lazily initialized when constructing - // from the raw file descriptor. When constructing as a literal, the L2 - // fields must be initialized up front. -@@ -44,6 +59,7 @@ type ( - } - FileL1 struct { - Syntax protoreflect.Syntax -+ Edition Edition // Only used if Syntax == Editions - Path string - Package protoreflect.FullName - -@@ -51,12 +67,41 @@ type ( - Messages Messages - Extensions Extensions - Services Services -+ -+ EditionFeatures EditionFeatures - } - FileL2 struct { - Options func() protoreflect.ProtoMessage - Imports FileImports - Locations SourceLocations - } -+ -+ EditionFeatures struct { -+ // IsFieldPresence is true if field_presence is EXPLICIT -+ // https://protobuf.dev/editions/features/#field_presence -+ IsFieldPresence bool -+ // IsFieldPresence is true if field_presence is LEGACY_REQUIRED -+ // https://protobuf.dev/editions/features/#field_presence -+ IsLegacyRequired bool -+ // IsOpenEnum is true if enum_type is OPEN -+ // https://protobuf.dev/editions/features/#enum_type -+ IsOpenEnum bool -+ // IsPacked is true if repeated_field_encoding is PACKED -+ // https://protobuf.dev/editions/features/#repeated_field_encoding -+ IsPacked bool -+ // IsUTF8Validated is true if utf_validation is VERIFY -+ // https://protobuf.dev/editions/features/#utf8_validation -+ IsUTF8Validated bool -+ // IsDelimitedEncoded is true if message_encoding is DELIMITED -+ // https://protobuf.dev/editions/features/#message_encoding -+ IsDelimitedEncoded bool -+ // IsJSONCompliant is true if json_format is ALLOW -+ // https://protobuf.dev/editions/features/#json_format -+ IsJSONCompliant bool -+ // GenerateLegacyUnmarshalJSON determines if the plugin generates the -+ // UnmarshalJSON([]byte) error method for enums. -+ GenerateLegacyUnmarshalJSON bool -+ } - ) - - func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } -@@ -117,6 +162,8 @@ type ( - } - EnumL1 struct { - eagerValues bool // controls whether EnumL2.Values is already populated -+ -+ EditionFeatures EditionFeatures - } - EnumL2 struct { - Options func() protoreflect.ProtoMessage -@@ -178,6 +225,8 @@ type ( - Extensions Extensions - IsMapEntry bool // promoted from google.protobuf.MessageOptions - IsMessageSet bool // promoted from google.protobuf.MessageOptions -+ -+ EditionFeatures EditionFeatures - } - MessageL2 struct { - Options func() protoreflect.ProtoMessage -@@ -210,6 +259,8 @@ type ( - ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields - Enum protoreflect.EnumDescriptor - Message protoreflect.MessageDescriptor -+ -+ EditionFeatures EditionFeatures - } - - Oneof struct { -@@ -219,6 +270,8 @@ type ( - OneofL1 struct { - Options func() protoreflect.ProtoMessage - Fields OneofFields // must be consistent with Message.Fields.ContainingOneof -+ -+ EditionFeatures EditionFeatures - } - ) - -@@ -268,23 +321,36 @@ func (fd *Field) Options() protoreflect.ProtoMessage { - } - func (fd *Field) Number() protoreflect.FieldNumber { return fd.L1.Number } - func (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality } --func (fd *Field) Kind() protoreflect.Kind { return fd.L1.Kind } --func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } --func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } --func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } -+func (fd *Field) Kind() protoreflect.Kind { -+ return fd.L1.Kind -+} -+func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } -+func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } -+func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } - func (fd *Field) HasPresence() bool { -- return fd.L1.Cardinality != protoreflect.Repeated && (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil) -+ if fd.L1.Cardinality == protoreflect.Repeated { -+ return false -+ } -+ explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence -+ return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil - } - func (fd *Field) HasOptionalKeyword() bool { - return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional - } - func (fd *Field) IsPacked() bool { -- if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Repeated { -- switch fd.L1.Kind { -- case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -- default: -- return true -- } -+ if fd.L1.Cardinality != protoreflect.Repeated { -+ return false -+ } -+ switch fd.L1.Kind { -+ case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -+ return false -+ } -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -+ return fd.L1.EditionFeatures.IsPacked -+ } -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 { -+ // proto3 repeated fields are packed by default. -+ return !fd.L1.HasPacked || fd.L1.IsPacked - } - return fd.L1.IsPacked - } -@@ -333,6 +399,9 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {} - // WARNING: This method is exempt from the compatibility promise and may be - // removed in the future without warning. - func (fd *Field) EnforceUTF8() bool { -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -+ return fd.L1.EditionFeatures.IsUTF8Validated -+ } - if fd.L1.HasEnforceUTF8 { - return fd.L1.EnforceUTF8 - } -@@ -359,10 +428,11 @@ type ( - L2 *ExtensionL2 // protected by fileDesc.once - } - ExtensionL1 struct { -- Number protoreflect.FieldNumber -- Extendee protoreflect.MessageDescriptor -- Cardinality protoreflect.Cardinality -- Kind protoreflect.Kind -+ Number protoreflect.FieldNumber -+ Extendee protoreflect.MessageDescriptor -+ Cardinality protoreflect.Cardinality -+ Kind protoreflect.Kind -+ EditionFeatures EditionFeatures - } - ExtensionL2 struct { - Options func() protoreflect.ProtoMessage -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -index 4a1584c9..237e64fd 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -@@ -5,6 +5,7 @@ - package filedesc - - import ( -+ "fmt" - "sync" - - "google.golang.org/protobuf/encoding/protowire" -@@ -98,6 +99,7 @@ func (fd *File) unmarshalSeed(b []byte) { - var prevField protoreflect.FieldNumber - var numEnums, numMessages, numExtensions, numServices int - var posEnums, posMessages, posExtensions, posServices int -+ var options []byte - b0 := b - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) -@@ -113,6 +115,8 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Syntax = protoreflect.Proto2 - case "proto3": - fd.L1.Syntax = protoreflect.Proto3 -+ case "editions": -+ fd.L1.Syntax = protoreflect.Editions - default: - panic("invalid syntax") - } -@@ -120,6 +124,8 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Path = sb.MakeString(v) - case genid.FileDescriptorProto_Package_field_number: - fd.L1.Package = protoreflect.FullName(sb.MakeString(v)) -+ case genid.FileDescriptorProto_Options_field_number: -+ options = v - case genid.FileDescriptorProto_EnumType_field_number: - if prevField != genid.FileDescriptorProto_EnumType_field_number { - if numEnums > 0 { -@@ -154,6 +160,13 @@ func (fd *File) unmarshalSeed(b []byte) { - numServices++ - } - prevField = num -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FileDescriptorProto_Edition_field_number: -+ fd.L1.Edition = Edition(v) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -@@ -166,6 +179,15 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Syntax = protoreflect.Proto2 - } - -+ if fd.L1.Syntax == protoreflect.Editions { -+ fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) -+ } -+ -+ // Parse editions features from options if any -+ if options != nil { -+ fd.unmarshalSeedOptions(options) -+ } -+ - // Must allocate all declarations before parsing each descriptor type - // to ensure we handled all descriptors in "flattened ordering". - if numEnums > 0 { -@@ -219,6 +241,28 @@ func (fd *File) unmarshalSeed(b []byte) { - } - } - -+func (fd *File) unmarshalSeedOptions(b []byte) { -+ for b := b; len(b) > 0; { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FileOptions_Features_field_number: -+ if fd.Syntax() != protoreflect.Editions { -+ panic(fmt.Sprintf("invalid descriptor: using edition features in a proto with syntax %s", fd.Syntax())) -+ } -+ fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ - func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { - ed.L0.ParentFile = pf - ed.L0.Parent = pd -@@ -275,6 +319,7 @@ func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protor - md.L0.ParentFile = pf - md.L0.Parent = pd - md.L0.Index = i -+ md.L1.EditionFeatures = featuresFromParentDesc(md.Parent()) - - var prevField protoreflect.FieldNumber - var numEnums, numMessages, numExtensions int -@@ -380,6 +425,13 @@ func (md *Message) unmarshalSeedOptions(b []byte) { - case genid.MessageOptions_MessageSetWireFormat_field_number: - md.L1.IsMessageSet = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.MessageOptions_Features_field_number: -+ md.L1.EditionFeatures = unmarshalFeatureSet(v, md.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -index 736a19a7..482a61cc 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -@@ -414,6 +414,7 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - fd.L0.ParentFile = pf - fd.L0.Parent = pd - fd.L0.Index = i -+ fd.L1.EditionFeatures = featuresFromParentDesc(fd.Parent()) - - var rawTypeName []byte - var rawOptions []byte -@@ -465,6 +466,12 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - b = b[m:] - } - } -+ if fd.Syntax() == protoreflect.Editions && fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { -+ fd.L1.Kind = protoreflect.GroupKind -+ } -+ if fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsLegacyRequired { -+ fd.L1.Cardinality = protoreflect.Required -+ } - if rawTypeName != nil { - name := makeFullName(sb, rawTypeName) - switch fd.L1.Kind { -@@ -497,6 +504,13 @@ func (fd *Field) unmarshalOptions(b []byte) { - fd.L1.HasEnforceUTF8 = true - fd.L1.EnforceUTF8 = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Features_field_number: -+ fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -@@ -534,6 +548,7 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { - var rawTypeName []byte - var rawOptions []byte -+ xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee) - xd.L2 = new(ExtensionL2) - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) -@@ -565,6 +580,12 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { - b = b[m:] - } - } -+ if xd.Syntax() == protoreflect.Editions && xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { -+ xd.L1.Kind = protoreflect.GroupKind -+ } -+ if xd.Syntax() == protoreflect.Editions && xd.L1.EditionFeatures.IsLegacyRequired { -+ xd.L1.Cardinality = protoreflect.Required -+ } - if rawTypeName != nil { - name := makeFullName(sb, rawTypeName) - switch xd.L1.Kind { -@@ -589,6 +610,13 @@ func (xd *Extension) unmarshalOptions(b []byte) { - case genid.FieldOptions_Packed_field_number: - xd.L2.IsPacked = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Features_field_number: -+ xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go -new file mode 100644 -index 00000000..0375a49d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go -@@ -0,0 +1,142 @@ -+// Copyright 2024 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package filedesc -+ -+import ( -+ "fmt" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/editiondefaults" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+var defaultsCache = make(map[Edition]EditionFeatures) -+ -+func init() { -+ unmarshalEditionDefaults(editiondefaults.Defaults) -+} -+ -+func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures { -+ for len(b) > 0 { -+ num, _, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch num { -+ case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ parent.GenerateLegacyUnmarshalJSON = protowire.DecodeBool(v) -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling GoFeatures", num)) -+ } -+ } -+ return parent -+} -+ -+func unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSet_FieldPresence_field_number: -+ parent.IsFieldPresence = v == genid.FeatureSet_EXPLICIT_enum_value || v == genid.FeatureSet_LEGACY_REQUIRED_enum_value -+ parent.IsLegacyRequired = v == genid.FeatureSet_LEGACY_REQUIRED_enum_value -+ case genid.FeatureSet_EnumType_field_number: -+ parent.IsOpenEnum = v == genid.FeatureSet_OPEN_enum_value -+ case genid.FeatureSet_RepeatedFieldEncoding_field_number: -+ parent.IsPacked = v == genid.FeatureSet_PACKED_enum_value -+ case genid.FeatureSet_Utf8Validation_field_number: -+ parent.IsUTF8Validated = v == genid.FeatureSet_VERIFY_enum_value -+ case genid.FeatureSet_MessageEncoding_field_number: -+ parent.IsDelimitedEncoded = v == genid.FeatureSet_DELIMITED_enum_value -+ case genid.FeatureSet_JsonFormat_field_number: -+ parent.IsJSONCompliant = v == genid.FeatureSet_ALLOW_enum_value -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling FeatureSet", num)) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: -+ parent = unmarshalGoFeature(v, parent) -+ } -+ } -+ } -+ -+ return parent -+} -+ -+func featuresFromParentDesc(parentDesc protoreflect.Descriptor) EditionFeatures { -+ var parentFS EditionFeatures -+ switch p := parentDesc.(type) { -+ case *File: -+ parentFS = p.L1.EditionFeatures -+ case *Message: -+ parentFS = p.L1.EditionFeatures -+ default: -+ panic(fmt.Sprintf("unknown parent type %T", parentDesc)) -+ } -+ return parentFS -+} -+ -+func unmarshalEditionDefault(b []byte) { -+ var ed Edition -+ var fs EditionFeatures -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number: -+ ed = Edition(v) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number: -+ fs = unmarshalFeatureSet(v, fs) -+ } -+ } -+ } -+ defaultsCache[ed] = fs -+} -+ -+func unmarshalEditionDefaults(b []byte) { -+ for len(b) > 0 { -+ num, _, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch num { -+ case genid.FeatureSetDefaults_Defaults_field_number: -+ def, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ unmarshalEditionDefault(def) -+ case genid.FeatureSetDefaults_MinimumEdition_field_number, -+ genid.FeatureSetDefaults_MaximumEdition_field_number: -+ // We don't care about the minimum and maximum editions. If the -+ // edition we are looking for later on is not in the cache we know -+ // it is outside of the range between minimum and maximum edition. -+ _, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling EditionDefault", num)) -+ } -+ } -+} -+ -+func getFeaturesFor(ed Edition) EditionFeatures { -+ if def, ok := defaultsCache[ed]; ok { -+ return def -+ } -+ panic(fmt.Sprintf("unsupported edition: %v", ed)) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -index 136f1b21..40272c89 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -@@ -12,6 +12,27 @@ import ( - - const File_google_protobuf_descriptor_proto = "google/protobuf/descriptor.proto" - -+// Full and short names for google.protobuf.Edition. -+const ( -+ Edition_enum_fullname = "google.protobuf.Edition" -+ Edition_enum_name = "Edition" -+) -+ -+// Enum values for google.protobuf.Edition. -+const ( -+ Edition_EDITION_UNKNOWN_enum_value = 0 -+ Edition_EDITION_PROTO2_enum_value = 998 -+ Edition_EDITION_PROTO3_enum_value = 999 -+ Edition_EDITION_2023_enum_value = 1000 -+ Edition_EDITION_2024_enum_value = 1001 -+ Edition_EDITION_1_TEST_ONLY_enum_value = 1 -+ Edition_EDITION_2_TEST_ONLY_enum_value = 2 -+ Edition_EDITION_99997_TEST_ONLY_enum_value = 99997 -+ Edition_EDITION_99998_TEST_ONLY_enum_value = 99998 -+ Edition_EDITION_99999_TEST_ONLY_enum_value = 99999 -+ Edition_EDITION_MAX_enum_value = 2147483647 -+) -+ - // Names for google.protobuf.FileDescriptorSet. - const ( - FileDescriptorSet_message_name protoreflect.Name = "FileDescriptorSet" -@@ -81,7 +102,7 @@ const ( - FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 - FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9 - FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12 -- FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 13 -+ FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 14 - ) - - // Names for google.protobuf.DescriptorProto. -@@ -184,10 +205,12 @@ const ( - const ( - ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" -+ ExtensionRangeOptions_Features_field_name protoreflect.Name = "features" - ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" - - ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" - ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" -+ ExtensionRangeOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.features" - ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" - ) - -@@ -195,6 +218,7 @@ const ( - const ( - ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Features_field_number protoreflect.FieldNumber = 50 - ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 - ) - -@@ -204,6 +228,12 @@ const ( - ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" - ) - -+// Enum values for google.protobuf.ExtensionRangeOptions.VerificationState. -+const ( -+ ExtensionRangeOptions_DECLARATION_enum_value = 0 -+ ExtensionRangeOptions_UNVERIFIED_enum_value = 1 -+) -+ - // Names for google.protobuf.ExtensionRangeOptions.Declaration. - const ( - ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" -@@ -212,29 +242,26 @@ const ( - - // Field names for google.protobuf.ExtensionRangeOptions.Declaration. - const ( -- ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -- ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -- ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -- ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" -- ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -- ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" -+ ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -+ ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -+ ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -+ ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" - -- ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -- ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -- ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -- ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" -- ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -- ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" -+ ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -+ ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -+ ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -+ ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" - ) - - // Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. - const ( -- ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -- ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -- ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -- ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 -- ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -- ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 -+ ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -+ ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -+ ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -+ ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.FieldDescriptorProto. -@@ -291,12 +318,41 @@ const ( - FieldDescriptorProto_Type_enum_name = "Type" - ) - -+// Enum values for google.protobuf.FieldDescriptorProto.Type. -+const ( -+ FieldDescriptorProto_TYPE_DOUBLE_enum_value = 1 -+ FieldDescriptorProto_TYPE_FLOAT_enum_value = 2 -+ FieldDescriptorProto_TYPE_INT64_enum_value = 3 -+ FieldDescriptorProto_TYPE_UINT64_enum_value = 4 -+ FieldDescriptorProto_TYPE_INT32_enum_value = 5 -+ FieldDescriptorProto_TYPE_FIXED64_enum_value = 6 -+ FieldDescriptorProto_TYPE_FIXED32_enum_value = 7 -+ FieldDescriptorProto_TYPE_BOOL_enum_value = 8 -+ FieldDescriptorProto_TYPE_STRING_enum_value = 9 -+ FieldDescriptorProto_TYPE_GROUP_enum_value = 10 -+ FieldDescriptorProto_TYPE_MESSAGE_enum_value = 11 -+ FieldDescriptorProto_TYPE_BYTES_enum_value = 12 -+ FieldDescriptorProto_TYPE_UINT32_enum_value = 13 -+ FieldDescriptorProto_TYPE_ENUM_enum_value = 14 -+ FieldDescriptorProto_TYPE_SFIXED32_enum_value = 15 -+ FieldDescriptorProto_TYPE_SFIXED64_enum_value = 16 -+ FieldDescriptorProto_TYPE_SINT32_enum_value = 17 -+ FieldDescriptorProto_TYPE_SINT64_enum_value = 18 -+) -+ - // Full and short names for google.protobuf.FieldDescriptorProto.Label. - const ( - FieldDescriptorProto_Label_enum_fullname = "google.protobuf.FieldDescriptorProto.Label" - FieldDescriptorProto_Label_enum_name = "Label" - ) - -+// Enum values for google.protobuf.FieldDescriptorProto.Label. -+const ( -+ FieldDescriptorProto_LABEL_OPTIONAL_enum_value = 1 -+ FieldDescriptorProto_LABEL_REPEATED_enum_value = 3 -+ FieldDescriptorProto_LABEL_REQUIRED_enum_value = 2 -+) -+ - // Names for google.protobuf.OneofDescriptorProto. - const ( - OneofDescriptorProto_message_name protoreflect.Name = "OneofDescriptorProto" -@@ -468,7 +524,6 @@ const ( - FileOptions_CcGenericServices_field_name protoreflect.Name = "cc_generic_services" - FileOptions_JavaGenericServices_field_name protoreflect.Name = "java_generic_services" - FileOptions_PyGenericServices_field_name protoreflect.Name = "py_generic_services" -- FileOptions_PhpGenericServices_field_name protoreflect.Name = "php_generic_services" - FileOptions_Deprecated_field_name protoreflect.Name = "deprecated" - FileOptions_CcEnableArenas_field_name protoreflect.Name = "cc_enable_arenas" - FileOptions_ObjcClassPrefix_field_name protoreflect.Name = "objc_class_prefix" -@@ -478,6 +533,7 @@ const ( - FileOptions_PhpNamespace_field_name protoreflect.Name = "php_namespace" - FileOptions_PhpMetadataNamespace_field_name protoreflect.Name = "php_metadata_namespace" - FileOptions_RubyPackage_field_name protoreflect.Name = "ruby_package" -+ FileOptions_Features_field_name protoreflect.Name = "features" - FileOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FileOptions_JavaPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_package" -@@ -490,7 +546,6 @@ const ( - FileOptions_CcGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_generic_services" - FileOptions_JavaGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generic_services" - FileOptions_PyGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.py_generic_services" -- FileOptions_PhpGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_generic_services" - FileOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.deprecated" - FileOptions_CcEnableArenas_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_enable_arenas" - FileOptions_ObjcClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.objc_class_prefix" -@@ -500,6 +555,7 @@ const ( - FileOptions_PhpNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_namespace" - FileOptions_PhpMetadataNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_metadata_namespace" - FileOptions_RubyPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.ruby_package" -+ FileOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.features" - FileOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.uninterpreted_option" - ) - -@@ -515,7 +571,6 @@ const ( - FileOptions_CcGenericServices_field_number protoreflect.FieldNumber = 16 - FileOptions_JavaGenericServices_field_number protoreflect.FieldNumber = 17 - FileOptions_PyGenericServices_field_number protoreflect.FieldNumber = 18 -- FileOptions_PhpGenericServices_field_number protoreflect.FieldNumber = 42 - FileOptions_Deprecated_field_number protoreflect.FieldNumber = 23 - FileOptions_CcEnableArenas_field_number protoreflect.FieldNumber = 31 - FileOptions_ObjcClassPrefix_field_number protoreflect.FieldNumber = 36 -@@ -525,6 +580,7 @@ const ( - FileOptions_PhpNamespace_field_number protoreflect.FieldNumber = 41 - FileOptions_PhpMetadataNamespace_field_number protoreflect.FieldNumber = 44 - FileOptions_RubyPackage_field_number protoreflect.FieldNumber = 45 -+ FileOptions_Features_field_number protoreflect.FieldNumber = 50 - FileOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -534,6 +590,13 @@ const ( - FileOptions_OptimizeMode_enum_name = "OptimizeMode" - ) - -+// Enum values for google.protobuf.FileOptions.OptimizeMode. -+const ( -+ FileOptions_SPEED_enum_value = 1 -+ FileOptions_CODE_SIZE_enum_value = 2 -+ FileOptions_LITE_RUNTIME_enum_value = 3 -+) -+ - // Names for google.protobuf.MessageOptions. - const ( - MessageOptions_message_name protoreflect.Name = "MessageOptions" -@@ -547,6 +610,7 @@ const ( - MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ MessageOptions_Features_field_name protoreflect.Name = "features" - MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" -@@ -554,6 +618,7 @@ const ( - MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" - MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts" -+ MessageOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.features" - MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" - ) - -@@ -564,6 +629,7 @@ const ( - MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11 -+ MessageOptions_Features_field_number protoreflect.FieldNumber = 12 - MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -584,8 +650,9 @@ const ( - FieldOptions_Weak_field_name protoreflect.Name = "weak" - FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - FieldOptions_Retention_field_name protoreflect.Name = "retention" -- FieldOptions_Target_field_name protoreflect.Name = "target" - FieldOptions_Targets_field_name protoreflect.Name = "targets" -+ FieldOptions_EditionDefaults_field_name protoreflect.Name = "edition_defaults" -+ FieldOptions_Features_field_name protoreflect.Name = "features" - FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" -@@ -597,8 +664,9 @@ const ( - FieldOptions_Weak_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.weak" - FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" - FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" -- FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" - FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" -+ FieldOptions_EditionDefaults_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.edition_defaults" -+ FieldOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.features" - FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" - ) - -@@ -613,8 +681,9 @@ const ( - FieldOptions_Weak_field_number protoreflect.FieldNumber = 10 - FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 - FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 -- FieldOptions_Target_field_number protoreflect.FieldNumber = 18 - FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 -+ FieldOptions_EditionDefaults_field_number protoreflect.FieldNumber = 20 -+ FieldOptions_Features_field_number protoreflect.FieldNumber = 21 - FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -624,24 +693,80 @@ const ( - FieldOptions_CType_enum_name = "CType" - ) - -+// Enum values for google.protobuf.FieldOptions.CType. -+const ( -+ FieldOptions_STRING_enum_value = 0 -+ FieldOptions_CORD_enum_value = 1 -+ FieldOptions_STRING_PIECE_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.JSType. - const ( - FieldOptions_JSType_enum_fullname = "google.protobuf.FieldOptions.JSType" - FieldOptions_JSType_enum_name = "JSType" - ) - -+// Enum values for google.protobuf.FieldOptions.JSType. -+const ( -+ FieldOptions_JS_NORMAL_enum_value = 0 -+ FieldOptions_JS_STRING_enum_value = 1 -+ FieldOptions_JS_NUMBER_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.OptionRetention. - const ( - FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention" - FieldOptions_OptionRetention_enum_name = "OptionRetention" - ) - -+// Enum values for google.protobuf.FieldOptions.OptionRetention. -+const ( -+ FieldOptions_RETENTION_UNKNOWN_enum_value = 0 -+ FieldOptions_RETENTION_RUNTIME_enum_value = 1 -+ FieldOptions_RETENTION_SOURCE_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.OptionTargetType. - const ( - FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType" - FieldOptions_OptionTargetType_enum_name = "OptionTargetType" - ) - -+// Enum values for google.protobuf.FieldOptions.OptionTargetType. -+const ( -+ FieldOptions_TARGET_TYPE_UNKNOWN_enum_value = 0 -+ FieldOptions_TARGET_TYPE_FILE_enum_value = 1 -+ FieldOptions_TARGET_TYPE_EXTENSION_RANGE_enum_value = 2 -+ FieldOptions_TARGET_TYPE_MESSAGE_enum_value = 3 -+ FieldOptions_TARGET_TYPE_FIELD_enum_value = 4 -+ FieldOptions_TARGET_TYPE_ONEOF_enum_value = 5 -+ FieldOptions_TARGET_TYPE_ENUM_enum_value = 6 -+ FieldOptions_TARGET_TYPE_ENUM_ENTRY_enum_value = 7 -+ FieldOptions_TARGET_TYPE_SERVICE_enum_value = 8 -+ FieldOptions_TARGET_TYPE_METHOD_enum_value = 9 -+) -+ -+// Names for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_message_name protoreflect.Name = "EditionDefault" -+ FieldOptions_EditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault" -+) -+ -+// Field names for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_Edition_field_name protoreflect.Name = "edition" -+ FieldOptions_EditionDefault_Value_field_name protoreflect.Name = "value" -+ -+ FieldOptions_EditionDefault_Edition_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.edition" -+ FieldOptions_EditionDefault_Value_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.value" -+) -+ -+// Field numbers for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_Edition_field_number protoreflect.FieldNumber = 3 -+ FieldOptions_EditionDefault_Value_field_number protoreflect.FieldNumber = 2 -+) -+ - // Names for google.protobuf.OneofOptions. - const ( - OneofOptions_message_name protoreflect.Name = "OneofOptions" -@@ -650,13 +775,16 @@ const ( - - // Field names for google.protobuf.OneofOptions. - const ( -+ OneofOptions_Features_field_name protoreflect.Name = "features" - OneofOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - -+ OneofOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.features" - OneofOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.OneofOptions. - const ( -+ OneofOptions_Features_field_number protoreflect.FieldNumber = 1 - OneofOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -671,11 +799,13 @@ const ( - EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" - EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ EnumOptions_Features_field_name protoreflect.Name = "features" - EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" - EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts" -+ EnumOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.features" - EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" - ) - -@@ -684,6 +814,7 @@ const ( - EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 - EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6 -+ EnumOptions_Features_field_number protoreflect.FieldNumber = 7 - EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -696,15 +827,21 @@ const ( - // Field names for google.protobuf.EnumValueOptions. - const ( - EnumValueOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ EnumValueOptions_Features_field_name protoreflect.Name = "features" -+ EnumValueOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - EnumValueOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - EnumValueOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.deprecated" -+ EnumValueOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.features" -+ EnumValueOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.debug_redact" - EnumValueOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.EnumValueOptions. - const ( - EnumValueOptions_Deprecated_field_number protoreflect.FieldNumber = 1 -+ EnumValueOptions_Features_field_number protoreflect.FieldNumber = 2 -+ EnumValueOptions_DebugRedact_field_number protoreflect.FieldNumber = 3 - EnumValueOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -716,15 +853,18 @@ const ( - - // Field names for google.protobuf.ServiceOptions. - const ( -+ ServiceOptions_Features_field_name protoreflect.Name = "features" - ServiceOptions_Deprecated_field_name protoreflect.Name = "deprecated" - ServiceOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - -+ ServiceOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.features" - ServiceOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.deprecated" - ServiceOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.ServiceOptions. - const ( -+ ServiceOptions_Features_field_number protoreflect.FieldNumber = 34 - ServiceOptions_Deprecated_field_number protoreflect.FieldNumber = 33 - ServiceOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) -@@ -739,10 +879,12 @@ const ( - const ( - MethodOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MethodOptions_IdempotencyLevel_field_name protoreflect.Name = "idempotency_level" -+ MethodOptions_Features_field_name protoreflect.Name = "features" - MethodOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - MethodOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.deprecated" - MethodOptions_IdempotencyLevel_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.idempotency_level" -+ MethodOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.features" - MethodOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.uninterpreted_option" - ) - -@@ -750,6 +892,7 @@ const ( - const ( - MethodOptions_Deprecated_field_number protoreflect.FieldNumber = 33 - MethodOptions_IdempotencyLevel_field_number protoreflect.FieldNumber = 34 -+ MethodOptions_Features_field_number protoreflect.FieldNumber = 35 - MethodOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -759,6 +902,13 @@ const ( - MethodOptions_IdempotencyLevel_enum_name = "IdempotencyLevel" - ) - -+// Enum values for google.protobuf.MethodOptions.IdempotencyLevel. -+const ( -+ MethodOptions_IDEMPOTENCY_UNKNOWN_enum_value = 0 -+ MethodOptions_NO_SIDE_EFFECTS_enum_value = 1 -+ MethodOptions_IDEMPOTENT_enum_value = 2 -+) -+ - // Names for google.protobuf.UninterpretedOption. - const ( - UninterpretedOption_message_name protoreflect.Name = "UninterpretedOption" -@@ -816,6 +966,163 @@ const ( - UninterpretedOption_NamePart_IsExtension_field_number protoreflect.FieldNumber = 2 - ) - -+// Names for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_message_name protoreflect.Name = "FeatureSet" -+ FeatureSet_message_fullname protoreflect.FullName = "google.protobuf.FeatureSet" -+) -+ -+// Field names for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_FieldPresence_field_name protoreflect.Name = "field_presence" -+ FeatureSet_EnumType_field_name protoreflect.Name = "enum_type" -+ FeatureSet_RepeatedFieldEncoding_field_name protoreflect.Name = "repeated_field_encoding" -+ FeatureSet_Utf8Validation_field_name protoreflect.Name = "utf8_validation" -+ FeatureSet_MessageEncoding_field_name protoreflect.Name = "message_encoding" -+ FeatureSet_JsonFormat_field_name protoreflect.Name = "json_format" -+ -+ FeatureSet_FieldPresence_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.field_presence" -+ FeatureSet_EnumType_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.enum_type" -+ FeatureSet_RepeatedFieldEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.repeated_field_encoding" -+ FeatureSet_Utf8Validation_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.utf8_validation" -+ FeatureSet_MessageEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.message_encoding" -+ FeatureSet_JsonFormat_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.json_format" -+) -+ -+// Field numbers for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_FieldPresence_field_number protoreflect.FieldNumber = 1 -+ FeatureSet_EnumType_field_number protoreflect.FieldNumber = 2 -+ FeatureSet_RepeatedFieldEncoding_field_number protoreflect.FieldNumber = 3 -+ FeatureSet_Utf8Validation_field_number protoreflect.FieldNumber = 4 -+ FeatureSet_MessageEncoding_field_number protoreflect.FieldNumber = 5 -+ FeatureSet_JsonFormat_field_number protoreflect.FieldNumber = 6 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.FieldPresence. -+const ( -+ FeatureSet_FieldPresence_enum_fullname = "google.protobuf.FeatureSet.FieldPresence" -+ FeatureSet_FieldPresence_enum_name = "FieldPresence" -+) -+ -+// Enum values for google.protobuf.FeatureSet.FieldPresence. -+const ( -+ FeatureSet_FIELD_PRESENCE_UNKNOWN_enum_value = 0 -+ FeatureSet_EXPLICIT_enum_value = 1 -+ FeatureSet_IMPLICIT_enum_value = 2 -+ FeatureSet_LEGACY_REQUIRED_enum_value = 3 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.EnumType. -+const ( -+ FeatureSet_EnumType_enum_fullname = "google.protobuf.FeatureSet.EnumType" -+ FeatureSet_EnumType_enum_name = "EnumType" -+) -+ -+// Enum values for google.protobuf.FeatureSet.EnumType. -+const ( -+ FeatureSet_ENUM_TYPE_UNKNOWN_enum_value = 0 -+ FeatureSet_OPEN_enum_value = 1 -+ FeatureSet_CLOSED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.RepeatedFieldEncoding. -+const ( -+ FeatureSet_RepeatedFieldEncoding_enum_fullname = "google.protobuf.FeatureSet.RepeatedFieldEncoding" -+ FeatureSet_RepeatedFieldEncoding_enum_name = "RepeatedFieldEncoding" -+) -+ -+// Enum values for google.protobuf.FeatureSet.RepeatedFieldEncoding. -+const ( -+ FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN_enum_value = 0 -+ FeatureSet_PACKED_enum_value = 1 -+ FeatureSet_EXPANDED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.Utf8Validation. -+const ( -+ FeatureSet_Utf8Validation_enum_fullname = "google.protobuf.FeatureSet.Utf8Validation" -+ FeatureSet_Utf8Validation_enum_name = "Utf8Validation" -+) -+ -+// Enum values for google.protobuf.FeatureSet.Utf8Validation. -+const ( -+ FeatureSet_UTF8_VALIDATION_UNKNOWN_enum_value = 0 -+ FeatureSet_VERIFY_enum_value = 2 -+ FeatureSet_NONE_enum_value = 3 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.MessageEncoding. -+const ( -+ FeatureSet_MessageEncoding_enum_fullname = "google.protobuf.FeatureSet.MessageEncoding" -+ FeatureSet_MessageEncoding_enum_name = "MessageEncoding" -+) -+ -+// Enum values for google.protobuf.FeatureSet.MessageEncoding. -+const ( -+ FeatureSet_MESSAGE_ENCODING_UNKNOWN_enum_value = 0 -+ FeatureSet_LENGTH_PREFIXED_enum_value = 1 -+ FeatureSet_DELIMITED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.JsonFormat. -+const ( -+ FeatureSet_JsonFormat_enum_fullname = "google.protobuf.FeatureSet.JsonFormat" -+ FeatureSet_JsonFormat_enum_name = "JsonFormat" -+) -+ -+// Enum values for google.protobuf.FeatureSet.JsonFormat. -+const ( -+ FeatureSet_JSON_FORMAT_UNKNOWN_enum_value = 0 -+ FeatureSet_ALLOW_enum_value = 1 -+ FeatureSet_LEGACY_BEST_EFFORT_enum_value = 2 -+) -+ -+// Names for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_message_name protoreflect.Name = "FeatureSetDefaults" -+ FeatureSetDefaults_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults" -+) -+ -+// Field names for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_Defaults_field_name protoreflect.Name = "defaults" -+ FeatureSetDefaults_MinimumEdition_field_name protoreflect.Name = "minimum_edition" -+ FeatureSetDefaults_MaximumEdition_field_name protoreflect.Name = "maximum_edition" -+ -+ FeatureSetDefaults_Defaults_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.defaults" -+ FeatureSetDefaults_MinimumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.minimum_edition" -+ FeatureSetDefaults_MaximumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.maximum_edition" -+) -+ -+// Field numbers for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_Defaults_field_number protoreflect.FieldNumber = 1 -+ FeatureSetDefaults_MinimumEdition_field_number protoreflect.FieldNumber = 4 -+ FeatureSetDefaults_MaximumEdition_field_number protoreflect.FieldNumber = 5 -+) -+ -+// Names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_message_name protoreflect.Name = "FeatureSetEditionDefault" -+ FeatureSetDefaults_FeatureSetEditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault" -+) -+ -+// Field names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_name protoreflect.Name = "edition" -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_name protoreflect.Name = "features" -+ -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition" -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features" -+) -+ -+// Field numbers for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number protoreflect.FieldNumber = 3 -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number protoreflect.FieldNumber = 2 -+) -+ - // Names for google.protobuf.SourceCodeInfo. - const ( - SourceCodeInfo_message_name protoreflect.Name = "SourceCodeInfo" -@@ -917,3 +1224,10 @@ const ( - GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic" - GeneratedCodeInfo_Annotation_Semantic_enum_name = "Semantic" - ) -+ -+// Enum values for google.protobuf.GeneratedCodeInfo.Annotation.Semantic. -+const ( -+ GeneratedCodeInfo_Annotation_NONE_enum_value = 0 -+ GeneratedCodeInfo_Annotation_SET_enum_value = 1 -+ GeneratedCodeInfo_Annotation_ALIAS_enum_value = 2 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go -new file mode 100644 -index 00000000..fd9015e8 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go -@@ -0,0 +1,31 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_reflect_protodesc_proto_go_features_proto = "reflect/protodesc/proto/go_features.proto" -+ -+// Names for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_message_name protoreflect.Name = "GoFeatures" -+ GoFeatures_message_fullname protoreflect.FullName = "google.protobuf.GoFeatures" -+) -+ -+// Field names for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_LegacyUnmarshalJsonEnum_field_name protoreflect.Name = "legacy_unmarshal_json_enum" -+ -+ GoFeatures_LegacyUnmarshalJsonEnum_field_fullname protoreflect.FullName = "google.protobuf.GoFeatures.legacy_unmarshal_json_enum" -+) -+ -+// Field numbers for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_LegacyUnmarshalJsonEnum_field_number protoreflect.FieldNumber = 1 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -index 1a38944b..ad6f80c4 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -@@ -18,6 +18,11 @@ const ( - NullValue_enum_name = "NullValue" - ) - -+// Enum values for google.protobuf.NullValue. -+const ( -+ NullValue_NULL_VALUE_enum_value = 0 -+) -+ - // Names for google.protobuf.Struct. - const ( - Struct_message_name protoreflect.Name = "Struct" -diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -index e0f75fea..49bc73e2 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -@@ -18,6 +18,13 @@ const ( - Syntax_enum_name = "Syntax" - ) - -+// Enum values for google.protobuf.Syntax. -+const ( -+ Syntax_SYNTAX_PROTO2_enum_value = 0 -+ Syntax_SYNTAX_PROTO3_enum_value = 1 -+ Syntax_SYNTAX_EDITIONS_enum_value = 2 -+) -+ - // Names for google.protobuf.Type. - const ( - Type_message_name protoreflect.Name = "Type" -@@ -105,12 +112,43 @@ const ( - Field_Kind_enum_name = "Kind" - ) - -+// Enum values for google.protobuf.Field.Kind. -+const ( -+ Field_TYPE_UNKNOWN_enum_value = 0 -+ Field_TYPE_DOUBLE_enum_value = 1 -+ Field_TYPE_FLOAT_enum_value = 2 -+ Field_TYPE_INT64_enum_value = 3 -+ Field_TYPE_UINT64_enum_value = 4 -+ Field_TYPE_INT32_enum_value = 5 -+ Field_TYPE_FIXED64_enum_value = 6 -+ Field_TYPE_FIXED32_enum_value = 7 -+ Field_TYPE_BOOL_enum_value = 8 -+ Field_TYPE_STRING_enum_value = 9 -+ Field_TYPE_GROUP_enum_value = 10 -+ Field_TYPE_MESSAGE_enum_value = 11 -+ Field_TYPE_BYTES_enum_value = 12 -+ Field_TYPE_UINT32_enum_value = 13 -+ Field_TYPE_ENUM_enum_value = 14 -+ Field_TYPE_SFIXED32_enum_value = 15 -+ Field_TYPE_SFIXED64_enum_value = 16 -+ Field_TYPE_SINT32_enum_value = 17 -+ Field_TYPE_SINT64_enum_value = 18 -+) -+ - // Full and short names for google.protobuf.Field.Cardinality. - const ( - Field_Cardinality_enum_fullname = "google.protobuf.Field.Cardinality" - Field_Cardinality_enum_name = "Cardinality" - ) - -+// Enum values for google.protobuf.Field.Cardinality. -+const ( -+ Field_CARDINALITY_UNKNOWN_enum_value = 0 -+ Field_CARDINALITY_OPTIONAL_enum_value = 1 -+ Field_CARDINALITY_REQUIRED_enum_value = 2 -+ Field_CARDINALITY_REPEATED_enum_value = 3 -+) -+ - // Names for google.protobuf.Enum. - const ( - Enum_message_name protoreflect.Name = "Enum" -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -index e74cefdc..2b8f122c 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -@@ -21,26 +21,18 @@ type extensionFieldInfo struct { - validation validationInfo - } - --var legacyExtensionFieldInfoCache sync.Map // map[protoreflect.ExtensionType]*extensionFieldInfo -- - func getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { - if xi, ok := xt.(*ExtensionInfo); ok { - xi.lazyInit() - return xi.info - } -- return legacyLoadExtensionFieldInfo(xt) --} -- --// legacyLoadExtensionFieldInfo dynamically loads a *ExtensionInfo for xt. --func legacyLoadExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { -- if xi, ok := legacyExtensionFieldInfoCache.Load(xt); ok { -- return xi.(*extensionFieldInfo) -- } -- e := makeExtensionFieldInfo(xt.TypeDescriptor()) -- if e, ok := legacyMessageTypeCache.LoadOrStore(xt, e); ok { -- return e.(*extensionFieldInfo) -- } -- return e -+ // Ideally we'd cache the resulting *extensionFieldInfo so we don't have to -+ // recompute this metadata repeatedly. But without support for something like -+ // weak references, such a cache would pin temporary values (like dynamic -+ // extension types, constructed for the duration of a user request) to the -+ // heap forever, causing memory usage of the cache to grow unbounded. -+ // See discussion in https://github.com/golang/protobuf/issues/1521. -+ return makeExtensionFieldInfo(xt.TypeDescriptor()) - } - - func makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -index 1a509b63..f55dc01e 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -@@ -162,11 +162,20 @@ func appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions - func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.BoolSlice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growBoolSlice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -732,11 +741,20 @@ func appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1138,11 +1156,20 @@ func appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1544,11 +1571,20 @@ func appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growUint32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1950,11 +1986,20 @@ func appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -2356,11 +2401,20 @@ func appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -2762,11 +2816,20 @@ func appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growUint64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -3145,11 +3208,15 @@ func appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt - func consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -3461,11 +3528,15 @@ func appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti - func consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growUint32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -3777,11 +3848,15 @@ func appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Float32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growFloat32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -4093,11 +4168,15 @@ func appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt - func consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -@@ -4409,11 +4488,15 @@ func appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti - func consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growUint64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -@@ -4725,11 +4808,15 @@ func appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Float64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growFloat64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -index 576dcf3a..13077751 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -@@ -197,7 +197,7 @@ func fieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo, - return getMessageInfo(ft), makeMessageFieldCoder(fd, ft) - case fd.Kind() == protoreflect.GroupKind: - return getMessageInfo(ft), makeGroupFieldCoder(fd, ft) -- case fd.Syntax() == protoreflect.Proto3 && fd.ContainingOneof() == nil: -+ case !fd.HasPresence() && fd.ContainingOneof() == nil: - // Populated oneof fields always encode even if set to the zero value, - // which normally are not encoded in proto3. - switch fd.Kind() { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -index 61c483fa..2ab2c629 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -@@ -206,13 +206,18 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName - - // Obtain a list of oneof wrapper types. - var oneofWrappers []reflect.Type -- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -- if fn, ok := t.MethodByName(method); ok { -- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -- if vs, ok := v.Interface().([]interface{}); ok { -- for _, v := range vs { -- oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) -- } -+ methods := make([]reflect.Method, 0, 2) -+ if m, ok := t.MethodByName("XXX_OneofFuncs"); ok { -+ methods = append(methods, m) -+ } -+ if m, ok := t.MethodByName("XXX_OneofWrappers"); ok { -+ methods = append(methods, m) -+ } -+ for _, fn := range methods { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ for _, v := range vs { -+ oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) - } - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message.go b/vendor/google.golang.org/protobuf/internal/impl/message.go -index 4f5fb67a..629bacdc 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/message.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/message.go -@@ -192,12 +192,17 @@ fieldLoop: - - // Derive a mapping of oneof wrappers to fields. - oneofWrappers := mi.OneofWrappers -- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -- if fn, ok := reflect.PtrTo(t).MethodByName(method); ok { -- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -- if vs, ok := v.Interface().([]interface{}); ok { -- oneofWrappers = vs -- } -+ methods := make([]reflect.Method, 0, 2) -+ if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofFuncs"); ok { -+ methods = append(methods, m) -+ } -+ if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofWrappers"); ok { -+ methods = append(methods, m) -+ } -+ for _, fn := range methods { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ oneofWrappers = vs - } - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -index 5e736c60..986322b1 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -@@ -538,6 +538,6 @@ func isZero(v reflect.Value) bool { - } - return true - default: -- panic(&reflect.ValueError{"reflect.Value.IsZero", v.Kind()}) -+ panic(&reflect.ValueError{Method: "reflect.Value.IsZero", Kind: v.Kind()}) - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -index 4c491bdf..517e9443 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -@@ -159,6 +159,42 @@ func (p pointer) SetPointer(v pointer) { - p.v.Elem().Set(v.v) - } - -+func growSlice(p pointer, addCap int) { -+ // TODO: Once we only support Go 1.20 and newer, use reflect.Grow. -+ in := p.v.Elem() -+ out := reflect.MakeSlice(in.Type(), in.Len(), in.Len()+addCap) -+ reflect.Copy(out, in) -+ p.v.Elem().Set(out) -+} -+ -+func (p pointer) growBoolSlice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growInt32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growUint32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growInt64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growUint64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growFloat64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growFloat32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ - func (Export) MessageStateOf(p Pointer) *messageState { panic("not supported") } - func (ms *messageState) pointer() pointer { panic("not supported") } - func (ms *messageState) messageInfo() *MessageInfo { panic("not supported") } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -index ee0e0573..4b020e31 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -@@ -138,6 +138,46 @@ func (p pointer) SetPointer(v pointer) { - *(*unsafe.Pointer)(p.p) = (unsafe.Pointer)(v.p) - } - -+func (p pointer) growBoolSlice(addCap int) { -+ sp := p.BoolSlice() -+ s := make([]bool, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growInt32Slice(addCap int) { -+ sp := p.Int32Slice() -+ s := make([]int32, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growUint32Slice(addCap int) { -+ p.growInt32Slice(addCap) -+} -+ -+func (p pointer) growFloat32Slice(addCap int) { -+ p.growInt32Slice(addCap) -+} -+ -+func (p pointer) growInt64Slice(addCap int) { -+ sp := p.Int64Slice() -+ s := make([]int64, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growUint64Slice(addCap int) { -+ p.growInt64Slice(addCap) -+} -+ -+func (p pointer) growFloat64Slice(addCap int) { -+ p.growInt64Slice(addCap) -+} -+ - // Static check that MessageState does not exceed the size of a pointer. - const _ = uint(unsafe.Sizeof(unsafe.Pointer(nil)) - unsafe.Sizeof(MessageState{})) - -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings.go b/vendor/google.golang.org/protobuf/internal/strs/strings.go -index 0b74e765..a6e7df24 100644 ---- a/vendor/google.golang.org/protobuf/internal/strs/strings.go -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings.go -@@ -17,7 +17,7 @@ import ( - - // EnforceUTF8 reports whether to enforce strict UTF-8 validation. - func EnforceUTF8(fd protoreflect.FieldDescriptor) bool { -- if flags.ProtoLegacy { -+ if flags.ProtoLegacy || fd.Syntax() == protoreflect.Editions { - if fd, ok := fd.(interface{ EnforceUTF8() bool }); ok { - return fd.EnforceUTF8() - } -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -similarity index 96% -rename from vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -rename to vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -index 61a84d34..a008acd0 100644 ---- a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -@@ -2,8 +2,8 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build !purego && !appengine --// +build !purego,!appengine -+//go:build !purego && !appengine && !go1.21 -+// +build !purego,!appengine,!go1.21 - - package strs - -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go -new file mode 100644 -index 00000000..60166f2b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go -@@ -0,0 +1,74 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine && go1.21 -+// +build !purego,!appengine,go1.21 -+ -+package strs -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// UnsafeString returns an unsafe string reference of b. -+// The caller must treat the input slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user -+// unless the input slice is provably immutable. -+func UnsafeString(b []byte) string { -+ return unsafe.String(unsafe.SliceData(b), len(b)) -+} -+ -+// UnsafeBytes returns an unsafe bytes slice reference of s. -+// The caller must treat returned slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user. -+func UnsafeBytes(s string) []byte { -+ return unsafe.Slice(unsafe.StringData(s), len(s)) -+} -+ -+// Builder builds a set of strings with shared lifetime. -+// This differs from strings.Builder, which is for building a single string. -+type Builder struct { -+ buf []byte -+} -+ -+// AppendFullName is equivalent to protoreflect.FullName.Append, -+// but optimized for large batches where each name has a shared lifetime. -+func (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName { -+ n := len(prefix) + len(".") + len(name) -+ if len(prefix) == 0 { -+ n -= len(".") -+ } -+ sb.grow(n) -+ sb.buf = append(sb.buf, prefix...) -+ sb.buf = append(sb.buf, '.') -+ sb.buf = append(sb.buf, name...) -+ return protoreflect.FullName(sb.last(n)) -+} -+ -+// MakeString is equivalent to string(b), but optimized for large batches -+// with a shared lifetime. -+func (sb *Builder) MakeString(b []byte) string { -+ sb.grow(len(b)) -+ sb.buf = append(sb.buf, b...) -+ return sb.last(len(b)) -+} -+ -+func (sb *Builder) grow(n int) { -+ if cap(sb.buf)-len(sb.buf) >= n { -+ return -+ } -+ -+ // Unlike strings.Builder, we do not need to copy over the contents -+ // of the old buffer since our builder provides no API for -+ // retrieving previously created strings. -+ sb.buf = make([]byte, 0, 2*(cap(sb.buf)+n)) -+} -+ -+func (sb *Builder) last(n int) string { -+ return UnsafeString(sb.buf[len(sb.buf)-n:]) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -index 0999f29d..a50fcfb4 100644 ---- a/vendor/google.golang.org/protobuf/internal/version/version.go -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -51,7 +51,7 @@ import ( - // 10. Send out the CL for review and submit it. - const ( - Major = 1 -- Minor = 31 -+ Minor = 33 - Patch = 0 - PreRelease = "" - ) -diff --git a/vendor/google.golang.org/protobuf/proto/decode.go b/vendor/google.golang.org/protobuf/proto/decode.go -index 48d47946..e5b03b56 100644 ---- a/vendor/google.golang.org/protobuf/proto/decode.go -+++ b/vendor/google.golang.org/protobuf/proto/decode.go -@@ -69,7 +69,7 @@ func (o UnmarshalOptions) Unmarshal(b []byte, m Message) error { - // UnmarshalState parses a wire-format message and places the result in m. - // - // This method permits fine-grained control over the unmarshaler. --// Most users should use Unmarshal instead. -+// Most users should use [Unmarshal] instead. - func (o UnmarshalOptions) UnmarshalState(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - if o.RecursionLimit == 0 { - o.RecursionLimit = protowire.DefaultRecursionLimit -diff --git a/vendor/google.golang.org/protobuf/proto/doc.go b/vendor/google.golang.org/protobuf/proto/doc.go -index ec71e717..80ed16a0 100644 ---- a/vendor/google.golang.org/protobuf/proto/doc.go -+++ b/vendor/google.golang.org/protobuf/proto/doc.go -@@ -18,27 +18,27 @@ - // This package contains functions to convert to and from the wire format, - // an efficient binary serialization of protocol buffers. - // --// • Size reports the size of a message in the wire format. -+// - [Size] reports the size of a message in the wire format. - // --// • Marshal converts a message to the wire format. --// The MarshalOptions type provides more control over wire marshaling. -+// - [Marshal] converts a message to the wire format. -+// The [MarshalOptions] type provides more control over wire marshaling. - // --// • Unmarshal converts a message from the wire format. --// The UnmarshalOptions type provides more control over wire unmarshaling. -+// - [Unmarshal] converts a message from the wire format. -+// The [UnmarshalOptions] type provides more control over wire unmarshaling. - // - // # Basic message operations - // --// • Clone makes a deep copy of a message. -+// - [Clone] makes a deep copy of a message. - // --// • Merge merges the content of a message into another. -+// - [Merge] merges the content of a message into another. - // --// • Equal compares two messages. For more control over comparisons --// and detailed reporting of differences, see package --// "google.golang.org/protobuf/testing/protocmp". -+// - [Equal] compares two messages. For more control over comparisons -+// and detailed reporting of differences, see package -+// [google.golang.org/protobuf/testing/protocmp]. - // --// • Reset clears the content of a message. -+// - [Reset] clears the content of a message. - // --// • CheckInitialized reports whether all required fields in a message are set. -+// - [CheckInitialized] reports whether all required fields in a message are set. - // - // # Optional scalar constructors - // -@@ -46,9 +46,9 @@ - // as pointers to a value. For example, an optional string field has the - // Go type *string. - // --// • Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, and String --// take a value and return a pointer to a new instance of it, --// to simplify construction of optional field values. -+// - [Bool], [Int32], [Int64], [Uint32], [Uint64], [Float32], [Float64], and [String] -+// take a value and return a pointer to a new instance of it, -+// to simplify construction of optional field values. - // - // Generated enum types usually have an Enum method which performs the - // same operation. -@@ -57,29 +57,29 @@ - // - // # Extension accessors - // --// • HasExtension, GetExtension, SetExtension, and ClearExtension --// access extension field values in a protocol buffer message. -+// - [HasExtension], [GetExtension], [SetExtension], and [ClearExtension] -+// access extension field values in a protocol buffer message. - // - // Extension fields are only supported in proto2. - // - // # Related packages - // --// • Package "google.golang.org/protobuf/encoding/protojson" converts messages to --// and from JSON. -+// - Package [google.golang.org/protobuf/encoding/protojson] converts messages to -+// and from JSON. - // --// • Package "google.golang.org/protobuf/encoding/prototext" converts messages to --// and from the text format. -+// - Package [google.golang.org/protobuf/encoding/prototext] converts messages to -+// and from the text format. - // --// • Package "google.golang.org/protobuf/reflect/protoreflect" provides a --// reflection interface for protocol buffer data types. -+// - Package [google.golang.org/protobuf/reflect/protoreflect] provides a -+// reflection interface for protocol buffer data types. - // --// • Package "google.golang.org/protobuf/testing/protocmp" provides features --// to compare protocol buffer messages with the "github.com/google/go-cmp/cmp" --// package. -+// - Package [google.golang.org/protobuf/testing/protocmp] provides features -+// to compare protocol buffer messages with the [github.com/google/go-cmp/cmp] -+// package. - // --// • Package "google.golang.org/protobuf/types/dynamicpb" provides a dynamic --// message type, suitable for working with messages where the protocol buffer --// type is only known at runtime. -+// - Package [google.golang.org/protobuf/types/dynamicpb] provides a dynamic -+// message type, suitable for working with messages where the protocol buffer -+// type is only known at runtime. - // - // This module contains additional packages for more specialized use cases. - // Consult the individual package documentation for details. -diff --git a/vendor/google.golang.org/protobuf/proto/encode.go b/vendor/google.golang.org/protobuf/proto/encode.go -index bf7f816d..4fed202f 100644 ---- a/vendor/google.golang.org/protobuf/proto/encode.go -+++ b/vendor/google.golang.org/protobuf/proto/encode.go -@@ -129,7 +129,7 @@ func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) { - // MarshalState returns the wire-format encoding of a message. - // - // This method permits fine-grained control over the marshaler. --// Most users should use Marshal instead. -+// Most users should use [Marshal] instead. - func (o MarshalOptions) MarshalState(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - return o.marshal(in.Buf, in.Message) - } -diff --git a/vendor/google.golang.org/protobuf/proto/extension.go b/vendor/google.golang.org/protobuf/proto/extension.go -index 5f293cda..17899a3a 100644 ---- a/vendor/google.golang.org/protobuf/proto/extension.go -+++ b/vendor/google.golang.org/protobuf/proto/extension.go -@@ -26,7 +26,7 @@ func HasExtension(m Message, xt protoreflect.ExtensionType) bool { - } - - // ClearExtension clears an extension field such that subsequent --// HasExtension calls return false. -+// [HasExtension] calls return false. - // It panics if m is invalid or if xt does not extend m. - func ClearExtension(m Message, xt protoreflect.ExtensionType) { - m.ProtoReflect().Clear(xt.TypeDescriptor()) -diff --git a/vendor/google.golang.org/protobuf/proto/merge.go b/vendor/google.golang.org/protobuf/proto/merge.go -index d761ab33..3c6fe578 100644 ---- a/vendor/google.golang.org/protobuf/proto/merge.go -+++ b/vendor/google.golang.org/protobuf/proto/merge.go -@@ -21,7 +21,7 @@ import ( - // The unknown fields of src are appended to the unknown fields of dst. - // - // It is semantically equivalent to unmarshaling the encoded form of src --// into dst with the UnmarshalOptions.Merge option specified. -+// into dst with the [UnmarshalOptions.Merge] option specified. - func Merge(dst, src Message) { - // TODO: Should nil src be treated as semantically equivalent to a - // untyped, read-only, empty message? What about a nil dst? -diff --git a/vendor/google.golang.org/protobuf/proto/proto.go b/vendor/google.golang.org/protobuf/proto/proto.go -index 1f0d183b..7543ee6b 100644 ---- a/vendor/google.golang.org/protobuf/proto/proto.go -+++ b/vendor/google.golang.org/protobuf/proto/proto.go -@@ -15,18 +15,20 @@ import ( - // protobuf module that accept a Message, except where otherwise specified. - // - // This is the v2 interface definition for protobuf messages. --// The v1 interface definition is "github.com/golang/protobuf/proto".Message. -+// The v1 interface definition is [github.com/golang/protobuf/proto.Message]. - // --// To convert a v1 message to a v2 message, --// use "github.com/golang/protobuf/proto".MessageV2. --// To convert a v2 message to a v1 message, --// use "github.com/golang/protobuf/proto".MessageV1. -+// - To convert a v1 message to a v2 message, -+// use [google.golang.org/protobuf/protoadapt.MessageV2Of]. -+// - To convert a v2 message to a v1 message, -+// use [google.golang.org/protobuf/protoadapt.MessageV1Of]. - type Message = protoreflect.ProtoMessage - --// Error matches all errors produced by packages in the protobuf module. -+// Error matches all errors produced by packages in the protobuf module -+// according to [errors.Is]. - // --// That is, errors.Is(err, Error) reports whether an error is produced --// by this module. -+// Example usage: -+// -+// if errors.Is(err, proto.Error) { ... } - var Error error - - func init() { -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -index e4dfb120..baa0cc62 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -@@ -3,11 +3,11 @@ - // license that can be found in the LICENSE file. - - // Package protodesc provides functionality for converting --// FileDescriptorProto messages to/from protoreflect.FileDescriptor values. -+// FileDescriptorProto messages to/from [protoreflect.FileDescriptor] values. - // - // The google.protobuf.FileDescriptorProto is a protobuf message that describes - // the type information for a .proto file in a form that is easily serializable. --// The protoreflect.FileDescriptor is a more structured representation of -+// The [protoreflect.FileDescriptor] is a more structured representation of - // the FileDescriptorProto message where references and remote dependencies - // can be directly followed. - package protodesc -@@ -24,11 +24,11 @@ import ( - "google.golang.org/protobuf/types/descriptorpb" - ) - --// Resolver is the resolver used by NewFile to resolve dependencies. -+// Resolver is the resolver used by [NewFile] to resolve dependencies. - // The enums and messages provided must belong to some parent file, - // which is also registered. - // --// It is implemented by protoregistry.Files. -+// It is implemented by [protoregistry.Files]. - type Resolver interface { - FindFileByPath(string) (protoreflect.FileDescriptor, error) - FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) -@@ -61,19 +61,19 @@ type FileOptions struct { - AllowUnresolvable bool - } - --// NewFile creates a new protoreflect.FileDescriptor from the provided --// file descriptor message. See FileOptions.New for more information. -+// NewFile creates a new [protoreflect.FileDescriptor] from the provided -+// file descriptor message. See [FileOptions.New] for more information. - func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { - return FileOptions{}.New(fd, r) - } - --// NewFiles creates a new protoregistry.Files from the provided --// FileDescriptorSet message. See FileOptions.NewFiles for more information. -+// NewFiles creates a new [protoregistry.Files] from the provided -+// FileDescriptorSet message. See [FileOptions.NewFiles] for more information. - func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { - return FileOptions{}.NewFiles(fd) - } - --// New creates a new protoreflect.FileDescriptor from the provided -+// New creates a new [protoreflect.FileDescriptor] from the provided - // file descriptor message. The file must represent a valid proto file according - // to protobuf semantics. The returned descriptor is a deep copy of the input. - // -@@ -93,9 +93,15 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot - f.L1.Syntax = protoreflect.Proto2 - case "proto3": - f.L1.Syntax = protoreflect.Proto3 -+ case "editions": -+ f.L1.Syntax = protoreflect.Editions -+ f.L1.Edition = fromEditionProto(fd.GetEdition()) - default: - return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) - } -+ if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < SupportedEditionsMinimum || fd.GetEdition() > SupportedEditionsMaximum) { -+ return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition()) -+ } - f.L1.Path = fd.GetName() - if f.L1.Path == "" { - return nil, errors.New("file path must be populated") -@@ -108,6 +114,9 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot - opts = proto.Clone(opts).(*descriptorpb.FileOptions) - f.L2.Options = func() protoreflect.ProtoMessage { return opts } - } -+ if f.L1.Syntax == protoreflect.Editions { -+ initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures()) -+ } - - f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) - for _, i := range fd.GetPublicDependency() { -@@ -231,7 +240,7 @@ func (is importSet) importPublic(imps protoreflect.FileImports) { - } - } - --// NewFiles creates a new protoregistry.Files from the provided -+// NewFiles creates a new [protoregistry.Files] from the provided - // FileDescriptorSet message. The descriptor set must include only - // valid files according to protobuf semantics. The returned descriptors - // are a deep copy of the input. -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -index 37efda1a..b3278163 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -@@ -28,6 +28,7 @@ func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProt - opts = proto.Clone(opts).(*descriptorpb.EnumOptions) - e.L2.Options = func() protoreflect.ProtoMessage { return opts } - } -+ e.L1.EditionFeatures = mergeEditionFeatures(parent, ed.GetOptions().GetFeatures()) - for _, s := range ed.GetReservedName() { - e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s)) - } -@@ -68,6 +69,9 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt - if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { - return nil, err - } -+ if m.Base.L0.ParentFile.Syntax() == protoreflect.Editions { -+ m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures()) -+ } - if opts := md.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.MessageOptions) - m.L2.Options = func() protoreflect.ProtoMessage { return opts } -@@ -114,6 +118,27 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt - return ms, nil - } - -+// canBePacked returns whether the field can use packed encoding: -+// https://protobuf.dev/programming-guides/encoding/#packed -+func canBePacked(fd *descriptorpb.FieldDescriptorProto) bool { -+ if fd.GetLabel() != descriptorpb.FieldDescriptorProto_LABEL_REPEATED { -+ return false // not a repeated field -+ } -+ -+ switch protoreflect.Kind(fd.GetType()) { -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ return false // not a scalar type field -+ -+ case protoreflect.StringKind, protoreflect.BytesKind: -+ // string and bytes can explicitly not be declared as packed, -+ // see https://protobuf.dev/programming-guides/encoding/#packed -+ return false -+ -+ default: -+ return true -+ } -+} -+ - func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) { - fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers - for i, fd := range fds { -@@ -137,6 +162,34 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc - if fd.JsonName != nil { - f.L1.StringName.InitJSON(fd.GetJsonName()) - } -+ -+ if f.Base.L0.ParentFile.Syntax() == protoreflect.Editions { -+ f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures()) -+ -+ if f.L1.EditionFeatures.IsLegacyRequired { -+ f.L1.Cardinality = protoreflect.Required -+ } -+ // We reuse the existing field because the old option `[packed = -+ // true]` is mutually exclusive with the editions feature. -+ if canBePacked(fd) { -+ f.L1.HasPacked = true -+ f.L1.IsPacked = f.L1.EditionFeatures.IsPacked -+ } -+ -+ // We pretend this option is always explicitly set because the only -+ // use of HasEnforceUTF8 is to determine whether to use EnforceUTF8 -+ // or to return the appropriate default. -+ // When using editions we either parse the option or resolve the -+ // appropriate default here (instead of later when this option is -+ // requested from the descriptor). -+ // In proto2/proto3 syntax HasEnforceUTF8 might be false. -+ f.L1.HasEnforceUTF8 = true -+ f.L1.EnforceUTF8 = f.L1.EditionFeatures.IsUTF8Validated -+ -+ if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded { -+ f.L1.Kind = protoreflect.GroupKind -+ } -+ } - } - return fs, nil - } -@@ -151,6 +204,9 @@ func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDesc - if opts := od.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.OneofOptions) - o.L1.Options = func() protoreflect.ProtoMessage { return opts } -+ if parent.Syntax() == protoreflect.Editions { -+ o.L1.EditionFeatures = mergeEditionFeatures(parent, opts.GetFeatures()) -+ } - } - } - return os, nil -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -index 27d7e350..254ca585 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -@@ -276,8 +276,8 @@ func unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvab - } else if err != nil { - return v, ev, err - } -- if fd.Syntax() == protoreflect.Proto3 { -- return v, ev, errors.New("cannot be specified under proto3 semantics") -+ if !fd.HasPresence() { -+ return v, ev, errors.New("cannot be specified with implicit field presence") - } - if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated { - return v, ev, errors.New("cannot be specified on composite types") -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -index 9af1d564..e4dcaf87 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -@@ -107,7 +107,7 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc - if isMessageSet && !flags.ProtoLegacy { - return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) - } -- if isMessageSet && (m.Syntax() != protoreflect.Proto2 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { -+ if isMessageSet && (m.Syntax() == protoreflect.Proto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { - return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) - } - if m.Syntax() == protoreflect.Proto3 { -@@ -314,8 +314,8 @@ func checkValidGroup(fd protoreflect.FieldDescriptor) error { - switch { - case fd.Kind() != protoreflect.GroupKind: - return nil -- case fd.Syntax() != protoreflect.Proto2: -- return errors.New("invalid under proto2 semantics") -+ case fd.Syntax() == protoreflect.Proto3: -+ return errors.New("invalid under proto3 semantics") - case md == nil || md.IsPlaceholder(): - return errors.New("message must be resolvable") - case fd.FullName().Parent() != md.FullName().Parent(): -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go -new file mode 100644 -index 00000000..2a6b29d1 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go -@@ -0,0 +1,148 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protodesc -+ -+import ( -+ "fmt" -+ "os" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/editiondefaults" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/types/descriptorpb" -+ gofeaturespb "google.golang.org/protobuf/types/gofeaturespb" -+) -+ -+const ( -+ SupportedEditionsMinimum = descriptorpb.Edition_EDITION_PROTO2 -+ SupportedEditionsMaximum = descriptorpb.Edition_EDITION_2023 -+) -+ -+var defaults = &descriptorpb.FeatureSetDefaults{} -+var defaultsCacheMu sync.Mutex -+var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet) -+ -+func init() { -+ err := proto.Unmarshal(editiondefaults.Defaults, defaults) -+ if err != nil { -+ fmt.Fprintf(os.Stderr, "unmarshal editions defaults: %v\n", err) -+ os.Exit(1) -+ } -+} -+ -+func fromEditionProto(epb descriptorpb.Edition) filedesc.Edition { -+ return filedesc.Edition(epb) -+} -+ -+func toEditionProto(ed filedesc.Edition) descriptorpb.Edition { -+ switch ed { -+ case filedesc.EditionUnknown: -+ return descriptorpb.Edition_EDITION_UNKNOWN -+ case filedesc.EditionProto2: -+ return descriptorpb.Edition_EDITION_PROTO2 -+ case filedesc.EditionProto3: -+ return descriptorpb.Edition_EDITION_PROTO3 -+ case filedesc.Edition2023: -+ return descriptorpb.Edition_EDITION_2023 -+ default: -+ panic(fmt.Sprintf("unknown value for edition: %v", ed)) -+ } -+} -+ -+func getFeatureSetFor(ed filedesc.Edition) *descriptorpb.FeatureSet { -+ defaultsCacheMu.Lock() -+ defer defaultsCacheMu.Unlock() -+ if def, ok := defaultsCache[ed]; ok { -+ return def -+ } -+ edpb := toEditionProto(ed) -+ if defaults.GetMinimumEdition() > edpb || defaults.GetMaximumEdition() < edpb { -+ // This should never happen protodesc.(FileOptions).New would fail when -+ // initializing the file descriptor. -+ // This most likely means the embedded defaults were not updated. -+ fmt.Fprintf(os.Stderr, "internal error: unsupported edition %v (did you forget to update the embedded defaults (i.e. the bootstrap descriptor proto)?)\n", edpb) -+ os.Exit(1) -+ } -+ fs := defaults.GetDefaults()[0].GetFeatures() -+ // Using a linear search for now. -+ // Editions are guaranteed to be sorted and thus we could use a binary search. -+ // Given that there are only a handful of editions (with one more per year) -+ // there is not much reason to use a binary search. -+ for _, def := range defaults.GetDefaults() { -+ if def.GetEdition() <= edpb { -+ fs = def.GetFeatures() -+ } else { -+ break -+ } -+ } -+ defaultsCache[ed] = fs -+ return fs -+} -+ -+// mergeEditionFeatures merges the parent and child feature sets. This function -+// should be used when initializing Go descriptors from descriptor protos which -+// is why the parent is a filedesc.EditionsFeatures (Go representation) while -+// the child is a descriptorproto.FeatureSet (protoc representation). -+// Any feature set by the child overwrites what is set by the parent. -+func mergeEditionFeatures(parentDesc protoreflect.Descriptor, child *descriptorpb.FeatureSet) filedesc.EditionFeatures { -+ var parentFS filedesc.EditionFeatures -+ switch p := parentDesc.(type) { -+ case *filedesc.File: -+ parentFS = p.L1.EditionFeatures -+ case *filedesc.Message: -+ parentFS = p.L1.EditionFeatures -+ default: -+ panic(fmt.Sprintf("unknown parent type %T", parentDesc)) -+ } -+ if child == nil { -+ return parentFS -+ } -+ if fp := child.FieldPresence; fp != nil { -+ parentFS.IsFieldPresence = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED || -+ *fp == descriptorpb.FeatureSet_EXPLICIT -+ parentFS.IsLegacyRequired = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED -+ } -+ if et := child.EnumType; et != nil { -+ parentFS.IsOpenEnum = *et == descriptorpb.FeatureSet_OPEN -+ } -+ -+ if rfe := child.RepeatedFieldEncoding; rfe != nil { -+ parentFS.IsPacked = *rfe == descriptorpb.FeatureSet_PACKED -+ } -+ -+ if utf8val := child.Utf8Validation; utf8val != nil { -+ parentFS.IsUTF8Validated = *utf8val == descriptorpb.FeatureSet_VERIFY -+ } -+ -+ if me := child.MessageEncoding; me != nil { -+ parentFS.IsDelimitedEncoded = *me == descriptorpb.FeatureSet_DELIMITED -+ } -+ -+ if jf := child.JsonFormat; jf != nil { -+ parentFS.IsJSONCompliant = *jf == descriptorpb.FeatureSet_ALLOW -+ } -+ -+ if goFeatures, ok := proto.GetExtension(child, gofeaturespb.E_Go).(*gofeaturespb.GoFeatures); ok && goFeatures != nil { -+ if luje := goFeatures.LegacyUnmarshalJsonEnum; luje != nil { -+ parentFS.GenerateLegacyUnmarshalJSON = *luje -+ } -+ } -+ -+ return parentFS -+} -+ -+// initFileDescFromFeatureSet initializes editions related fields in fd based -+// on fs. If fs is nil it is assumed to be an empty featureset and all fields -+// will be initialized with the appropriate default. fd.L1.Edition must be set -+// before calling this function. -+func initFileDescFromFeatureSet(fd *filedesc.File, fs *descriptorpb.FeatureSet) { -+ dfs := getFeatureSetFor(fd.L1.Edition) -+ // initialize the featureset with the defaults -+ fd.L1.EditionFeatures = mergeEditionFeatures(fd, dfs) -+ // overwrite any options explicitly specified -+ fd.L1.EditionFeatures = mergeEditionFeatures(fd, fs) -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -index a7c5ceff..9d6e0542 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -@@ -16,7 +16,7 @@ import ( - "google.golang.org/protobuf/types/descriptorpb" - ) - --// ToFileDescriptorProto copies a protoreflect.FileDescriptor into a -+// ToFileDescriptorProto copies a [protoreflect.FileDescriptor] into a - // google.protobuf.FileDescriptorProto message. - func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto { - p := &descriptorpb.FileDescriptorProto{ -@@ -70,13 +70,13 @@ func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileD - for i, exts := 0, file.Extensions(); i < exts.Len(); i++ { - p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) - } -- if syntax := file.Syntax(); syntax != protoreflect.Proto2 { -+ if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() { - p.Syntax = proto.String(file.Syntax().String()) - } - return p - } - --// ToDescriptorProto copies a protoreflect.MessageDescriptor into a -+// ToDescriptorProto copies a [protoreflect.MessageDescriptor] into a - // google.protobuf.DescriptorProto message. - func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto { - p := &descriptorpb.DescriptorProto{ -@@ -119,7 +119,7 @@ func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.Des - return p - } - --// ToFieldDescriptorProto copies a protoreflect.FieldDescriptor into a -+// ToFieldDescriptorProto copies a [protoreflect.FieldDescriptor] into a - // google.protobuf.FieldDescriptorProto message. - func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto { - p := &descriptorpb.FieldDescriptorProto{ -@@ -168,7 +168,7 @@ func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.Fi - return p - } - --// ToOneofDescriptorProto copies a protoreflect.OneofDescriptor into a -+// ToOneofDescriptorProto copies a [protoreflect.OneofDescriptor] into a - // google.protobuf.OneofDescriptorProto message. - func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto { - return &descriptorpb.OneofDescriptorProto{ -@@ -177,7 +177,7 @@ func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.On - } - } - --// ToEnumDescriptorProto copies a protoreflect.EnumDescriptor into a -+// ToEnumDescriptorProto copies a [protoreflect.EnumDescriptor] into a - // google.protobuf.EnumDescriptorProto message. - func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto { - p := &descriptorpb.EnumDescriptorProto{ -@@ -200,7 +200,7 @@ func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumD - return p - } - --// ToEnumValueDescriptorProto copies a protoreflect.EnumValueDescriptor into a -+// ToEnumValueDescriptorProto copies a [protoreflect.EnumValueDescriptor] into a - // google.protobuf.EnumValueDescriptorProto message. - func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto { - return &descriptorpb.EnumValueDescriptorProto{ -@@ -210,7 +210,7 @@ func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descrip - } - } - --// ToServiceDescriptorProto copies a protoreflect.ServiceDescriptor into a -+// ToServiceDescriptorProto copies a [protoreflect.ServiceDescriptor] into a - // google.protobuf.ServiceDescriptorProto message. - func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto { - p := &descriptorpb.ServiceDescriptorProto{ -@@ -223,7 +223,7 @@ func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descripto - return p - } - --// ToMethodDescriptorProto copies a protoreflect.MethodDescriptor into a -+// ToMethodDescriptorProto copies a [protoreflect.MethodDescriptor] into a - // google.protobuf.MethodDescriptorProto message. - func ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto { - p := &descriptorpb.MethodDescriptorProto{ -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -index 55aa1492..00b01fbd 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -@@ -10,46 +10,46 @@ - // - // # Protocol Buffer Descriptors - // --// Protobuf descriptors (e.g., EnumDescriptor or MessageDescriptor) -+// Protobuf descriptors (e.g., [EnumDescriptor] or [MessageDescriptor]) - // are immutable objects that represent protobuf type information. - // They are wrappers around the messages declared in descriptor.proto. - // Protobuf descriptors alone lack any information regarding Go types. - // --// Enums and messages generated by this module implement Enum and ProtoMessage, -+// Enums and messages generated by this module implement [Enum] and [ProtoMessage], - // where the Descriptor and ProtoReflect.Descriptor accessors respectively - // return the protobuf descriptor for the values. - // - // The protobuf descriptor interfaces are not meant to be implemented by - // user code since they might need to be extended in the future to support - // additions to the protobuf language. --// The "google.golang.org/protobuf/reflect/protodesc" package converts between -+// The [google.golang.org/protobuf/reflect/protodesc] package converts between - // google.protobuf.DescriptorProto messages and protobuf descriptors. - // - // # Go Type Descriptors - // --// A type descriptor (e.g., EnumType or MessageType) is a constructor for -+// A type descriptor (e.g., [EnumType] or [MessageType]) is a constructor for - // a concrete Go type that represents the associated protobuf descriptor. - // There is commonly a one-to-one relationship between protobuf descriptors and - // Go type descriptors, but it can potentially be a one-to-many relationship. - // --// Enums and messages generated by this module implement Enum and ProtoMessage, -+// Enums and messages generated by this module implement [Enum] and [ProtoMessage], - // where the Type and ProtoReflect.Type accessors respectively - // return the protobuf descriptor for the values. - // --// The "google.golang.org/protobuf/types/dynamicpb" package can be used to -+// The [google.golang.org/protobuf/types/dynamicpb] package can be used to - // create Go type descriptors from protobuf descriptors. - // - // # Value Interfaces - // --// The Enum and Message interfaces provide a reflective view over an -+// The [Enum] and [Message] interfaces provide a reflective view over an - // enum or message instance. For enums, it provides the ability to retrieve - // the enum value number for any concrete enum type. For messages, it provides - // the ability to access or manipulate fields of the message. - // --// To convert a proto.Message to a protoreflect.Message, use the -+// To convert a [google.golang.org/protobuf/proto.Message] to a [protoreflect.Message], use the - // former's ProtoReflect method. Since the ProtoReflect method is new to the - // v2 message interface, it may not be present on older message implementations. --// The "github.com/golang/protobuf/proto".MessageReflect function can be used -+// The [github.com/golang/protobuf/proto.MessageReflect] function can be used - // to obtain a reflective view on older messages. - // - // # Relationships -@@ -71,12 +71,12 @@ - // │ │ - // └────────────────── Type() ───────┘ - // --// • An EnumType describes a concrete Go enum type. -+// • An [EnumType] describes a concrete Go enum type. - // It has an EnumDescriptor and can construct an Enum instance. - // --// • An EnumDescriptor describes an abstract protobuf enum type. -+// • An [EnumDescriptor] describes an abstract protobuf enum type. - // --// • An Enum is a concrete enum instance. Generated enums implement Enum. -+// • An [Enum] is a concrete enum instance. Generated enums implement Enum. - // - // ┌──────────────── New() ─────────────────┠- // │ │ -@@ -90,24 +90,26 @@ - // │ │ - // └─────────────────── Type() ─────────┘ - // --// • A MessageType describes a concrete Go message type. --// It has a MessageDescriptor and can construct a Message instance. --// Just as how Go's reflect.Type is a reflective description of a Go type, --// a MessageType is a reflective description of a Go type for a protobuf message. -+// • A [MessageType] describes a concrete Go message type. -+// It has a [MessageDescriptor] and can construct a [Message] instance. -+// Just as how Go's [reflect.Type] is a reflective description of a Go type, -+// a [MessageType] is a reflective description of a Go type for a protobuf message. - // --// • A MessageDescriptor describes an abstract protobuf message type. --// It has no understanding of Go types. In order to construct a MessageType --// from just a MessageDescriptor, you can consider looking up the message type --// in the global registry using protoregistry.GlobalTypes.FindMessageByName --// or constructing a dynamic MessageType using dynamicpb.NewMessageType. -+// • A [MessageDescriptor] describes an abstract protobuf message type. -+// It has no understanding of Go types. In order to construct a [MessageType] -+// from just a [MessageDescriptor], you can consider looking up the message type -+// in the global registry using the FindMessageByName method on -+// [google.golang.org/protobuf/reflect/protoregistry.GlobalTypes] -+// or constructing a dynamic [MessageType] using -+// [google.golang.org/protobuf/types/dynamicpb.NewMessageType]. - // --// • A Message is a reflective view over a concrete message instance. --// Generated messages implement ProtoMessage, which can convert to a Message. --// Just as how Go's reflect.Value is a reflective view over a Go value, --// a Message is a reflective view over a concrete protobuf message instance. --// Using Go reflection as an analogy, the ProtoReflect method is similar to --// calling reflect.ValueOf, and the Message.Interface method is similar to --// calling reflect.Value.Interface. -+// • A [Message] is a reflective view over a concrete message instance. -+// Generated messages implement [ProtoMessage], which can convert to a [Message]. -+// Just as how Go's [reflect.Value] is a reflective view over a Go value, -+// a [Message] is a reflective view over a concrete protobuf message instance. -+// Using Go reflection as an analogy, the [ProtoMessage.ProtoReflect] method is similar to -+// calling [reflect.ValueOf], and the [Message.Interface] method is similar to -+// calling [reflect.Value.Interface]. - // - // ┌── TypeDescriptor() ──┠┌───── Descriptor() ─────┠- // │ V │ V -@@ -119,15 +121,15 @@ - // │ │ - // └────── implements ────────┘ - // --// • An ExtensionType describes a concrete Go implementation of an extension. --// It has an ExtensionTypeDescriptor and can convert to/from --// abstract Values and Go values. -+// • An [ExtensionType] describes a concrete Go implementation of an extension. -+// It has an [ExtensionTypeDescriptor] and can convert to/from -+// an abstract [Value] and a Go value. - // --// • An ExtensionTypeDescriptor is an ExtensionDescriptor --// which also has an ExtensionType. -+// • An [ExtensionTypeDescriptor] is an [ExtensionDescriptor] -+// which also has an [ExtensionType]. - // --// • An ExtensionDescriptor describes an abstract protobuf extension field and --// may not always be an ExtensionTypeDescriptor. -+// • An [ExtensionDescriptor] describes an abstract protobuf extension field and -+// may not always be an [ExtensionTypeDescriptor]. - package protoreflect - - import ( -@@ -142,7 +144,7 @@ type doNotImplement pragma.DoNotImplement - - // ProtoMessage is the top-level interface that all proto messages implement. - // This is declared in the protoreflect package to avoid a cyclic dependency; --// use the proto.Message type instead, which aliases this type. -+// use the [google.golang.org/protobuf/proto.Message] type instead, which aliases this type. - type ProtoMessage interface{ ProtoReflect() Message } - - // Syntax is the language version of the proto file. -@@ -151,8 +153,9 @@ type Syntax syntax - type syntax int8 // keep exact type opaque as the int type may change - - const ( -- Proto2 Syntax = 2 -- Proto3 Syntax = 3 -+ Proto2 Syntax = 2 -+ Proto3 Syntax = 3 -+ Editions Syntax = 4 - ) - - // IsValid reports whether the syntax is valid. -@@ -172,6 +175,8 @@ func (s Syntax) String() string { - return "proto2" - case Proto3: - return "proto3" -+ case Editions: -+ return "editions" - default: - return fmt.Sprintf("", s) - } -@@ -436,7 +441,7 @@ type Names interface { - // FullName is a qualified name that uniquely identifies a proto declaration. - // A qualified name is the concatenation of the proto package along with the - // fully-declared name (i.e., name of parent preceding the name of the child), --// with a '.' delimiter placed between each Name. -+// with a '.' delimiter placed between each [Name]. - // - // This should not have any leading or trailing dots. - type FullName string // e.g., "google.protobuf.Field.Kind" -@@ -480,7 +485,7 @@ func isLetterDigit(c byte) bool { - } - - // Name returns the short name, which is the last identifier segment. --// A single segment FullName is the Name itself. -+// A single segment FullName is the [Name] itself. - func (n FullName) Name() Name { - if i := strings.LastIndexByte(string(n), '.'); i >= 0 { - return Name(n[i+1:]) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -index 717b106f..7dcc2ff0 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -@@ -35,7 +35,7 @@ func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte { - b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo) - case 12: - b = p.appendSingularField(b, "syntax", nil) -- case 13: -+ case 14: - b = p.appendSingularField(b, "edition", nil) - } - return b -@@ -160,8 +160,6 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte { - b = p.appendSingularField(b, "java_generic_services", nil) - case 18: - b = p.appendSingularField(b, "py_generic_services", nil) -- case 42: -- b = p.appendSingularField(b, "php_generic_services", nil) - case 23: - b = p.appendSingularField(b, "deprecated", nil) - case 31: -@@ -180,6 +178,8 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte { - b = p.appendSingularField(b, "php_metadata_namespace", nil) - case 45: - b = p.appendSingularField(b, "ruby_package", nil) -+ case 50: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -240,6 +240,8 @@ func (p *SourcePath) appendMessageOptions(b []byte) []byte { - b = p.appendSingularField(b, "map_entry", nil) - case 11: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 12: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -285,6 +287,8 @@ func (p *SourcePath) appendEnumOptions(b []byte) []byte { - b = p.appendSingularField(b, "deprecated", nil) - case 6: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 7: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -330,6 +334,8 @@ func (p *SourcePath) appendServiceOptions(b []byte) []byte { - return b - } - switch (*p)[0] { -+ case 34: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 33: - b = p.appendSingularField(b, "deprecated", nil) - case 999: -@@ -361,16 +367,39 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { - b = p.appendSingularField(b, "debug_redact", nil) - case 17: - b = p.appendSingularField(b, "retention", nil) -- case 18: -- b = p.appendSingularField(b, "target", nil) - case 19: - b = p.appendRepeatedField(b, "targets", nil) -+ case 20: -+ b = p.appendRepeatedField(b, "edition_defaults", (*SourcePath).appendFieldOptions_EditionDefault) -+ case 21: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } - return b - } - -+func (p *SourcePath) appendFeatureSet(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "field_presence", nil) -+ case 2: -+ b = p.appendSingularField(b, "enum_type", nil) -+ case 3: -+ b = p.appendSingularField(b, "repeated_field_encoding", nil) -+ case 4: -+ b = p.appendSingularField(b, "utf8_validation", nil) -+ case 5: -+ b = p.appendSingularField(b, "message_encoding", nil) -+ case 6: -+ b = p.appendSingularField(b, "json_format", nil) -+ } -+ return b -+} -+ - func (p *SourcePath) appendUninterpretedOption(b []byte) []byte { - if len(*p) == 0 { - return b -@@ -422,6 +451,8 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - case 2: - b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) -+ case 50: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 3: - b = p.appendSingularField(b, "verification", nil) - } -@@ -433,6 +464,8 @@ func (p *SourcePath) appendOneofOptions(b []byte) []byte { - return b - } - switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -446,6 +479,10 @@ func (p *SourcePath) appendEnumValueOptions(b []byte) []byte { - switch (*p)[0] { - case 1: - b = p.appendSingularField(b, "deprecated", nil) -+ case 2: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) -+ case 3: -+ b = p.appendSingularField(b, "debug_redact", nil) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -461,12 +498,27 @@ func (p *SourcePath) appendMethodOptions(b []byte) []byte { - b = p.appendSingularField(b, "deprecated", nil) - case 34: - b = p.appendSingularField(b, "idempotency_level", nil) -+ case 35: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } - return b - } - -+func (p *SourcePath) appendFieldOptions_EditionDefault(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 3: -+ b = p.appendSingularField(b, "edition", nil) -+ case 2: -+ b = p.appendSingularField(b, "value", nil) -+ } -+ return b -+} -+ - func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { - if len(*p) == 0 { - return b -@@ -491,8 +543,6 @@ func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { - b = p.appendSingularField(b, "full_name", nil) - case 3: - b = p.appendSingularField(b, "type", nil) -- case 4: -- b = p.appendSingularField(b, "is_repeated", nil) - case 5: - b = p.appendSingularField(b, "reserved", nil) - case 6: -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -index 3867470d..60ff62b4 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -@@ -12,7 +12,7 @@ package protoreflect - // exactly identical. However, it is possible for the same semantically - // identical proto type to be represented by multiple type descriptors. - // --// For example, suppose we have t1 and t2 which are both MessageDescriptors. -+// For example, suppose we have t1 and t2 which are both an [MessageDescriptor]. - // If t1 == t2, then the types are definitely equal and all accessors return - // the same information. However, if t1 != t2, then it is still possible that - // they still represent the same proto type (e.g., t1.FullName == t2.FullName). -@@ -115,7 +115,7 @@ type Descriptor interface { - // corresponds with the google.protobuf.FileDescriptorProto message. - // - // Top-level declarations: --// EnumDescriptor, MessageDescriptor, FieldDescriptor, and/or ServiceDescriptor. -+// [EnumDescriptor], [MessageDescriptor], [FieldDescriptor], and/or [ServiceDescriptor]. - type FileDescriptor interface { - Descriptor // Descriptor.FullName is identical to Package - -@@ -180,8 +180,8 @@ type FileImport struct { - // corresponds with the google.protobuf.DescriptorProto message. - // - // Nested declarations: --// FieldDescriptor, OneofDescriptor, FieldDescriptor, EnumDescriptor, --// and/or MessageDescriptor. -+// [FieldDescriptor], [OneofDescriptor], [FieldDescriptor], [EnumDescriptor], -+// and/or [MessageDescriptor]. - type MessageDescriptor interface { - Descriptor - -@@ -214,7 +214,7 @@ type MessageDescriptor interface { - ExtensionRanges() FieldRanges - // ExtensionRangeOptions returns the ith extension range options. - // -- // To avoid a dependency cycle, this method returns a proto.Message value, -+ // To avoid a dependency cycle, this method returns a proto.Message] value, - // which always contains a google.protobuf.ExtensionRangeOptions message. - // This method returns a typed nil-pointer if no options are present. - // The caller must import the descriptorpb package to use this. -@@ -231,9 +231,9 @@ type MessageDescriptor interface { - } - type isMessageDescriptor interface{ ProtoType(MessageDescriptor) } - --// MessageType encapsulates a MessageDescriptor with a concrete Go implementation. -+// MessageType encapsulates a [MessageDescriptor] with a concrete Go implementation. - // It is recommended that implementations of this interface also implement the --// MessageFieldTypes interface. -+// [MessageFieldTypes] interface. - type MessageType interface { - // New returns a newly allocated empty message. - // It may return nil for synthetic messages representing a map entry. -@@ -249,19 +249,19 @@ type MessageType interface { - Descriptor() MessageDescriptor - } - --// MessageFieldTypes extends a MessageType by providing type information -+// MessageFieldTypes extends a [MessageType] by providing type information - // regarding enums and messages referenced by the message fields. - type MessageFieldTypes interface { - MessageType - -- // Enum returns the EnumType for the ith field in Descriptor.Fields. -+ // Enum returns the EnumType for the ith field in MessageDescriptor.Fields. - // It returns nil if the ith field is not an enum kind. - // It panics if out of bounds. - // - // Invariant: mt.Enum(i).Descriptor() == mt.Descriptor().Fields(i).Enum() - Enum(i int) EnumType - -- // Message returns the MessageType for the ith field in Descriptor.Fields. -+ // Message returns the MessageType for the ith field in MessageDescriptor.Fields. - // It returns nil if the ith field is not a message or group kind. - // It panics if out of bounds. - // -@@ -286,8 +286,8 @@ type MessageDescriptors interface { - // corresponds with the google.protobuf.FieldDescriptorProto message. - // - // It is used for both normal fields defined within the parent message --// (e.g., MessageDescriptor.Fields) and fields that extend some remote message --// (e.g., FileDescriptor.Extensions or MessageDescriptor.Extensions). -+// (e.g., [MessageDescriptor.Fields]) and fields that extend some remote message -+// (e.g., [FileDescriptor.Extensions] or [MessageDescriptor.Extensions]). - type FieldDescriptor interface { - Descriptor - -@@ -344,7 +344,7 @@ type FieldDescriptor interface { - // IsMap reports whether this field represents a map, - // where the value type for the associated field is a Map. - // It is equivalent to checking whether Cardinality is Repeated, -- // that the Kind is MessageKind, and that Message.IsMapEntry reports true. -+ // that the Kind is MessageKind, and that MessageDescriptor.IsMapEntry reports true. - IsMap() bool - - // MapKey returns the field descriptor for the key in the map entry. -@@ -419,7 +419,7 @@ type OneofDescriptor interface { - - // IsSynthetic reports whether this is a synthetic oneof created to support - // proto3 optional semantics. If true, Fields contains exactly one field -- // with HasOptionalKeyword specified. -+ // with FieldDescriptor.HasOptionalKeyword specified. - IsSynthetic() bool - - // Fields is a list of fields belonging to this oneof. -@@ -442,10 +442,10 @@ type OneofDescriptors interface { - doNotImplement - } - --// ExtensionDescriptor is an alias of FieldDescriptor for documentation. -+// ExtensionDescriptor is an alias of [FieldDescriptor] for documentation. - type ExtensionDescriptor = FieldDescriptor - --// ExtensionTypeDescriptor is an ExtensionDescriptor with an associated ExtensionType. -+// ExtensionTypeDescriptor is an [ExtensionDescriptor] with an associated [ExtensionType]. - type ExtensionTypeDescriptor interface { - ExtensionDescriptor - -@@ -470,12 +470,12 @@ type ExtensionDescriptors interface { - doNotImplement - } - --// ExtensionType encapsulates an ExtensionDescriptor with a concrete -+// ExtensionType encapsulates an [ExtensionDescriptor] with a concrete - // Go implementation. The nested field descriptor must be for a extension field. - // - // While a normal field is a member of the parent message that it is declared --// within (see Descriptor.Parent), an extension field is a member of some other --// target message (see ExtensionDescriptor.Extendee) and may have no -+// within (see [Descriptor.Parent]), an extension field is a member of some other -+// target message (see [FieldDescriptor.ContainingMessage]) and may have no - // relationship with the parent. However, the full name of an extension field is - // relative to the parent that it is declared within. - // -@@ -532,7 +532,7 @@ type ExtensionType interface { - // corresponds with the google.protobuf.EnumDescriptorProto message. - // - // Nested declarations: --// EnumValueDescriptor. -+// [EnumValueDescriptor]. - type EnumDescriptor interface { - Descriptor - -@@ -548,7 +548,7 @@ type EnumDescriptor interface { - } - type isEnumDescriptor interface{ ProtoType(EnumDescriptor) } - --// EnumType encapsulates an EnumDescriptor with a concrete Go implementation. -+// EnumType encapsulates an [EnumDescriptor] with a concrete Go implementation. - type EnumType interface { - // New returns an instance of this enum type with its value set to n. - New(n EnumNumber) Enum -@@ -610,7 +610,7 @@ type EnumValueDescriptors interface { - // ServiceDescriptor describes a service and - // corresponds with the google.protobuf.ServiceDescriptorProto message. - // --// Nested declarations: MethodDescriptor. -+// Nested declarations: [MethodDescriptor]. - type ServiceDescriptor interface { - Descriptor - -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -index 37601b78..a7b0d06f 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -@@ -27,16 +27,16 @@ type Enum interface { - // Message is a reflective interface for a concrete message value, - // encapsulating both type and value information for the message. - // --// Accessor/mutators for individual fields are keyed by FieldDescriptor. -+// Accessor/mutators for individual fields are keyed by [FieldDescriptor]. - // For non-extension fields, the descriptor must exactly match the - // field known by the parent message. --// For extension fields, the descriptor must implement ExtensionTypeDescriptor, --// extend the parent message (i.e., have the same message FullName), and -+// For extension fields, the descriptor must implement [ExtensionTypeDescriptor], -+// extend the parent message (i.e., have the same message [FullName]), and - // be within the parent's extension range. - // --// Each field Value can be a scalar or a composite type (Message, List, or Map). --// See Value for the Go types associated with a FieldDescriptor. --// Providing a Value that is invalid or of an incorrect type panics. -+// Each field [Value] can be a scalar or a composite type ([Message], [List], or [Map]). -+// See [Value] for the Go types associated with a [FieldDescriptor]. -+// Providing a [Value] that is invalid or of an incorrect type panics. - type Message interface { - // Descriptor returns message descriptor, which contains only the protobuf - // type information for the message. -@@ -152,7 +152,7 @@ type Message interface { - // This method may return nil. - // - // The returned methods type is identical to -- // "google.golang.org/protobuf/runtime/protoiface".Methods. -+ // google.golang.org/protobuf/runtime/protoiface.Methods. - // Consult the protoiface package documentation for details. - ProtoMethods() *methods - } -@@ -175,8 +175,8 @@ func (b RawFields) IsValid() bool { - } - - // List is a zero-indexed, ordered list. --// The element Value type is determined by FieldDescriptor.Kind. --// Providing a Value that is invalid or of an incorrect type panics. -+// The element [Value] type is determined by [FieldDescriptor.Kind]. -+// Providing a [Value] that is invalid or of an incorrect type panics. - type List interface { - // Len reports the number of entries in the List. - // Get, Set, and Truncate panic with out of bound indexes. -@@ -226,9 +226,9 @@ type List interface { - } - - // Map is an unordered, associative map. --// The entry MapKey type is determined by FieldDescriptor.MapKey.Kind. --// The entry Value type is determined by FieldDescriptor.MapValue.Kind. --// Providing a MapKey or Value that is invalid or of an incorrect type panics. -+// The entry [MapKey] type is determined by [FieldDescriptor.MapKey].Kind. -+// The entry [Value] type is determined by [FieldDescriptor.MapValue].Kind. -+// Providing a [MapKey] or [Value] that is invalid or of an incorrect type panics. - type Map interface { - // Len reports the number of elements in the map. - Len() int -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -index 59165254..654599d4 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -@@ -24,19 +24,19 @@ import ( - // Unlike the == operator, a NaN is equal to another NaN. - // - // - Enums are equal if they contain the same number. --// Since Value does not contain an enum descriptor, -+// Since [Value] does not contain an enum descriptor, - // enum values do not consider the type of the enum. - // - // - Other scalar values are equal if they contain the same value. - // --// - Message values are equal if they belong to the same message descriptor, -+// - [Message] values are equal if they belong to the same message descriptor, - // have the same set of populated known and extension field values, - // and the same set of unknown fields values. - // --// - Lists are equal if they are the same length and -+// - [List] values are equal if they are the same length and - // each corresponding element is equal. - // --// - Maps are equal if they have the same set of keys and -+// - [Map] values are equal if they have the same set of keys and - // the corresponding value for each key is equal. - func (v1 Value) Equal(v2 Value) bool { - return equalValue(v1, v2) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -index 08e5ef73..16030973 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -@@ -11,7 +11,7 @@ import ( - - // Value is a union where only one Go type may be set at a time. - // The Value is used to represent all possible values a field may take. --// The following shows which Go type is used to represent each proto Kind: -+// The following shows which Go type is used to represent each proto [Kind]: - // - // â•”â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— - // â•‘ Go type │ Protobuf kind â•‘ -@@ -31,22 +31,22 @@ import ( - // - // Multiple protobuf Kinds may be represented by a single Go type if the type - // can losslessly represent the information for the proto kind. For example, --// Int64Kind, Sint64Kind, and Sfixed64Kind are all represented by int64, -+// [Int64Kind], [Sint64Kind], and [Sfixed64Kind] are all represented by int64, - // but use different integer encoding methods. - // --// The List or Map types are used if the field cardinality is repeated. --// A field is a List if FieldDescriptor.IsList reports true. --// A field is a Map if FieldDescriptor.IsMap reports true. -+// The [List] or [Map] types are used if the field cardinality is repeated. -+// A field is a [List] if [FieldDescriptor.IsList] reports true. -+// A field is a [Map] if [FieldDescriptor.IsMap] reports true. - // - // Converting to/from a Value and a concrete Go value panics on type mismatch. --// For example, ValueOf("hello").Int() panics because this attempts to -+// For example, [ValueOf]("hello").Int() panics because this attempts to - // retrieve an int64 from a string. - // --// List, Map, and Message Values are called "composite" values. -+// [List], [Map], and [Message] Values are called "composite" values. - // - // A composite Value may alias (reference) memory at some location, - // such that changes to the Value updates the that location. --// A composite value acquired with a Mutable method, such as Message.Mutable, -+// A composite value acquired with a Mutable method, such as [Message.Mutable], - // always references the source object. - // - // For example: -@@ -65,7 +65,7 @@ import ( - // // appending to the List here may or may not modify the message. - // list.Append(protoreflect.ValueOfInt32(0)) - // --// Some operations, such as Message.Get, may return an "empty, read-only" -+// Some operations, such as [Message.Get], may return an "empty, read-only" - // composite Value. Modifying an empty, read-only value panics. - type Value value - -@@ -306,7 +306,7 @@ func (v Value) Float() float64 { - } - } - --// String returns v as a string. Since this method implements fmt.Stringer, -+// String returns v as a string. Since this method implements [fmt.Stringer], - // this returns the formatted string value for any non-string type. - func (v Value) String() string { - switch v.typ { -@@ -327,7 +327,7 @@ func (v Value) Bytes() []byte { - } - } - --// Enum returns v as a EnumNumber and panics if the type is not a EnumNumber. -+// Enum returns v as a [EnumNumber] and panics if the type is not a [EnumNumber]. - func (v Value) Enum() EnumNumber { - switch v.typ { - case enumType: -@@ -337,7 +337,7 @@ func (v Value) Enum() EnumNumber { - } - } - --// Message returns v as a Message and panics if the type is not a Message. -+// Message returns v as a [Message] and panics if the type is not a [Message]. - func (v Value) Message() Message { - switch vi := v.getIface().(type) { - case Message: -@@ -347,7 +347,7 @@ func (v Value) Message() Message { - } - } - --// List returns v as a List and panics if the type is not a List. -+// List returns v as a [List] and panics if the type is not a [List]. - func (v Value) List() List { - switch vi := v.getIface().(type) { - case List: -@@ -357,7 +357,7 @@ func (v Value) List() List { - } - } - --// Map returns v as a Map and panics if the type is not a Map. -+// Map returns v as a [Map] and panics if the type is not a [Map]. - func (v Value) Map() Map { - switch vi := v.getIface().(type) { - case Map: -@@ -367,7 +367,7 @@ func (v Value) Map() Map { - } - } - --// MapKey returns v as a MapKey and panics for invalid MapKey types. -+// MapKey returns v as a [MapKey] and panics for invalid [MapKey] types. - func (v Value) MapKey() MapKey { - switch v.typ { - case boolType, int32Type, int64Type, uint32Type, uint64Type, stringType: -@@ -378,8 +378,8 @@ func (v Value) MapKey() MapKey { - } - - // MapKey is used to index maps, where the Go type of the MapKey must match --// the specified key Kind (see MessageDescriptor.IsMapEntry). --// The following shows what Go type is used to represent each proto Kind: -+// the specified key [Kind] (see [MessageDescriptor.IsMapEntry]). -+// The following shows what Go type is used to represent each proto [Kind]: - // - // â•”â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— - // â•‘ Go type │ Protobuf kind â•‘ -@@ -392,13 +392,13 @@ func (v Value) MapKey() MapKey { - // â•‘ string │ StringKind â•‘ - // â•šâ•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• - // --// A MapKey is constructed and accessed through a Value: -+// A MapKey is constructed and accessed through a [Value]: - // - // k := ValueOf("hash").MapKey() // convert string to MapKey - // s := k.String() // convert MapKey to string - // --// The MapKey is a strict subset of valid types used in Value; --// converting a Value to a MapKey with an invalid type panics. -+// The MapKey is a strict subset of valid types used in [Value]; -+// converting a [Value] to a MapKey with an invalid type panics. - type MapKey value - - // IsValid reports whether k is populated with a value. -@@ -426,13 +426,13 @@ func (k MapKey) Uint() uint64 { - return Value(k).Uint() - } - --// String returns k as a string. Since this method implements fmt.Stringer, -+// String returns k as a string. Since this method implements [fmt.Stringer], - // this returns the formatted string value for any non-string type. - func (k MapKey) String() string { - return Value(k).String() - } - --// Value returns k as a Value. -+// Value returns k as a [Value]. - func (k MapKey) Value() Value { - return Value(k) - } -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -similarity index 97% -rename from vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -rename to vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -index 702ddf22..b1fdbe3e 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -@@ -2,8 +2,8 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build !purego && !appengine --// +build !purego,!appengine -+//go:build !purego && !appengine && !go1.21 -+// +build !purego,!appengine,!go1.21 - - package protoreflect - -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go -new file mode 100644 -index 00000000..43547011 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go -@@ -0,0 +1,87 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine && go1.21 -+// +build !purego,!appengine,go1.21 -+ -+package protoreflect -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/internal/pragma" -+) -+ -+type ( -+ ifaceHeader struct { -+ _ [0]interface{} // if interfaces have greater alignment than unsafe.Pointer, this will enforce it. -+ Type unsafe.Pointer -+ Data unsafe.Pointer -+ } -+) -+ -+var ( -+ nilType = typeOf(nil) -+ boolType = typeOf(*new(bool)) -+ int32Type = typeOf(*new(int32)) -+ int64Type = typeOf(*new(int64)) -+ uint32Type = typeOf(*new(uint32)) -+ uint64Type = typeOf(*new(uint64)) -+ float32Type = typeOf(*new(float32)) -+ float64Type = typeOf(*new(float64)) -+ stringType = typeOf(*new(string)) -+ bytesType = typeOf(*new([]byte)) -+ enumType = typeOf(*new(EnumNumber)) -+) -+ -+// typeOf returns a pointer to the Go type information. -+// The pointer is comparable and equal if and only if the types are identical. -+func typeOf(t interface{}) unsafe.Pointer { -+ return (*ifaceHeader)(unsafe.Pointer(&t)).Type -+} -+ -+// value is a union where only one type can be represented at a time. -+// The struct is 24B large on 64-bit systems and requires the minimum storage -+// necessary to represent each possible type. -+// -+// The Go GC needs to be able to scan variables containing pointers. -+// As such, pointers and non-pointers cannot be intermixed. -+type value struct { -+ pragma.DoNotCompare // 0B -+ -+ // typ stores the type of the value as a pointer to the Go type. -+ typ unsafe.Pointer // 8B -+ -+ // ptr stores the data pointer for a String, Bytes, or interface value. -+ ptr unsafe.Pointer // 8B -+ -+ // num stores a Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, or -+ // Enum value as a raw uint64. -+ // -+ // It is also used to store the length of a String or Bytes value; -+ // the capacity is ignored. -+ num uint64 // 8B -+} -+ -+func valueOfString(v string) Value { -+ return Value{typ: stringType, ptr: unsafe.Pointer(unsafe.StringData(v)), num: uint64(len(v))} -+} -+func valueOfBytes(v []byte) Value { -+ return Value{typ: bytesType, ptr: unsafe.Pointer(unsafe.SliceData(v)), num: uint64(len(v))} -+} -+func valueOfIface(v interface{}) Value { -+ p := (*ifaceHeader)(unsafe.Pointer(&v)) -+ return Value{typ: p.Type, ptr: p.Data} -+} -+ -+func (v Value) getString() string { -+ return unsafe.String((*byte)(v.ptr), v.num) -+} -+func (v Value) getBytes() []byte { -+ return unsafe.Slice((*byte)(v.ptr), v.num) -+} -+func (v Value) getIface() (x interface{}) { -+ *(*ifaceHeader)(unsafe.Pointer(&x)) = ifaceHeader{Type: v.typ, Data: v.ptr} -+ return x -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -index aeb55977..6267dc52 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -@@ -5,12 +5,12 @@ - // Package protoregistry provides data structures to register and lookup - // protobuf descriptor types. - // --// The Files registry contains file descriptors and provides the ability -+// The [Files] registry contains file descriptors and provides the ability - // to iterate over the files or lookup a specific descriptor within the files. --// Files only contains protobuf descriptors and has no understanding of Go -+// [Files] only contains protobuf descriptors and has no understanding of Go - // type information that may be associated with each descriptor. - // --// The Types registry contains descriptor types for which there is a known -+// The [Types] registry contains descriptor types for which there is a known - // Go type associated with that descriptor. It provides the ability to iterate - // over the registered types or lookup a type by name. - package protoregistry -@@ -218,7 +218,7 @@ func (r *Files) checkGenProtoConflict(path string) { - - // FindDescriptorByName looks up a descriptor by the full name. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Files) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) { - if r == nil { - return nil, NotFound -@@ -310,7 +310,7 @@ func (s *nameSuffix) Pop() (name protoreflect.Name) { - - // FindFileByPath looks up a file by the path. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - // This returns an error if multiple files have the same path. - func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) { - if r == nil { -@@ -431,7 +431,7 @@ func rangeTopLevelDescriptors(fd protoreflect.FileDescriptor, f func(protoreflec - // A compliant implementation must deterministically return the same type - // if no error is encountered. - // --// The Types type implements this interface. -+// The [Types] type implements this interface. - type MessageTypeResolver interface { - // FindMessageByName looks up a message by its full name. - // E.g., "google.protobuf.Any" -@@ -451,7 +451,7 @@ type MessageTypeResolver interface { - // A compliant implementation must deterministically return the same type - // if no error is encountered. - // --// The Types type implements this interface. -+// The [Types] type implements this interface. - type ExtensionTypeResolver interface { - // FindExtensionByName looks up a extension field by the field's full name. - // Note that this is the full name of the field as determined by -@@ -590,7 +590,7 @@ func (r *Types) register(kind string, desc protoreflect.Descriptor, typ interfac - // FindEnumByName looks up an enum by its full name. - // E.g., "google.protobuf.Field.Kind". - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumType, error) { - if r == nil { - return nil, NotFound -@@ -611,7 +611,7 @@ func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumTyp - // FindMessageByName looks up a message by its full name, - // e.g. "google.protobuf.Any". - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) { - if r == nil { - return nil, NotFound -@@ -632,7 +632,7 @@ func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.M - // FindMessageByURL looks up a message by a URL identifier. - // See documentation on google.protobuf.Any.type_url for the URL format. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { - // This function is similar to FindMessageByName but - // truncates anything before and including '/' in the URL. -@@ -662,7 +662,7 @@ func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { - // where the extension is declared and is unrelated to the full name of the - // message being extended. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { - if r == nil { - return nil, NotFound -@@ -703,7 +703,7 @@ func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.E - // FindExtensionByNumber looks up a extension field by the field number - // within some parent message, identified by full name. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { - if r == nil { - return nil, NotFound -diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -index 04c00f73..78624cf6 100644 ---- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -@@ -48,6 +48,103 @@ import ( - sync "sync" - ) - -+// The full set of known editions. -+type Edition int32 -+ -+const ( -+ // A placeholder for an unknown edition value. -+ Edition_EDITION_UNKNOWN Edition = 0 -+ // Legacy syntax "editions". These pre-date editions, but behave much like -+ // distinct editions. These can't be used to specify the edition of proto -+ // files, but feature definitions must supply proto2/proto3 defaults for -+ // backwards compatibility. -+ Edition_EDITION_PROTO2 Edition = 998 -+ Edition_EDITION_PROTO3 Edition = 999 -+ // Editions that have been released. The specific values are arbitrary and -+ // should not be depended on, but they will always be time-ordered for easy -+ // comparison. -+ Edition_EDITION_2023 Edition = 1000 -+ Edition_EDITION_2024 Edition = 1001 -+ // Placeholder editions for testing feature resolution. These should not be -+ // used or relyed on outside of tests. -+ Edition_EDITION_1_TEST_ONLY Edition = 1 -+ Edition_EDITION_2_TEST_ONLY Edition = 2 -+ Edition_EDITION_99997_TEST_ONLY Edition = 99997 -+ Edition_EDITION_99998_TEST_ONLY Edition = 99998 -+ Edition_EDITION_99999_TEST_ONLY Edition = 99999 -+ // Placeholder for specifying unbounded edition support. This should only -+ // ever be used by plugins that can expect to never require any changes to -+ // support a new edition. -+ Edition_EDITION_MAX Edition = 2147483647 -+) -+ -+// Enum value maps for Edition. -+var ( -+ Edition_name = map[int32]string{ -+ 0: "EDITION_UNKNOWN", -+ 998: "EDITION_PROTO2", -+ 999: "EDITION_PROTO3", -+ 1000: "EDITION_2023", -+ 1001: "EDITION_2024", -+ 1: "EDITION_1_TEST_ONLY", -+ 2: "EDITION_2_TEST_ONLY", -+ 99997: "EDITION_99997_TEST_ONLY", -+ 99998: "EDITION_99998_TEST_ONLY", -+ 99999: "EDITION_99999_TEST_ONLY", -+ 2147483647: "EDITION_MAX", -+ } -+ Edition_value = map[string]int32{ -+ "EDITION_UNKNOWN": 0, -+ "EDITION_PROTO2": 998, -+ "EDITION_PROTO3": 999, -+ "EDITION_2023": 1000, -+ "EDITION_2024": 1001, -+ "EDITION_1_TEST_ONLY": 1, -+ "EDITION_2_TEST_ONLY": 2, -+ "EDITION_99997_TEST_ONLY": 99997, -+ "EDITION_99998_TEST_ONLY": 99998, -+ "EDITION_99999_TEST_ONLY": 99999, -+ "EDITION_MAX": 2147483647, -+ } -+) -+ -+func (x Edition) Enum() *Edition { -+ p := new(Edition) -+ *p = x -+ return p -+} -+ -+func (x Edition) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (Edition) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+} -+ -+func (Edition) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[0] -+} -+ -+func (x Edition) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *Edition) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = Edition(num) -+ return nil -+} -+ -+// Deprecated: Use Edition.Descriptor instead. -+func (Edition) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0} -+} -+ - // The verification state of the extension range. - type ExtensionRangeOptions_VerificationState int32 - -@@ -80,11 +177,11 @@ func (x ExtensionRangeOptions_VerificationState) String() string { - } - - func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() - } - - func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[0] -+ return &file_google_protobuf_descriptor_proto_enumTypes[1] - } - - func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber { -@@ -125,9 +222,10 @@ const ( - FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 - FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 - // Tag-delimited aggregate. -- // Group type is deprecated and not supported in proto3. However, Proto3 -+ // Group type is deprecated and not supported after google.protobuf. However, Proto3 - // implementations should still be able to parse the group wire format and -- // treat group fields as unknown fields. -+ // treat group fields as unknown fields. In Editions, the group wire format -+ // can be enabled via the `message_encoding` feature. - FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 - FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 // Length-delimited aggregate. - // New in version 2. -@@ -195,11 +293,11 @@ func (x FieldDescriptorProto_Type) String() string { - } - - func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() - } - - func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[1] -+ return &file_google_protobuf_descriptor_proto_enumTypes[2] - } - - func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { -@@ -226,21 +324,24 @@ type FieldDescriptorProto_Label int32 - const ( - // 0 is reserved for errors - FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 -- FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 - FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 -+ // The required label is only allowed in google.protobuf. In proto3 and Editions -+ // it's explicitly prohibited. In Editions, the `field_presence` feature -+ // can be used to get this behavior. -+ FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 - ) - - // Enum value maps for FieldDescriptorProto_Label. - var ( - FieldDescriptorProto_Label_name = map[int32]string{ - 1: "LABEL_OPTIONAL", -- 2: "LABEL_REQUIRED", - 3: "LABEL_REPEATED", -+ 2: "LABEL_REQUIRED", - } - FieldDescriptorProto_Label_value = map[string]int32{ - "LABEL_OPTIONAL": 1, -- "LABEL_REQUIRED": 2, - "LABEL_REPEATED": 3, -+ "LABEL_REQUIRED": 2, - } - ) - -@@ -255,11 +356,11 @@ func (x FieldDescriptorProto_Label) String() string { - } - - func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() - } - - func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[2] -+ return &file_google_protobuf_descriptor_proto_enumTypes[3] - } - - func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { -@@ -316,11 +417,11 @@ func (x FileOptions_OptimizeMode) String() string { - } - - func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() - } - - func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[3] -+ return &file_google_protobuf_descriptor_proto_enumTypes[4] - } - - func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { -@@ -382,11 +483,11 @@ func (x FieldOptions_CType) String() string { - } - - func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() - } - - func (FieldOptions_CType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[4] -+ return &file_google_protobuf_descriptor_proto_enumTypes[5] - } - - func (x FieldOptions_CType) Number() protoreflect.EnumNumber { -@@ -444,11 +545,11 @@ func (x FieldOptions_JSType) String() string { - } - - func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() - } - - func (FieldOptions_JSType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[5] -+ return &file_google_protobuf_descriptor_proto_enumTypes[6] - } - - func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { -@@ -506,11 +607,11 @@ func (x FieldOptions_OptionRetention) String() string { - } - - func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() - } - - func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[6] -+ return &file_google_protobuf_descriptor_proto_enumTypes[7] - } - - func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { -@@ -590,11 +691,11 @@ func (x FieldOptions_OptionTargetType) String() string { - } - - func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() - } - - func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[7] -+ return &file_google_protobuf_descriptor_proto_enumTypes[8] - } - - func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { -@@ -652,11 +753,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { - } - - func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() - } - - func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[8] -+ return &file_google_protobuf_descriptor_proto_enumTypes[9] - } - - func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { -@@ -678,6 +779,363 @@ func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0} - } - -+type FeatureSet_FieldPresence int32 -+ -+const ( -+ FeatureSet_FIELD_PRESENCE_UNKNOWN FeatureSet_FieldPresence = 0 -+ FeatureSet_EXPLICIT FeatureSet_FieldPresence = 1 -+ FeatureSet_IMPLICIT FeatureSet_FieldPresence = 2 -+ FeatureSet_LEGACY_REQUIRED FeatureSet_FieldPresence = 3 -+) -+ -+// Enum value maps for FeatureSet_FieldPresence. -+var ( -+ FeatureSet_FieldPresence_name = map[int32]string{ -+ 0: "FIELD_PRESENCE_UNKNOWN", -+ 1: "EXPLICIT", -+ 2: "IMPLICIT", -+ 3: "LEGACY_REQUIRED", -+ } -+ FeatureSet_FieldPresence_value = map[string]int32{ -+ "FIELD_PRESENCE_UNKNOWN": 0, -+ "EXPLICIT": 1, -+ "IMPLICIT": 2, -+ "LEGACY_REQUIRED": 3, -+ } -+) -+ -+func (x FeatureSet_FieldPresence) Enum() *FeatureSet_FieldPresence { -+ p := new(FeatureSet_FieldPresence) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_FieldPresence) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_FieldPresence) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[10].Descriptor() -+} -+ -+func (FeatureSet_FieldPresence) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[10] -+} -+ -+func (x FeatureSet_FieldPresence) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_FieldPresence) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_FieldPresence(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_FieldPresence.Descriptor instead. -+func (FeatureSet_FieldPresence) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} -+} -+ -+type FeatureSet_EnumType int32 -+ -+const ( -+ FeatureSet_ENUM_TYPE_UNKNOWN FeatureSet_EnumType = 0 -+ FeatureSet_OPEN FeatureSet_EnumType = 1 -+ FeatureSet_CLOSED FeatureSet_EnumType = 2 -+) -+ -+// Enum value maps for FeatureSet_EnumType. -+var ( -+ FeatureSet_EnumType_name = map[int32]string{ -+ 0: "ENUM_TYPE_UNKNOWN", -+ 1: "OPEN", -+ 2: "CLOSED", -+ } -+ FeatureSet_EnumType_value = map[string]int32{ -+ "ENUM_TYPE_UNKNOWN": 0, -+ "OPEN": 1, -+ "CLOSED": 2, -+ } -+) -+ -+func (x FeatureSet_EnumType) Enum() *FeatureSet_EnumType { -+ p := new(FeatureSet_EnumType) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_EnumType) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_EnumType) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[11].Descriptor() -+} -+ -+func (FeatureSet_EnumType) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[11] -+} -+ -+func (x FeatureSet_EnumType) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_EnumType) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_EnumType(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_EnumType.Descriptor instead. -+func (FeatureSet_EnumType) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 1} -+} -+ -+type FeatureSet_RepeatedFieldEncoding int32 -+ -+const ( -+ FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN FeatureSet_RepeatedFieldEncoding = 0 -+ FeatureSet_PACKED FeatureSet_RepeatedFieldEncoding = 1 -+ FeatureSet_EXPANDED FeatureSet_RepeatedFieldEncoding = 2 -+) -+ -+// Enum value maps for FeatureSet_RepeatedFieldEncoding. -+var ( -+ FeatureSet_RepeatedFieldEncoding_name = map[int32]string{ -+ 0: "REPEATED_FIELD_ENCODING_UNKNOWN", -+ 1: "PACKED", -+ 2: "EXPANDED", -+ } -+ FeatureSet_RepeatedFieldEncoding_value = map[string]int32{ -+ "REPEATED_FIELD_ENCODING_UNKNOWN": 0, -+ "PACKED": 1, -+ "EXPANDED": 2, -+ } -+) -+ -+func (x FeatureSet_RepeatedFieldEncoding) Enum() *FeatureSet_RepeatedFieldEncoding { -+ p := new(FeatureSet_RepeatedFieldEncoding) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_RepeatedFieldEncoding) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_RepeatedFieldEncoding) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[12].Descriptor() -+} -+ -+func (FeatureSet_RepeatedFieldEncoding) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[12] -+} -+ -+func (x FeatureSet_RepeatedFieldEncoding) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_RepeatedFieldEncoding) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_RepeatedFieldEncoding(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_RepeatedFieldEncoding.Descriptor instead. -+func (FeatureSet_RepeatedFieldEncoding) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 2} -+} -+ -+type FeatureSet_Utf8Validation int32 -+ -+const ( -+ FeatureSet_UTF8_VALIDATION_UNKNOWN FeatureSet_Utf8Validation = 0 -+ FeatureSet_VERIFY FeatureSet_Utf8Validation = 2 -+ FeatureSet_NONE FeatureSet_Utf8Validation = 3 -+) -+ -+// Enum value maps for FeatureSet_Utf8Validation. -+var ( -+ FeatureSet_Utf8Validation_name = map[int32]string{ -+ 0: "UTF8_VALIDATION_UNKNOWN", -+ 2: "VERIFY", -+ 3: "NONE", -+ } -+ FeatureSet_Utf8Validation_value = map[string]int32{ -+ "UTF8_VALIDATION_UNKNOWN": 0, -+ "VERIFY": 2, -+ "NONE": 3, -+ } -+) -+ -+func (x FeatureSet_Utf8Validation) Enum() *FeatureSet_Utf8Validation { -+ p := new(FeatureSet_Utf8Validation) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_Utf8Validation) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_Utf8Validation) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[13].Descriptor() -+} -+ -+func (FeatureSet_Utf8Validation) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[13] -+} -+ -+func (x FeatureSet_Utf8Validation) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_Utf8Validation) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_Utf8Validation(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_Utf8Validation.Descriptor instead. -+func (FeatureSet_Utf8Validation) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 3} -+} -+ -+type FeatureSet_MessageEncoding int32 -+ -+const ( -+ FeatureSet_MESSAGE_ENCODING_UNKNOWN FeatureSet_MessageEncoding = 0 -+ FeatureSet_LENGTH_PREFIXED FeatureSet_MessageEncoding = 1 -+ FeatureSet_DELIMITED FeatureSet_MessageEncoding = 2 -+) -+ -+// Enum value maps for FeatureSet_MessageEncoding. -+var ( -+ FeatureSet_MessageEncoding_name = map[int32]string{ -+ 0: "MESSAGE_ENCODING_UNKNOWN", -+ 1: "LENGTH_PREFIXED", -+ 2: "DELIMITED", -+ } -+ FeatureSet_MessageEncoding_value = map[string]int32{ -+ "MESSAGE_ENCODING_UNKNOWN": 0, -+ "LENGTH_PREFIXED": 1, -+ "DELIMITED": 2, -+ } -+) -+ -+func (x FeatureSet_MessageEncoding) Enum() *FeatureSet_MessageEncoding { -+ p := new(FeatureSet_MessageEncoding) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_MessageEncoding) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_MessageEncoding) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[14].Descriptor() -+} -+ -+func (FeatureSet_MessageEncoding) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[14] -+} -+ -+func (x FeatureSet_MessageEncoding) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_MessageEncoding) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_MessageEncoding(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_MessageEncoding.Descriptor instead. -+func (FeatureSet_MessageEncoding) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 4} -+} -+ -+type FeatureSet_JsonFormat int32 -+ -+const ( -+ FeatureSet_JSON_FORMAT_UNKNOWN FeatureSet_JsonFormat = 0 -+ FeatureSet_ALLOW FeatureSet_JsonFormat = 1 -+ FeatureSet_LEGACY_BEST_EFFORT FeatureSet_JsonFormat = 2 -+) -+ -+// Enum value maps for FeatureSet_JsonFormat. -+var ( -+ FeatureSet_JsonFormat_name = map[int32]string{ -+ 0: "JSON_FORMAT_UNKNOWN", -+ 1: "ALLOW", -+ 2: "LEGACY_BEST_EFFORT", -+ } -+ FeatureSet_JsonFormat_value = map[string]int32{ -+ "JSON_FORMAT_UNKNOWN": 0, -+ "ALLOW": 1, -+ "LEGACY_BEST_EFFORT": 2, -+ } -+) -+ -+func (x FeatureSet_JsonFormat) Enum() *FeatureSet_JsonFormat { -+ p := new(FeatureSet_JsonFormat) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_JsonFormat) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_JsonFormat) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[15].Descriptor() -+} -+ -+func (FeatureSet_JsonFormat) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[15] -+} -+ -+func (x FeatureSet_JsonFormat) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_JsonFormat) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_JsonFormat(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_JsonFormat.Descriptor instead. -+func (FeatureSet_JsonFormat) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 5} -+} -+ - // Represents the identified object's effect on the element in the original - // .proto file. - type GeneratedCodeInfo_Annotation_Semantic int32 -@@ -716,11 +1174,11 @@ func (x GeneratedCodeInfo_Annotation_Semantic) String() string { - } - - func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[16].Descriptor() - } - - func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[9] -+ return &file_google_protobuf_descriptor_proto_enumTypes[16] - } - - func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { -@@ -739,7 +1197,7 @@ func (x *GeneratedCodeInfo_Annotation_Semantic) UnmarshalJSON(b []byte) error { - - // Deprecated: Use GeneratedCodeInfo_Annotation_Semantic.Descriptor instead. - func (GeneratedCodeInfo_Annotation_Semantic) EnumDescriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0, 0} - } - - // The protocol compiler can output a FileDescriptorSet containing the .proto -@@ -822,8 +1280,8 @@ type FileDescriptorProto struct { - // - // If `edition` is present, this value must be "editions". - Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` -- // The edition of the proto file, which is an opaque string. -- Edition *string `protobuf:"bytes,13,opt,name=edition" json:"edition,omitempty"` -+ // The edition of the proto file. -+ Edition *Edition `protobuf:"varint,14,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` - } - - func (x *FileDescriptorProto) Reset() { -@@ -942,11 +1400,11 @@ func (x *FileDescriptorProto) GetSyntax() string { - return "" - } - --func (x *FileDescriptorProto) GetEdition() string { -+func (x *FileDescriptorProto) GetEdition() Edition { - if x != nil && x.Edition != nil { - return *x.Edition - } -- return "" -+ return Edition_EDITION_UNKNOWN - } - - // Describes a message type. -@@ -1079,13 +1537,14 @@ type ExtensionRangeOptions struct { - - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -- // go/protobuf-stripping-extension-declarations -- // Like Metadata, but we use a repeated field to hold all extension -- // declarations. This should avoid the size increases of transforming a large -- // extension range into small ranges in generated binaries. -+ // For external users: DO NOT USE. We are in the process of open sourcing -+ // extension declaration and executing internal cleanups before it can be -+ // used externally. - Declaration []*ExtensionRangeOptions_Declaration `protobuf:"bytes,2,rep,name=declaration" json:"declaration,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,50,opt,name=features" json:"features,omitempty"` - // The verification state of the range. -- // TODO(b/278783756): flip the default to DECLARATION once all empty ranges -+ // TODO: flip the default to DECLARATION once all empty ranges - // are marked as UNVERIFIED. - Verification *ExtensionRangeOptions_VerificationState `protobuf:"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1" json:"verification,omitempty"` - } -@@ -1141,6 +1600,13 @@ func (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declar - return nil - } - -+func (x *ExtensionRangeOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState { - if x != nil && x.Verification != nil { - return *x.Verification -@@ -1186,12 +1652,12 @@ type FieldDescriptorProto struct { - // If true, this is a proto3 "optional". When a proto3 field is optional, it - // tracks presence regardless of field type. - // -- // When proto3_optional is true, this field must be belong to a oneof to -- // signal to old proto3 clients that presence is tracked for this field. This -- // oneof is known as a "synthetic" oneof, and this field must be its sole -- // member (each proto3 optional field gets its own synthetic oneof). Synthetic -- // oneofs exist in the descriptor only, and do not generate any API. Synthetic -- // oneofs must be ordered after all "real" oneofs. -+ // When proto3_optional is true, this field must belong to a oneof to signal -+ // to old proto3 clients that presence is tracked for this field. This oneof -+ // is known as a "synthetic" oneof, and this field must be its sole member -+ // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs -+ // exist in the descriptor only, and do not generate any API. Synthetic oneofs -+ // must be ordered after all "real" oneofs. - // - // For message fields, proto3_optional doesn't create any semantic change, - // since non-repeated message fields always track presence. However it still -@@ -1738,7 +2204,6 @@ type FileOptions struct { - CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` - JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` - PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` -- PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` - // Is this file deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for everything in the file, or it will be completely ignored; in the very -@@ -1772,6 +2237,8 @@ type FileOptions struct { - // is empty. When this option is not set, the package name will be used for - // determining the ruby package. - RubyPackage *string `protobuf:"bytes,45,opt,name=ruby_package,json=rubyPackage" json:"ruby_package,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,50,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. - // See the documentation for the "Options" section above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -@@ -1785,7 +2252,6 @@ const ( - Default_FileOptions_CcGenericServices = bool(false) - Default_FileOptions_JavaGenericServices = bool(false) - Default_FileOptions_PyGenericServices = bool(false) -- Default_FileOptions_PhpGenericServices = bool(false) - Default_FileOptions_Deprecated = bool(false) - Default_FileOptions_CcEnableArenas = bool(true) - ) -@@ -1893,13 +2359,6 @@ func (x *FileOptions) GetPyGenericServices() bool { - return Default_FileOptions_PyGenericServices - } - --func (x *FileOptions) GetPhpGenericServices() bool { -- if x != nil && x.PhpGenericServices != nil { -- return *x.PhpGenericServices -- } -- return Default_FileOptions_PhpGenericServices --} -- - func (x *FileOptions) GetDeprecated() bool { - if x != nil && x.Deprecated != nil { - return *x.Deprecated -@@ -1963,6 +2422,13 @@ func (x *FileOptions) GetRubyPackage() string { - return "" - } - -+func (x *FileOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *FileOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2006,10 +2472,6 @@ type MessageOptions struct { - // for the message, or it will be completely ignored; in the very least, - // this is a formalization for deprecating messages. - Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -- // NOTE: Do not set the option in .proto files. Always use the maps syntax -- // instead. The option should only be implicitly set by the proto compiler -- // parser. -- // - // Whether the message is an automatically generated map entry type for the - // maps field. - // -@@ -2030,6 +2492,10 @@ type MessageOptions struct { - // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementations still need to work as - // if the field is a repeated message field. -+ // -+ // NOTE: Do not set the option in .proto files. Always use the maps syntax -+ // instead. The option should only be implicitly set by the proto compiler -+ // parser. - MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` - // Enable the legacy handling of JSON field name conflicts. This lowercases - // and strips underscored from the fields before comparison in proto3 only. -@@ -2039,11 +2505,13 @@ type MessageOptions struct { - // This should only be used as a temporary measure against broken builds due - // to the change in behavior for JSON field name conflicts. - // -- // TODO(b/261750190) This is legacy behavior we plan to remove once downstream -+ // TODO This is legacy behavior we plan to remove once downstream - // teams have had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,11,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,12,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2123,6 +2591,13 @@ func (x *MessageOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - return false - } - -+func (x *MessageOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2147,7 +2622,9 @@ type FieldOptions struct { - // a more efficient representation on the wire. Rather than repeatedly - // writing the tag and type for each element, the entire array is encoded as - // a single length-delimited blob. In proto3, only explicit setting it to -- // false will avoid using packed encoding. -+ // false will avoid using packed encoding. This option is prohibited in -+ // Editions, but the `repeated_field_encoding` feature can be used to control -+ // the behavior. - Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` - // The jstype option determines the JavaScript type used for values of the - // field. The option is permitted only for 64 bit integral and fixed types -@@ -2178,19 +2655,11 @@ type FieldOptions struct { - // call from multiple threads concurrently, while non-const methods continue - // to require exclusive access. - // -- // Note that implementations may choose not to check required fields within -- // a lazy sub-message. That is, calling IsInitialized() on the outer message -- // may return true even if the inner message has missing required fields. -- // This is necessary because otherwise the inner message would have to be -- // parsed in order to perform the check, defeating the purpose of lazy -- // parsing. An implementation which chooses not to check required fields -- // must be consistent about it. That is, for any particular sub-message, the -- // implementation must either *always* check its required fields, or *never* -- // check its required fields, regardless of whether or not the message has -- // been parsed. -- // -- // As of May 2022, lazy verifies the contents of the byte stream during -- // parsing. An invalid byte stream will cause the overall parsing to fail. -+ // Note that lazy message fields are still eagerly verified to check -+ // ill-formed wireformat or missing required fields. Calling IsInitialized() -+ // on the outer message would fail if the inner message has missing required -+ // fields. Failed verification would result in parsing failure (except when -+ // uninitialized messages are acceptable). - Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` - // unverified_lazy does no correctness checks on the byte stream. This should - // only be used where lazy with verification is prohibitive for performance -@@ -2205,11 +2674,12 @@ type FieldOptions struct { - Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // Indicate that the field value should not be printed out when using debug - // formats, e.g. when the field contains sensitive credentials. -- DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -- Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -- // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -- Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -- Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` -+ DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -+ Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -+ Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` -+ EditionDefaults []*FieldOptions_EditionDefault `protobuf:"bytes,20,rep,name=edition_defaults,json=editionDefaults" json:"edition_defaults,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,21,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2320,17 +2790,23 @@ func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { - return FieldOptions_RETENTION_UNKNOWN - } - --// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. --func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { -- if x != nil && x.Target != nil { -- return *x.Target -+func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+ if x != nil { -+ return x.Targets - } -- return FieldOptions_TARGET_TYPE_UNKNOWN -+ return nil - } - --func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+func (x *FieldOptions) GetEditionDefaults() []*FieldOptions_EditionDefault { - if x != nil { -- return x.Targets -+ return x.EditionDefaults -+ } -+ return nil -+} -+ -+func (x *FieldOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features - } - return nil - } -@@ -2348,6 +2824,8 @@ type OneofOptions struct { - unknownFields protoimpl.UnknownFields - extensionFields protoimpl.ExtensionFields - -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,1,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2384,6 +2862,13 @@ func (*OneofOptions) Descriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13} - } - -+func (x *OneofOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2409,11 +2894,13 @@ type EnumOptions struct { - // and strips underscored from the fields before comparison in proto3 only. - // The new behavior takes `json_name` into account and applies to proto2 as - // well. -- // TODO(b/261750190) Remove this legacy behavior once downstream teams have -+ // TODO Remove this legacy behavior once downstream teams have - // had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,6,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,7,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2477,6 +2964,13 @@ func (x *EnumOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - return false - } - -+func (x *EnumOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2495,13 +2989,20 @@ type EnumValueOptions struct { - // for the enum value, or it will be completely ignored; in the very least, - // this is a formalization for deprecating enum values. - Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"` -+ // Indicate that fields annotated with this enum value should not be printed -+ // out when using debug formats, e.g. when the field contains sensitive -+ // credentials. -+ DebugRedact *bool `protobuf:"varint,3,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } - - // Default values for EnumValueOptions fields. - const ( -- Default_EnumValueOptions_Deprecated = bool(false) -+ Default_EnumValueOptions_Deprecated = bool(false) -+ Default_EnumValueOptions_DebugRedact = bool(false) - ) - - func (x *EnumValueOptions) Reset() { -@@ -2543,6 +3044,20 @@ func (x *EnumValueOptions) GetDeprecated() bool { - return Default_EnumValueOptions_Deprecated - } - -+func (x *EnumValueOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ -+func (x *EnumValueOptions) GetDebugRedact() bool { -+ if x != nil && x.DebugRedact != nil { -+ return *x.DebugRedact -+ } -+ return Default_EnumValueOptions_DebugRedact -+} -+ - func (x *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2556,6 +3071,8 @@ type ServiceOptions struct { - unknownFields protoimpl.UnknownFields - extensionFields protoimpl.ExtensionFields - -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,34,opt,name=features" json:"features,omitempty"` - // Is this service deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the service, or it will be completely ignored; in the very least, -@@ -2602,6 +3119,13 @@ func (*ServiceOptions) Descriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16} - } - -+func (x *ServiceOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *ServiceOptions) GetDeprecated() bool { - if x != nil && x.Deprecated != nil { - return *x.Deprecated -@@ -2628,6 +3152,8 @@ type MethodOptions struct { - // this is a formalization for deprecating methods. - Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,35,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2684,6 +3210,13 @@ func (x *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { - return Default_MethodOptions_IdempotencyLevel - } - -+func (x *MethodOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2770,28 +3303,193 @@ func (x *UninterpretedOption) GetNegativeIntValue() int64 { - if x != nil && x.NegativeIntValue != nil { - return *x.NegativeIntValue - } -- return 0 -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetDoubleValue() float64 { -+ if x != nil && x.DoubleValue != nil { -+ return *x.DoubleValue -+ } -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetStringValue() []byte { -+ if x != nil { -+ return x.StringValue -+ } -+ return nil -+} -+ -+func (x *UninterpretedOption) GetAggregateValue() string { -+ if x != nil && x.AggregateValue != nil { -+ return *x.AggregateValue -+ } -+ return "" -+} -+ -+// TODO Enums in C++ gencode (and potentially other languages) are -+// not well scoped. This means that each of the feature enums below can clash -+// with each other. The short names we've chosen maximize call-site -+// readability, but leave us very open to this scenario. A future feature will -+// be designed and implemented to handle this, hopefully before we ever hit a -+// conflict here. -+type FeatureSet struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ FieldPresence *FeatureSet_FieldPresence `protobuf:"varint,1,opt,name=field_presence,json=fieldPresence,enum=google.protobuf.FeatureSet_FieldPresence" json:"field_presence,omitempty"` -+ EnumType *FeatureSet_EnumType `protobuf:"varint,2,opt,name=enum_type,json=enumType,enum=google.protobuf.FeatureSet_EnumType" json:"enum_type,omitempty"` -+ RepeatedFieldEncoding *FeatureSet_RepeatedFieldEncoding `protobuf:"varint,3,opt,name=repeated_field_encoding,json=repeatedFieldEncoding,enum=google.protobuf.FeatureSet_RepeatedFieldEncoding" json:"repeated_field_encoding,omitempty"` -+ Utf8Validation *FeatureSet_Utf8Validation `protobuf:"varint,4,opt,name=utf8_validation,json=utf8Validation,enum=google.protobuf.FeatureSet_Utf8Validation" json:"utf8_validation,omitempty"` -+ MessageEncoding *FeatureSet_MessageEncoding `protobuf:"varint,5,opt,name=message_encoding,json=messageEncoding,enum=google.protobuf.FeatureSet_MessageEncoding" json:"message_encoding,omitempty"` -+ JsonFormat *FeatureSet_JsonFormat `protobuf:"varint,6,opt,name=json_format,json=jsonFormat,enum=google.protobuf.FeatureSet_JsonFormat" json:"json_format,omitempty"` -+} -+ -+func (x *FeatureSet) Reset() { -+ *x = FeatureSet{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSet) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSet) ProtoMessage() {} -+ -+func (x *FeatureSet) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ if protoimpl.UnsafeEnabled && x != nil { -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ if ms.LoadMessageInfo() == nil { -+ ms.StoreMessageInfo(mi) -+ } -+ return ms -+ } -+ return mi.MessageOf(x) -+} -+ -+// Deprecated: Use FeatureSet.ProtoReflect.Descriptor instead. -+func (*FeatureSet) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} -+} -+ -+func (x *FeatureSet) GetFieldPresence() FeatureSet_FieldPresence { -+ if x != nil && x.FieldPresence != nil { -+ return *x.FieldPresence -+ } -+ return FeatureSet_FIELD_PRESENCE_UNKNOWN -+} -+ -+func (x *FeatureSet) GetEnumType() FeatureSet_EnumType { -+ if x != nil && x.EnumType != nil { -+ return *x.EnumType -+ } -+ return FeatureSet_ENUM_TYPE_UNKNOWN -+} -+ -+func (x *FeatureSet) GetRepeatedFieldEncoding() FeatureSet_RepeatedFieldEncoding { -+ if x != nil && x.RepeatedFieldEncoding != nil { -+ return *x.RepeatedFieldEncoding -+ } -+ return FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN -+} -+ -+func (x *FeatureSet) GetUtf8Validation() FeatureSet_Utf8Validation { -+ if x != nil && x.Utf8Validation != nil { -+ return *x.Utf8Validation -+ } -+ return FeatureSet_UTF8_VALIDATION_UNKNOWN -+} -+ -+func (x *FeatureSet) GetMessageEncoding() FeatureSet_MessageEncoding { -+ if x != nil && x.MessageEncoding != nil { -+ return *x.MessageEncoding -+ } -+ return FeatureSet_MESSAGE_ENCODING_UNKNOWN -+} -+ -+func (x *FeatureSet) GetJsonFormat() FeatureSet_JsonFormat { -+ if x != nil && x.JsonFormat != nil { -+ return *x.JsonFormat -+ } -+ return FeatureSet_JSON_FORMAT_UNKNOWN -+} -+ -+// A compiled specification for the defaults of a set of features. These -+// messages are generated from FeatureSet extensions and can be used to seed -+// feature resolution. The resolution with this object becomes a simple search -+// for the closest matching edition, followed by proto merges. -+type FeatureSetDefaults struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Defaults []*FeatureSetDefaults_FeatureSetEditionDefault `protobuf:"bytes,1,rep,name=defaults" json:"defaults,omitempty"` -+ // The minimum supported edition (inclusive) when this was constructed. -+ // Editions before this will not have defaults. -+ MinimumEdition *Edition `protobuf:"varint,4,opt,name=minimum_edition,json=minimumEdition,enum=google.protobuf.Edition" json:"minimum_edition,omitempty"` -+ // The maximum known edition (inclusive) when this was constructed. Editions -+ // after this will not have reliable defaults. -+ MaximumEdition *Edition `protobuf:"varint,5,opt,name=maximum_edition,json=maximumEdition,enum=google.protobuf.Edition" json:"maximum_edition,omitempty"` -+} -+ -+func (x *FeatureSetDefaults) Reset() { -+ *x = FeatureSetDefaults{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSetDefaults) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSetDefaults) ProtoMessage() {} -+ -+func (x *FeatureSetDefaults) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ if protoimpl.UnsafeEnabled && x != nil { -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ if ms.LoadMessageInfo() == nil { -+ ms.StoreMessageInfo(mi) -+ } -+ return ms -+ } -+ return mi.MessageOf(x) - } - --func (x *UninterpretedOption) GetDoubleValue() float64 { -- if x != nil && x.DoubleValue != nil { -- return *x.DoubleValue -- } -- return 0 -+// Deprecated: Use FeatureSetDefaults.ProtoReflect.Descriptor instead. -+func (*FeatureSetDefaults) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} - } - --func (x *UninterpretedOption) GetStringValue() []byte { -+func (x *FeatureSetDefaults) GetDefaults() []*FeatureSetDefaults_FeatureSetEditionDefault { - if x != nil { -- return x.StringValue -+ return x.Defaults - } - return nil - } - --func (x *UninterpretedOption) GetAggregateValue() string { -- if x != nil && x.AggregateValue != nil { -- return *x.AggregateValue -+func (x *FeatureSetDefaults) GetMinimumEdition() Edition { -+ if x != nil && x.MinimumEdition != nil { -+ return *x.MinimumEdition - } -- return "" -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FeatureSetDefaults) GetMaximumEdition() Edition { -+ if x != nil && x.MaximumEdition != nil { -+ return *x.MaximumEdition -+ } -+ return Edition_EDITION_UNKNOWN - } - - // Encapsulates information about the original source file from which a -@@ -2855,7 +3553,7 @@ type SourceCodeInfo struct { - func (x *SourceCodeInfo) Reset() { - *x = SourceCodeInfo{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2868,7 +3566,7 @@ func (x *SourceCodeInfo) String() string { - func (*SourceCodeInfo) ProtoMessage() {} - - func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -2881,7 +3579,7 @@ func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { - - // Deprecated: Use SourceCodeInfo.ProtoReflect.Descriptor instead. - func (*SourceCodeInfo) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21} - } - - func (x *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { -@@ -2907,7 +3605,7 @@ type GeneratedCodeInfo struct { - func (x *GeneratedCodeInfo) Reset() { - *x = GeneratedCodeInfo{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2920,7 +3618,7 @@ func (x *GeneratedCodeInfo) String() string { - func (*GeneratedCodeInfo) ProtoMessage() {} - - func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -2933,7 +3631,7 @@ func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { - - // Deprecated: Use GeneratedCodeInfo.ProtoReflect.Descriptor instead. - func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22} - } - - func (x *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { -@@ -2956,7 +3654,7 @@ type DescriptorProto_ExtensionRange struct { - func (x *DescriptorProto_ExtensionRange) Reset() { - *x = DescriptorProto_ExtensionRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2969,7 +3667,7 @@ func (x *DescriptorProto_ExtensionRange) String() string { - func (*DescriptorProto_ExtensionRange) ProtoMessage() {} - - func (x *DescriptorProto_ExtensionRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3021,7 +3719,7 @@ type DescriptorProto_ReservedRange struct { - func (x *DescriptorProto_ReservedRange) Reset() { - *x = DescriptorProto_ReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3034,7 +3732,7 @@ func (x *DescriptorProto_ReservedRange) String() string { - func (*DescriptorProto_ReservedRange) ProtoMessage() {} - - func (x *DescriptorProto_ReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3078,10 +3776,6 @@ type ExtensionRangeOptions_Declaration struct { - // Metadata.type, Declaration.type must have a leading dot for messages - // and enums. - Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` -- // Deprecated. Please use "repeated". -- // -- // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -- IsRepeated *bool `protobuf:"varint,4,opt,name=is_repeated,json=isRepeated" json:"is_repeated,omitempty"` - // If true, indicates that the number is reserved in the extension range, - // and any extension field with the number will fail to compile. Set this - // when a declared extension field is deleted. -@@ -3094,7 +3788,7 @@ type ExtensionRangeOptions_Declaration struct { - func (x *ExtensionRangeOptions_Declaration) Reset() { - *x = ExtensionRangeOptions_Declaration{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3107,7 +3801,7 @@ func (x *ExtensionRangeOptions_Declaration) String() string { - func (*ExtensionRangeOptions_Declaration) ProtoMessage() {} - - func (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3144,14 +3838,6 @@ func (x *ExtensionRangeOptions_Declaration) GetType() string { - return "" - } - --// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. --func (x *ExtensionRangeOptions_Declaration) GetIsRepeated() bool { -- if x != nil && x.IsRepeated != nil { -- return *x.IsRepeated -- } -- return false --} -- - func (x *ExtensionRangeOptions_Declaration) GetReserved() bool { - if x != nil && x.Reserved != nil { - return *x.Reserved -@@ -3184,7 +3870,7 @@ type EnumDescriptorProto_EnumReservedRange struct { - func (x *EnumDescriptorProto_EnumReservedRange) Reset() { - *x = EnumDescriptorProto_EnumReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3197,7 +3883,7 @@ func (x *EnumDescriptorProto_EnumReservedRange) String() string { - func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} - - func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3227,6 +3913,61 @@ func (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { - return 0 - } - -+type FieldOptions_EditionDefault struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Edition *Edition `protobuf:"varint,3,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` -+ Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` // Textproto value. -+} -+ -+func (x *FieldOptions_EditionDefault) Reset() { -+ *x = FieldOptions_EditionDefault{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FieldOptions_EditionDefault) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FieldOptions_EditionDefault) ProtoMessage() {} -+ -+func (x *FieldOptions_EditionDefault) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ if protoimpl.UnsafeEnabled && x != nil { -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ if ms.LoadMessageInfo() == nil { -+ ms.StoreMessageInfo(mi) -+ } -+ return ms -+ } -+ return mi.MessageOf(x) -+} -+ -+// Deprecated: Use FieldOptions_EditionDefault.ProtoReflect.Descriptor instead. -+func (*FieldOptions_EditionDefault) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0} -+} -+ -+func (x *FieldOptions_EditionDefault) GetEdition() Edition { -+ if x != nil && x.Edition != nil { -+ return *x.Edition -+ } -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FieldOptions_EditionDefault) GetValue() string { -+ if x != nil && x.Value != nil { -+ return *x.Value -+ } -+ return "" -+} -+ - // The name of the uninterpreted option. Each string represents a segment in - // a dot-separated name. is_extension is true iff a segment represents an - // extension (denoted with parentheses in options specs in .proto files). -@@ -3244,7 +3985,7 @@ type UninterpretedOption_NamePart struct { - func (x *UninterpretedOption_NamePart) Reset() { - *x = UninterpretedOption_NamePart{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3257,7 +3998,7 @@ func (x *UninterpretedOption_NamePart) String() string { - func (*UninterpretedOption_NamePart) ProtoMessage() {} - - func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3287,6 +4028,65 @@ func (x *UninterpretedOption_NamePart) GetIsExtension() bool { - return false - } - -+// A map from every known edition with a unique set of defaults to its -+// defaults. Not all editions may be contained here. For a given edition, -+// the defaults at the closest matching edition ordered at or before it should -+// be used. This field must be in strict ascending order by edition. -+type FeatureSetDefaults_FeatureSetEditionDefault struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Edition *Edition `protobuf:"varint,3,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` -+ Features *FeatureSet `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"` -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) Reset() { -+ *x = FeatureSetDefaults_FeatureSetEditionDefault{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[29] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSetDefaults_FeatureSetEditionDefault) ProtoMessage() {} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[29] -+ if protoimpl.UnsafeEnabled && x != nil { -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ if ms.LoadMessageInfo() == nil { -+ ms.StoreMessageInfo(mi) -+ } -+ return ms -+ } -+ return mi.MessageOf(x) -+} -+ -+// Deprecated: Use FeatureSetDefaults_FeatureSetEditionDefault.ProtoReflect.Descriptor instead. -+func (*FeatureSetDefaults_FeatureSetEditionDefault) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) GetEdition() Edition { -+ if x != nil && x.Edition != nil { -+ return *x.Edition -+ } -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - type SourceCodeInfo_Location struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache -@@ -3296,7 +4096,7 @@ type SourceCodeInfo_Location struct { - // location. - // - // Each element is a field number or an index. They form a path from -- // the root FileDescriptorProto to the place where the definition occurs. -+ // the root FileDescriptorProto to the place where the definition appears. - // For example, this path: - // - // [ 4, 3, 2, 7, 1 ] -@@ -3388,7 +4188,7 @@ type SourceCodeInfo_Location struct { - func (x *SourceCodeInfo_Location) Reset() { - *x = SourceCodeInfo_Location{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3401,7 +4201,7 @@ func (x *SourceCodeInfo_Location) String() string { - func (*SourceCodeInfo_Location) ProtoMessage() {} - - func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3414,7 +4214,7 @@ func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { - - // Deprecated: Use SourceCodeInfo_Location.ProtoReflect.Descriptor instead. - func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21, 0} - } - - func (x *SourceCodeInfo_Location) GetPath() []int32 { -@@ -3475,7 +4275,7 @@ type GeneratedCodeInfo_Annotation struct { - func (x *GeneratedCodeInfo_Annotation) Reset() { - *x = GeneratedCodeInfo_Annotation{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3488,7 +4288,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string { - func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} - - func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3501,7 +4301,7 @@ func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { - - // Deprecated: Use GeneratedCodeInfo_Annotation.ProtoReflect.Descriptor instead. - func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0} - } - - func (x *GeneratedCodeInfo_Annotation) GetPath() []int32 { -@@ -3550,7 +4350,7 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x66, 0x69, -- 0x6c, 0x65, 0x22, 0xfe, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x6c, 0x65, 0x22, 0x98, 0x05, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -@@ -3588,250 +4388,250 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, -- 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x64, 0x69, -- 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, -- 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, -- 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, -- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, -- 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -- 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -- 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, -- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -- 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -- 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, -- 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, -- 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -- 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, -- 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, -- 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -- 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, -+ 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, -+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, -+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, -+ 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, -+ 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, -+ 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, -+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, -+ 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, -- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, -- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, -- 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, -- 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, -- 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, -- 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, -+ 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, -+ 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, -+ 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, -+ 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, -+ 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, -+ 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, -+ 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, -+ 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -+ 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, -+ 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -+ 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, -+ 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, -+ 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, -+ 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -+ 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -+ 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, -+ 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, -+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, -+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, -+ 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, -+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xcc, 0x04, 0x0a, 0x15, 0x45, 0x78, -+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, -+ 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, -+ 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, -+ 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, -+ 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, -+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, -+ 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x12, 0x6d, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, -+ 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, -+ 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, -+ 0x65, 0x3a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x42, 0x03, 0x88, -+ 0x01, 0x02, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x1a, 0x94, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, -+ 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, -+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, -+ 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, -+ 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, -+ 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, -+ 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, -+ 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x34, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, -+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, -+ 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, -+ 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, -+ 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, -+ 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, -+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, -+ 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, -+ 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, -+ 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, -+ 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, -+ 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, -+ 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, -+ 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, -+ 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, -+ 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, -+ 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, -+ 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, -+ 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, -+ 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, -+ 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, -+ 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, -+ 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -+ 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, -+ 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, -+ 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, -+ 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, -+ 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x22, 0x63, 0x0a, 0x14, -+ 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, -+ 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, -+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, -+ 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, -+ 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, -+ 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, -+ 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, -- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, -- 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, -- 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -- 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, -- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -- 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, -- 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, -- 0xad, 0x04, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, -- 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -- 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, -- 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, -- 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, -- 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, -- 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -- 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, -- 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0a, -- 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, -- 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, -- 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -- 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -- 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, -- 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, -- 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, -- 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, -- 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, -- 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, -- 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x34, -- 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, -- 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, -- 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, -- 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -- 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, -- 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, -- 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, -- 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, -- 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, -- 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, -- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, -- 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -- 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, -- 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, -- 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, -- 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, -- 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, -- 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, -- 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, -- 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, -- 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, -- 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, -- 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, -- 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, -- 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, -- 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, -- 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, -- 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, -- 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, -- 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, -- 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, -- 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -- 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, -- 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, -- 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, -- 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, -- 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, -- 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, -- 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, -- 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, -- 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -- 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -- 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, -- 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, -- 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, -- 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, -- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, -- 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, -- 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, -- 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, -- 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, -- 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, -- 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, -- 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -- 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -- 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, -- 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -- 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, -- 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, -- 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, -- 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, -- 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, -+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, -+ 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, -+ 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, -+ 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, -+ 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -+ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -+ 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, -+ 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, -+ 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, -- 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, -- 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, -- 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, -+ 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, -+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -- 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, -- 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, -- 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, -- 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, -- 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, -- 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, -- 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, -- 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, -- 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, -- 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, -- 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, -- 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, -- 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, -- 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, -- 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, -- 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, -- 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, -- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, -- 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, -- 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, -- 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, -- 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, -- 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -- 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, -- 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, -- 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, -- 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -- 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -- 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, -- 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, -- 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, -+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, -+ 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, -+ 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, -+ 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, -+ 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, -+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, -+ 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, -+ 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, -+ 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, -+ 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, -+ 0x69, 0x6e, 0x67, 0x22, 0x97, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, -+ 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, -+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, -+ 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, -+ 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, -+ 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, -+ 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, -+ 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, -+ 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, -+ 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, -+ 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, -+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, -+ 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, -+ 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, -+ 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, -+ 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, -+ 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, -+ 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, -+ 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, -+ 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, -+ 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, -+ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, -+ 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, -+ 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, -+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, -+ 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, -+ 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, - 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -@@ -3856,259 +4656,419 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, -- 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, -- 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -- 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, -- 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, -- 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, -- 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, -- 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, -- 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, -- 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, -- 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, -- 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -- 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, -- 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -- 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, -- 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -- 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, -- 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, -- 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -- 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -- 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, -- 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -- 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, -- 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x85, 0x09, 0x0a, -- 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, -- 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, -- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -- 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, -- 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, -- 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, -- 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, -- 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, -- 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, -- 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, -- 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, -- 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, -- 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, -+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, -+ 0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, -+ 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -+ 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, -+ 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, -+ 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, -+ 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, -+ 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, -+ 0x02, 0x4a, 0x04, 0x08, 0x2a, 0x10, 0x2b, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xf4, 0x03, -+ 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, -+ 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, -+ 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, -+ 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, -+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, -+ 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, -+ 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, - 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -- 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, -- 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, -- 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, -- 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, -- 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -- 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, -- 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, -- 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, -- 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, -- 0x74, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, -- 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, -- 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, -- 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, -- 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, -- 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, -- 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, -- 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, -- 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, -- 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, -- 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, -- 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, -- 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, -- 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, -- 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, -- 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, -- 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, -- 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, -- 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, -- 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, -- 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, -- 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, -- 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, -- 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, -- 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, -- 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -- 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -- 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, -- 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x98, 0x02, 0x0a, 0x0b, 0x45, 0x6e, -- 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, -- 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, -- 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -- 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -- 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -- 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, -- 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, -+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, -+ 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, -+ 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, -+ 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, -+ 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, -+ 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, -+ 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, -+ 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, -+ 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, -+ 0x08, 0x09, 0x10, 0x0a, 0x22, 0xad, 0x0a, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, -+ 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, -+ 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, -+ 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, -+ 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, -+ 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, -+ 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, -+ 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, -+ 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, -+ 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -+ 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, -+ 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -+ 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, -+ 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, -+ 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, -+ 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, -+ 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, -+ 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2e, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, -+ 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x65, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, -+ 0x0f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, -+ 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, -+ 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, -+ 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, - 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -- 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, -- 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -- 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, -- 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -- 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -- 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -- 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, -- 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, -- 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, -- 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -- 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, -- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -- 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, -- 0x80, 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -- 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, -- 0x11, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, -- 0x65, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, -- 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, -- 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, -- 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, -- 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, -- 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -- 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -- 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -- 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, -- 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, -- 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, -- 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, -- 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, -- 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, -- 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, -- 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, -+ 0x69, 0x6f, 0x6e, 0x1a, 0x5a, 0x0a, 0x0e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, -+ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, -+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, -+ 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, -+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, -+ 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, -+ 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, -+ 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, -+ 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, -+ 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, -+ 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, -+ 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, -+ 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, -+ 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, -+ 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, -+ 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, -+ 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, -+ 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, -+ 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, -+ 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, -+ 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, -+ 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, -+ 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, -+ 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, -+ 0x08, 0x12, 0x10, 0x13, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, -+ 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, -+ 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, -- 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, -- 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, -- 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, -- 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, -- 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, -- 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, -- 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -- 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, -- 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, -- 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, -- 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, -- 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, -- 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, -- 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, -- 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, -- 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, -- 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, -- 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, -- 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -- 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, -- 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, -- 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, -- 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, -- 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, -- 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, -- 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, -- 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, -- 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, -- 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, -- 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, -- 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, -- 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, -- 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, -- 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, -- 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, -- 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -- 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, -- 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, -- 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -+ 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, -+ 0x80, 0x80, 0x02, 0x22, 0xd1, 0x02, 0x0a, 0x0b, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, -+ 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, -+ 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -+ 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, -+ 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, -+ 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, -+ 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, -+ 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, -+ 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, -+ 0x63, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, -+ 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, -+ 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, -+ 0x02, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x81, 0x02, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, -+ 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, -+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0c, -+ 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, -+ 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, -+ 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xd5, 0x01, 0x0a, 0x0e, -+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, -+ 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, -+ 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, -+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -+ 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, -+ 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, -+ 0x80, 0x80, 0x02, 0x22, 0x99, 0x03, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x11, -+ 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, -+ 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, -+ 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, -+ 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, 0x69, -+ 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, -+ 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, -+ 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, -+ 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, -+ 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, -+ 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, -+ 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, -+ 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, -+ 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, -+ 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, -+ 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -+ 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, -+ 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, -+ 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, -+ 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, -+ 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, -+ 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, -+ 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, -+ 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, -+ 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, -+ 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, -+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, -+ 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, -+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, -+ 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, -+ 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, -+ 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, -+ 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, -+ 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, -+ 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, -+ 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x0a, 0x0a, -+ 0x0a, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0e, -+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x42, -+ 0x39, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, -+ 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x49, -+ 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe7, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, -+ 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe8, 0x07, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, -+ 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x09, 0x65, 0x6e, 0x75, -+ 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, -+ 0x70, 0x65, 0x42, 0x23, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0b, -+ 0x12, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x09, 0x12, 0x04, -+ 0x4f, 0x50, 0x45, 0x4e, 0x18, 0xe7, 0x07, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, -+ 0x65, 0x12, 0x92, 0x01, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, -+ 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, -+ 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, -+ 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x27, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, 0x01, -+ 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, 0x58, 0x50, 0x41, 0x4e, 0x44, 0x45, 0x44, 0x18, 0xe6, -+ 0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x44, 0x18, 0xe7, 0x07, 0x52, -+ 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, -+ 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x78, 0x0a, 0x0f, 0x75, 0x74, 0x66, 0x38, 0x5f, 0x76, -+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, -+ 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x55, 0x74, 0x66, -+ 0x38, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x23, 0x88, 0x01, 0x01, -+ 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x18, -+ 0xe6, 0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x18, 0xe7, 0x07, -+ 0x52, 0x0e, 0x75, 0x74, 0x66, 0x38, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x12, 0x78, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x6f, -+ 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, -+ 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x20, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, -+ 0x01, 0x01, 0xa2, 0x01, 0x14, 0x12, 0x0f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x5f, 0x50, 0x52, -+ 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, 0x18, 0xe6, 0x07, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, -+ 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x7c, 0x0a, 0x0b, 0x6a, 0x73, -+ 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, -+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4a, 0x73, 0x6f, -+ 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x33, 0x88, 0x01, 0x01, 0x98, 0x01, 0x03, 0x98, -+ 0x01, 0x06, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x17, 0x12, 0x12, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, -+ 0x5f, 0x42, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52, 0x54, 0x18, 0xe6, 0x07, 0xa2, -+ 0x01, 0x0a, 0x12, 0x05, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x18, 0xe7, 0x07, 0x52, 0x0a, 0x6a, 0x73, -+ 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x5c, 0x0a, 0x0d, 0x46, 0x69, 0x65, 0x6c, -+ 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x45, -+ 0x4c, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, -+ 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, -+ 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x10, -+ 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x52, 0x45, 0x51, 0x55, -+ 0x49, 0x52, 0x45, 0x44, 0x10, 0x03, 0x22, 0x37, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, -+ 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x50, 0x45, -+ 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x02, 0x22, -+ 0x56, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x50, 0x45, -+ 0x41, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, -+ 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, -+ 0x06, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, -+ 0x41, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x22, 0x43, 0x0a, 0x0e, 0x55, 0x74, 0x66, 0x38, 0x56, -+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x54, 0x46, -+ 0x38, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, -+ 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, -+ 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x53, 0x0a, 0x0f, -+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, -+ 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, -+ 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, -+ 0x0f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, -+ 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x10, -+ 0x02, 0x22, 0x48, 0x0a, 0x0a, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -+ 0x17, 0x0a, 0x13, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, -+ 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x4c, 0x4f, -+ 0x57, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x42, 0x45, -+ 0x53, 0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x2a, 0x06, 0x08, 0xe8, 0x07, -+ 0x10, 0xe9, 0x07, 0x2a, 0x06, 0x08, 0xe9, 0x07, 0x10, 0xea, 0x07, 0x2a, 0x06, 0x08, 0xea, 0x07, -+ 0x10, 0xeb, 0x07, 0x2a, 0x06, 0x08, 0x8b, 0x4e, 0x10, 0x90, 0x4e, 0x2a, 0x06, 0x08, 0x90, 0x4e, -+ 0x10, 0x91, 0x4e, 0x4a, 0x06, 0x08, 0xe7, 0x07, 0x10, 0xe8, 0x07, 0x22, 0xfe, 0x02, 0x0a, 0x12, -+ 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, -+ 0x74, 0x73, 0x12, 0x58, 0x0a, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, -+ 0x65, 0x53, 0x65, 0x74, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, -+ 0x6c, 0x74, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0f, -+ 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, -+ 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, -+ 0x0e, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, -+ 0x41, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x45, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x1a, 0x87, 0x01, 0x0a, 0x18, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, -+ 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, -+ 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, -+ 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, -+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xa7, 0x02, 0x0a, -+ 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, -+ 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, -+ 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, -+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, -- 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, -- 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -- 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, -- 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, -- 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, -- 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, -- 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, -- 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, -- 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, -- 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, -- 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, -- 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, -- 0x02, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, -- 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, -- 0x6e, -+ 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, -+ 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, -+ 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, -+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, -+ 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, -+ 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, -+ 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, -+ 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, -+ 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, -+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, -+ 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, -+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, -+ 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, -+ 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, -+ 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, -+ 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, -+ 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, -+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, -+ 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, -+ 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, -+ 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, -+ 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, -+ 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, -+ 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, -+ 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, -+ 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, 0x02, 0x2a, 0x92, 0x02, 0x0a, 0x07, 0x45, 0x64, -+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, -+ 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x32, 0x10, 0xe6, 0x07, 0x12, -+ 0x13, 0x0a, 0x0e, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, -+ 0x33, 0x10, 0xe7, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, -+ 0x32, 0x30, 0x32, 0x33, 0x10, 0xe8, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, -+ 0x4f, 0x4e, 0x5f, 0x32, 0x30, 0x32, 0x34, 0x10, 0xe9, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, -+ 0x59, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x32, -+ 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x17, -+ 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x37, 0x5f, 0x54, 0x45, -+ 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9d, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, -+ 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x38, 0x5f, 0x54, 0x45, 0x53, -+ 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9e, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x39, 0x5f, 0x54, 0x45, 0x53, 0x54, -+ 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9f, 0x8d, 0x06, 0x12, 0x13, 0x0a, 0x0b, 0x45, 0x44, 0x49, -+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x42, 0x7e, -+ 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -+ 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, -+ 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - } - - var ( -@@ -4123,103 +5083,136 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { - return file_google_protobuf_descriptor_proto_rawDescData - } - --var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 10) --var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 28) -+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 17) -+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 32) - var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ -- (ExtensionRangeOptions_VerificationState)(0), // 0: google.protobuf.ExtensionRangeOptions.VerificationState -- (FieldDescriptorProto_Type)(0), // 1: google.protobuf.FieldDescriptorProto.Type -- (FieldDescriptorProto_Label)(0), // 2: google.protobuf.FieldDescriptorProto.Label -- (FileOptions_OptimizeMode)(0), // 3: google.protobuf.FileOptions.OptimizeMode -- (FieldOptions_CType)(0), // 4: google.protobuf.FieldOptions.CType -- (FieldOptions_JSType)(0), // 5: google.protobuf.FieldOptions.JSType -- (FieldOptions_OptionRetention)(0), // 6: google.protobuf.FieldOptions.OptionRetention -- (FieldOptions_OptionTargetType)(0), // 7: google.protobuf.FieldOptions.OptionTargetType -- (MethodOptions_IdempotencyLevel)(0), // 8: google.protobuf.MethodOptions.IdempotencyLevel -- (GeneratedCodeInfo_Annotation_Semantic)(0), // 9: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- (*FileDescriptorSet)(nil), // 10: google.protobuf.FileDescriptorSet -- (*FileDescriptorProto)(nil), // 11: google.protobuf.FileDescriptorProto -- (*DescriptorProto)(nil), // 12: google.protobuf.DescriptorProto -- (*ExtensionRangeOptions)(nil), // 13: google.protobuf.ExtensionRangeOptions -- (*FieldDescriptorProto)(nil), // 14: google.protobuf.FieldDescriptorProto -- (*OneofDescriptorProto)(nil), // 15: google.protobuf.OneofDescriptorProto -- (*EnumDescriptorProto)(nil), // 16: google.protobuf.EnumDescriptorProto -- (*EnumValueDescriptorProto)(nil), // 17: google.protobuf.EnumValueDescriptorProto -- (*ServiceDescriptorProto)(nil), // 18: google.protobuf.ServiceDescriptorProto -- (*MethodDescriptorProto)(nil), // 19: google.protobuf.MethodDescriptorProto -- (*FileOptions)(nil), // 20: google.protobuf.FileOptions -- (*MessageOptions)(nil), // 21: google.protobuf.MessageOptions -- (*FieldOptions)(nil), // 22: google.protobuf.FieldOptions -- (*OneofOptions)(nil), // 23: google.protobuf.OneofOptions -- (*EnumOptions)(nil), // 24: google.protobuf.EnumOptions -- (*EnumValueOptions)(nil), // 25: google.protobuf.EnumValueOptions -- (*ServiceOptions)(nil), // 26: google.protobuf.ServiceOptions -- (*MethodOptions)(nil), // 27: google.protobuf.MethodOptions -- (*UninterpretedOption)(nil), // 28: google.protobuf.UninterpretedOption -- (*SourceCodeInfo)(nil), // 29: google.protobuf.SourceCodeInfo -- (*GeneratedCodeInfo)(nil), // 30: google.protobuf.GeneratedCodeInfo -- (*DescriptorProto_ExtensionRange)(nil), // 31: google.protobuf.DescriptorProto.ExtensionRange -- (*DescriptorProto_ReservedRange)(nil), // 32: google.protobuf.DescriptorProto.ReservedRange -- (*ExtensionRangeOptions_Declaration)(nil), // 33: google.protobuf.ExtensionRangeOptions.Declaration -- (*EnumDescriptorProto_EnumReservedRange)(nil), // 34: google.protobuf.EnumDescriptorProto.EnumReservedRange -- (*UninterpretedOption_NamePart)(nil), // 35: google.protobuf.UninterpretedOption.NamePart -- (*SourceCodeInfo_Location)(nil), // 36: google.protobuf.SourceCodeInfo.Location -- (*GeneratedCodeInfo_Annotation)(nil), // 37: google.protobuf.GeneratedCodeInfo.Annotation -+ (Edition)(0), // 0: google.protobuf.Edition -+ (ExtensionRangeOptions_VerificationState)(0), // 1: google.protobuf.ExtensionRangeOptions.VerificationState -+ (FieldDescriptorProto_Type)(0), // 2: google.protobuf.FieldDescriptorProto.Type -+ (FieldDescriptorProto_Label)(0), // 3: google.protobuf.FieldDescriptorProto.Label -+ (FileOptions_OptimizeMode)(0), // 4: google.protobuf.FileOptions.OptimizeMode -+ (FieldOptions_CType)(0), // 5: google.protobuf.FieldOptions.CType -+ (FieldOptions_JSType)(0), // 6: google.protobuf.FieldOptions.JSType -+ (FieldOptions_OptionRetention)(0), // 7: google.protobuf.FieldOptions.OptionRetention -+ (FieldOptions_OptionTargetType)(0), // 8: google.protobuf.FieldOptions.OptionTargetType -+ (MethodOptions_IdempotencyLevel)(0), // 9: google.protobuf.MethodOptions.IdempotencyLevel -+ (FeatureSet_FieldPresence)(0), // 10: google.protobuf.FeatureSet.FieldPresence -+ (FeatureSet_EnumType)(0), // 11: google.protobuf.FeatureSet.EnumType -+ (FeatureSet_RepeatedFieldEncoding)(0), // 12: google.protobuf.FeatureSet.RepeatedFieldEncoding -+ (FeatureSet_Utf8Validation)(0), // 13: google.protobuf.FeatureSet.Utf8Validation -+ (FeatureSet_MessageEncoding)(0), // 14: google.protobuf.FeatureSet.MessageEncoding -+ (FeatureSet_JsonFormat)(0), // 15: google.protobuf.FeatureSet.JsonFormat -+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 16: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ (*FileDescriptorSet)(nil), // 17: google.protobuf.FileDescriptorSet -+ (*FileDescriptorProto)(nil), // 18: google.protobuf.FileDescriptorProto -+ (*DescriptorProto)(nil), // 19: google.protobuf.DescriptorProto -+ (*ExtensionRangeOptions)(nil), // 20: google.protobuf.ExtensionRangeOptions -+ (*FieldDescriptorProto)(nil), // 21: google.protobuf.FieldDescriptorProto -+ (*OneofDescriptorProto)(nil), // 22: google.protobuf.OneofDescriptorProto -+ (*EnumDescriptorProto)(nil), // 23: google.protobuf.EnumDescriptorProto -+ (*EnumValueDescriptorProto)(nil), // 24: google.protobuf.EnumValueDescriptorProto -+ (*ServiceDescriptorProto)(nil), // 25: google.protobuf.ServiceDescriptorProto -+ (*MethodDescriptorProto)(nil), // 26: google.protobuf.MethodDescriptorProto -+ (*FileOptions)(nil), // 27: google.protobuf.FileOptions -+ (*MessageOptions)(nil), // 28: google.protobuf.MessageOptions -+ (*FieldOptions)(nil), // 29: google.protobuf.FieldOptions -+ (*OneofOptions)(nil), // 30: google.protobuf.OneofOptions -+ (*EnumOptions)(nil), // 31: google.protobuf.EnumOptions -+ (*EnumValueOptions)(nil), // 32: google.protobuf.EnumValueOptions -+ (*ServiceOptions)(nil), // 33: google.protobuf.ServiceOptions -+ (*MethodOptions)(nil), // 34: google.protobuf.MethodOptions -+ (*UninterpretedOption)(nil), // 35: google.protobuf.UninterpretedOption -+ (*FeatureSet)(nil), // 36: google.protobuf.FeatureSet -+ (*FeatureSetDefaults)(nil), // 37: google.protobuf.FeatureSetDefaults -+ (*SourceCodeInfo)(nil), // 38: google.protobuf.SourceCodeInfo -+ (*GeneratedCodeInfo)(nil), // 39: google.protobuf.GeneratedCodeInfo -+ (*DescriptorProto_ExtensionRange)(nil), // 40: google.protobuf.DescriptorProto.ExtensionRange -+ (*DescriptorProto_ReservedRange)(nil), // 41: google.protobuf.DescriptorProto.ReservedRange -+ (*ExtensionRangeOptions_Declaration)(nil), // 42: google.protobuf.ExtensionRangeOptions.Declaration -+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 43: google.protobuf.EnumDescriptorProto.EnumReservedRange -+ (*FieldOptions_EditionDefault)(nil), // 44: google.protobuf.FieldOptions.EditionDefault -+ (*UninterpretedOption_NamePart)(nil), // 45: google.protobuf.UninterpretedOption.NamePart -+ (*FeatureSetDefaults_FeatureSetEditionDefault)(nil), // 46: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault -+ (*SourceCodeInfo_Location)(nil), // 47: google.protobuf.SourceCodeInfo.Location -+ (*GeneratedCodeInfo_Annotation)(nil), // 48: google.protobuf.GeneratedCodeInfo.Annotation - } - var file_google_protobuf_descriptor_proto_depIdxs = []int32{ -- 11, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -- 12, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -- 16, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 18, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -- 14, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 20, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -- 29, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -- 14, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -- 14, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 12, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -- 16, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 31, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -- 15, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -- 21, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -- 32, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -- 28, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 33, // 16: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -- 0, // 17: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -- 2, // 18: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -- 1, // 19: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -- 22, // 20: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -- 23, // 21: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -- 17, // 22: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -- 24, // 23: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -- 34, // 24: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -- 25, // 25: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -- 19, // 26: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -- 26, // 27: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -- 27, // 28: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -- 3, // 29: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -- 28, // 30: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 31: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 4, // 32: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -- 5, // 33: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -- 6, // 34: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -- 7, // 35: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 7, // 36: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 28, // 37: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 38: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 39: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 40: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 41: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 8, // 42: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -- 28, // 43: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 35, // 44: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -- 36, // 45: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -- 37, // 46: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -- 13, // 47: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -- 9, // 48: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- 49, // [49:49] is the sub-list for method output_type -- 49, // [49:49] is the sub-list for method input_type -- 49, // [49:49] is the sub-list for extension type_name -- 49, // [49:49] is the sub-list for extension extendee -- 0, // [0:49] is the sub-list for field type_name -+ 18, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -+ 19, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -+ 23, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 25, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -+ 21, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 27, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -+ 38, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -+ 0, // 7: google.protobuf.FileDescriptorProto.edition:type_name -> google.protobuf.Edition -+ 21, // 8: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -+ 21, // 9: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 19, // 10: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -+ 23, // 11: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 40, // 12: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -+ 22, // 13: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -+ 28, // 14: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -+ 41, // 15: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -+ 35, // 16: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 42, // 17: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -+ 36, // 18: google.protobuf.ExtensionRangeOptions.features:type_name -> google.protobuf.FeatureSet -+ 1, // 19: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -+ 3, // 20: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -+ 2, // 21: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -+ 29, // 22: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -+ 30, // 23: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -+ 24, // 24: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -+ 31, // 25: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -+ 43, // 26: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -+ 32, // 27: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -+ 26, // 28: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -+ 33, // 29: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -+ 34, // 30: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -+ 4, // 31: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -+ 36, // 32: google.protobuf.FileOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 33: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 34: google.protobuf.MessageOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 35: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 5, // 36: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -+ 6, // 37: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -+ 7, // 38: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -+ 8, // 39: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 44, // 40: google.protobuf.FieldOptions.edition_defaults:type_name -> google.protobuf.FieldOptions.EditionDefault -+ 36, // 41: google.protobuf.FieldOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 42: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 43: google.protobuf.OneofOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 44: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 45: google.protobuf.EnumOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 46: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 47: google.protobuf.EnumValueOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 48: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 49: google.protobuf.ServiceOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 50: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 9, // 51: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -+ 36, // 52: google.protobuf.MethodOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 53: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 45, // 54: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -+ 10, // 55: google.protobuf.FeatureSet.field_presence:type_name -> google.protobuf.FeatureSet.FieldPresence -+ 11, // 56: google.protobuf.FeatureSet.enum_type:type_name -> google.protobuf.FeatureSet.EnumType -+ 12, // 57: google.protobuf.FeatureSet.repeated_field_encoding:type_name -> google.protobuf.FeatureSet.RepeatedFieldEncoding -+ 13, // 58: google.protobuf.FeatureSet.utf8_validation:type_name -> google.protobuf.FeatureSet.Utf8Validation -+ 14, // 59: google.protobuf.FeatureSet.message_encoding:type_name -> google.protobuf.FeatureSet.MessageEncoding -+ 15, // 60: google.protobuf.FeatureSet.json_format:type_name -> google.protobuf.FeatureSet.JsonFormat -+ 46, // 61: google.protobuf.FeatureSetDefaults.defaults:type_name -> google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault -+ 0, // 62: google.protobuf.FeatureSetDefaults.minimum_edition:type_name -> google.protobuf.Edition -+ 0, // 63: google.protobuf.FeatureSetDefaults.maximum_edition:type_name -> google.protobuf.Edition -+ 47, // 64: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -+ 48, // 65: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -+ 20, // 66: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -+ 0, // 67: google.protobuf.FieldOptions.EditionDefault.edition:type_name -> google.protobuf.Edition -+ 0, // 68: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition:type_name -> google.protobuf.Edition -+ 36, // 69: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features:type_name -> google.protobuf.FeatureSet -+ 16, // 70: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ 71, // [71:71] is the sub-list for method output_type -+ 71, // [71:71] is the sub-list for method input_type -+ 71, // [71:71] is the sub-list for extension type_name -+ 71, // [71:71] is the sub-list for extension extendee -+ 0, // [0:71] is the sub-list for field type_name - } - - func init() { file_google_protobuf_descriptor_proto_init() } -@@ -4475,19 +5468,21 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo); i { -+ switch v := v.(*FeatureSet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields -+ case 3: -+ return &v.extensionFields - default: - return nil - } - } - file_google_protobuf_descriptor_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*GeneratedCodeInfo); i { -+ switch v := v.(*FeatureSetDefaults); i { - case 0: - return &v.state - case 1: -@@ -4499,7 +5494,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*DescriptorProto_ExtensionRange); i { -+ switch v := v.(*SourceCodeInfo); i { - case 0: - return &v.state - case 1: -@@ -4511,7 +5506,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*DescriptorProto_ReservedRange); i { -+ switch v := v.(*GeneratedCodeInfo); i { - case 0: - return &v.state - case 1: -@@ -4523,7 +5518,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*ExtensionRangeOptions_Declaration); i { -+ switch v := v.(*DescriptorProto_ExtensionRange); i { - case 0: - return &v.state - case 1: -@@ -4535,7 +5530,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { -+ switch v := v.(*DescriptorProto_ReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4547,7 +5542,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*UninterpretedOption_NamePart); i { -+ switch v := v.(*ExtensionRangeOptions_Declaration); i { - case 0: - return &v.state - case 1: -@@ -4559,7 +5554,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo_Location); i { -+ switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4571,6 +5566,54 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FieldOptions_EditionDefault); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*UninterpretedOption_NamePart); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FeatureSetDefaults_FeatureSetEditionDefault); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo_Location); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeneratedCodeInfo_Annotation); i { - case 0: - return &v.state -@@ -4588,8 +5631,8 @@ func file_google_protobuf_descriptor_proto_init() { - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, -- NumEnums: 10, -- NumMessages: 28, -+ NumEnums: 17, -+ NumMessages: 32, - NumExtensions: 0, - NumServices: 0, - }, -diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go -new file mode 100644 -index 00000000..25de5ae0 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go -@@ -0,0 +1,177 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2023 Google Inc. All rights reserved. -+// -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file or at -+// https://developers.google.com/open-source/licenses/bsd -+ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: reflect/protodesc/proto/go_features.proto -+ -+package proto -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ descriptorpb "google.golang.org/protobuf/types/descriptorpb" -+ reflect "reflect" -+ sync "sync" -+) -+ -+type GoFeatures struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // Whether or not to generate the deprecated UnmarshalJSON method for enums. -+ LegacyUnmarshalJsonEnum *bool `protobuf:"varint,1,opt,name=legacy_unmarshal_json_enum,json=legacyUnmarshalJsonEnum" json:"legacy_unmarshal_json_enum,omitempty"` -+} -+ -+func (x *GoFeatures) Reset() { -+ *x = GoFeatures{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_reflect_protodesc_proto_go_features_proto_msgTypes[0] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *GoFeatures) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*GoFeatures) ProtoMessage() {} -+ -+func (x *GoFeatures) ProtoReflect() protoreflect.Message { -+ mi := &file_reflect_protodesc_proto_go_features_proto_msgTypes[0] -+ if protoimpl.UnsafeEnabled && x != nil { -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ if ms.LoadMessageInfo() == nil { -+ ms.StoreMessageInfo(mi) -+ } -+ return ms -+ } -+ return mi.MessageOf(x) -+} -+ -+// Deprecated: Use GoFeatures.ProtoReflect.Descriptor instead. -+func (*GoFeatures) Descriptor() ([]byte, []int) { -+ return file_reflect_protodesc_proto_go_features_proto_rawDescGZIP(), []int{0} -+} -+ -+func (x *GoFeatures) GetLegacyUnmarshalJsonEnum() bool { -+ if x != nil && x.LegacyUnmarshalJsonEnum != nil { -+ return *x.LegacyUnmarshalJsonEnum -+ } -+ return false -+} -+ -+var file_reflect_protodesc_proto_go_features_proto_extTypes = []protoimpl.ExtensionInfo{ -+ { -+ ExtendedType: (*descriptorpb.FeatureSet)(nil), -+ ExtensionType: (*GoFeatures)(nil), -+ Field: 1002, -+ Name: "google.protobuf.go", -+ Tag: "bytes,1002,opt,name=go", -+ Filename: "reflect/protodesc/proto/go_features.proto", -+ }, -+} -+ -+// Extension fields to descriptorpb.FeatureSet. -+var ( -+ // optional google.protobuf.GoFeatures go = 1002; -+ E_Go = &file_reflect_protodesc_proto_go_features_proto_extTypes[0] -+) -+ -+var File_reflect_protodesc_proto_go_features_proto protoreflect.FileDescriptor -+ -+var file_reflect_protodesc_proto_go_features_proto_rawDesc = []byte{ -+ 0x0a, 0x29, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x64, -+ 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x5f, 0x66, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x20, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, -+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a, -+ 0x0a, 0x0a, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x1a, -+ 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x75, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, -+ 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -+ 0x42, 0x1f, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x74, 0x72, 0x75, -+ 0x65, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0a, 0x12, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x18, 0xe7, -+ 0x07, 0x52, 0x17, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x55, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, -+ 0x61, 0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x49, 0x0a, 0x02, 0x67, 0x6f, -+ 0x12, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x18, 0xea, 0x07, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x52, 0x02, 0x67, 0x6f, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x64, 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+} -+ -+var ( -+ file_reflect_protodesc_proto_go_features_proto_rawDescOnce sync.Once -+ file_reflect_protodesc_proto_go_features_proto_rawDescData = file_reflect_protodesc_proto_go_features_proto_rawDesc -+) -+ -+func file_reflect_protodesc_proto_go_features_proto_rawDescGZIP() []byte { -+ file_reflect_protodesc_proto_go_features_proto_rawDescOnce.Do(func() { -+ file_reflect_protodesc_proto_go_features_proto_rawDescData = protoimpl.X.CompressGZIP(file_reflect_protodesc_proto_go_features_proto_rawDescData) -+ }) -+ return file_reflect_protodesc_proto_go_features_proto_rawDescData -+} -+ -+var file_reflect_protodesc_proto_go_features_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -+var file_reflect_protodesc_proto_go_features_proto_goTypes = []interface{}{ -+ (*GoFeatures)(nil), // 0: google.protobuf.GoFeatures -+ (*descriptorpb.FeatureSet)(nil), // 1: google.protobuf.FeatureSet -+} -+var file_reflect_protodesc_proto_go_features_proto_depIdxs = []int32{ -+ 1, // 0: google.protobuf.go:extendee -> google.protobuf.FeatureSet -+ 0, // 1: google.protobuf.go:type_name -> google.protobuf.GoFeatures -+ 2, // [2:2] is the sub-list for method output_type -+ 2, // [2:2] is the sub-list for method input_type -+ 1, // [1:2] is the sub-list for extension type_name -+ 0, // [0:1] is the sub-list for extension extendee -+ 0, // [0:0] is the sub-list for field type_name -+} -+ -+func init() { file_reflect_protodesc_proto_go_features_proto_init() } -+func file_reflect_protodesc_proto_go_features_proto_init() { -+ if File_reflect_protodesc_proto_go_features_proto != nil { -+ return -+ } -+ if !protoimpl.UnsafeEnabled { -+ file_reflect_protodesc_proto_go_features_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*GoFeatures); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ } -+ type x struct{} -+ out := protoimpl.TypeBuilder{ -+ File: protoimpl.DescBuilder{ -+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), -+ RawDescriptor: file_reflect_protodesc_proto_go_features_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 1, -+ NumExtensions: 1, -+ NumServices: 0, -+ }, -+ GoTypes: file_reflect_protodesc_proto_go_features_proto_goTypes, -+ DependencyIndexes: file_reflect_protodesc_proto_go_features_proto_depIdxs, -+ MessageInfos: file_reflect_protodesc_proto_go_features_proto_msgTypes, -+ ExtensionInfos: file_reflect_protodesc_proto_go_features_proto_extTypes, -+ }.Build() -+ File_reflect_protodesc_proto_go_features_proto = out.File -+ file_reflect_protodesc_proto_go_features_proto_rawDesc = nil -+ file_reflect_protodesc_proto_go_features_proto_goTypes = nil -+ file_reflect_protodesc_proto_go_features_proto_depIdxs = nil -+} -diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto -new file mode 100644 -index 00000000..d2465712 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto -@@ -0,0 +1,28 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2023 Google Inc. All rights reserved. -+// -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file or at -+// https://developers.google.com/open-source/licenses/bsd -+ -+syntax = "proto2"; -+ -+package google.protobuf; -+ -+import "google/protobuf/descriptor.proto"; -+ -+option go_package = "google.golang.org/protobuf/types/gofeaturespb"; -+ -+extend google.protobuf.FeatureSet { -+ optional GoFeatures go = 1002; -+} -+ -+message GoFeatures { -+ // Whether or not to generate the deprecated UnmarshalJSON method for enums. -+ optional bool legacy_unmarshal_json_enum = 1 [ -+ retention = RETENTION_RUNTIME, -+ targets = TARGET_TYPE_ENUM, -+ edition_defaults = { edition: EDITION_PROTO2, value: "true" }, -+ edition_defaults = { edition: EDITION_PROTO3, value: "false" } -+ ]; -+} -diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -index 580b232f..9de51be5 100644 ---- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -@@ -237,7 +237,8 @@ type Any struct { - // - // Note: this functionality is not currently available in the official - // protobuf release, and it is not used for type URLs beginning with -- // type.googleapis.com. -+ // type.googleapis.com. As of May 2023, there are no widely used type server -+ // implementations and no plans to implement one. - // - // Schemes other than `http`, `https` (or the empty scheme) might be - // used with implementation specific semantics. -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 987b5b1c..6636e54e 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -263,13 +263,14 @@ google.golang.org/grpc/internal/status - google.golang.org/grpc/resolver - google.golang.org/grpc/serviceconfig - google.golang.org/grpc/status --# google.golang.org/protobuf v1.31.0 --## explicit; go 1.11 -+# google.golang.org/protobuf v1.33.0 -+## explicit; go 1.17 - google.golang.org/protobuf/encoding/prototext - google.golang.org/protobuf/encoding/protowire - google.golang.org/protobuf/internal/descfmt - google.golang.org/protobuf/internal/descopts - google.golang.org/protobuf/internal/detrand -+google.golang.org/protobuf/internal/editiondefaults - google.golang.org/protobuf/internal/encoding/defval - google.golang.org/protobuf/internal/encoding/messageset - google.golang.org/protobuf/internal/encoding/tag -@@ -292,6 +293,7 @@ google.golang.org/protobuf/reflect/protoregistry - google.golang.org/protobuf/runtime/protoiface - google.golang.org/protobuf/runtime/protoimpl - google.golang.org/protobuf/types/descriptorpb -+google.golang.org/protobuf/types/gofeaturespb - google.golang.org/protobuf/types/known/anypb - google.golang.org/protobuf/types/known/durationpb - google.golang.org/protobuf/types/known/timestamppb --- -2.40.1 - diff --git a/projects/containernetworking/plugins/1-32/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch b/projects/containernetworking/plugins/1-32/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch deleted file mode 100644 index 1a1c8490a3..0000000000 --- a/projects/containernetworking/plugins/1-32/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch +++ /dev/null @@ -1,2408 +0,0 @@ -From 8339edf51d004377876b9e4ee2daa0cbcbf5e760 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Thu, 9 May 2024 15:45:09 -0700 -Subject: [PATCH] Bump x/net to 0.23.0 to resolve CVE-2023-45288 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 6 +- - go.sum | 12 +- - vendor/golang.org/x/net/context/go17.go | 1 - - vendor/golang.org/x/net/context/go19.go | 1 - - vendor/golang.org/x/net/context/pre_go17.go | 1 - - vendor/golang.org/x/net/context/pre_go19.go | 1 - - vendor/golang.org/x/net/html/token.go | 12 +- - .../x/net/internal/socket/cmsghdr.go | 1 - - .../x/net/internal/socket/cmsghdr_bsd.go | 1 - - .../internal/socket/cmsghdr_linux_32bit.go | 2 - - .../internal/socket/cmsghdr_linux_64bit.go | 2 - - .../internal/socket/cmsghdr_solaris_64bit.go | 1 - - .../x/net/internal/socket/cmsghdr_stub.go | 1 - - .../x/net/internal/socket/cmsghdr_unix.go | 1 - - .../net/internal/socket/complete_dontwait.go | 1 - - .../internal/socket/complete_nodontwait.go | 1 - - .../golang.org/x/net/internal/socket/empty.s | 1 - - .../x/net/internal/socket/error_unix.go | 1 - - .../x/net/internal/socket/iovec_32bit.go | 2 - - .../x/net/internal/socket/iovec_64bit.go | 2 - - .../internal/socket/iovec_solaris_64bit.go | 1 - - .../x/net/internal/socket/iovec_stub.go | 1 - - .../x/net/internal/socket/mmsghdr_stub.go | 1 - - .../x/net/internal/socket/mmsghdr_unix.go | 1 - - .../x/net/internal/socket/msghdr_bsd.go | 1 - - .../x/net/internal/socket/msghdr_bsdvar.go | 1 - - .../net/internal/socket/msghdr_linux_32bit.go | 2 - - .../net/internal/socket/msghdr_linux_64bit.go | 2 - - .../internal/socket/msghdr_solaris_64bit.go | 1 - - .../x/net/internal/socket/msghdr_stub.go | 1 - - .../x/net/internal/socket/msghdr_zos_s390x.go | 1 - - .../x/net/internal/socket/norace.go | 1 - - .../golang.org/x/net/internal/socket/race.go | 1 - - .../x/net/internal/socket/rawconn_mmsg.go | 1 - - .../x/net/internal/socket/rawconn_msg.go | 1 - - .../x/net/internal/socket/rawconn_nommsg.go | 1 - - .../x/net/internal/socket/rawconn_nomsg.go | 1 - - .../x/net/internal/socket/sys_bsd.go | 1 - - .../x/net/internal/socket/sys_const_unix.go | 1 - - .../x/net/internal/socket/sys_linux.go | 1 - - .../net/internal/socket/sys_linux_loong64.go | 1 - - .../net/internal/socket/sys_linux_riscv64.go | 1 - - .../x/net/internal/socket/sys_posix.go | 1 - - .../x/net/internal/socket/sys_stub.go | 1 - - .../x/net/internal/socket/sys_unix.go | 1 - - .../x/net/internal/socket/zsys_aix_ppc64.go | 1 - - .../net/internal/socket/zsys_linux_loong64.go | 1 - - .../net/internal/socket/zsys_linux_riscv64.go | 1 - - vendor/golang.org/x/net/ipv4/control_bsd.go | 1 - - .../golang.org/x/net/ipv4/control_pktinfo.go | 1 - - vendor/golang.org/x/net/ipv4/control_stub.go | 1 - - vendor/golang.org/x/net/ipv4/control_unix.go | 1 - - vendor/golang.org/x/net/ipv4/icmp_stub.go | 1 - - vendor/golang.org/x/net/ipv4/payload_cmsg.go | 1 - - .../golang.org/x/net/ipv4/payload_nocmsg.go | 1 - - vendor/golang.org/x/net/ipv4/sockopt_posix.go | 1 - - vendor/golang.org/x/net/ipv4/sockopt_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_aix.go | 1 - - vendor/golang.org/x/net/ipv4/sys_asmreq.go | 1 - - .../golang.org/x/net/ipv4/sys_asmreq_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_asmreqn.go | 1 - - .../golang.org/x/net/ipv4/sys_asmreqn_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bpf.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bpf_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bsd.go | 1 - - vendor/golang.org/x/net/ipv4/sys_ssmreq.go | 1 - - .../golang.org/x/net/ipv4/sys_ssmreq_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_stub.go | 1 - - .../golang.org/x/net/ipv4/zsys_aix_ppc64.go | 1 - - .../x/net/ipv4/zsys_linux_loong64.go | 1 - - .../x/net/ipv4/zsys_linux_riscv64.go | 1 - - vendor/golang.org/x/sys/unix/aliases.go | 2 +- - vendor/golang.org/x/sys/unix/mkerrors.sh | 39 ++-- - .../x/sys/unix/syscall_darwin_libSystem.go | 2 +- - .../golang.org/x/sys/unix/syscall_freebsd.go | 12 +- - vendor/golang.org/x/sys/unix/syscall_linux.go | 99 ++++++++++ - vendor/golang.org/x/sys/unix/zerrors_linux.go | 90 ++++++++- - .../x/sys/unix/zerrors_linux_386.go | 3 + - .../x/sys/unix/zerrors_linux_amd64.go | 3 + - .../x/sys/unix/zerrors_linux_arm.go | 3 + - .../x/sys/unix/zerrors_linux_arm64.go | 3 + - .../x/sys/unix/zerrors_linux_loong64.go | 3 + - .../x/sys/unix/zerrors_linux_mips.go | 3 + - .../x/sys/unix/zerrors_linux_mips64.go | 3 + - .../x/sys/unix/zerrors_linux_mips64le.go | 3 + - .../x/sys/unix/zerrors_linux_mipsle.go | 3 + - .../x/sys/unix/zerrors_linux_ppc.go | 3 + - .../x/sys/unix/zerrors_linux_ppc64.go | 3 + - .../x/sys/unix/zerrors_linux_ppc64le.go | 3 + - .../x/sys/unix/zerrors_linux_riscv64.go | 3 + - .../x/sys/unix/zerrors_linux_s390x.go | 3 + - .../x/sys/unix/zerrors_linux_sparc64.go | 3 + - .../golang.org/x/sys/unix/zsyscall_linux.go | 10 + - .../x/sys/unix/zsyscall_openbsd_386.go | 2 - - .../x/sys/unix/zsyscall_openbsd_amd64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_arm.go | 2 - - .../x/sys/unix/zsyscall_openbsd_arm64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_mips64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_ppc64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_riscv64.go | 2 - - .../x/sys/unix/zsysnum_linux_386.go | 4 + - .../x/sys/unix/zsysnum_linux_amd64.go | 3 + - .../x/sys/unix/zsysnum_linux_arm.go | 4 + - .../x/sys/unix/zsysnum_linux_arm64.go | 4 + - .../x/sys/unix/zsysnum_linux_loong64.go | 4 + - .../x/sys/unix/zsysnum_linux_mips.go | 4 + - .../x/sys/unix/zsysnum_linux_mips64.go | 4 + - .../x/sys/unix/zsysnum_linux_mips64le.go | 4 + - .../x/sys/unix/zsysnum_linux_mipsle.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc64.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc64le.go | 4 + - .../x/sys/unix/zsysnum_linux_riscv64.go | 4 + - .../x/sys/unix/zsysnum_linux_s390x.go | 4 + - .../x/sys/unix/zsysnum_linux_sparc64.go | 4 + - vendor/golang.org/x/sys/unix/ztypes_linux.go | 185 ++++++++++++------ - .../golang.org/x/sys/windows/env_windows.go | 17 +- - .../x/sys/windows/syscall_windows.go | 4 +- - .../x/sys/windows/zsyscall_windows.go | 9 + - vendor/modules.txt | 10 +- - 120 files changed, 501 insertions(+), 200 deletions(-) - -diff --git a/go.mod b/go.mod -index 47102692..f0b6e706 100644 ---- a/go.mod -+++ b/go.mod -@@ -20,7 +20,7 @@ require ( - github.com/opencontainers/selinux v1.11.0 - github.com/safchain/ethtool v0.3.0 - github.com/vishvananda/netlink v1.2.1-beta.2 -- golang.org/x/sys v0.15.0 -+ golang.org/x/sys v0.18.0 - ) - - require ( -@@ -40,8 +40,8 @@ require ( - github.com/vishvananda/netns v0.0.4 // indirect - go.opencensus.io v0.24.0 // indirect - golang.org/x/mod v0.13.0 // indirect -- golang.org/x/net v0.17.0 // indirect -- golang.org/x/text v0.13.0 // indirect -+ golang.org/x/net v0.23.0 // indirect -+ golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/grpc v1.58.3 // indirect -diff --git a/go.sum b/go.sum -index e274380d..bf1e5961 100644 ---- a/go.sum -+++ b/go.sum -@@ -161,8 +161,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY - golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= - golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= - golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= --golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= --golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -+golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -+golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= - golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= - 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= -@@ -191,14 +191,14 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/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-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= --golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= --golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -+golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -+golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= - 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/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= --golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= --golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -+golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -+golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= - golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= - golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= - golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go -index 2cb9c408..0c1b8679 100644 ---- a/vendor/golang.org/x/net/context/go17.go -+++ b/vendor/golang.org/x/net/context/go17.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build go1.7 --// +build go1.7 - - package context - -diff --git a/vendor/golang.org/x/net/context/go19.go b/vendor/golang.org/x/net/context/go19.go -index 64d31ecc..e31e35a9 100644 ---- a/vendor/golang.org/x/net/context/go19.go -+++ b/vendor/golang.org/x/net/context/go19.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build go1.9 --// +build go1.9 - - package context - -diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go -index 7b6b6851..065ff3df 100644 ---- a/vendor/golang.org/x/net/context/pre_go17.go -+++ b/vendor/golang.org/x/net/context/pre_go17.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.7 --// +build !go1.7 - - package context - -diff --git a/vendor/golang.org/x/net/context/pre_go19.go b/vendor/golang.org/x/net/context/pre_go19.go -index 1f971534..ec5a6380 100644 ---- a/vendor/golang.org/x/net/context/pre_go19.go -+++ b/vendor/golang.org/x/net/context/pre_go19.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.9 --// +build !go1.9 - - package context - -diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go -index de67f938..3c57880d 100644 ---- a/vendor/golang.org/x/net/html/token.go -+++ b/vendor/golang.org/x/net/html/token.go -@@ -910,9 +910,6 @@ func (z *Tokenizer) readTagAttrKey() { - return - } - switch c { -- case ' ', '\n', '\r', '\t', '\f', '/': -- z.pendingAttr[0].end = z.raw.end - 1 -- return - case '=': - if z.pendingAttr[0].start+1 == z.raw.end { - // WHATWG 13.2.5.32, if we see an equals sign before the attribute name -@@ -920,7 +917,9 @@ func (z *Tokenizer) readTagAttrKey() { - continue - } - fallthrough -- case '>': -+ case ' ', '\n', '\r', '\t', '\f', '/', '>': -+ // WHATWG 13.2.5.33 Attribute name state -+ // We need to reconsume the char in the after attribute name state to support the / character - z.raw.end-- - z.pendingAttr[0].end = z.raw.end - return -@@ -939,6 +938,11 @@ func (z *Tokenizer) readTagAttrVal() { - if z.err != nil { - return - } -+ if c == '/' { -+ // WHATWG 13.2.5.34 After attribute name state -+ // U+002F SOLIDUS (/) - Switch to the self-closing start tag state. -+ return -+ } - if c != '=' { - z.raw.end-- - return -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr.go b/vendor/golang.org/x/net/internal/socket/cmsghdr.go -index 4bdaaaf1..33a5bf59 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -index 0d30e0a0..68f438c8 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -index 4936e8a6..058ea8de 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && linux --// +build arm mips mipsle 386 ppc --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -index f6877f98..3ca0d3a0 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && linux --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -index d3dbe1b8..6d0e426c 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -index 1d9f2ed6..7ca9cb7e 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -index 19d46789..0211f225 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/complete_dontwait.go b/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -index 5b1d50ae..2038f290 100644 ---- a/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -+++ b/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build darwin dragonfly freebsd linux netbsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go b/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -index be634095..70e6f448 100644 ---- a/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -+++ b/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || windows || zos --// +build aix windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/empty.s b/vendor/golang.org/x/net/internal/socket/empty.s -index 90ab4ca3..49d79791 100644 ---- a/vendor/golang.org/x/net/internal/socket/empty.s -+++ b/vendor/golang.org/x/net/internal/socket/empty.s -@@ -3,6 +3,5 @@ - // license that can be found in the LICENSE file. - - //go:build darwin && go1.12 --// +build darwin,go1.12 - - // This exists solely so we can linkname in symbols from syscall. -diff --git a/vendor/golang.org/x/net/internal/socket/error_unix.go b/vendor/golang.org/x/net/internal/socket/error_unix.go -index 78f41290..7a5cc5c4 100644 ---- a/vendor/golang.org/x/net/internal/socket/error_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/error_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -index 2b8fbb3f..340e53fb 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && (darwin || dragonfly || freebsd || linux || netbsd || openbsd) --// +build arm mips mipsle 386 ppc --// +build darwin dragonfly freebsd linux netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -index 2e94e96f..26470c19 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || zos) --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build aix darwin dragonfly freebsd linux netbsd openbsd zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -index f7da2bc4..8859ce10 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_stub.go b/vendor/golang.org/x/net/internal/socket/iovec_stub.go -index 14caf524..da886b03 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -index 113e773c..4825b21e 100644 ---- a/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !linux && !netbsd --// +build !aix,!linux,!netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -index 41883c53..311fd2c7 100644 ---- a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || linux || netbsd --// +build aix linux netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go b/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -index 25f6847f..ebff4f6e 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -index 5b8e00f1..62e6fe86 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd --// +build aix darwin dragonfly freebsd netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -index b4658fba..3dd07250 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && linux --// +build arm mips mipsle 386 ppc --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -index 42411aff..5af9ddd6 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && linux --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -index 3098f5d7..e212b50f 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_stub.go b/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -index eb79151f..e8767764 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go b/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -index 324e9ee7..529db68e 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build s390x && zos --// +build s390x,zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/norace.go b/vendor/golang.org/x/net/internal/socket/norace.go -index de0ad420..8af30ecf 100644 ---- a/vendor/golang.org/x/net/internal/socket/norace.go -+++ b/vendor/golang.org/x/net/internal/socket/norace.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !race --// +build !race - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/race.go b/vendor/golang.org/x/net/internal/socket/race.go -index f0a28a62..9afa9580 100644 ---- a/vendor/golang.org/x/net/internal/socket/race.go -+++ b/vendor/golang.org/x/net/internal/socket/race.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build race --// +build race - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -index 8f79b38f..04313907 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -index f7d0b0d2..7c0d7410 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -index 02f32855..e363fb5a 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -index dd785877..ff7a8baf 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_bsd.go b/vendor/golang.org/x/net/internal/socket/sys_bsd.go -index b258879d..e7664d48 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || openbsd || solaris --// +build aix darwin dragonfly freebsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_const_unix.go b/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -index 5d99f237..d7627f87 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux.go b/vendor/golang.org/x/net/internal/socket/sys_linux.go -index 76f5b8ae..08d49107 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && !s390x && !386 --// +build linux,!s390x,!386 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go b/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -index af964e61..1d182470 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build loong64 --// +build loong64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -index 5b128fbb..0e407d12 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build riscv64 --// +build riscv64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_posix.go b/vendor/golang.org/x/net/internal/socket/sys_posix.go -index 42b8f234..58d86548 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_posix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_posix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_stub.go b/vendor/golang.org/x/net/internal/socket/sys_stub.go -index 7cfb349c..2e5b473c 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_unix.go b/vendor/golang.org/x/net/internal/socket/sys_unix.go -index de823932..93058db5 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -index 00691bd5..45bab004 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -@@ -3,7 +3,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -index 6a94fec2..b6fc15a1 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build loong64 --// +build loong64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -index c066272d..e67fc3cb 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build riscv64 --// +build riscv64 - - package socket - -diff --git a/vendor/golang.org/x/net/ipv4/control_bsd.go b/vendor/golang.org/x/net/ipv4/control_bsd.go -index b7385dfd..c88da8cb 100644 ---- a/vendor/golang.org/x/net/ipv4/control_bsd.go -+++ b/vendor/golang.org/x/net/ipv4/control_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_pktinfo.go b/vendor/golang.org/x/net/ipv4/control_pktinfo.go -index 0e748dbd..14ae2dae 100644 ---- a/vendor/golang.org/x/net/ipv4/control_pktinfo.go -+++ b/vendor/golang.org/x/net/ipv4/control_pktinfo.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || linux || solaris --// +build darwin linux solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_stub.go b/vendor/golang.org/x/net/ipv4/control_stub.go -index f27322c3..3ba66116 100644 ---- a/vendor/golang.org/x/net/ipv4/control_stub.go -+++ b/vendor/golang.org/x/net/ipv4/control_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_unix.go b/vendor/golang.org/x/net/ipv4/control_unix.go -index 2413e02f..2e765548 100644 ---- a/vendor/golang.org/x/net/ipv4/control_unix.go -+++ b/vendor/golang.org/x/net/ipv4/control_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/icmp_stub.go b/vendor/golang.org/x/net/ipv4/icmp_stub.go -index cd4ee6e1..c2c4ce7f 100644 ---- a/vendor/golang.org/x/net/ipv4/icmp_stub.go -+++ b/vendor/golang.org/x/net/ipv4/icmp_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/payload_cmsg.go b/vendor/golang.org/x/net/ipv4/payload_cmsg.go -index 1bb370e2..91c685e8 100644 ---- a/vendor/golang.org/x/net/ipv4/payload_cmsg.go -+++ b/vendor/golang.org/x/net/ipv4/payload_cmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -index 53f0794e..2afd4b50 100644 ---- a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -+++ b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sockopt_posix.go b/vendor/golang.org/x/net/ipv4/sockopt_posix.go -index eb07c1c0..82e2c378 100644 ---- a/vendor/golang.org/x/net/ipv4/sockopt_posix.go -+++ b/vendor/golang.org/x/net/ipv4/sockopt_posix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sockopt_stub.go b/vendor/golang.org/x/net/ipv4/sockopt_stub.go -index cf036893..840108bf 100644 ---- a/vendor/golang.org/x/net/ipv4/sockopt_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sockopt_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_aix.go b/vendor/golang.org/x/net/ipv4/sys_aix.go -index 02730cdf..9244a68a 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_aix.go -+++ b/vendor/golang.org/x/net/ipv4/sys_aix.go -@@ -4,7 +4,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreq.go b/vendor/golang.org/x/net/ipv4/sys_asmreq.go -index 22322b38..645f254c 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreq.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreq.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd || solaris || windows --// +build aix darwin dragonfly freebsd netbsd openbsd solaris windows - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go b/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -index fde64014..48cfb6db 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !netbsd && !openbsd && !solaris && !windows --// +build !aix,!darwin,!dragonfly,!freebsd,!netbsd,!openbsd,!solaris,!windows - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreqn.go b/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -index 54eb9901..0b27b632 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || freebsd || linux --// +build darwin freebsd linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go b/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -index dcb15f25..303a5e2e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !darwin && !freebsd && !linux --// +build !darwin,!freebsd,!linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bpf.go b/vendor/golang.org/x/net/ipv4/sys_bpf.go -index fb11e324..1b4780df 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bpf.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bpf.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go b/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -index fc53a0d3..b1f779b4 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bsd.go b/vendor/golang.org/x/net/ipv4/sys_bsd.go -index e191b2f1..b7b032d2 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bsd.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build netbsd || openbsd --// +build netbsd openbsd - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_ssmreq.go b/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -index 6a4e7abf..a295e15e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -+++ b/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || freebsd || linux || solaris --// +build darwin freebsd linux solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go b/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -index 157159fd..74bd454e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !darwin && !freebsd && !linux && !solaris --// +build !darwin,!freebsd,!linux,!solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_stub.go b/vendor/golang.org/x/net/ipv4/sys_stub.go -index d5508516..20af4074 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go b/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -index b7f2d6e5..dd454025 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -@@ -3,7 +3,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -index e15c22c7..54f9e139 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build loong64 --// +build loong64 - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -index e2edebdb..78374a52 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build riscv64 --// +build riscv64 - - package ipv4 - -diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go -index e7d3df4b..b0e41985 100644 ---- a/vendor/golang.org/x/sys/unix/aliases.go -+++ b/vendor/golang.org/x/sys/unix/aliases.go -@@ -2,7 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9 -+//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh -index 6202638b..fdcaa974 100644 ---- a/vendor/golang.org/x/sys/unix/mkerrors.sh -+++ b/vendor/golang.org/x/sys/unix/mkerrors.sh -@@ -248,6 +248,7 @@ struct ltchars { - #include - #include - #include -+#include - #include - #include - #include -@@ -283,10 +284,6 @@ struct ltchars { - #include - #endif - --#ifndef MSG_FASTOPEN --#define MSG_FASTOPEN 0x20000000 --#endif -- - #ifndef PTRACE_GETREGS - #define PTRACE_GETREGS 0xc - #endif -@@ -295,14 +292,6 @@ struct ltchars { - #define PTRACE_SETREGS 0xd - #endif - --#ifndef SOL_NETLINK --#define SOL_NETLINK 270 --#endif -- --#ifndef SOL_SMC --#define SOL_SMC 286 --#endif -- - #ifdef SOL_BLUETOOTH - // SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h - // but it is already in bluetooth_linux.go -@@ -319,10 +308,23 @@ struct ltchars { - #undef TIPC_WAIT_FOREVER - #define TIPC_WAIT_FOREVER 0xffffffff - --// Copied from linux/l2tp.h --// Including linux/l2tp.h here causes conflicts between linux/in.h --// and netinet/in.h included via net/route.h above. --#define IPPROTO_L2TP 115 -+// Copied from linux/netfilter/nf_nat.h -+// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h -+// and netinet/in.h. -+#define NF_NAT_RANGE_MAP_IPS (1 << 0) -+#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) -+#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) -+#define NF_NAT_RANGE_PERSISTENT (1 << 3) -+#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) -+#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) -+#define NF_NAT_RANGE_NETMAP (1 << 6) -+#define NF_NAT_RANGE_PROTO_RANDOM_ALL \ -+ (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) -+#define NF_NAT_RANGE_MASK \ -+ (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \ -+ NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \ -+ NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \ -+ NF_NAT_RANGE_NETMAP) - - // Copied from linux/hid.h. - // Keep in sync with the size of the referenced fields. -@@ -582,7 +584,7 @@ ccflags="$@" - $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || - $2 ~ /^KEYCTL_/ || - $2 ~ /^PERF_/ || -- $2 ~ /^SECCOMP_MODE_/ || -+ $2 ~ /^SECCOMP_/ || - $2 ~ /^SEEK_/ || - $2 ~ /^SCHED_/ || - $2 ~ /^SPLICE_/ || -@@ -603,6 +605,9 @@ ccflags="$@" - $2 ~ /^FSOPT_/ || - $2 ~ /^WDIO[CFS]_/ || - $2 ~ /^NFN/ || -+ $2 !~ /^NFT_META_IIFTYPE/ && -+ $2 ~ /^NFT_/ || -+ $2 ~ /^NF_NAT_/ || - $2 ~ /^XDP_/ || - $2 ~ /^RWF_/ || - $2 ~ /^(HDIO|WIN|SMART)_/ || -diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -index 16dc6993..2f0fa76e 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -@@ -2,7 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build darwin && go1.12 -+//go:build darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -index 64d1bb4d..2b57e0f7 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -@@ -13,6 +13,7 @@ - package unix - - import ( -+ "errors" - "sync" - "unsafe" - ) -@@ -169,25 +170,26 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) -- if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { -+ // Suppress ENOMEM errors to be compatible with the C library __xuname() implementation. -+ if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) -- if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) -- if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) -- if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - -@@ -205,7 +207,7 @@ func Uname(uname *Utsname) error { - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) -- if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go -index 0f85e29e..5682e262 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux.go -@@ -1849,6 +1849,105 @@ func Dup2(oldfd, newfd int) error { - //sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) - //sys Fsopen(fsName string, flags int) (fd int, err error) - //sys Fspick(dirfd int, pathName string, flags int) (fd int, err error) -+ -+//sys fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) -+ -+func fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) { -+ var keyp *byte -+ if keyp, err = BytePtrFromString(key); err != nil { -+ return -+ } -+ return fsconfig(fd, cmd, keyp, value, aux) -+} -+ -+// FsconfigSetFlag is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_FLAG. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+func FsconfigSetFlag(fd int, key string) (err error) { -+ return fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0) -+} -+ -+// FsconfigSetString is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_STRING. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is the parameter value to set. -+func FsconfigSetString(fd int, key string, value string) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(value); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0) -+} -+ -+// FsconfigSetBinary is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_BINARY. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is the parameter value to set. -+func FsconfigSetBinary(fd int, key string, value []byte) (err error) { -+ if len(value) == 0 { -+ return EINVAL -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value)) -+} -+ -+// FsconfigSetPath is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_PATH. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// path is a non-empty path for specified key. -+// atfd is a file descriptor at which to start lookup from or AT_FDCWD. -+func FsconfigSetPath(fd int, key string, path string, atfd int) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(path); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd) -+} -+ -+// FsconfigSetPathEmpty is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as -+// FconfigSetPath but with AT_PATH_EMPTY implied. -+func FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(path); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd) -+} -+ -+// FsconfigSetFd is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_FD. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is a file descriptor to be assigned to specified key. -+func FsconfigSetFd(fd int, key string, value int) (err error) { -+ return fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value) -+} -+ -+// FsconfigCreate is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_CMD_CREATE. -+// -+// fd is the filesystem context to act upon. -+func FsconfigCreate(fd int) (err error) { -+ return fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0) -+} -+ -+// FsconfigReconfigure is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_CMD_RECONFIGURE. -+// -+// fd is the filesystem context to act upon. -+func FsconfigReconfigure(fd int) (err error) { -+ return fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0) -+} -+ - //sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 - //sysnb Getpgid(pid int) (pgid int, err error) - -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go -index c73cfe2f..36bf8399 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go -@@ -1785,6 +1785,8 @@ const ( - LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20 - LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000 - LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 -+ LANDLOCK_ACCESS_NET_BIND_TCP = 0x1 -+ LANDLOCK_ACCESS_NET_CONNECT_TCP = 0x2 - LANDLOCK_CREATE_RULESET_VERSION = 0x1 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef -@@ -2127,6 +2129,60 @@ const ( - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 -+ NFT_CHAIN_FLAGS = 0x7 -+ NFT_CHAIN_MAXNAMELEN = 0x100 -+ NFT_CT_MAX = 0x17 -+ NFT_DATA_RESERVED_MASK = 0xffffff00 -+ NFT_DATA_VALUE_MAXLEN = 0x40 -+ NFT_EXTHDR_OP_MAX = 0x4 -+ NFT_FIB_RESULT_MAX = 0x3 -+ NFT_INNER_MASK = 0xf -+ NFT_LOGLEVEL_MAX = 0x8 -+ NFT_NAME_MAXLEN = 0x100 -+ NFT_NG_MAX = 0x1 -+ NFT_OBJECT_CONNLIMIT = 0x5 -+ NFT_OBJECT_COUNTER = 0x1 -+ NFT_OBJECT_CT_EXPECT = 0x9 -+ NFT_OBJECT_CT_HELPER = 0x3 -+ NFT_OBJECT_CT_TIMEOUT = 0x7 -+ NFT_OBJECT_LIMIT = 0x4 -+ NFT_OBJECT_MAX = 0xa -+ NFT_OBJECT_QUOTA = 0x2 -+ NFT_OBJECT_SECMARK = 0x8 -+ NFT_OBJECT_SYNPROXY = 0xa -+ NFT_OBJECT_TUNNEL = 0x6 -+ NFT_OBJECT_UNSPEC = 0x0 -+ NFT_OBJ_MAXNAMELEN = 0x100 -+ NFT_OSF_MAXGENRELEN = 0x10 -+ NFT_QUEUE_FLAG_BYPASS = 0x1 -+ NFT_QUEUE_FLAG_CPU_FANOUT = 0x2 -+ NFT_QUEUE_FLAG_MASK = 0x3 -+ NFT_REG32_COUNT = 0x10 -+ NFT_REG32_SIZE = 0x4 -+ NFT_REG_MAX = 0x4 -+ NFT_REG_SIZE = 0x10 -+ NFT_REJECT_ICMPX_MAX = 0x3 -+ NFT_RT_MAX = 0x4 -+ NFT_SECMARK_CTX_MAXLEN = 0x100 -+ NFT_SET_MAXNAMELEN = 0x100 -+ NFT_SOCKET_MAX = 0x3 -+ NFT_TABLE_F_MASK = 0x3 -+ NFT_TABLE_MAXNAMELEN = 0x100 -+ NFT_TRACETYPE_MAX = 0x3 -+ NFT_TUNNEL_F_MASK = 0x7 -+ NFT_TUNNEL_MAX = 0x1 -+ NFT_TUNNEL_MODE_MAX = 0x2 -+ NFT_USERDATA_MAXLEN = 0x100 -+ NFT_XFRM_KEY_MAX = 0x6 -+ NF_NAT_RANGE_MAP_IPS = 0x1 -+ NF_NAT_RANGE_MASK = 0x7f -+ NF_NAT_RANGE_NETMAP = 0x40 -+ NF_NAT_RANGE_PERSISTENT = 0x8 -+ NF_NAT_RANGE_PROTO_OFFSET = 0x20 -+ NF_NAT_RANGE_PROTO_RANDOM = 0x4 -+ NF_NAT_RANGE_PROTO_RANDOM_ALL = 0x14 -+ NF_NAT_RANGE_PROTO_RANDOM_FULLY = 0x10 -+ NF_NAT_RANGE_PROTO_SPECIFIED = 0x2 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 -@@ -2411,6 +2467,7 @@ const ( - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 -+ PR_MDWE_NO_INHERIT = 0x2 - PR_MDWE_REFUSE_EXEC_GAIN = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b -@@ -2615,8 +2672,9 @@ const ( - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 -- RTAX_FEATURE_MASK = 0xf -+ RTAX_FEATURE_MASK = 0x1f - RTAX_FEATURE_SACK = 0x2 -+ RTAX_FEATURE_TCP_USEC_TS = 0x10 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb -@@ -2859,9 +2917,38 @@ const ( - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SC_LOG_FLUSH = 0x100000 -+ SECCOMP_ADDFD_FLAG_SEND = 0x2 -+ SECCOMP_ADDFD_FLAG_SETFD = 0x1 -+ SECCOMP_FILTER_FLAG_LOG = 0x2 -+ SECCOMP_FILTER_FLAG_NEW_LISTENER = 0x8 -+ SECCOMP_FILTER_FLAG_SPEC_ALLOW = 0x4 -+ SECCOMP_FILTER_FLAG_TSYNC = 0x1 -+ SECCOMP_FILTER_FLAG_TSYNC_ESRCH = 0x10 -+ SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV = 0x20 -+ SECCOMP_GET_ACTION_AVAIL = 0x2 -+ SECCOMP_GET_NOTIF_SIZES = 0x3 -+ SECCOMP_IOCTL_NOTIF_RECV = 0xc0502100 -+ SECCOMP_IOCTL_NOTIF_SEND = 0xc0182101 -+ SECCOMP_IOC_MAGIC = '!' - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 -+ SECCOMP_RET_ACTION = 0x7fff0000 -+ SECCOMP_RET_ACTION_FULL = 0xffff0000 -+ SECCOMP_RET_ALLOW = 0x7fff0000 -+ SECCOMP_RET_DATA = 0xffff -+ SECCOMP_RET_ERRNO = 0x50000 -+ SECCOMP_RET_KILL = 0x0 -+ SECCOMP_RET_KILL_PROCESS = 0x80000000 -+ SECCOMP_RET_KILL_THREAD = 0x0 -+ SECCOMP_RET_LOG = 0x7ffc0000 -+ SECCOMP_RET_TRACE = 0x7ff00000 -+ SECCOMP_RET_TRAP = 0x30000 -+ SECCOMP_RET_USER_NOTIF = 0x7fc00000 -+ SECCOMP_SET_MODE_FILTER = 0x1 -+ SECCOMP_SET_MODE_STRICT = 0x0 -+ SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP = 0x1 -+ SECCOMP_USER_NOTIF_FLAG_CONTINUE = 0x1 - SECRETMEM_MAGIC = 0x5345434d - SECURITYFS_MAGIC = 0x73636673 - SEEK_CUR = 0x1 -@@ -3021,6 +3108,7 @@ const ( - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_UDP = 0x11 -+ SOL_VSOCK = 0x11f - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x1000 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -index 4920821c..42ff8c3c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -index a0c1e411..dca43600 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -@@ -282,6 +282,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -index c6398556..5cca668a 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -@@ -288,6 +288,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -index 47cc62e2..d8cae6d1 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -@@ -278,6 +278,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -index 27ac4a09..28e39afd 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -@@ -275,6 +275,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -index 54694642..cd66e92c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -index 3adb81d7..c1595eba 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -index 2dfe98f0..ee9456b0 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -index f5398f84..8cfca81e 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -index c54f152d..60b0deb3 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -@@ -336,6 +336,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -index 76057dc7..f90aa728 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -@@ -340,6 +340,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -index e0c3725e..ba9e0150 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -@@ -340,6 +340,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -index 18f2813e..07cdfd6e 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -@@ -272,6 +272,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -index 11619d4e..2f1dd214 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -@@ -344,6 +344,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -index 396d994d..f40519d9 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -@@ -335,6 +335,9 @@ const ( - SCM_TIMESTAMPNS = 0x21 - SCM_TXTIME = 0x3f - SCM_WIFI_STATUS = 0x25 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x400000 - SFD_NONBLOCK = 0x4000 - SF_FP = 0x38 -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -index 1488d271..87d8612a 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -@@ -906,6 +906,16 @@ func Fspick(dirfd int, pathName string, flags int) (fd int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) { -+ _, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -index a1d06159..9dc42410 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -index 5b2a7409..0d3a0751 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -index f6eda134..c39f7776 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -index 55df20ae..57571d07 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -index 8c1155cb..e62963e6 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -index 7cc80c58..00831354 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -index 0688737f..79029ed5 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -index fcf3ecbd..0cc3ce49 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -@@ -448,4 +448,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -index f56dc250..856d92d6 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -@@ -371,4 +371,7 @@ const ( - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -index 974bf246..8d467094 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -@@ -412,4 +412,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -index 39a2739e..edc17324 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -@@ -315,4 +315,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -index cf9c9d77..445eba20 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -@@ -309,4 +309,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -index 10b7362e..adba01bc 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -@@ -432,4 +432,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 -+ SYS_MAP_SHADOW_STACK = 4453 -+ SYS_FUTEX_WAKE = 4454 -+ SYS_FUTEX_WAIT = 4455 -+ SYS_FUTEX_REQUEUE = 4456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -index cd4d8b4f..014c4e9c 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -@@ -362,4 +362,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 -+ SYS_MAP_SHADOW_STACK = 5453 -+ SYS_FUTEX_WAKE = 5454 -+ SYS_FUTEX_WAIT = 5455 -+ SYS_FUTEX_REQUEUE = 5456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -index 2c0efca8..ccc97d74 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -@@ -362,4 +362,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 -+ SYS_MAP_SHADOW_STACK = 5453 -+ SYS_FUTEX_WAKE = 5454 -+ SYS_FUTEX_WAIT = 5455 -+ SYS_FUTEX_REQUEUE = 5456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -index a72e31d3..ec2b64a9 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -@@ -432,4 +432,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 -+ SYS_MAP_SHADOW_STACK = 4453 -+ SYS_FUTEX_WAKE = 4454 -+ SYS_FUTEX_WAIT = 4455 -+ SYS_FUTEX_REQUEUE = 4456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -index c7d1e374..21a839e3 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -@@ -439,4 +439,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -index f4d4838c..c11121ec 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -@@ -411,4 +411,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -index b64f0e59..909b631f 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -@@ -411,4 +411,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -index 95711195..e49bed16 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -@@ -316,4 +316,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -index f94e943b..66017d2d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -@@ -377,4 +377,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -index ba0c2bc5..47bab18d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -@@ -390,4 +390,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go -index bbf8399f..eff6bcde 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go -@@ -174,7 +174,8 @@ type FscryptPolicyV2 struct { - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 -- _ [4]uint8 -+ Log2_data_unit_size uint8 -+ _ [3]uint8 - Master_key_identifier [16]uint8 - } - -@@ -455,60 +456,63 @@ type Ucred struct { - } - - type TCPInfo struct { -- State uint8 -- Ca_state uint8 -- Retransmits uint8 -- Probes uint8 -- Backoff uint8 -- Options uint8 -- Rto uint32 -- Ato uint32 -- Snd_mss uint32 -- Rcv_mss uint32 -- Unacked uint32 -- Sacked uint32 -- Lost uint32 -- Retrans uint32 -- Fackets uint32 -- Last_data_sent uint32 -- Last_ack_sent uint32 -- Last_data_recv uint32 -- Last_ack_recv uint32 -- Pmtu uint32 -- Rcv_ssthresh uint32 -- Rtt uint32 -- Rttvar uint32 -- Snd_ssthresh uint32 -- Snd_cwnd uint32 -- Advmss uint32 -- Reordering uint32 -- Rcv_rtt uint32 -- Rcv_space uint32 -- Total_retrans uint32 -- Pacing_rate uint64 -- Max_pacing_rate uint64 -- Bytes_acked uint64 -- Bytes_received uint64 -- Segs_out uint32 -- Segs_in uint32 -- Notsent_bytes uint32 -- Min_rtt uint32 -- Data_segs_in uint32 -- Data_segs_out uint32 -- Delivery_rate uint64 -- Busy_time uint64 -- Rwnd_limited uint64 -- Sndbuf_limited uint64 -- Delivered uint32 -- Delivered_ce uint32 -- Bytes_sent uint64 -- Bytes_retrans uint64 -- Dsack_dups uint32 -- Reord_seen uint32 -- Rcv_ooopack uint32 -- Snd_wnd uint32 -- Rcv_wnd uint32 -- Rehash uint32 -+ State uint8 -+ Ca_state uint8 -+ Retransmits uint8 -+ Probes uint8 -+ Backoff uint8 -+ Options uint8 -+ Rto uint32 -+ Ato uint32 -+ Snd_mss uint32 -+ Rcv_mss uint32 -+ Unacked uint32 -+ Sacked uint32 -+ Lost uint32 -+ Retrans uint32 -+ Fackets uint32 -+ Last_data_sent uint32 -+ Last_ack_sent uint32 -+ Last_data_recv uint32 -+ Last_ack_recv uint32 -+ Pmtu uint32 -+ Rcv_ssthresh uint32 -+ Rtt uint32 -+ Rttvar uint32 -+ Snd_ssthresh uint32 -+ Snd_cwnd uint32 -+ Advmss uint32 -+ Reordering uint32 -+ Rcv_rtt uint32 -+ Rcv_space uint32 -+ Total_retrans uint32 -+ Pacing_rate uint64 -+ Max_pacing_rate uint64 -+ Bytes_acked uint64 -+ Bytes_received uint64 -+ Segs_out uint32 -+ Segs_in uint32 -+ Notsent_bytes uint32 -+ Min_rtt uint32 -+ Data_segs_in uint32 -+ Data_segs_out uint32 -+ Delivery_rate uint64 -+ Busy_time uint64 -+ Rwnd_limited uint64 -+ Sndbuf_limited uint64 -+ Delivered uint32 -+ Delivered_ce uint32 -+ Bytes_sent uint64 -+ Bytes_retrans uint64 -+ Dsack_dups uint32 -+ Reord_seen uint32 -+ Rcv_ooopack uint32 -+ Snd_wnd uint32 -+ Rcv_wnd uint32 -+ Rehash uint32 -+ Total_rto uint16 -+ Total_rto_recoveries uint16 -+ Total_rto_time uint32 - } - - type CanFilter struct { -@@ -551,7 +555,7 @@ const ( - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc -- SizeofTCPInfo = 0xf0 -+ SizeofTCPInfo = 0xf8 - SizeofCanFilter = 0x8 - SizeofTCPRepairOpt = 0x8 - ) -@@ -832,6 +836,15 @@ const ( - FSPICK_EMPTY_PATH = 0x8 - - FSMOUNT_CLOEXEC = 0x1 -+ -+ FSCONFIG_SET_FLAG = 0x0 -+ FSCONFIG_SET_STRING = 0x1 -+ FSCONFIG_SET_BINARY = 0x2 -+ FSCONFIG_SET_PATH = 0x3 -+ FSCONFIG_SET_PATH_EMPTY = 0x4 -+ FSCONFIG_SET_FD = 0x5 -+ FSCONFIG_CMD_CREATE = 0x6 -+ FSCONFIG_CMD_RECONFIGURE = 0x7 - ) - - type OpenHow struct { -@@ -1546,6 +1559,7 @@ const ( - IFLA_DEVLINK_PORT = 0x3e - IFLA_GSO_IPV4_MAX_SIZE = 0x3f - IFLA_GRO_IPV4_MAX_SIZE = 0x40 -+ IFLA_DPLL_PIN = 0x41 - IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 - IFLA_PROTO_DOWN_REASON_MASK = 0x1 - IFLA_PROTO_DOWN_REASON_VALUE = 0x2 -@@ -1561,6 +1575,7 @@ const ( - IFLA_INET6_ICMP6STATS = 0x6 - IFLA_INET6_TOKEN = 0x7 - IFLA_INET6_ADDR_GEN_MODE = 0x8 -+ IFLA_INET6_RA_MTU = 0x9 - IFLA_BR_UNSPEC = 0x0 - IFLA_BR_FORWARD_DELAY = 0x1 - IFLA_BR_HELLO_TIME = 0x2 -@@ -1608,6 +1623,9 @@ const ( - IFLA_BR_MCAST_MLD_VERSION = 0x2c - IFLA_BR_VLAN_STATS_PER_PORT = 0x2d - IFLA_BR_MULTI_BOOLOPT = 0x2e -+ IFLA_BR_MCAST_QUERIER_STATE = 0x2f -+ IFLA_BR_FDB_N_LEARNED = 0x30 -+ IFLA_BR_FDB_MAX_LEARNED = 0x31 - IFLA_BRPORT_UNSPEC = 0x0 - IFLA_BRPORT_STATE = 0x1 - IFLA_BRPORT_PRIORITY = 0x2 -@@ -1645,6 +1663,14 @@ const ( - IFLA_BRPORT_BACKUP_PORT = 0x22 - IFLA_BRPORT_MRP_RING_OPEN = 0x23 - IFLA_BRPORT_MRP_IN_OPEN = 0x24 -+ IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 0x25 -+ IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 0x26 -+ IFLA_BRPORT_LOCKED = 0x27 -+ IFLA_BRPORT_MAB = 0x28 -+ IFLA_BRPORT_MCAST_N_GROUPS = 0x29 -+ IFLA_BRPORT_MCAST_MAX_GROUPS = 0x2a -+ IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 0x2b -+ IFLA_BRPORT_BACKUP_NHID = 0x2c - IFLA_INFO_UNSPEC = 0x0 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 -@@ -1666,6 +1692,9 @@ const ( - IFLA_MACVLAN_MACADDR = 0x4 - IFLA_MACVLAN_MACADDR_DATA = 0x5 - IFLA_MACVLAN_MACADDR_COUNT = 0x6 -+ IFLA_MACVLAN_BC_QUEUE_LEN = 0x7 -+ IFLA_MACVLAN_BC_QUEUE_LEN_USED = 0x8 -+ IFLA_MACVLAN_BC_CUTOFF = 0x9 - IFLA_VRF_UNSPEC = 0x0 - IFLA_VRF_TABLE = 0x1 - IFLA_VRF_PORT_UNSPEC = 0x0 -@@ -1689,9 +1718,22 @@ const ( - IFLA_XFRM_UNSPEC = 0x0 - IFLA_XFRM_LINK = 0x1 - IFLA_XFRM_IF_ID = 0x2 -+ IFLA_XFRM_COLLECT_METADATA = 0x3 - IFLA_IPVLAN_UNSPEC = 0x0 - IFLA_IPVLAN_MODE = 0x1 - IFLA_IPVLAN_FLAGS = 0x2 -+ NETKIT_NEXT = -0x1 -+ NETKIT_PASS = 0x0 -+ NETKIT_DROP = 0x2 -+ NETKIT_REDIRECT = 0x7 -+ NETKIT_L2 = 0x0 -+ NETKIT_L3 = 0x1 -+ IFLA_NETKIT_UNSPEC = 0x0 -+ IFLA_NETKIT_PEER_INFO = 0x1 -+ IFLA_NETKIT_PRIMARY = 0x2 -+ IFLA_NETKIT_POLICY = 0x3 -+ IFLA_NETKIT_PEER_POLICY = 0x4 -+ IFLA_NETKIT_MODE = 0x5 - IFLA_VXLAN_UNSPEC = 0x0 - IFLA_VXLAN_ID = 0x1 - IFLA_VXLAN_GROUP = 0x2 -@@ -1722,6 +1764,8 @@ const ( - IFLA_VXLAN_GPE = 0x1b - IFLA_VXLAN_TTL_INHERIT = 0x1c - IFLA_VXLAN_DF = 0x1d -+ IFLA_VXLAN_VNIFILTER = 0x1e -+ IFLA_VXLAN_LOCALBYPASS = 0x1f - IFLA_GENEVE_UNSPEC = 0x0 - IFLA_GENEVE_ID = 0x1 - IFLA_GENEVE_REMOTE = 0x2 -@@ -1736,6 +1780,7 @@ const ( - IFLA_GENEVE_LABEL = 0xb - IFLA_GENEVE_TTL_INHERIT = 0xc - IFLA_GENEVE_DF = 0xd -+ IFLA_GENEVE_INNER_PROTO_INHERIT = 0xe - IFLA_BAREUDP_UNSPEC = 0x0 - IFLA_BAREUDP_PORT = 0x1 - IFLA_BAREUDP_ETHERTYPE = 0x2 -@@ -1748,6 +1793,8 @@ const ( - IFLA_GTP_FD1 = 0x2 - IFLA_GTP_PDP_HASHSIZE = 0x3 - IFLA_GTP_ROLE = 0x4 -+ IFLA_GTP_CREATE_SOCKETS = 0x5 -+ IFLA_GTP_RESTART_COUNT = 0x6 - IFLA_BOND_UNSPEC = 0x0 - IFLA_BOND_MODE = 0x1 - IFLA_BOND_ACTIVE_SLAVE = 0x2 -@@ -1777,6 +1824,9 @@ const ( - IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a - IFLA_BOND_TLB_DYNAMIC_LB = 0x1b - IFLA_BOND_PEER_NOTIF_DELAY = 0x1c -+ IFLA_BOND_AD_LACP_ACTIVE = 0x1d -+ IFLA_BOND_MISSED_MAX = 0x1e -+ IFLA_BOND_NS_IP6_TARGET = 0x1f - IFLA_BOND_AD_INFO_UNSPEC = 0x0 - IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 - IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 -@@ -1792,6 +1842,7 @@ const ( - IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6 - IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7 - IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8 -+ IFLA_BOND_SLAVE_PRIO = 0x9 - IFLA_VF_INFO_UNSPEC = 0x0 - IFLA_VF_INFO = 0x1 - IFLA_VF_UNSPEC = 0x0 -@@ -1850,8 +1901,16 @@ const ( - IFLA_STATS_LINK_XSTATS_SLAVE = 0x3 - IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4 - IFLA_STATS_AF_SPEC = 0x5 -+ IFLA_STATS_GETSET_UNSPEC = 0x0 -+ IFLA_STATS_GET_FILTERS = 0x1 -+ IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 0x2 - IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 - IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO = 0x2 -+ IFLA_OFFLOAD_XSTATS_L3_STATS = 0x3 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0x0 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 0x1 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 0x2 - IFLA_XDP_UNSPEC = 0x0 - IFLA_XDP_FD = 0x1 - IFLA_XDP_ATTACHED = 0x2 -@@ -1881,6 +1940,11 @@ const ( - IFLA_RMNET_UNSPEC = 0x0 - IFLA_RMNET_MUX_ID = 0x1 - IFLA_RMNET_FLAGS = 0x2 -+ IFLA_MCTP_UNSPEC = 0x0 -+ IFLA_MCTP_NET = 0x1 -+ IFLA_DSA_UNSPEC = 0x0 -+ IFLA_DSA_CONDUIT = 0x1 -+ IFLA_DSA_MASTER = 0x1 - ) - - const ( -@@ -3399,7 +3463,7 @@ const ( - DEVLINK_PORT_FN_ATTR_STATE = 0x2 - DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 - DEVLINK_PORT_FN_ATTR_CAPS = 0x4 -- DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x4 -+ DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x5 - ) - - type FsverityDigest struct { -@@ -4183,7 +4247,8 @@ const ( - ) - - type LandlockRulesetAttr struct { -- Access_fs uint64 -+ Access_fs uint64 -+ Access_net uint64 - } - - type LandlockPathBeneathAttr struct { -@@ -5134,7 +5199,7 @@ const ( - NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe - NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf -- NL80211_FREQUENCY_ATTR_MAX = 0x1b -+ NL80211_FREQUENCY_ATTR_MAX = 0x1c - NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 - NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 - NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc -@@ -5547,7 +5612,7 @@ const ( - NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2 - NL80211_REGDOM_TYPE_INTERSECTION = 0x3 - NL80211_REGDOM_TYPE_WORLD = 0x1 -- NL80211_REG_RULE_ATTR_MAX = 0x7 -+ NL80211_REG_RULE_ATTR_MAX = 0x8 - NL80211_REKEY_DATA_AKM = 0x4 - NL80211_REKEY_DATA_KCK = 0x2 - NL80211_REKEY_DATA_KEK = 0x1 -diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go -index b8ad1925..d4577a42 100644 ---- a/vendor/golang.org/x/sys/windows/env_windows.go -+++ b/vendor/golang.org/x/sys/windows/env_windows.go -@@ -37,14 +37,17 @@ func (token Token) Environ(inheritExisting bool) (env []string, err error) { - return nil, err - } - defer DestroyEnvironmentBlock(block) -- blockp := unsafe.Pointer(block) -- for { -- entry := UTF16PtrToString((*uint16)(blockp)) -- if len(entry) == 0 { -- break -+ size := unsafe.Sizeof(*block) -+ for *block != 0 { -+ // find NUL terminator -+ end := unsafe.Pointer(block) -+ for *(*uint16)(end) != 0 { -+ end = unsafe.Add(end, size) - } -- env = append(env, entry) -- blockp = unsafe.Add(blockp, 2*(len(entry)+1)) -+ -+ entry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size) -+ env = append(env, UTF16ToString(entry)) -+ block = (*uint16)(unsafe.Add(end, size)) - } - return env, nil - } -diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go -index 47dc5796..6395a031 100644 ---- a/vendor/golang.org/x/sys/windows/syscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/syscall_windows.go -@@ -125,8 +125,7 @@ func UTF16PtrToString(p *uint16) string { - for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { - ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) - } -- -- return string(utf16.Decode(unsafe.Slice(p, n))) -+ return UTF16ToString(unsafe.Slice(p, n)) - } - - func Getpagesize() int { return 4096 } -@@ -194,6 +193,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW - //sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW - //sys SetEndOfFile(handle Handle) (err error) -+//sys SetFileValidData(handle Handle, validDataLength int64) (err error) - //sys GetSystemTimeAsFileTime(time *Filetime) - //sys GetSystemTimePreciseAsFileTime(time *Filetime) - //sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] -diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -index 146a1f01..e8791c82 100644 ---- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -@@ -342,6 +342,7 @@ var ( - procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") - procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") - procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") -+ procSetFileValidData = modkernel32.NewProc("SetFileValidData") - procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") - procSetErrorMode = modkernel32.NewProc("SetErrorMode") - procSetEvent = modkernel32.NewProc("SetEvent") -@@ -2988,6 +2989,14 @@ func SetEndOfFile(handle Handle) (err error) { - return - } - -+func SetFileValidData(handle Handle, validDataLength int64) (err error) { -+ r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) -+ if r1 == 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ - func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) - if r1 == 0 { -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 6636e54e..aca1c689 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -191,8 +191,8 @@ go.opencensus.io/trace/tracestate - # golang.org/x/mod v0.13.0 - ## explicit; go 1.18 - golang.org/x/mod/semver --# golang.org/x/net v0.17.0 --## explicit; go 1.17 -+# golang.org/x/net v0.23.0 -+## explicit; go 1.18 - golang.org/x/net/bpf - golang.org/x/net/context - golang.org/x/net/html -@@ -201,14 +201,14 @@ golang.org/x/net/html/charset - golang.org/x/net/internal/iana - golang.org/x/net/internal/socket - golang.org/x/net/ipv4 --# golang.org/x/sys v0.15.0 -+# golang.org/x/sys v0.18.0 - ## explicit; go 1.18 - golang.org/x/sys/execabs - golang.org/x/sys/unix - golang.org/x/sys/windows - golang.org/x/sys/windows/registry --# golang.org/x/text v0.13.0 --## explicit; go 1.17 -+# golang.org/x/text v0.14.0 -+## explicit; go 1.18 - golang.org/x/text/encoding - golang.org/x/text/encoding/charmap - golang.org/x/text/encoding/htmlindex --- -2.39.1 -