diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 66964a7c..34d19642 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -1,970 +1,994 @@ { - "ImportPath": "k8s.io/sample-controller", - "GoVersion": "go1.9", - "GodepVersion": "v79", - "Packages": [ - "./..." - ], - "Deps": [ - { - "ImportPath": "github.com/PuerkitoBio/purell", - "Rev": "8a290539e2e8629dbc4e6bad948158f790ec31f4" - }, - { - "ImportPath": "github.com/PuerkitoBio/urlesc", - "Rev": "5bd2802263f21d8788851d5305584c82a5c75d7e" - }, - { - "ImportPath": "github.com/davecgh/go-spew/spew", - "Rev": "782f4967f2dc4564575ca782fe2d04090b5faca8" - }, - { - "ImportPath": "github.com/emicklei/go-restful", - "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" - }, - { - "ImportPath": "github.com/emicklei/go-restful/log", - "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" - }, - { - "ImportPath": "github.com/ghodss/yaml", - "Rev": "73d445a93680fa1a78ae23a5839bad48f32ba1ee" - }, - { - "ImportPath": "github.com/go-openapi/jsonpointer", - "Rev": "46af16f9f7b149af66e5d1bd010e3574dc06de98" - }, - { - "ImportPath": "github.com/go-openapi/jsonreference", - "Rev": "13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272" - }, - { - "ImportPath": "github.com/go-openapi/spec", - "Rev": "7abd5745472fff5eb3685386d5fb8bf38683154d" - }, - { - "ImportPath": "github.com/go-openapi/swag", - "Rev": "f3f9494671f93fcff853e3c6e9e948b3eb71e590" - }, - { - "ImportPath": "github.com/gogo/protobuf/proto", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/sortkeys", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/golang/glog", - "Rev": "44145f04b68cf362d9c4df2182967c2275eaefed" - }, - { - "ImportPath": "github.com/golang/groupcache/lru", - "Rev": "02826c3e79038b59d737d3b1c0a1d937f71a4433" - }, - { - "ImportPath": "github.com/golang/protobuf/proto", - "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" - }, - { - "ImportPath": "github.com/golang/protobuf/ptypes", - "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" - }, - { - "ImportPath": "github.com/golang/protobuf/ptypes/any", - "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" - }, - { - "ImportPath": "github.com/golang/protobuf/ptypes/duration", - "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" - }, - { - "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", - "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" - }, - { - "ImportPath": "github.com/google/btree", - "Rev": "7d79101e329e5a3adf994758c578dab82b90c017" - }, - { - "ImportPath": "github.com/google/gofuzz", - "Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c" - }, - { - "ImportPath": "github.com/googleapis/gnostic/OpenAPIv2", - "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" - }, - { - "ImportPath": "github.com/googleapis/gnostic/compiler", - "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" - }, - { - "ImportPath": "github.com/googleapis/gnostic/extensions", - "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" - }, - { - "ImportPath": "github.com/gregjones/httpcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, - { - "ImportPath": "github.com/gregjones/httpcache/diskcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, - { - "ImportPath": "github.com/hashicorp/golang-lru", - "Rev": "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4" - }, - { - "ImportPath": "github.com/hashicorp/golang-lru/simplelru", - "Rev": "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4" - }, - { - "ImportPath": "github.com/howeyc/gopass", - "Rev": "bf9dde6d0d2c004a008c27aaee91170c786f6db8" - }, - { - "ImportPath": "github.com/imdario/mergo", - "Rev": "6633656539c1639d9d78127b7d47c622b5d7b6dc" - }, - { - "ImportPath": "github.com/json-iterator/go", - "Rev": "36b14963da70d11297d313183d7e6388c8510e1e" - }, - { - "ImportPath": "github.com/juju/ratelimit", - "Rev": "5b9ff866471762aa2ab2dced63c9fb6f53921342" - }, - { - "ImportPath": "github.com/mailru/easyjson/buffer", - "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" - }, - { - "ImportPath": "github.com/mailru/easyjson/jlexer", - "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" - }, - { - "ImportPath": "github.com/mailru/easyjson/jwriter", - "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" - }, - { - "ImportPath": "github.com/peterbourgon/diskv", - "Rev": "5f041e8faa004a95c88a202771f4cc3e991971e6" - }, - { - "ImportPath": "github.com/spf13/pflag", - "Rev": "9ff6c6923cfffbcd502984b8e0c80539a94968b7" - }, - { - "ImportPath": "golang.org/x/crypto/ssh/terminal", - "Rev": "81e90905daefcd6fd217b62423c0908922eadb30" - }, - { - "ImportPath": "golang.org/x/net/context", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" - }, - { - "ImportPath": "golang.org/x/net/http2", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" - }, - { - "ImportPath": "golang.org/x/net/http2/hpack", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" - }, - { - "ImportPath": "golang.org/x/net/idna", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" - }, - { - "ImportPath": "golang.org/x/net/lex/httplex", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" - }, - { - "ImportPath": "golang.org/x/sys/unix", - "Rev": "95c6576299259db960f6c5b9b69ea52422860fce" - }, - { - "ImportPath": "golang.org/x/sys/windows", - "Rev": "95c6576299259db960f6c5b9b69ea52422860fce" - }, - { - "ImportPath": "golang.org/x/text/cases", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/internal", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/internal/tag", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/language", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/runes", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/secure/bidirule", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/secure/precis", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/transform", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/unicode/bidi", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/unicode/norm", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/width", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "gopkg.in/inf.v0", - "Rev": "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4" - }, - { - "ImportPath": "gopkg.in/yaml.v2", - "Rev": "53feefa2559fb8dfa8d81baad31be332c97d6c77" - }, - { - "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/admissionregistration/v1beta1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/apps/v1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/apps/v1beta1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/apps/v1beta2", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/authentication/v1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/authentication/v1beta1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/authorization/v1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/authorization/v1beta1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/autoscaling/v1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/autoscaling/v2beta1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/batch/v1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/batch/v1beta1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/batch/v2alpha1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/certificates/v1beta1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/core/v1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/extensions/v1beta1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/networking/v1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/policy/v1beta1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/rbac/v1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/rbac/v1alpha1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/rbac/v1beta1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/scheduling/v1alpha1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/settings/v1alpha1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/storage/v1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/storage/v1alpha1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/api/storage/v1beta1", - "Rev": "96c7ecc8649cb4fcf99a98d19ea28d5aa88caf70" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/api/errors", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/api/meta", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/cache", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/clock", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/diff", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/framer", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/json", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/version", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "4c98d116e0a4b9b772b313ac91715abbfb0417a1" - }, - { - "ImportPath": "k8s.io/client-go/discovery", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/discovery/fake", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/admissionregistration", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/apps", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/apps/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/apps/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/apps/v1beta2", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/autoscaling", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/autoscaling/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/batch", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/batch/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/batch/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/batch/v2alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/certificates", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/certificates/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/core", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/core/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/extensions", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/extensions/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/internalinterfaces", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/networking", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/networking/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/policy", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/policy/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/rbac", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/rbac/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/rbac/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/scheduling", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/settings", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/settings/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/storage", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/storage/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/scheme", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/apps/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/apps/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/apps/v1beta2", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/autoscaling/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/batch/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/batch/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/batch/v2alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/certificates/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/core/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/extensions/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/networking/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/policy/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/rbac/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/rbac/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/settings/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/storage/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/pkg/version", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/rest", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/rest/watch", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/testing", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/tools/auth", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/tools/cache", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/tools/clientcmd", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/tools/clientcmd/api", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/tools/metrics", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/tools/pager", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/tools/record", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/tools/reference", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/transport", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/util/buffer", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/util/cert", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/util/flowcontrol", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/util/homedir", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/util/integer", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/client-go/util/workqueue", - "Rev": "d97bb3ec4ca83c7322497f1f912f74f7e4bc442d" - }, - { - "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" - } - ] + "ImportPath": "k8s.io/sample-controller", + "GoVersion": "go1.9", + "GodepVersion": "v79", + "Packages": [ + "./..." + ], + "Deps": [ + { + "ImportPath": "github.com/PuerkitoBio/purell", + "Rev": "8a290539e2e8629dbc4e6bad948158f790ec31f4" + }, + { + "ImportPath": "github.com/PuerkitoBio/urlesc", + "Rev": "5bd2802263f21d8788851d5305584c82a5c75d7e" + }, + { + "ImportPath": "github.com/davecgh/go-spew/spew", + "Rev": "782f4967f2dc4564575ca782fe2d04090b5faca8" + }, + { + "ImportPath": "github.com/emicklei/go-restful", + "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" + }, + { + "ImportPath": "github.com/emicklei/go-restful/log", + "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" + }, + { + "ImportPath": "github.com/ghodss/yaml", + "Rev": "73d445a93680fa1a78ae23a5839bad48f32ba1ee" + }, + { + "ImportPath": "github.com/go-openapi/jsonpointer", + "Rev": "46af16f9f7b149af66e5d1bd010e3574dc06de98" + }, + { + "ImportPath": "github.com/go-openapi/jsonreference", + "Rev": "13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272" + }, + { + "ImportPath": "github.com/go-openapi/spec", + "Rev": "7abd5745472fff5eb3685386d5fb8bf38683154d" + }, + { + "ImportPath": "github.com/go-openapi/swag", + "Rev": "f3f9494671f93fcff853e3c6e9e948b3eb71e590" + }, + { + "ImportPath": "github.com/gogo/protobuf/proto", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/sortkeys", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/golang/glog", + "Rev": "44145f04b68cf362d9c4df2182967c2275eaefed" + }, + { + "ImportPath": "github.com/golang/groupcache/lru", + "Rev": "02826c3e79038b59d737d3b1c0a1d937f71a4433" + }, + { + "ImportPath": "github.com/golang/protobuf/proto", + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes", + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/any", + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/duration", + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + }, + { + "ImportPath": "github.com/google/btree", + "Rev": "7d79101e329e5a3adf994758c578dab82b90c017" + }, + { + "ImportPath": "github.com/google/gofuzz", + "Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c" + }, + { + "ImportPath": "github.com/googleapis/gnostic/OpenAPIv2", + "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" + }, + { + "ImportPath": "github.com/googleapis/gnostic/compiler", + "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" + }, + { + "ImportPath": "github.com/googleapis/gnostic/extensions", + "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" + }, + { + "ImportPath": "github.com/gregjones/httpcache", + "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" + }, + { + "ImportPath": "github.com/gregjones/httpcache/diskcache", + "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" + }, + { + "ImportPath": "github.com/hashicorp/golang-lru", + "Rev": "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4" + }, + { + "ImportPath": "github.com/hashicorp/golang-lru/simplelru", + "Rev": "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4" + }, + { + "ImportPath": "github.com/howeyc/gopass", + "Rev": "bf9dde6d0d2c004a008c27aaee91170c786f6db8" + }, + { + "ImportPath": "github.com/imdario/mergo", + "Rev": "6633656539c1639d9d78127b7d47c622b5d7b6dc" + }, + { + "ImportPath": "github.com/json-iterator/go", + "Rev": "36b14963da70d11297d313183d7e6388c8510e1e" + }, + { + "ImportPath": "github.com/juju/ratelimit", + "Rev": "5b9ff866471762aa2ab2dced63c9fb6f53921342" + }, + { + "ImportPath": "github.com/mailru/easyjson/buffer", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, + { + "ImportPath": "github.com/mailru/easyjson/jlexer", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, + { + "ImportPath": "github.com/mailru/easyjson/jwriter", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, + { + "ImportPath": "github.com/peterbourgon/diskv", + "Rev": "5f041e8faa004a95c88a202771f4cc3e991971e6" + }, + { + "ImportPath": "github.com/spf13/pflag", + "Rev": "9ff6c6923cfffbcd502984b8e0c80539a94968b7" + }, + { + "ImportPath": "golang.org/x/crypto/ssh/terminal", + "Rev": "81e90905daefcd6fd217b62423c0908922eadb30" + }, + { + "ImportPath": "golang.org/x/net/context", + "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + }, + { + "ImportPath": "golang.org/x/net/http2", + "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + }, + { + "ImportPath": "golang.org/x/net/http2/hpack", + "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + }, + { + "ImportPath": "golang.org/x/net/idna", + "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + }, + { + "ImportPath": "golang.org/x/net/lex/httplex", + "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + }, + { + "ImportPath": "golang.org/x/sys/unix", + "Rev": "95c6576299259db960f6c5b9b69ea52422860fce" + }, + { + "ImportPath": "golang.org/x/sys/windows", + "Rev": "95c6576299259db960f6c5b9b69ea52422860fce" + }, + { + "ImportPath": "golang.org/x/text/cases", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/internal", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/internal/tag", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/language", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/runes", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/secure/bidirule", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/secure/precis", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/transform", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/unicode/bidi", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/unicode/norm", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/width", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "gopkg.in/inf.v0", + "Rev": "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4" + }, + { + "ImportPath": "gopkg.in/yaml.v2", + "Rev": "53feefa2559fb8dfa8d81baad31be332c97d6c77" + }, + { + "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/admissionregistration/v1beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/apps/v1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/apps/v1beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/apps/v1beta2", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/authentication/v1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/authentication/v1beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/authorization/v1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/authorization/v1beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/autoscaling/v1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/autoscaling/v2beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/batch/v1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/batch/v1beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/batch/v2alpha1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/certificates/v1beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/core/v1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/events/v1beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/extensions/v1beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/networking/v1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/policy/v1beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/rbac/v1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/rbac/v1alpha1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/rbac/v1beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/scheduling/v1alpha1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/settings/v1alpha1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/storage/v1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/storage/v1alpha1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/api/storage/v1beta1", + "Rev": "9fc595375ab38f53cbc3a53026ac40fb44ad50ca" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/errors", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/meta", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/resource", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/conversion", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/fields", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/labels", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/selection", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/types", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/cache", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/clock", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/diff", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/errors", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/framer", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/json", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/net", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/sets", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/validation", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/wait", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/version", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/watch", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", + "Rev": "180eddb345a5be3a157cea1c624700ad5bd27b8f" + }, + { + "ImportPath": "k8s.io/client-go/discovery", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/discovery/fake", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/admissionregistration", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps/v1beta2", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/autoscaling", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/autoscaling/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch/v2alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/certificates", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/certificates/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/core", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/core/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/events", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/events/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/extensions", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/extensions/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/internalinterfaces", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/networking", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/networking/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/policy", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/policy/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/scheduling", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/settings", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/settings/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/scheme", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/apps/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/apps/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/apps/v1beta2", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/autoscaling/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/batch/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/batch/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/batch/v2alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/certificates/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/core/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/events/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/extensions/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/networking/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/policy/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/rbac/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/rbac/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/settings/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/pkg/version", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/rest", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/rest/watch", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/testing", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/tools/auth", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/tools/cache", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd/api", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/tools/metrics", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/tools/pager", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/tools/record", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/tools/reference", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/transport", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/util/buffer", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/util/cert", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/util/flowcontrol", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/util/homedir", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/util/integer", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/client-go/util/workqueue", + "Rev": "651d7a8818705e25181c672c1d71524a08e42bb0" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/common", + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" + } + ] } diff --git a/vendor/k8s.io/api/apps/v1/types.go b/vendor/k8s.io/api/apps/v1/types.go index 913c3b47..f32300fe 100644 --- a/vendor/k8s.io/api/apps/v1/types.go +++ b/vendor/k8s.io/api/apps/v1/types.go @@ -28,6 +28,7 @@ const ( StatefulSetRevisionLabel = ControllerRevisionHashLabelKey DeprecatedRollbackTo = "deprecated.deployment.rollback.to" DeprecatedTemplateGeneration = "deprecated.daemonset.template.generation" + StatefulSetPodNameLabel = "statefulset.kubernetes.io/pod-name" ) // +genclient diff --git a/vendor/k8s.io/api/apps/v1beta1/types.go b/vendor/k8s.io/api/apps/v1beta1/types.go index ca30191d..dd9e97e1 100644 --- a/vendor/k8s.io/api/apps/v1beta1/types.go +++ b/vendor/k8s.io/api/apps/v1beta1/types.go @@ -26,6 +26,7 @@ import ( const ( ControllerRevisionHashLabelKey = "controller-revision-hash" StatefulSetRevisionLabel = ControllerRevisionHashLabelKey + StatefulSetPodNameLabel = "statefulset.kubernetes.io/pod-name" ) // ScaleSpec describes the attributes of a scale subresource diff --git a/vendor/k8s.io/api/apps/v1beta2/generated.proto b/vendor/k8s.io/api/apps/v1beta2/generated.proto index 6e4d1d85..dac5a5f6 100644 --- a/vendor/k8s.io/api/apps/v1beta2/generated.proto +++ b/vendor/k8s.io/api/apps/v1beta2/generated.proto @@ -120,9 +120,8 @@ message DaemonSetList { message DaemonSetSpec { // A label query over pods that are managed by the daemon set. // Must match in order to be controlled. - // If empty, defaulted to labels on Pod template. + // It must match the pod template's labels. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1; // An object that describes the pod that will be created. @@ -274,7 +273,7 @@ message DeploymentSpec { // Label selector for pods. Existing ReplicaSets whose pods are // selected by this will be the ones affected by this deployment. - // +optional + // It must match the pod template's labels. optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; // Template describes the pods that will be created. @@ -434,10 +433,9 @@ message ReplicaSetSpec { optional int32 minReadySeconds = 4; // Selector is a label query over pods that should match the replica count. - // If the selector is empty, it is defaulted to the labels present on the pod template. // Label keys and values that must match in order to be controlled by this replica set. + // It must match the pod template's labels. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; // Template is the object that describes the pod that will be created if @@ -636,9 +634,8 @@ message StatefulSetSpec { optional int32 replicas = 1; // selector is a label query over pods that should match the replica count. - // If empty, defaulted to labels on the pod template. + // It must match the pod template's labels. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; // template is the object that describes the pod that will be created if diff --git a/vendor/k8s.io/api/apps/v1beta2/types.go b/vendor/k8s.io/api/apps/v1beta2/types.go index aaeed4e4..fb54f95c 100644 --- a/vendor/k8s.io/api/apps/v1beta2/types.go +++ b/vendor/k8s.io/api/apps/v1beta2/types.go @@ -28,6 +28,7 @@ const ( StatefulSetRevisionLabel = ControllerRevisionHashLabelKey DeprecatedRollbackTo = "deprecated.deployment.rollback.to" DeprecatedTemplateGeneration = "deprecated.daemonset.template.generation" + StatefulSetPodNameLabel = "statefulset.kubernetes.io/pod-name" ) // ScaleSpec describes the attributes of a scale subresource @@ -169,10 +170,9 @@ type StatefulSetSpec struct { Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,1,opt,name=replicas"` // selector is a label query over pods that should match the replica count. - // If empty, defaulted to labels on the pod template. + // It must match the pod template's labels. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional - Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,2,opt,name=selector"` + Selector *metav1.LabelSelector `json:"selector" protobuf:"bytes,2,opt,name=selector"` // template is the object that describes the pod that will be created if // insufficient replicas are detected. Each pod stamped out by the StatefulSet @@ -319,8 +319,8 @@ type DeploymentSpec struct { // Label selector for pods. Existing ReplicaSets whose pods are // selected by this will be the ones affected by this deployment. - // +optional - Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,2,opt,name=selector"` + // It must match the pod template's labels. + Selector *metav1.LabelSelector `json:"selector" protobuf:"bytes,2,opt,name=selector"` // Template describes the pods that will be created. Template v1.PodTemplateSpec `json:"template" protobuf:"bytes,3,opt,name=template"` @@ -550,10 +550,9 @@ type RollingUpdateDaemonSet struct { type DaemonSetSpec struct { // A label query over pods that are managed by the daemon set. // Must match in order to be controlled. - // If empty, defaulted to labels on Pod template. + // It must match the pod template's labels. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional - Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,1,opt,name=selector"` + Selector *metav1.LabelSelector `json:"selector" protobuf:"bytes,1,opt,name=selector"` // An object that describes the pod that will be created. // The DaemonSet will create exactly one copy of this pod on every node @@ -759,11 +758,10 @@ type ReplicaSetSpec struct { MinReadySeconds int32 `json:"minReadySeconds,omitempty" protobuf:"varint,4,opt,name=minReadySeconds"` // Selector is a label query over pods that should match the replica count. - // If the selector is empty, it is defaulted to the labels present on the pod template. // Label keys and values that must match in order to be controlled by this replica set. + // It must match the pod template's labels. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional - Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,2,opt,name=selector"` + Selector *metav1.LabelSelector `json:"selector" protobuf:"bytes,2,opt,name=selector"` // Template is the object that describes the pod that will be created if // insufficient replicas are detected. diff --git a/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go b/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go index ae494226..43864f4c 100644 --- a/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go @@ -84,7 +84,7 @@ func (DaemonSetList) SwaggerDoc() map[string]string { var map_DaemonSetSpec = map[string]string{ "": "DaemonSetSpec is the specification of a daemon set.", - "selector": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", + "selector": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", "template": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", "updateStrategy": "An update strategy to replace existing DaemonSet pods with new pods.", "minReadySeconds": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", @@ -161,7 +161,7 @@ func (DeploymentList) SwaggerDoc() map[string]string { var map_DeploymentSpec = map[string]string{ "": "DeploymentSpec is the specification of the desired behavior of the Deployment.", "replicas": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "selector": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.", + "selector": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.", "template": "Template describes the pods that will be created.", "strategy": "The deployment strategy to use to replace existing pods with new ones.", "minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", @@ -238,7 +238,7 @@ var map_ReplicaSetSpec = map[string]string{ "": "ReplicaSetSpec is the specification of a ReplicaSet.", "replicas": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", "minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "selector": "Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", + "selector": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", "template": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", } @@ -353,7 +353,7 @@ func (StatefulSetList) SwaggerDoc() map[string]string { var map_StatefulSetSpec = map[string]string{ "": "A StatefulSetSpec is the specification of a StatefulSet.", "replicas": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - "selector": "selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", + "selector": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", "template": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet.", "volumeClaimTemplates": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", "serviceName": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", diff --git a/vendor/k8s.io/api/core/v1/generated.pb.go b/vendor/k8s.io/api/core/v1/generated.pb.go index 676eef77..c2fe6bc5 100644 --- a/vendor/k8s.io/api/core/v1/generated.pb.go +++ b/vendor/k8s.io/api/core/v1/generated.pb.go @@ -72,6 +72,7 @@ limitations under the License. EnvVarSource Event EventList + EventSeries EventSource ExecAction FCVolumeSource @@ -140,6 +141,8 @@ limitations under the License. PodAntiAffinity PodAttachOptions PodCondition + PodDNSConfig + PodDNSConfigOption PodExecOptions PodList PodLogOptions @@ -439,590 +442,602 @@ func (m *EventList) Reset() { *m = EventList{} } func (*EventList) ProtoMessage() {} func (*EventList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{46} } +func (m *EventSeries) Reset() { *m = EventSeries{} } +func (*EventSeries) ProtoMessage() {} +func (*EventSeries) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{47} } + func (m *EventSource) Reset() { *m = EventSource{} } func (*EventSource) ProtoMessage() {} -func (*EventSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{47} } +func (*EventSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{48} } func (m *ExecAction) Reset() { *m = ExecAction{} } func (*ExecAction) ProtoMessage() {} -func (*ExecAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{48} } +func (*ExecAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{49} } func (m *FCVolumeSource) Reset() { *m = FCVolumeSource{} } func (*FCVolumeSource) ProtoMessage() {} -func (*FCVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{49} } +func (*FCVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{50} } func (m *FlexVolumeSource) Reset() { *m = FlexVolumeSource{} } func (*FlexVolumeSource) ProtoMessage() {} -func (*FlexVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{50} } +func (*FlexVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{51} } func (m *FlockerVolumeSource) Reset() { *m = FlockerVolumeSource{} } func (*FlockerVolumeSource) ProtoMessage() {} -func (*FlockerVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{51} } +func (*FlockerVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{52} } func (m *GCEPersistentDiskVolumeSource) Reset() { *m = GCEPersistentDiskVolumeSource{} } func (*GCEPersistentDiskVolumeSource) ProtoMessage() {} func (*GCEPersistentDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{52} + return fileDescriptorGenerated, []int{53} } func (m *GitRepoVolumeSource) Reset() { *m = GitRepoVolumeSource{} } func (*GitRepoVolumeSource) ProtoMessage() {} -func (*GitRepoVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{53} } +func (*GitRepoVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{54} } func (m *GlusterfsVolumeSource) Reset() { *m = GlusterfsVolumeSource{} } func (*GlusterfsVolumeSource) ProtoMessage() {} -func (*GlusterfsVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{54} } +func (*GlusterfsVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{55} } func (m *HTTPGetAction) Reset() { *m = HTTPGetAction{} } func (*HTTPGetAction) ProtoMessage() {} -func (*HTTPGetAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{55} } +func (*HTTPGetAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{56} } func (m *HTTPHeader) Reset() { *m = HTTPHeader{} } func (*HTTPHeader) ProtoMessage() {} -func (*HTTPHeader) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{56} } +func (*HTTPHeader) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{57} } func (m *Handler) Reset() { *m = Handler{} } func (*Handler) ProtoMessage() {} -func (*Handler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{57} } +func (*Handler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{58} } func (m *HostAlias) Reset() { *m = HostAlias{} } func (*HostAlias) ProtoMessage() {} -func (*HostAlias) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{58} } +func (*HostAlias) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{59} } func (m *HostPathVolumeSource) Reset() { *m = HostPathVolumeSource{} } func (*HostPathVolumeSource) ProtoMessage() {} -func (*HostPathVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{59} } +func (*HostPathVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{60} } func (m *ISCSIPersistentVolumeSource) Reset() { *m = ISCSIPersistentVolumeSource{} } func (*ISCSIPersistentVolumeSource) ProtoMessage() {} func (*ISCSIPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{60} + return fileDescriptorGenerated, []int{61} } func (m *ISCSIVolumeSource) Reset() { *m = ISCSIVolumeSource{} } func (*ISCSIVolumeSource) ProtoMessage() {} -func (*ISCSIVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{61} } +func (*ISCSIVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{62} } func (m *KeyToPath) Reset() { *m = KeyToPath{} } func (*KeyToPath) ProtoMessage() {} -func (*KeyToPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{62} } +func (*KeyToPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{63} } func (m *Lifecycle) Reset() { *m = Lifecycle{} } func (*Lifecycle) ProtoMessage() {} -func (*Lifecycle) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{63} } +func (*Lifecycle) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{64} } func (m *LimitRange) Reset() { *m = LimitRange{} } func (*LimitRange) ProtoMessage() {} -func (*LimitRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{64} } +func (*LimitRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{65} } func (m *LimitRangeItem) Reset() { *m = LimitRangeItem{} } func (*LimitRangeItem) ProtoMessage() {} -func (*LimitRangeItem) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{65} } +func (*LimitRangeItem) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{66} } func (m *LimitRangeList) Reset() { *m = LimitRangeList{} } func (*LimitRangeList) ProtoMessage() {} -func (*LimitRangeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{66} } +func (*LimitRangeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{67} } func (m *LimitRangeSpec) Reset() { *m = LimitRangeSpec{} } func (*LimitRangeSpec) ProtoMessage() {} -func (*LimitRangeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{67} } +func (*LimitRangeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{68} } func (m *List) Reset() { *m = List{} } func (*List) ProtoMessage() {} -func (*List) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{68} } +func (*List) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{69} } func (m *ListOptions) Reset() { *m = ListOptions{} } func (*ListOptions) ProtoMessage() {} -func (*ListOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{69} } +func (*ListOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{70} } func (m *LoadBalancerIngress) Reset() { *m = LoadBalancerIngress{} } func (*LoadBalancerIngress) ProtoMessage() {} -func (*LoadBalancerIngress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{70} } +func (*LoadBalancerIngress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{71} } func (m *LoadBalancerStatus) Reset() { *m = LoadBalancerStatus{} } func (*LoadBalancerStatus) ProtoMessage() {} -func (*LoadBalancerStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{71} } +func (*LoadBalancerStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{72} } func (m *LocalObjectReference) Reset() { *m = LocalObjectReference{} } func (*LocalObjectReference) ProtoMessage() {} -func (*LocalObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{72} } +func (*LocalObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{73} } func (m *LocalVolumeSource) Reset() { *m = LocalVolumeSource{} } func (*LocalVolumeSource) ProtoMessage() {} -func (*LocalVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{73} } +func (*LocalVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{74} } func (m *NFSVolumeSource) Reset() { *m = NFSVolumeSource{} } func (*NFSVolumeSource) ProtoMessage() {} -func (*NFSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{74} } +func (*NFSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{75} } func (m *Namespace) Reset() { *m = Namespace{} } func (*Namespace) ProtoMessage() {} -func (*Namespace) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{75} } +func (*Namespace) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{76} } func (m *NamespaceList) Reset() { *m = NamespaceList{} } func (*NamespaceList) ProtoMessage() {} -func (*NamespaceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{76} } +func (*NamespaceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{77} } func (m *NamespaceSpec) Reset() { *m = NamespaceSpec{} } func (*NamespaceSpec) ProtoMessage() {} -func (*NamespaceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{77} } +func (*NamespaceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{78} } func (m *NamespaceStatus) Reset() { *m = NamespaceStatus{} } func (*NamespaceStatus) ProtoMessage() {} -func (*NamespaceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{78} } +func (*NamespaceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{79} } func (m *Node) Reset() { *m = Node{} } func (*Node) ProtoMessage() {} -func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{79} } +func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{80} } func (m *NodeAddress) Reset() { *m = NodeAddress{} } func (*NodeAddress) ProtoMessage() {} -func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{80} } +func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{81} } func (m *NodeAffinity) Reset() { *m = NodeAffinity{} } func (*NodeAffinity) ProtoMessage() {} -func (*NodeAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{81} } +func (*NodeAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{82} } func (m *NodeCondition) Reset() { *m = NodeCondition{} } func (*NodeCondition) ProtoMessage() {} -func (*NodeCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{82} } +func (*NodeCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{83} } func (m *NodeConfigSource) Reset() { *m = NodeConfigSource{} } func (*NodeConfigSource) ProtoMessage() {} -func (*NodeConfigSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{83} } +func (*NodeConfigSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{84} } func (m *NodeDaemonEndpoints) Reset() { *m = NodeDaemonEndpoints{} } func (*NodeDaemonEndpoints) ProtoMessage() {} -func (*NodeDaemonEndpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{84} } +func (*NodeDaemonEndpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{85} } func (m *NodeList) Reset() { *m = NodeList{} } func (*NodeList) ProtoMessage() {} -func (*NodeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{85} } +func (*NodeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{86} } func (m *NodeProxyOptions) Reset() { *m = NodeProxyOptions{} } func (*NodeProxyOptions) ProtoMessage() {} -func (*NodeProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{86} } +func (*NodeProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{87} } func (m *NodeResources) Reset() { *m = NodeResources{} } func (*NodeResources) ProtoMessage() {} -func (*NodeResources) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{87} } +func (*NodeResources) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{88} } func (m *NodeSelector) Reset() { *m = NodeSelector{} } func (*NodeSelector) ProtoMessage() {} -func (*NodeSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{88} } +func (*NodeSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{89} } func (m *NodeSelectorRequirement) Reset() { *m = NodeSelectorRequirement{} } func (*NodeSelectorRequirement) ProtoMessage() {} func (*NodeSelectorRequirement) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{89} + return fileDescriptorGenerated, []int{90} } func (m *NodeSelectorTerm) Reset() { *m = NodeSelectorTerm{} } func (*NodeSelectorTerm) ProtoMessage() {} -func (*NodeSelectorTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{90} } +func (*NodeSelectorTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{91} } func (m *NodeSpec) Reset() { *m = NodeSpec{} } func (*NodeSpec) ProtoMessage() {} -func (*NodeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{91} } +func (*NodeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{92} } func (m *NodeStatus) Reset() { *m = NodeStatus{} } func (*NodeStatus) ProtoMessage() {} -func (*NodeStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{92} } +func (*NodeStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{93} } func (m *NodeSystemInfo) Reset() { *m = NodeSystemInfo{} } func (*NodeSystemInfo) ProtoMessage() {} -func (*NodeSystemInfo) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{93} } +func (*NodeSystemInfo) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{94} } func (m *ObjectFieldSelector) Reset() { *m = ObjectFieldSelector{} } func (*ObjectFieldSelector) ProtoMessage() {} -func (*ObjectFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{94} } +func (*ObjectFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{95} } func (m *ObjectMeta) Reset() { *m = ObjectMeta{} } func (*ObjectMeta) ProtoMessage() {} -func (*ObjectMeta) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{95} } +func (*ObjectMeta) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{96} } func (m *ObjectReference) Reset() { *m = ObjectReference{} } func (*ObjectReference) ProtoMessage() {} -func (*ObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{96} } +func (*ObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{97} } func (m *PersistentVolume) Reset() { *m = PersistentVolume{} } func (*PersistentVolume) ProtoMessage() {} -func (*PersistentVolume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{97} } +func (*PersistentVolume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{98} } func (m *PersistentVolumeClaim) Reset() { *m = PersistentVolumeClaim{} } func (*PersistentVolumeClaim) ProtoMessage() {} -func (*PersistentVolumeClaim) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{98} } +func (*PersistentVolumeClaim) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{99} } func (m *PersistentVolumeClaimCondition) Reset() { *m = PersistentVolumeClaimCondition{} } func (*PersistentVolumeClaimCondition) ProtoMessage() {} func (*PersistentVolumeClaimCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{99} + return fileDescriptorGenerated, []int{100} } func (m *PersistentVolumeClaimList) Reset() { *m = PersistentVolumeClaimList{} } func (*PersistentVolumeClaimList) ProtoMessage() {} func (*PersistentVolumeClaimList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{100} + return fileDescriptorGenerated, []int{101} } func (m *PersistentVolumeClaimSpec) Reset() { *m = PersistentVolumeClaimSpec{} } func (*PersistentVolumeClaimSpec) ProtoMessage() {} func (*PersistentVolumeClaimSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{101} + return fileDescriptorGenerated, []int{102} } func (m *PersistentVolumeClaimStatus) Reset() { *m = PersistentVolumeClaimStatus{} } func (*PersistentVolumeClaimStatus) ProtoMessage() {} func (*PersistentVolumeClaimStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{102} + return fileDescriptorGenerated, []int{103} } func (m *PersistentVolumeClaimVolumeSource) Reset() { *m = PersistentVolumeClaimVolumeSource{} } func (*PersistentVolumeClaimVolumeSource) ProtoMessage() {} func (*PersistentVolumeClaimVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{103} + return fileDescriptorGenerated, []int{104} } func (m *PersistentVolumeList) Reset() { *m = PersistentVolumeList{} } func (*PersistentVolumeList) ProtoMessage() {} -func (*PersistentVolumeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{104} } +func (*PersistentVolumeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{105} } func (m *PersistentVolumeSource) Reset() { *m = PersistentVolumeSource{} } func (*PersistentVolumeSource) ProtoMessage() {} func (*PersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{105} + return fileDescriptorGenerated, []int{106} } func (m *PersistentVolumeSpec) Reset() { *m = PersistentVolumeSpec{} } func (*PersistentVolumeSpec) ProtoMessage() {} -func (*PersistentVolumeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{106} } +func (*PersistentVolumeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{107} } func (m *PersistentVolumeStatus) Reset() { *m = PersistentVolumeStatus{} } func (*PersistentVolumeStatus) ProtoMessage() {} func (*PersistentVolumeStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{107} + return fileDescriptorGenerated, []int{108} } func (m *PhotonPersistentDiskVolumeSource) Reset() { *m = PhotonPersistentDiskVolumeSource{} } func (*PhotonPersistentDiskVolumeSource) ProtoMessage() {} func (*PhotonPersistentDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{108} + return fileDescriptorGenerated, []int{109} } func (m *Pod) Reset() { *m = Pod{} } func (*Pod) ProtoMessage() {} -func (*Pod) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{109} } +func (*Pod) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{110} } func (m *PodAffinity) Reset() { *m = PodAffinity{} } func (*PodAffinity) ProtoMessage() {} -func (*PodAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{110} } +func (*PodAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{111} } func (m *PodAffinityTerm) Reset() { *m = PodAffinityTerm{} } func (*PodAffinityTerm) ProtoMessage() {} -func (*PodAffinityTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{111} } +func (*PodAffinityTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{112} } func (m *PodAntiAffinity) Reset() { *m = PodAntiAffinity{} } func (*PodAntiAffinity) ProtoMessage() {} -func (*PodAntiAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{112} } +func (*PodAntiAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{113} } func (m *PodAttachOptions) Reset() { *m = PodAttachOptions{} } func (*PodAttachOptions) ProtoMessage() {} -func (*PodAttachOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{113} } +func (*PodAttachOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{114} } func (m *PodCondition) Reset() { *m = PodCondition{} } func (*PodCondition) ProtoMessage() {} -func (*PodCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{114} } +func (*PodCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{115} } + +func (m *PodDNSConfig) Reset() { *m = PodDNSConfig{} } +func (*PodDNSConfig) ProtoMessage() {} +func (*PodDNSConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{116} } + +func (m *PodDNSConfigOption) Reset() { *m = PodDNSConfigOption{} } +func (*PodDNSConfigOption) ProtoMessage() {} +func (*PodDNSConfigOption) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{117} } func (m *PodExecOptions) Reset() { *m = PodExecOptions{} } func (*PodExecOptions) ProtoMessage() {} -func (*PodExecOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{115} } +func (*PodExecOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{118} } func (m *PodList) Reset() { *m = PodList{} } func (*PodList) ProtoMessage() {} -func (*PodList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{116} } +func (*PodList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{119} } func (m *PodLogOptions) Reset() { *m = PodLogOptions{} } func (*PodLogOptions) ProtoMessage() {} -func (*PodLogOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{117} } +func (*PodLogOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{120} } func (m *PodPortForwardOptions) Reset() { *m = PodPortForwardOptions{} } func (*PodPortForwardOptions) ProtoMessage() {} -func (*PodPortForwardOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{118} } +func (*PodPortForwardOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{121} } func (m *PodProxyOptions) Reset() { *m = PodProxyOptions{} } func (*PodProxyOptions) ProtoMessage() {} -func (*PodProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{119} } +func (*PodProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{122} } func (m *PodSecurityContext) Reset() { *m = PodSecurityContext{} } func (*PodSecurityContext) ProtoMessage() {} -func (*PodSecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{120} } +func (*PodSecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{123} } func (m *PodSignature) Reset() { *m = PodSignature{} } func (*PodSignature) ProtoMessage() {} -func (*PodSignature) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{121} } +func (*PodSignature) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{124} } func (m *PodSpec) Reset() { *m = PodSpec{} } func (*PodSpec) ProtoMessage() {} -func (*PodSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{122} } +func (*PodSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{125} } func (m *PodStatus) Reset() { *m = PodStatus{} } func (*PodStatus) ProtoMessage() {} -func (*PodStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{123} } +func (*PodStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{126} } func (m *PodStatusResult) Reset() { *m = PodStatusResult{} } func (*PodStatusResult) ProtoMessage() {} -func (*PodStatusResult) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{124} } +func (*PodStatusResult) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{127} } func (m *PodTemplate) Reset() { *m = PodTemplate{} } func (*PodTemplate) ProtoMessage() {} -func (*PodTemplate) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{125} } +func (*PodTemplate) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{128} } func (m *PodTemplateList) Reset() { *m = PodTemplateList{} } func (*PodTemplateList) ProtoMessage() {} -func (*PodTemplateList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{126} } +func (*PodTemplateList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{129} } func (m *PodTemplateSpec) Reset() { *m = PodTemplateSpec{} } func (*PodTemplateSpec) ProtoMessage() {} -func (*PodTemplateSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{127} } +func (*PodTemplateSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{130} } func (m *PortworxVolumeSource) Reset() { *m = PortworxVolumeSource{} } func (*PortworxVolumeSource) ProtoMessage() {} -func (*PortworxVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{128} } +func (*PortworxVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{131} } func (m *Preconditions) Reset() { *m = Preconditions{} } func (*Preconditions) ProtoMessage() {} -func (*Preconditions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{129} } +func (*Preconditions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{132} } func (m *PreferAvoidPodsEntry) Reset() { *m = PreferAvoidPodsEntry{} } func (*PreferAvoidPodsEntry) ProtoMessage() {} -func (*PreferAvoidPodsEntry) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{130} } +func (*PreferAvoidPodsEntry) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{133} } func (m *PreferredSchedulingTerm) Reset() { *m = PreferredSchedulingTerm{} } func (*PreferredSchedulingTerm) ProtoMessage() {} func (*PreferredSchedulingTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{131} + return fileDescriptorGenerated, []int{134} } func (m *Probe) Reset() { *m = Probe{} } func (*Probe) ProtoMessage() {} -func (*Probe) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{132} } +func (*Probe) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{135} } func (m *ProjectedVolumeSource) Reset() { *m = ProjectedVolumeSource{} } func (*ProjectedVolumeSource) ProtoMessage() {} -func (*ProjectedVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{133} } +func (*ProjectedVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{136} } func (m *QuobyteVolumeSource) Reset() { *m = QuobyteVolumeSource{} } func (*QuobyteVolumeSource) ProtoMessage() {} -func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{134} } +func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{137} } func (m *RBDPersistentVolumeSource) Reset() { *m = RBDPersistentVolumeSource{} } func (*RBDPersistentVolumeSource) ProtoMessage() {} func (*RBDPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{135} + return fileDescriptorGenerated, []int{138} } func (m *RBDVolumeSource) Reset() { *m = RBDVolumeSource{} } func (*RBDVolumeSource) ProtoMessage() {} -func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{136} } +func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{139} } func (m *RangeAllocation) Reset() { *m = RangeAllocation{} } func (*RangeAllocation) ProtoMessage() {} -func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{137} } +func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{140} } func (m *ReplicationController) Reset() { *m = ReplicationController{} } func (*ReplicationController) ProtoMessage() {} -func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{138} } +func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } func (m *ReplicationControllerCondition) Reset() { *m = ReplicationControllerCondition{} } func (*ReplicationControllerCondition) ProtoMessage() {} func (*ReplicationControllerCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{139} + return fileDescriptorGenerated, []int{142} } func (m *ReplicationControllerList) Reset() { *m = ReplicationControllerList{} } func (*ReplicationControllerList) ProtoMessage() {} func (*ReplicationControllerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{140} + return fileDescriptorGenerated, []int{143} } func (m *ReplicationControllerSpec) Reset() { *m = ReplicationControllerSpec{} } func (*ReplicationControllerSpec) ProtoMessage() {} func (*ReplicationControllerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{141} + return fileDescriptorGenerated, []int{144} } func (m *ReplicationControllerStatus) Reset() { *m = ReplicationControllerStatus{} } func (*ReplicationControllerStatus) ProtoMessage() {} func (*ReplicationControllerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{142} + return fileDescriptorGenerated, []int{145} } func (m *ResourceFieldSelector) Reset() { *m = ResourceFieldSelector{} } func (*ResourceFieldSelector) ProtoMessage() {} -func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } +func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } func (m *ResourceQuota) Reset() { *m = ResourceQuota{} } func (*ResourceQuota) ProtoMessage() {} -func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } +func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } func (m *ResourceQuotaList) Reset() { *m = ResourceQuotaList{} } func (*ResourceQuotaList) ProtoMessage() {} -func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{145} } +func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{148} } func (m *ResourceQuotaSpec) Reset() { *m = ResourceQuotaSpec{} } func (*ResourceQuotaSpec) ProtoMessage() {} -func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } +func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } func (m *ResourceQuotaStatus) Reset() { *m = ResourceQuotaStatus{} } func (*ResourceQuotaStatus) ProtoMessage() {} -func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } +func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } func (m *ResourceRequirements) Reset() { *m = ResourceRequirements{} } func (*ResourceRequirements) ProtoMessage() {} -func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{148} } +func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } func (m *SELinuxOptions) Reset() { *m = SELinuxOptions{} } func (*SELinuxOptions) ProtoMessage() {} -func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } +func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } func (m *ScaleIOPersistentVolumeSource) Reset() { *m = ScaleIOPersistentVolumeSource{} } func (*ScaleIOPersistentVolumeSource) ProtoMessage() {} func (*ScaleIOPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{150} + return fileDescriptorGenerated, []int{153} } func (m *ScaleIOVolumeSource) Reset() { *m = ScaleIOVolumeSource{} } func (*ScaleIOVolumeSource) ProtoMessage() {} -func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } +func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } func (m *Secret) Reset() { *m = Secret{} } func (*Secret) ProtoMessage() {} -func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } +func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } func (m *SecretEnvSource) Reset() { *m = SecretEnvSource{} } func (*SecretEnvSource) ProtoMessage() {} -func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } +func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } func (m *SecretKeySelector) Reset() { *m = SecretKeySelector{} } func (*SecretKeySelector) ProtoMessage() {} -func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } +func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } func (m *SecretList) Reset() { *m = SecretList{} } func (*SecretList) ProtoMessage() {} -func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } +func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } func (m *SecretProjection) Reset() { *m = SecretProjection{} } func (*SecretProjection) ProtoMessage() {} -func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } +func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } func (m *SecretReference) Reset() { *m = SecretReference{} } func (*SecretReference) ProtoMessage() {} -func (*SecretReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } +func (*SecretReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } func (m *SecretVolumeSource) Reset() { *m = SecretVolumeSource{} } func (*SecretVolumeSource) ProtoMessage() {} -func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } +func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } func (m *SecurityContext) Reset() { *m = SecurityContext{} } func (*SecurityContext) ProtoMessage() {} -func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } +func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } func (m *SerializedReference) Reset() { *m = SerializedReference{} } func (*SerializedReference) ProtoMessage() {} -func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } +func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } func (m *Service) Reset() { *m = Service{} } func (*Service) ProtoMessage() {} -func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } +func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } func (m *ServiceAccount) Reset() { *m = ServiceAccount{} } func (*ServiceAccount) ProtoMessage() {} -func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } +func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } func (m *ServiceAccountList) Reset() { *m = ServiceAccountList{} } func (*ServiceAccountList) ProtoMessage() {} -func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } +func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{166} } func (m *ServiceList) Reset() { *m = ServiceList{} } func (*ServiceList) ProtoMessage() {} -func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } +func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } func (m *ServicePort) Reset() { *m = ServicePort{} } func (*ServicePort) ProtoMessage() {} -func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } +func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } func (m *ServiceProxyOptions) Reset() { *m = ServiceProxyOptions{} } func (*ServiceProxyOptions) ProtoMessage() {} -func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{166} } +func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } func (m *ServiceSpec) Reset() { *m = ServiceSpec{} } func (*ServiceSpec) ProtoMessage() {} -func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } +func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{170} } func (m *ServiceStatus) Reset() { *m = ServiceStatus{} } func (*ServiceStatus) ProtoMessage() {} -func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } +func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{171} } func (m *SessionAffinityConfig) Reset() { *m = SessionAffinityConfig{} } func (*SessionAffinityConfig) ProtoMessage() {} -func (*SessionAffinityConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } +func (*SessionAffinityConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{172} } func (m *StorageOSPersistentVolumeSource) Reset() { *m = StorageOSPersistentVolumeSource{} } func (*StorageOSPersistentVolumeSource) ProtoMessage() {} func (*StorageOSPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{170} + return fileDescriptorGenerated, []int{173} } func (m *StorageOSVolumeSource) Reset() { *m = StorageOSVolumeSource{} } func (*StorageOSVolumeSource) ProtoMessage() {} -func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{171} } +func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{174} } func (m *Sysctl) Reset() { *m = Sysctl{} } func (*Sysctl) ProtoMessage() {} -func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{172} } +func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{175} } func (m *TCPSocketAction) Reset() { *m = TCPSocketAction{} } func (*TCPSocketAction) ProtoMessage() {} -func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{173} } +func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{176} } func (m *Taint) Reset() { *m = Taint{} } func (*Taint) ProtoMessage() {} -func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{174} } +func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{177} } func (m *Toleration) Reset() { *m = Toleration{} } func (*Toleration) ProtoMessage() {} -func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{175} } +func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{178} } func (m *Volume) Reset() { *m = Volume{} } func (*Volume) ProtoMessage() {} -func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{176} } +func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{179} } func (m *VolumeDevice) Reset() { *m = VolumeDevice{} } func (*VolumeDevice) ProtoMessage() {} -func (*VolumeDevice) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{177} } +func (*VolumeDevice) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{180} } func (m *VolumeMount) Reset() { *m = VolumeMount{} } func (*VolumeMount) ProtoMessage() {} -func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{178} } +func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{181} } func (m *VolumeProjection) Reset() { *m = VolumeProjection{} } func (*VolumeProjection) ProtoMessage() {} -func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{179} } +func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{182} } func (m *VolumeSource) Reset() { *m = VolumeSource{} } func (*VolumeSource) ProtoMessage() {} -func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{180} } +func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{183} } func (m *VsphereVirtualDiskVolumeSource) Reset() { *m = VsphereVirtualDiskVolumeSource{} } func (*VsphereVirtualDiskVolumeSource) ProtoMessage() {} func (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{181} + return fileDescriptorGenerated, []int{184} } func (m *WeightedPodAffinityTerm) Reset() { *m = WeightedPodAffinityTerm{} } func (*WeightedPodAffinityTerm) ProtoMessage() {} func (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{182} + return fileDescriptorGenerated, []int{185} } func init() { @@ -1073,6 +1088,7 @@ func init() { proto.RegisterType((*EnvVarSource)(nil), "k8s.io.api.core.v1.EnvVarSource") proto.RegisterType((*Event)(nil), "k8s.io.api.core.v1.Event") proto.RegisterType((*EventList)(nil), "k8s.io.api.core.v1.EventList") + proto.RegisterType((*EventSeries)(nil), "k8s.io.api.core.v1.EventSeries") proto.RegisterType((*EventSource)(nil), "k8s.io.api.core.v1.EventSource") proto.RegisterType((*ExecAction)(nil), "k8s.io.api.core.v1.ExecAction") proto.RegisterType((*FCVolumeSource)(nil), "k8s.io.api.core.v1.FCVolumeSource") @@ -1141,6 +1157,8 @@ func init() { proto.RegisterType((*PodAntiAffinity)(nil), "k8s.io.api.core.v1.PodAntiAffinity") proto.RegisterType((*PodAttachOptions)(nil), "k8s.io.api.core.v1.PodAttachOptions") proto.RegisterType((*PodCondition)(nil), "k8s.io.api.core.v1.PodCondition") + proto.RegisterType((*PodDNSConfig)(nil), "k8s.io.api.core.v1.PodDNSConfig") + proto.RegisterType((*PodDNSConfigOption)(nil), "k8s.io.api.core.v1.PodDNSConfigOption") proto.RegisterType((*PodExecOptions)(nil), "k8s.io.api.core.v1.PodExecOptions") proto.RegisterType((*PodList)(nil), "k8s.io.api.core.v1.PodList") proto.RegisterType((*PodLogOptions)(nil), "k8s.io.api.core.v1.PodLogOptions") @@ -3273,6 +3291,46 @@ func (m *Event) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x52 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.EventTime.Size())) + n48, err := m.EventTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n48 + if m.Series != nil { + dAtA[i] = 0x5a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Series.Size())) + n49, err := m.Series.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n49 + } + dAtA[i] = 0x62 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Action))) + i += copy(dAtA[i:], m.Action) + if m.Related != nil { + dAtA[i] = 0x6a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Related.Size())) + n50, err := m.Related.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n50 + } + dAtA[i] = 0x72 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingController))) + i += copy(dAtA[i:], m.ReportingController) + dAtA[i] = 0x7a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingInstance))) + i += copy(dAtA[i:], m.ReportingInstance) return i, nil } @@ -3294,11 +3352,11 @@ func (m *EventList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n48, err := m.ListMeta.MarshalTo(dAtA[i:]) + n51, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n48 + i += n51 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -3314,6 +3372,39 @@ func (m *EventList) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *EventSeries) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventSeries) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Count)) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastObservedTime.Size())) + n52, err := m.LastObservedTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n52 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.State))) + i += copy(dAtA[i:], m.State) + return i, nil +} + func (m *EventSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3465,11 +3556,11 @@ func (m *FlexVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n49, err := m.SecretRef.MarshalTo(dAtA[i:]) + n53, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n49 + i += n53 } dAtA[i] = 0x20 i++ @@ -3653,11 +3744,11 @@ func (m *HTTPGetAction) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Port.Size())) - n50, err := m.Port.MarshalTo(dAtA[i:]) + n54, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n50 + i += n54 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) @@ -3726,31 +3817,31 @@ func (m *Handler) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Exec.Size())) - n51, err := m.Exec.MarshalTo(dAtA[i:]) + n55, err := m.Exec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n51 + i += n55 } if m.HTTPGet != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.HTTPGet.Size())) - n52, err := m.HTTPGet.MarshalTo(dAtA[i:]) + n56, err := m.HTTPGet.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n52 + i += n56 } if m.TCPSocket != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TCPSocket.Size())) - n53, err := m.TCPSocket.MarshalTo(dAtA[i:]) + n57, err := m.TCPSocket.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n53 + i += n57 } return i, nil } @@ -3889,11 +3980,11 @@ func (m *ISCSIPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x52 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n54, err := m.SecretRef.MarshalTo(dAtA[i:]) + n58, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n54 + i += n58 } dAtA[i] = 0x58 i++ @@ -3981,11 +4072,11 @@ func (m *ISCSIVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x52 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n55, err := m.SecretRef.MarshalTo(dAtA[i:]) + n59, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n55 + i += n59 } dAtA[i] = 0x58 i++ @@ -4054,21 +4145,21 @@ func (m *Lifecycle) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PostStart.Size())) - n56, err := m.PostStart.MarshalTo(dAtA[i:]) + n60, err := m.PostStart.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n56 + i += n60 } if m.PreStop != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PreStop.Size())) - n57, err := m.PreStop.MarshalTo(dAtA[i:]) + n61, err := m.PreStop.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n57 + i += n61 } return i, nil } @@ -4091,19 +4182,19 @@ func (m *LimitRange) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n58, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n62, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n58 + i += n62 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n59, err := m.Spec.MarshalTo(dAtA[i:]) + n63, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n59 + i += n63 return i, nil } @@ -4150,11 +4241,11 @@ func (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n60, err := (&v).MarshalTo(dAtA[i:]) + n64, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n60 + i += n64 } } if len(m.Min) > 0 { @@ -4181,11 +4272,11 @@ func (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n61, err := (&v).MarshalTo(dAtA[i:]) + n65, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n61 + i += n65 } } if len(m.Default) > 0 { @@ -4212,11 +4303,11 @@ func (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n62, err := (&v).MarshalTo(dAtA[i:]) + n66, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n62 + i += n66 } } if len(m.DefaultRequest) > 0 { @@ -4243,11 +4334,11 @@ func (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n63, err := (&v).MarshalTo(dAtA[i:]) + n67, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n63 + i += n67 } } if len(m.MaxLimitRequestRatio) > 0 { @@ -4274,11 +4365,11 @@ func (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n64, err := (&v).MarshalTo(dAtA[i:]) + n68, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n64 + i += n68 } } return i, nil @@ -4302,11 +4393,11 @@ func (m *LimitRangeList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n65, err := m.ListMeta.MarshalTo(dAtA[i:]) + n69, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n65 + i += n69 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -4370,11 +4461,11 @@ func (m *List) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n66, err := m.ListMeta.MarshalTo(dAtA[i:]) + n70, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n66 + i += n70 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -4593,27 +4684,27 @@ func (m *Namespace) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n67, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n71, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n67 + i += n71 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n68, err := m.Spec.MarshalTo(dAtA[i:]) + n72, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n68 + i += n72 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n69, err := m.Status.MarshalTo(dAtA[i:]) + n73, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n69 + i += n73 return i, nil } @@ -4635,11 +4726,11 @@ func (m *NamespaceList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n70, err := m.ListMeta.MarshalTo(dAtA[i:]) + n74, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n70 + i += n74 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -4728,27 +4819,27 @@ func (m *Node) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n71, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n75, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n71 + i += n75 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n72, err := m.Spec.MarshalTo(dAtA[i:]) + n76, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n72 + i += n76 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n73, err := m.Status.MarshalTo(dAtA[i:]) + n77, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n73 + i += n77 return i, nil } @@ -4797,11 +4888,11 @@ func (m *NodeAffinity) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RequiredDuringSchedulingIgnoredDuringExecution.Size())) - n74, err := m.RequiredDuringSchedulingIgnoredDuringExecution.MarshalTo(dAtA[i:]) + n78, err := m.RequiredDuringSchedulingIgnoredDuringExecution.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n74 + i += n78 } if len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 { for _, msg := range m.PreferredDuringSchedulingIgnoredDuringExecution { @@ -4844,19 +4935,19 @@ func (m *NodeCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastHeartbeatTime.Size())) - n75, err := m.LastHeartbeatTime.MarshalTo(dAtA[i:]) + n79, err := m.LastHeartbeatTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n75 + i += n79 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n76, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n80, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n76 + i += n80 dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -4887,11 +4978,11 @@ func (m *NodeConfigSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMapRef.Size())) - n77, err := m.ConfigMapRef.MarshalTo(dAtA[i:]) + n81, err := m.ConfigMapRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n77 + i += n81 } return i, nil } @@ -4914,11 +5005,11 @@ func (m *NodeDaemonEndpoints) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.KubeletEndpoint.Size())) - n78, err := m.KubeletEndpoint.MarshalTo(dAtA[i:]) + n82, err := m.KubeletEndpoint.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n78 + i += n82 return i, nil } @@ -4940,11 +5031,11 @@ func (m *NodeList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n79, err := m.ListMeta.MarshalTo(dAtA[i:]) + n83, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n79 + i += n83 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -5021,11 +5112,11 @@ func (m *NodeResources) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n80, err := (&v).MarshalTo(dAtA[i:]) + n84, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n80 + i += n84 } } return i, nil @@ -5183,11 +5274,11 @@ func (m *NodeSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x32 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigSource.Size())) - n81, err := m.ConfigSource.MarshalTo(dAtA[i:]) + n85, err := m.ConfigSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n81 + i += n85 } return i, nil } @@ -5231,11 +5322,11 @@ func (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n82, err := (&v).MarshalTo(dAtA[i:]) + n86, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n82 + i += n86 } } if len(m.Allocatable) > 0 { @@ -5262,11 +5353,11 @@ func (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n83, err := (&v).MarshalTo(dAtA[i:]) + n87, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n83 + i += n87 } } dAtA[i] = 0x1a @@ -5300,19 +5391,19 @@ func (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x32 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DaemonEndpoints.Size())) - n84, err := m.DaemonEndpoints.MarshalTo(dAtA[i:]) + n88, err := m.DaemonEndpoints.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n84 + i += n88 dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NodeInfo.Size())) - n85, err := m.NodeInfo.MarshalTo(dAtA[i:]) + n89, err := m.NodeInfo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n85 + i += n89 if len(m.Images) > 0 { for _, msg := range m.Images { dAtA[i] = 0x42 @@ -5484,20 +5575,20 @@ func (m *ObjectMeta) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x42 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CreationTimestamp.Size())) - n86, err := m.CreationTimestamp.MarshalTo(dAtA[i:]) + n90, err := m.CreationTimestamp.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n86 + i += n90 if m.DeletionTimestamp != nil { dAtA[i] = 0x4a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DeletionTimestamp.Size())) - n87, err := m.DeletionTimestamp.MarshalTo(dAtA[i:]) + n91, err := m.DeletionTimestamp.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n87 + i += n91 } if m.DeletionGracePeriodSeconds != nil { dAtA[i] = 0x50 @@ -5585,11 +5676,11 @@ func (m *ObjectMeta) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Initializers.Size())) - n88, err := m.Initializers.MarshalTo(dAtA[i:]) + n92, err := m.Initializers.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n88 + i += n92 } return i, nil } @@ -5658,27 +5749,27 @@ func (m *PersistentVolume) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n89, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n93, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n89 + i += n93 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n90, err := m.Spec.MarshalTo(dAtA[i:]) + n94, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n90 + i += n94 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n91, err := m.Status.MarshalTo(dAtA[i:]) + n95, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n91 + i += n95 return i, nil } @@ -5700,27 +5791,27 @@ func (m *PersistentVolumeClaim) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n92, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n96, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n92 + i += n96 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n93, err := m.Spec.MarshalTo(dAtA[i:]) + n97, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n93 + i += n97 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n94, err := m.Status.MarshalTo(dAtA[i:]) + n98, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n94 + i += n98 return i, nil } @@ -5750,19 +5841,19 @@ func (m *PersistentVolumeClaimCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastProbeTime.Size())) - n95, err := m.LastProbeTime.MarshalTo(dAtA[i:]) + n99, err := m.LastProbeTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n95 + i += n99 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n96, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n100, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n96 + i += n100 dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -5792,11 +5883,11 @@ func (m *PersistentVolumeClaimList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n97, err := m.ListMeta.MarshalTo(dAtA[i:]) + n101, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n97 + i += n101 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -5845,11 +5936,11 @@ func (m *PersistentVolumeClaimSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Resources.Size())) - n98, err := m.Resources.MarshalTo(dAtA[i:]) + n102, err := m.Resources.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n98 + i += n102 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName))) @@ -5858,11 +5949,11 @@ func (m *PersistentVolumeClaimSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n99, err := m.Selector.MarshalTo(dAtA[i:]) + n103, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n99 + i += n103 } if m.StorageClassName != nil { dAtA[i] = 0x2a @@ -5937,11 +6028,11 @@ func (m *PersistentVolumeClaimStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n100, err := (&v).MarshalTo(dAtA[i:]) + n104, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n100 + i += n104 } } if len(m.Conditions) > 0 { @@ -6007,11 +6098,11 @@ func (m *PersistentVolumeList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n101, err := m.ListMeta.MarshalTo(dAtA[i:]) + n105, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n101 + i += n105 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -6046,163 +6137,163 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) - n102, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n102 - } - if m.AWSElasticBlockStore != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) - n103, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n103 - } - if m.HostPath != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) - n104, err := m.HostPath.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n104 - } - if m.Glusterfs != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) - n105, err := m.Glusterfs.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n105 - } - if m.NFS != nil { - dAtA[i] = 0x2a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) - n106, err := m.NFS.MarshalTo(dAtA[i:]) + n106, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n106 } - if m.RBD != nil { - dAtA[i] = 0x32 + if m.AWSElasticBlockStore != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) - n107, err := m.RBD.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) + n107, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n107 } - if m.ISCSI != nil { - dAtA[i] = 0x3a + if m.HostPath != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) - n108, err := m.ISCSI.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) + n108, err := m.HostPath.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n108 } - if m.Cinder != nil { - dAtA[i] = 0x42 + if m.Glusterfs != nil { + dAtA[i] = 0x22 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) - n109, err := m.Cinder.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) + n109, err := m.Glusterfs.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n109 } - if m.CephFS != nil { - dAtA[i] = 0x4a + if m.NFS != nil { + dAtA[i] = 0x2a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) - n110, err := m.CephFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) + n110, err := m.NFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n110 } - if m.FC != nil { - dAtA[i] = 0x52 + if m.RBD != nil { + dAtA[i] = 0x32 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) - n111, err := m.FC.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) + n111, err := m.RBD.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n111 } - if m.Flocker != nil { - dAtA[i] = 0x5a + if m.ISCSI != nil { + dAtA[i] = 0x3a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) - n112, err := m.Flocker.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) + n112, err := m.ISCSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n112 } - if m.FlexVolume != nil { - dAtA[i] = 0x62 + if m.Cinder != nil { + dAtA[i] = 0x42 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) - n113, err := m.FlexVolume.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) + n113, err := m.Cinder.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n113 } - if m.AzureFile != nil { - dAtA[i] = 0x6a + if m.CephFS != nil { + dAtA[i] = 0x4a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) - n114, err := m.AzureFile.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) + n114, err := m.CephFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n114 } - if m.VsphereVolume != nil { - dAtA[i] = 0x72 + if m.FC != nil { + dAtA[i] = 0x52 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) - n115, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) + n115, err := m.FC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n115 } - if m.Quobyte != nil { - dAtA[i] = 0x7a + if m.Flocker != nil { + dAtA[i] = 0x5a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) - n116, err := m.Quobyte.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) + n116, err := m.Flocker.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n116 } + if m.FlexVolume != nil { + dAtA[i] = 0x62 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) + n117, err := m.FlexVolume.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n117 + } + if m.AzureFile != nil { + dAtA[i] = 0x6a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) + n118, err := m.AzureFile.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n118 + } + if m.VsphereVolume != nil { + dAtA[i] = 0x72 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) + n119, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n119 + } + if m.Quobyte != nil { + dAtA[i] = 0x7a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) + n120, err := m.Quobyte.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n120 + } if m.AzureDisk != nil { dAtA[i] = 0x82 i++ dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size())) - n117, err := m.AzureDisk.MarshalTo(dAtA[i:]) + n121, err := m.AzureDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n117 + i += n121 } if m.PhotonPersistentDisk != nil { dAtA[i] = 0x8a @@ -6210,11 +6301,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PhotonPersistentDisk.Size())) - n118, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) + n122, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n118 + i += n122 } if m.PortworxVolume != nil { dAtA[i] = 0x92 @@ -6222,11 +6313,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PortworxVolume.Size())) - n119, err := m.PortworxVolume.MarshalTo(dAtA[i:]) + n123, err := m.PortworxVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n119 + i += n123 } if m.ScaleIO != nil { dAtA[i] = 0x9a @@ -6234,11 +6325,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleIO.Size())) - n120, err := m.ScaleIO.MarshalTo(dAtA[i:]) + n124, err := m.ScaleIO.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n120 + i += n124 } if m.Local != nil { dAtA[i] = 0xa2 @@ -6246,11 +6337,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Local.Size())) - n121, err := m.Local.MarshalTo(dAtA[i:]) + n125, err := m.Local.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n121 + i += n125 } if m.StorageOS != nil { dAtA[i] = 0xaa @@ -6258,11 +6349,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StorageOS.Size())) - n122, err := m.StorageOS.MarshalTo(dAtA[i:]) + n126, err := m.StorageOS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n122 + i += n126 } if m.CSI != nil { dAtA[i] = 0xb2 @@ -6270,11 +6361,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CSI.Size())) - n123, err := m.CSI.MarshalTo(dAtA[i:]) + n127, err := m.CSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n123 + i += n127 } return i, nil } @@ -6318,21 +6409,21 @@ func (m *PersistentVolumeSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n124, err := (&v).MarshalTo(dAtA[i:]) + n128, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n124 + i += n128 } } dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeSource.Size())) - n125, err := m.PersistentVolumeSource.MarshalTo(dAtA[i:]) + n129, err := m.PersistentVolumeSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n125 + i += n129 if len(m.AccessModes) > 0 { for _, s := range m.AccessModes { dAtA[i] = 0x1a @@ -6352,11 +6443,11 @@ func (m *PersistentVolumeSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ClaimRef.Size())) - n126, err := m.ClaimRef.MarshalTo(dAtA[i:]) + n130, err := m.ClaimRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n126 + i += n130 } dAtA[i] = 0x2a i++ @@ -6464,27 +6555,27 @@ func (m *Pod) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n127, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n131, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n127 + i += n131 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n128, err := m.Spec.MarshalTo(dAtA[i:]) + n132, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n128 + i += n132 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n129, err := m.Status.MarshalTo(dAtA[i:]) + n133, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n129 + i += n133 return i, nil } @@ -6549,11 +6640,11 @@ func (m *PodAffinityTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LabelSelector.Size())) - n130, err := m.LabelSelector.MarshalTo(dAtA[i:]) + n134, err := m.LabelSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n130 + i += n134 } if len(m.Namespaces) > 0 { for _, s := range m.Namespaces { @@ -6699,19 +6790,19 @@ func (m *PodCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastProbeTime.Size())) - n131, err := m.LastProbeTime.MarshalTo(dAtA[i:]) + n135, err := m.LastProbeTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n131 + i += n135 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n132, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n136, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n132 + i += n136 dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -6723,6 +6814,94 @@ func (m *PodCondition) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *PodDNSConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodDNSConfig) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Nameservers) > 0 { + for _, s := range m.Nameservers { + dAtA[i] = 0xa + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.Searches) > 0 { + for _, s := range m.Searches { + dAtA[i] = 0x12 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.Options) > 0 { + for _, msg := range m.Options { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *PodDNSConfigOption) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodDNSConfigOption) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + if m.Value != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Value))) + i += copy(dAtA[i:], *m.Value) + } + return i, nil +} + func (m *PodExecOptions) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6810,11 +6989,11 @@ func (m *PodList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n133, err := m.ListMeta.MarshalTo(dAtA[i:]) + n137, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n133 + i += n137 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -6874,11 +7053,11 @@ func (m *PodLogOptions) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SinceTime.Size())) - n134, err := m.SinceTime.MarshalTo(dAtA[i:]) + n138, err := m.SinceTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n134 + i += n138 } dAtA[i] = 0x30 i++ @@ -6967,11 +7146,11 @@ func (m *PodSecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n135, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n139, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n135 + i += n139 } if m.RunAsUser != nil { dAtA[i] = 0x10 @@ -7022,11 +7201,11 @@ func (m *PodSignature) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodController.Size())) - n136, err := m.PodController.MarshalTo(dAtA[i:]) + n140, err := m.PodController.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n136 + i += n140 } return i, nil } @@ -7150,11 +7329,11 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecurityContext.Size())) - n137, err := m.SecurityContext.MarshalTo(dAtA[i:]) + n141, err := m.SecurityContext.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n137 + i += n141 } if len(m.ImagePullSecrets) > 0 { for _, msg := range m.ImagePullSecrets { @@ -7186,11 +7365,11 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Affinity.Size())) - n138, err := m.Affinity.MarshalTo(dAtA[i:]) + n142, err := m.Affinity.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n138 + i += n142 } dAtA[i] = 0x9a i++ @@ -7265,6 +7444,18 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(*m.Priority)) } + if m.DNSConfig != nil { + dAtA[i] = 0xd2 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DNSConfig.Size())) + n143, err := m.DNSConfig.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n143 + } return i, nil } @@ -7319,11 +7510,11 @@ func (m *PodStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StartTime.Size())) - n139, err := m.StartTime.MarshalTo(dAtA[i:]) + n144, err := m.StartTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n139 + i += n144 } if len(m.ContainerStatuses) > 0 { for _, msg := range m.ContainerStatuses { @@ -7374,19 +7565,19 @@ func (m *PodStatusResult) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n140, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n145, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n140 + i += n145 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n141, err := m.Status.MarshalTo(dAtA[i:]) + n146, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n141 + i += n146 return i, nil } @@ -7408,19 +7599,19 @@ func (m *PodTemplate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n142, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n147, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n142 + i += n147 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n143, err := m.Template.MarshalTo(dAtA[i:]) + n148, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n143 + i += n148 return i, nil } @@ -7442,11 +7633,11 @@ func (m *PodTemplateList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n144, err := m.ListMeta.MarshalTo(dAtA[i:]) + n149, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n144 + i += n149 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -7480,19 +7671,19 @@ func (m *PodTemplateSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n145, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n150, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n145 + i += n150 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n146, err := m.Spec.MarshalTo(dAtA[i:]) + n151, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n146 + i += n151 return i, nil } @@ -7572,19 +7763,19 @@ func (m *PreferAvoidPodsEntry) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodSignature.Size())) - n147, err := m.PodSignature.MarshalTo(dAtA[i:]) + n152, err := m.PodSignature.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n147 + i += n152 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.EvictionTime.Size())) - n148, err := m.EvictionTime.MarshalTo(dAtA[i:]) + n153, err := m.EvictionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n148 + i += n153 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -7617,11 +7808,11 @@ func (m *PreferredSchedulingTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Preference.Size())) - n149, err := m.Preference.MarshalTo(dAtA[i:]) + n154, err := m.Preference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n149 + i += n154 return i, nil } @@ -7643,11 +7834,11 @@ func (m *Probe) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Handler.Size())) - n150, err := m.Handler.MarshalTo(dAtA[i:]) + n155, err := m.Handler.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n150 + i += n155 dAtA[i] = 0x10 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.InitialDelaySeconds)) @@ -7797,11 +7988,11 @@ func (m *RBDPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n151, err := m.SecretRef.MarshalTo(dAtA[i:]) + n156, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n151 + i += n156 } dAtA[i] = 0x40 i++ @@ -7868,11 +8059,11 @@ func (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n152, err := m.SecretRef.MarshalTo(dAtA[i:]) + n157, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n152 + i += n157 } dAtA[i] = 0x40 i++ @@ -7903,11 +8094,11 @@ func (m *RangeAllocation) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n153, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n158, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n153 + i += n158 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Range))) @@ -7939,27 +8130,27 @@ func (m *ReplicationController) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n154, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n159, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n154 + i += n159 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n155, err := m.Spec.MarshalTo(dAtA[i:]) + n160, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n155 + i += n160 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n156, err := m.Status.MarshalTo(dAtA[i:]) + n161, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n156 + i += n161 return i, nil } @@ -7989,11 +8180,11 @@ func (m *ReplicationControllerCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n157, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n162, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n157 + i += n162 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -8023,11 +8214,11 @@ func (m *ReplicationControllerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n158, err := m.ListMeta.MarshalTo(dAtA[i:]) + n163, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n158 + i += n163 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8089,11 +8280,11 @@ func (m *ReplicationControllerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n159, err := m.Template.MarshalTo(dAtA[i:]) + n164, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n159 + i += n164 } dAtA[i] = 0x20 i++ @@ -8172,11 +8363,11 @@ func (m *ResourceFieldSelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Divisor.Size())) - n160, err := m.Divisor.MarshalTo(dAtA[i:]) + n165, err := m.Divisor.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n160 + i += n165 return i, nil } @@ -8198,27 +8389,27 @@ func (m *ResourceQuota) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n161, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n166, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n161 + i += n166 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n162, err := m.Spec.MarshalTo(dAtA[i:]) + n167, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n162 + i += n167 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n163, err := m.Status.MarshalTo(dAtA[i:]) + n168, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n163 + i += n168 return i, nil } @@ -8240,11 +8431,11 @@ func (m *ResourceQuotaList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n164, err := m.ListMeta.MarshalTo(dAtA[i:]) + n169, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n164 + i += n169 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8299,11 +8490,11 @@ func (m *ResourceQuotaSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n165, err := (&v).MarshalTo(dAtA[i:]) + n170, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n165 + i += n170 } } if len(m.Scopes) > 0 { @@ -8363,11 +8554,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n166, err := (&v).MarshalTo(dAtA[i:]) + n171, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n166 + i += n171 } } if len(m.Used) > 0 { @@ -8394,11 +8585,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n167, err := (&v).MarshalTo(dAtA[i:]) + n172, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n167 + i += n172 } } return i, nil @@ -8443,11 +8634,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n168, err := (&v).MarshalTo(dAtA[i:]) + n173, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n168 + i += n173 } } if len(m.Requests) > 0 { @@ -8474,11 +8665,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n169, err := (&v).MarshalTo(dAtA[i:]) + n174, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n169 + i += n174 } } return i, nil @@ -8545,11 +8736,11 @@ func (m *ScaleIOPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n170, err := m.SecretRef.MarshalTo(dAtA[i:]) + n175, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n170 + i += n175 } dAtA[i] = 0x20 i++ @@ -8617,11 +8808,11 @@ func (m *ScaleIOVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n171, err := m.SecretRef.MarshalTo(dAtA[i:]) + n176, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n171 + i += n176 } dAtA[i] = 0x20 i++ @@ -8680,11 +8871,11 @@ func (m *Secret) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n172, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n177, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n172 + i += n177 if len(m.Data) > 0 { keysForData := make([]string, 0, len(m.Data)) for k := range m.Data { @@ -8760,11 +8951,11 @@ func (m *SecretEnvSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n173, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n178, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n173 + i += n178 if m.Optional != nil { dAtA[i] = 0x10 i++ @@ -8796,11 +8987,11 @@ func (m *SecretKeySelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n174, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n179, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n174 + i += n179 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) @@ -8836,11 +9027,11 @@ func (m *SecretList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n175, err := m.ListMeta.MarshalTo(dAtA[i:]) + n180, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n175 + i += n180 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8874,11 +9065,11 @@ func (m *SecretProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n176, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n181, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n176 + i += n181 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8998,11 +9189,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Capabilities.Size())) - n177, err := m.Capabilities.MarshalTo(dAtA[i:]) + n182, err := m.Capabilities.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n177 + i += n182 } if m.Privileged != nil { dAtA[i] = 0x10 @@ -9018,11 +9209,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n178, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n183, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n178 + i += n183 } if m.RunAsUser != nil { dAtA[i] = 0x20 @@ -9080,11 +9271,11 @@ func (m *SerializedReference) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Reference.Size())) - n179, err := m.Reference.MarshalTo(dAtA[i:]) + n184, err := m.Reference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n179 + i += n184 return i, nil } @@ -9106,27 +9297,27 @@ func (m *Service) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n180, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n185, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n180 + i += n185 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n181, err := m.Spec.MarshalTo(dAtA[i:]) + n186, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n181 + i += n186 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n182, err := m.Status.MarshalTo(dAtA[i:]) + n187, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n182 + i += n187 return i, nil } @@ -9148,11 +9339,11 @@ func (m *ServiceAccount) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n183, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n188, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n183 + i += n188 if len(m.Secrets) > 0 { for _, msg := range m.Secrets { dAtA[i] = 0x12 @@ -9208,11 +9399,11 @@ func (m *ServiceAccountList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n184, err := m.ListMeta.MarshalTo(dAtA[i:]) + n189, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n184 + i += n189 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -9246,11 +9437,11 @@ func (m *ServiceList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n185, err := m.ListMeta.MarshalTo(dAtA[i:]) + n190, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n185 + i += n190 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -9295,11 +9486,11 @@ func (m *ServicePort) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetPort.Size())) - n186, err := m.TargetPort.MarshalTo(dAtA[i:]) + n191, err := m.TargetPort.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n186 + i += n191 dAtA[i] = 0x28 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NodePort)) @@ -9446,11 +9637,11 @@ func (m *ServiceSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SessionAffinityConfig.Size())) - n187, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) + n192, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n187 + i += n192 } return i, nil } @@ -9473,11 +9664,11 @@ func (m *ServiceStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LoadBalancer.Size())) - n188, err := m.LoadBalancer.MarshalTo(dAtA[i:]) + n193, err := m.LoadBalancer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n188 + i += n193 return i, nil } @@ -9500,11 +9691,11 @@ func (m *SessionAffinityConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ClientIP.Size())) - n189, err := m.ClientIP.MarshalTo(dAtA[i:]) + n194, err := m.ClientIP.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n189 + i += n194 } return i, nil } @@ -9548,11 +9739,11 @@ func (m *StorageOSPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n190, err := m.SecretRef.MarshalTo(dAtA[i:]) + n195, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n190 + i += n195 } return i, nil } @@ -9596,11 +9787,11 @@ func (m *StorageOSVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n191, err := m.SecretRef.MarshalTo(dAtA[i:]) + n196, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n191 + i += n196 } return i, nil } @@ -9649,11 +9840,11 @@ func (m *TCPSocketAction) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Port.Size())) - n192, err := m.Port.MarshalTo(dAtA[i:]) + n197, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n192 + i += n197 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) @@ -9692,11 +9883,11 @@ func (m *Taint) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TimeAdded.Size())) - n193, err := m.TimeAdded.MarshalTo(dAtA[i:]) + n198, err := m.TimeAdded.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n193 + i += n198 } return i, nil } @@ -9762,11 +9953,11 @@ func (m *Volume) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VolumeSource.Size())) - n194, err := m.VolumeSource.MarshalTo(dAtA[i:]) + n199, err := m.VolumeSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n194 + i += n199 return i, nil } @@ -9859,31 +10050,31 @@ func (m *VolumeProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n195, err := m.Secret.MarshalTo(dAtA[i:]) + n200, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n195 + i += n200 } if m.DownwardAPI != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n196, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n201, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n196 + i += n201 } if m.ConfigMap != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n197, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n202, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n197 + i += n202 } return i, nil } @@ -9907,163 +10098,163 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) - n198, err := m.HostPath.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n198 - } - if m.EmptyDir != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) - n199, err := m.EmptyDir.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n199 - } - if m.GCEPersistentDisk != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) - n200, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n200 - } - if m.AWSElasticBlockStore != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) - n201, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n201 - } - if m.GitRepo != nil { - dAtA[i] = 0x2a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) - n202, err := m.GitRepo.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n202 - } - if m.Secret != nil { - dAtA[i] = 0x32 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n203, err := m.Secret.MarshalTo(dAtA[i:]) + n203, err := m.HostPath.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n203 } - if m.NFS != nil { - dAtA[i] = 0x3a + if m.EmptyDir != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) - n204, err := m.NFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) + n204, err := m.EmptyDir.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n204 } - if m.ISCSI != nil { - dAtA[i] = 0x42 + if m.GCEPersistentDisk != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) - n205, err := m.ISCSI.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) + n205, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n205 } - if m.Glusterfs != nil { - dAtA[i] = 0x4a + if m.AWSElasticBlockStore != nil { + dAtA[i] = 0x22 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) - n206, err := m.Glusterfs.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) + n206, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n206 } - if m.PersistentVolumeClaim != nil { - dAtA[i] = 0x52 + if m.GitRepo != nil { + dAtA[i] = 0x2a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) - n207, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) + n207, err := m.GitRepo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n207 } - if m.RBD != nil { - dAtA[i] = 0x5a + if m.Secret != nil { + dAtA[i] = 0x32 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) - n208, err := m.RBD.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) + n208, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n208 } - if m.FlexVolume != nil { - dAtA[i] = 0x62 + if m.NFS != nil { + dAtA[i] = 0x3a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) - n209, err := m.FlexVolume.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) + n209, err := m.NFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n209 } - if m.Cinder != nil { - dAtA[i] = 0x6a + if m.ISCSI != nil { + dAtA[i] = 0x42 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) - n210, err := m.Cinder.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) + n210, err := m.ISCSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n210 } - if m.CephFS != nil { - dAtA[i] = 0x72 + if m.Glusterfs != nil { + dAtA[i] = 0x4a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) - n211, err := m.CephFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) + n211, err := m.Glusterfs.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n211 } - if m.Flocker != nil { - dAtA[i] = 0x7a + if m.PersistentVolumeClaim != nil { + dAtA[i] = 0x52 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) - n212, err := m.Flocker.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) + n212, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n212 } + if m.RBD != nil { + dAtA[i] = 0x5a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) + n213, err := m.RBD.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n213 + } + if m.FlexVolume != nil { + dAtA[i] = 0x62 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) + n214, err := m.FlexVolume.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n214 + } + if m.Cinder != nil { + dAtA[i] = 0x6a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) + n215, err := m.Cinder.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n215 + } + if m.CephFS != nil { + dAtA[i] = 0x72 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) + n216, err := m.CephFS.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n216 + } + if m.Flocker != nil { + dAtA[i] = 0x7a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) + n217, err := m.Flocker.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n217 + } if m.DownwardAPI != nil { dAtA[i] = 0x82 i++ dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n213, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n218, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n213 + i += n218 } if m.FC != nil { dAtA[i] = 0x8a @@ -10071,11 +10262,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) - n214, err := m.FC.MarshalTo(dAtA[i:]) + n219, err := m.FC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n214 + i += n219 } if m.AzureFile != nil { dAtA[i] = 0x92 @@ -10083,11 +10274,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) - n215, err := m.AzureFile.MarshalTo(dAtA[i:]) + n220, err := m.AzureFile.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n215 + i += n220 } if m.ConfigMap != nil { dAtA[i] = 0x9a @@ -10095,11 +10286,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n216, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n221, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n216 + i += n221 } if m.VsphereVolume != nil { dAtA[i] = 0xa2 @@ -10107,11 +10298,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) - n217, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + n222, err := m.VsphereVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n217 + i += n222 } if m.Quobyte != nil { dAtA[i] = 0xaa @@ -10119,11 +10310,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) - n218, err := m.Quobyte.MarshalTo(dAtA[i:]) + n223, err := m.Quobyte.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n218 + i += n223 } if m.AzureDisk != nil { dAtA[i] = 0xb2 @@ -10131,11 +10322,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size())) - n219, err := m.AzureDisk.MarshalTo(dAtA[i:]) + n224, err := m.AzureDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n219 + i += n224 } if m.PhotonPersistentDisk != nil { dAtA[i] = 0xba @@ -10143,11 +10334,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PhotonPersistentDisk.Size())) - n220, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) + n225, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n220 + i += n225 } if m.PortworxVolume != nil { dAtA[i] = 0xc2 @@ -10155,11 +10346,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PortworxVolume.Size())) - n221, err := m.PortworxVolume.MarshalTo(dAtA[i:]) + n226, err := m.PortworxVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n221 + i += n226 } if m.ScaleIO != nil { dAtA[i] = 0xca @@ -10167,11 +10358,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleIO.Size())) - n222, err := m.ScaleIO.MarshalTo(dAtA[i:]) + n227, err := m.ScaleIO.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n222 + i += n227 } if m.Projected != nil { dAtA[i] = 0xd2 @@ -10179,11 +10370,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Projected.Size())) - n223, err := m.Projected.MarshalTo(dAtA[i:]) + n228, err := m.Projected.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n223 + i += n228 } if m.StorageOS != nil { dAtA[i] = 0xda @@ -10191,11 +10382,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StorageOS.Size())) - n224, err := m.StorageOS.MarshalTo(dAtA[i:]) + n229, err := m.StorageOS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n224 + i += n229 } return i, nil } @@ -10255,11 +10446,11 @@ func (m *WeightedPodAffinityTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodAffinityTerm.Size())) - n225, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) + n230, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n225 + i += n230 return i, nil } @@ -11051,6 +11242,22 @@ func (m *Event) Size() (n int) { n += 1 + sovGenerated(uint64(m.Count)) l = len(m.Type) n += 1 + l + sovGenerated(uint64(l)) + l = m.EventTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Series != nil { + l = m.Series.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Action) + n += 1 + l + sovGenerated(uint64(l)) + if m.Related != nil { + l = m.Related.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.ReportingController) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.ReportingInstance) + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -11068,6 +11275,17 @@ func (m *EventList) Size() (n int) { return n } +func (m *EventSeries) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Count)) + l = m.LastObservedTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.State) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *EventSource) Size() (n int) { var l int _ = l @@ -12303,6 +12521,42 @@ func (m *PodCondition) Size() (n int) { return n } +func (m *PodDNSConfig) Size() (n int) { + var l int + _ = l + if len(m.Nameservers) > 0 { + for _, s := range m.Nameservers { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Searches) > 0 { + for _, s := range m.Searches { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Options) > 0 { + for _, e := range m.Options { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PodDNSConfigOption) Size() (n int) { + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Value != nil { + l = len(*m.Value) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *PodExecOptions) Size() (n int) { var l int _ = l @@ -12500,6 +12754,10 @@ func (m *PodSpec) Size() (n int) { if m.Priority != nil { n += 2 + sovGenerated(uint64(*m.Priority)) } + if m.DNSConfig != nil { + l = m.DNSConfig.Size() + n += 2 + l + sovGenerated(uint64(l)) + } return n } @@ -14179,6 +14437,12 @@ func (this *Event) String() string { `LastTimestamp:` + strings.Replace(strings.Replace(this.LastTimestamp.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, `Count:` + fmt.Sprintf("%v", this.Count) + `,`, `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `EventTime:` + strings.Replace(strings.Replace(this.EventTime.String(), "MicroTime", "k8s_io_apimachinery_pkg_apis_meta_v1.MicroTime", 1), `&`, ``, 1) + `,`, + `Series:` + strings.Replace(fmt.Sprintf("%v", this.Series), "EventSeries", "EventSeries", 1) + `,`, + `Action:` + fmt.Sprintf("%v", this.Action) + `,`, + `Related:` + strings.Replace(fmt.Sprintf("%v", this.Related), "ObjectReference", "ObjectReference", 1) + `,`, + `ReportingController:` + fmt.Sprintf("%v", this.ReportingController) + `,`, + `ReportingInstance:` + fmt.Sprintf("%v", this.ReportingInstance) + `,`, `}`, }, "") return s @@ -14194,6 +14458,18 @@ func (this *EventList) String() string { }, "") return s } +func (this *EventSeries) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&EventSeries{`, + `Count:` + fmt.Sprintf("%v", this.Count) + `,`, + `LastObservedTime:` + strings.Replace(strings.Replace(this.LastObservedTime.String(), "MicroTime", "k8s_io_apimachinery_pkg_apis_meta_v1.MicroTime", 1), `&`, ``, 1) + `,`, + `State:` + fmt.Sprintf("%v", this.State) + `,`, + `}`, + }, "") + return s +} func (this *EventSource) String() string { if this == nil { return "nil" @@ -15195,6 +15471,29 @@ func (this *PodCondition) String() string { }, "") return s } +func (this *PodDNSConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PodDNSConfig{`, + `Nameservers:` + fmt.Sprintf("%v", this.Nameservers) + `,`, + `Searches:` + fmt.Sprintf("%v", this.Searches) + `,`, + `Options:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Options), "PodDNSConfigOption", "PodDNSConfigOption", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *PodDNSConfigOption) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PodDNSConfigOption{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Value:` + valueToStringGenerated(this.Value) + `,`, + `}`, + }, "") + return s +} func (this *PodExecOptions) String() string { if this == nil { return "nil" @@ -15322,6 +15621,7 @@ func (this *PodSpec) String() string { `HostAliases:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.HostAliases), "HostAlias", "HostAlias", 1), `&`, ``, 1) + `,`, `PriorityClassName:` + fmt.Sprintf("%v", this.PriorityClassName) + `,`, `Priority:` + valueToStringGenerated(this.Priority) + `,`, + `DNSConfig:` + strings.Replace(fmt.Sprintf("%v", this.DNSConfig), "PodDNSConfig", "PodDNSConfig", 1) + `,`, `}`, }, "") return s @@ -23259,6 +23559,189 @@ func (m *Event) Unmarshal(dAtA []byte) error { } m.Type = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EventTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.EventTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Series", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Series == nil { + m.Series = &EventSeries{} + } + if err := m.Series.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Action = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Related", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Related == nil { + m.Related = &ObjectReference{} + } + if err := m.Related.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportingController", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReportingController = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportingInstance", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReportingInstance = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -23391,6 +23874,134 @@ func (m *EventList) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventSeries) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventSeries: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventSeries: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Count |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastObservedTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastObservedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.State = EventSeriesState(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *EventSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -35476,6 +36087,254 @@ func (m *PodCondition) Unmarshal(dAtA []byte) error { } return nil } +func (m *PodDNSConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodDNSConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodDNSConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nameservers", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Nameservers = append(m.Nameservers, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Searches", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Searches = append(m.Searches, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Options", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Options = append(m.Options, PodDNSConfigOption{}) + if err := m.Options[len(m.Options)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodDNSConfigOption) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodDNSConfigOption: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodDNSConfigOption: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Value = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *PodExecOptions) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -37286,6 +38145,39 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { } } m.Priority = &v + case 26: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DNSConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DNSConfig == nil { + m.DNSConfig = &PodDNSConfig{} + } + if err := m.DNSConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -48222,760 +49114,777 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 12070 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x70, 0x24, 0xc7, - 0x75, 0x98, 0x66, 0x17, 0x5f, 0xfb, 0xf0, 0xdd, 0x87, 0x3b, 0xee, 0x81, 0xbc, 0xc3, 0x71, 0x28, - 0x1d, 0x8f, 0x5f, 0x80, 0x78, 0x24, 0xc5, 0xb3, 0x48, 0xd1, 0x06, 0xb0, 0xc0, 0x1d, 0x78, 0x87, - 0xbb, 0x65, 0x2f, 0xee, 0x4e, 0xa4, 0x69, 0x46, 0x83, 0xdd, 0x06, 0x30, 0xc4, 0x60, 0x66, 0x39, - 0x33, 0x8b, 0x3b, 0xb0, 0xac, 0xaa, 0x84, 0x91, 0x95, 0x0f, 0xf9, 0x87, 0x2a, 0x51, 0x25, 0x8e, - 0xe5, 0x72, 0xaa, 0x12, 0xa7, 0x6c, 0x45, 0x49, 0x2a, 0x8e, 0x1c, 0xd9, 0x91, 0x9c, 0x8a, 0xe3, - 0xa4, 0x52, 0xf2, 0x1f, 0xc5, 0xca, 0x1f, 0xa9, 0xca, 0x15, 0xc4, 0x3a, 0xb9, 0x92, 0xf2, 0x8f, - 0xa4, 0x92, 0xf8, 0x97, 0x11, 0x27, 0x4a, 0xf5, 0xe7, 0x74, 0xcf, 0xce, 0xec, 0x2e, 0x8e, 0x38, - 0x90, 0x52, 0xe9, 0xdf, 0x6e, 0xbf, 0xd7, 0xaf, 0x7b, 0xfa, 0xe3, 0xf5, 0xeb, 0xd7, 0xef, 0x03, - 0x5e, 0xda, 0xbe, 0x14, 0xcd, 0xba, 0xc1, 0xdc, 0x76, 0x6b, 0x9d, 0x84, 0x3e, 0x89, 0x49, 0x34, - 0xb7, 0x4b, 0xfc, 0x46, 0x10, 0xce, 0x09, 0x80, 0xd3, 0x74, 0xe7, 0xea, 0x41, 0x48, 0xe6, 0x76, - 0x9f, 0x9d, 0xdb, 0x24, 0x3e, 0x09, 0x9d, 0x98, 0x34, 0x66, 0x9b, 0x61, 0x10, 0x07, 0x08, 0x71, - 0x9c, 0x59, 0xa7, 0xe9, 0xce, 0x52, 0x9c, 0xd9, 0xdd, 0x67, 0xa7, 0x9f, 0xd9, 0x74, 0xe3, 0xad, - 0xd6, 0xfa, 0x6c, 0x3d, 0xd8, 0x99, 0xdb, 0x0c, 0x36, 0x83, 0x39, 0x86, 0xba, 0xde, 0xda, 0x60, - 0xff, 0xd8, 0x1f, 0xf6, 0x8b, 0x93, 0x98, 0x5e, 0x4d, 0x9a, 0x21, 0x77, 0x63, 0xe2, 0x47, 0x6e, - 0xe0, 0x47, 0xcf, 0x38, 0x4d, 0x37, 0x22, 0xe1, 0x2e, 0x09, 0xe7, 0x9a, 0xdb, 0x9b, 0x14, 0x16, - 0x99, 0x08, 0x73, 0xbb, 0xcf, 0xae, 0x93, 0xd8, 0x69, 0xeb, 0xd1, 0xf4, 0xf3, 0x09, 0xb9, 0x1d, - 0xa7, 0xbe, 0xe5, 0xfa, 0x24, 0xdc, 0x93, 0x34, 0xe6, 0x42, 0x12, 0x05, 0xad, 0xb0, 0x4e, 0x0e, - 0x55, 0x2b, 0x9a, 0xdb, 0x21, 0xb1, 0x93, 0xf1, 0xf5, 0xd3, 0x73, 0x79, 0xb5, 0xc2, 0x96, 0x1f, - 0xbb, 0x3b, 0xed, 0xcd, 0x7c, 0xa2, 0x5b, 0x85, 0xa8, 0xbe, 0x45, 0x76, 0x9c, 0xb6, 0x7a, 0xcf, - 0xe5, 0xd5, 0x6b, 0xc5, 0xae, 0x37, 0xe7, 0xfa, 0x71, 0x14, 0x87, 0xe9, 0x4a, 0xf6, 0x77, 0x2d, - 0x38, 0x37, 0x7f, 0xbb, 0xb6, 0xe4, 0x39, 0x51, 0xec, 0xd6, 0x17, 0xbc, 0xa0, 0xbe, 0x5d, 0x8b, - 0x83, 0x90, 0xdc, 0x0a, 0xbc, 0xd6, 0x0e, 0xa9, 0xb1, 0x81, 0x40, 0x4f, 0xc3, 0xd0, 0x2e, 0xfb, - 0xbf, 0x52, 0x29, 0x5b, 0xe7, 0xac, 0x0b, 0xa5, 0x85, 0x89, 0x6f, 0xed, 0xcf, 0x7c, 0xe4, 0xde, - 0xfe, 0xcc, 0xd0, 0x2d, 0x51, 0x8e, 0x15, 0x06, 0x3a, 0x0f, 0x03, 0x1b, 0xd1, 0xda, 0x5e, 0x93, - 0x94, 0x0b, 0x0c, 0x77, 0x4c, 0xe0, 0x0e, 0x2c, 0xd7, 0x68, 0x29, 0x16, 0x50, 0x34, 0x07, 0xa5, - 0xa6, 0x13, 0xc6, 0x6e, 0xec, 0x06, 0x7e, 0xb9, 0x78, 0xce, 0xba, 0xd0, 0xbf, 0x30, 0x29, 0x50, - 0x4b, 0x55, 0x09, 0xc0, 0x09, 0x0e, 0xed, 0x46, 0x48, 0x9c, 0xc6, 0x0d, 0xdf, 0xdb, 0x2b, 0xf7, - 0x9d, 0xb3, 0x2e, 0x0c, 0x25, 0xdd, 0xc0, 0xa2, 0x1c, 0x2b, 0x0c, 0xfb, 0x97, 0x0b, 0x30, 0x34, - 0xbf, 0xb1, 0xe1, 0xfa, 0x6e, 0xbc, 0x87, 0x6e, 0xc1, 0x88, 0x1f, 0x34, 0x88, 0xfc, 0xcf, 0xbe, - 0x62, 0xf8, 0xe2, 0xb9, 0xd9, 0xf6, 0x95, 0x39, 0x7b, 0x5d, 0xc3, 0x5b, 0x98, 0xb8, 0xb7, 0x3f, - 0x33, 0xa2, 0x97, 0x60, 0x83, 0x0e, 0xc2, 0x30, 0xdc, 0x0c, 0x1a, 0x8a, 0x6c, 0x81, 0x91, 0x9d, - 0xc9, 0x22, 0x5b, 0x4d, 0xd0, 0x16, 0xc6, 0xef, 0xed, 0xcf, 0x0c, 0x6b, 0x05, 0x58, 0x27, 0x82, - 0xd6, 0x61, 0x9c, 0xfe, 0xf5, 0x63, 0x57, 0xd1, 0x2d, 0x32, 0xba, 0x8f, 0xe5, 0xd1, 0xd5, 0x50, - 0x17, 0x4e, 0xdc, 0xdb, 0x9f, 0x19, 0x4f, 0x15, 0xe2, 0x34, 0x41, 0xfb, 0x5d, 0x18, 0x9b, 0x8f, - 0x63, 0xa7, 0xbe, 0x45, 0x1a, 0x7c, 0x06, 0xd1, 0xf3, 0xd0, 0xe7, 0x3b, 0x3b, 0x44, 0xcc, 0xef, - 0x39, 0x31, 0xb0, 0x7d, 0xd7, 0x9d, 0x1d, 0x72, 0xb0, 0x3f, 0x33, 0x71, 0xd3, 0x77, 0xdf, 0x69, - 0x89, 0x55, 0x41, 0xcb, 0x30, 0xc3, 0x46, 0x17, 0x01, 0x1a, 0x64, 0xd7, 0xad, 0x93, 0xaa, 0x13, - 0x6f, 0x89, 0xf9, 0x46, 0xa2, 0x2e, 0x54, 0x14, 0x04, 0x6b, 0x58, 0xf6, 0x5d, 0x28, 0xcd, 0xef, - 0x06, 0x6e, 0xa3, 0x1a, 0x34, 0x22, 0xb4, 0x0d, 0xe3, 0xcd, 0x90, 0x6c, 0x90, 0x50, 0x15, 0x95, - 0xad, 0x73, 0xc5, 0x0b, 0xc3, 0x17, 0x2f, 0x64, 0x7e, 0xac, 0x89, 0xba, 0xe4, 0xc7, 0xe1, 0xde, - 0xc2, 0x43, 0xa2, 0xbd, 0xf1, 0x14, 0x14, 0xa7, 0x29, 0xdb, 0xff, 0xbe, 0x00, 0x27, 0xe7, 0xdf, - 0x6d, 0x85, 0xa4, 0xe2, 0x46, 0xdb, 0xe9, 0x15, 0xde, 0x70, 0xa3, 0xed, 0xeb, 0xc9, 0x08, 0xa8, - 0xa5, 0x55, 0x11, 0xe5, 0x58, 0x61, 0xa0, 0x67, 0x60, 0x90, 0xfe, 0xbe, 0x89, 0x57, 0xc4, 0x27, - 0x9f, 0x10, 0xc8, 0xc3, 0x15, 0x27, 0x76, 0x2a, 0x1c, 0x84, 0x25, 0x0e, 0x5a, 0x85, 0xe1, 0x3a, - 0xdb, 0x90, 0x9b, 0xab, 0x41, 0x83, 0xb0, 0xc9, 0x2c, 0x2d, 0x3c, 0x45, 0xd1, 0x17, 0x93, 0xe2, - 0x83, 0xfd, 0x99, 0x32, 0xef, 0x9b, 0x20, 0xa1, 0xc1, 0xb0, 0x5e, 0x1f, 0xd9, 0x6a, 0x7f, 0xf5, - 0x31, 0x4a, 0x90, 0xb1, 0xb7, 0x2e, 0x68, 0x5b, 0xa5, 0x9f, 0x6d, 0x95, 0x91, 0xec, 0x6d, 0x82, - 0x9e, 0x85, 0xbe, 0x6d, 0xd7, 0x6f, 0x94, 0x07, 0x18, 0xad, 0x33, 0x74, 0xce, 0xaf, 0xba, 0x7e, - 0xe3, 0x60, 0x7f, 0x66, 0xd2, 0xe8, 0x0e, 0x2d, 0xc4, 0x0c, 0xd5, 0xfe, 0x33, 0x0b, 0x66, 0x18, - 0x6c, 0xd9, 0xf5, 0x48, 0x95, 0x84, 0x91, 0x1b, 0xc5, 0xc4, 0x8f, 0x8d, 0x01, 0xbd, 0x08, 0x10, - 0x91, 0x7a, 0x48, 0x62, 0x6d, 0x48, 0xd5, 0xc2, 0xa8, 0x29, 0x08, 0xd6, 0xb0, 0x28, 0x43, 0x88, - 0xb6, 0x9c, 0x90, 0xad, 0x2f, 0x31, 0xb0, 0x8a, 0x21, 0xd4, 0x24, 0x00, 0x27, 0x38, 0x06, 0x43, - 0x28, 0x76, 0x63, 0x08, 0xe8, 0x53, 0x30, 0x9e, 0x34, 0x16, 0x35, 0x9d, 0xba, 0x1c, 0x40, 0xb6, - 0x65, 0x6a, 0x26, 0x08, 0xa7, 0x71, 0xed, 0x7f, 0x6c, 0x89, 0xc5, 0x43, 0xbf, 0xfa, 0x43, 0xfe, - 0xad, 0xf6, 0xef, 0x58, 0x30, 0xb8, 0xe0, 0xfa, 0x0d, 0xd7, 0xdf, 0x44, 0x9f, 0x81, 0x21, 0x7a, - 0x36, 0x35, 0x9c, 0xd8, 0x11, 0x7c, 0xef, 0xe3, 0xda, 0xde, 0x52, 0x47, 0xc5, 0x6c, 0x73, 0x7b, - 0x93, 0x16, 0x44, 0xb3, 0x14, 0x9b, 0xee, 0xb6, 0x1b, 0xeb, 0x6f, 0x93, 0x7a, 0xbc, 0x4a, 0x62, - 0x27, 0xf9, 0x9c, 0xa4, 0x0c, 0x2b, 0xaa, 0xe8, 0x2a, 0x0c, 0xc4, 0x4e, 0xb8, 0x49, 0x62, 0xc1, - 0x00, 0x33, 0x19, 0x15, 0xaf, 0x89, 0xe9, 0x8e, 0x24, 0x7e, 0x9d, 0x24, 0xc7, 0xc2, 0x1a, 0xab, - 0x8a, 0x05, 0x09, 0xfb, 0xab, 0x16, 0x9c, 0x5e, 0xac, 0xad, 0xe4, 0xac, 0xab, 0xf3, 0x30, 0xd0, - 0x08, 0xdd, 0x5d, 0x12, 0x8a, 0x71, 0x56, 0x54, 0x2a, 0xac, 0x14, 0x0b, 0x28, 0xba, 0x04, 0x23, - 0xfc, 0x40, 0xba, 0xe2, 0xf8, 0x0d, 0x4f, 0x0e, 0xf1, 0x94, 0xc0, 0x1e, 0xb9, 0xa5, 0xc1, 0xb0, - 0x81, 0x79, 0xc8, 0x81, 0xae, 0xc3, 0xc8, 0xa2, 0xd3, 0x74, 0xd6, 0x5d, 0xcf, 0x8d, 0x5d, 0x12, - 0xa1, 0xc7, 0xa1, 0xe8, 0x34, 0x1a, 0x8c, 0x87, 0x95, 0x16, 0x4e, 0xde, 0xdb, 0x9f, 0x29, 0xce, - 0x37, 0xe8, 0x66, 0x02, 0x85, 0xb5, 0x87, 0x29, 0x06, 0x7a, 0x12, 0xfa, 0x1a, 0x61, 0xd0, 0x2c, - 0x17, 0x18, 0xe6, 0x29, 0xba, 0xef, 0x2a, 0x61, 0xd0, 0x4c, 0xa1, 0x32, 0x1c, 0xfb, 0xf7, 0x0a, - 0xf0, 0xc8, 0x22, 0x69, 0x6e, 0x2d, 0xd7, 0x72, 0x46, 0xe5, 0x02, 0x0c, 0xed, 0x04, 0xbe, 0x1b, - 0x07, 0x61, 0x24, 0x9a, 0x66, 0xdb, 0x7d, 0x55, 0x94, 0x61, 0x05, 0x45, 0xe7, 0xa0, 0xaf, 0x99, - 0xb0, 0xea, 0x11, 0xc9, 0xe6, 0x19, 0x93, 0x66, 0x10, 0x8a, 0xd1, 0x8a, 0x48, 0x28, 0xd8, 0x94, - 0xc2, 0xb8, 0x19, 0x91, 0x10, 0x33, 0x48, 0xb2, 0xde, 0xe9, 0x4e, 0x10, 0x7b, 0x28, 0xb5, 0xde, - 0x29, 0x04, 0x6b, 0x58, 0xa8, 0x0a, 0x25, 0xfe, 0x0f, 0x93, 0x0d, 0xc6, 0x91, 0x72, 0x56, 0x49, - 0x4d, 0x22, 0x89, 0x55, 0x32, 0xca, 0x36, 0x84, 0x2c, 0xc4, 0x09, 0x11, 0x63, 0x9e, 0x06, 0xba, - 0xce, 0xd3, 0x37, 0x0b, 0x80, 0xf8, 0x10, 0xfe, 0x88, 0x0d, 0xdc, 0xcd, 0xf6, 0x81, 0xcb, 0x3c, - 0x1a, 0xaf, 0x05, 0x75, 0xc7, 0x4b, 0xef, 0xb1, 0xa3, 0x1a, 0xbd, 0x5f, 0xb2, 0x00, 0x2d, 0xba, - 0x7e, 0x83, 0x84, 0xc7, 0x20, 0x17, 0x1e, 0x6e, 0x03, 0x5e, 0x83, 0xb1, 0x45, 0xcf, 0x25, 0x7e, - 0xbc, 0x52, 0x5d, 0x0c, 0xfc, 0x0d, 0x77, 0x13, 0x7d, 0x12, 0xc6, 0xa8, 0x98, 0x1c, 0xb4, 0xe2, - 0x1a, 0xa9, 0x07, 0x3e, 0x93, 0x28, 0xa8, 0x70, 0x89, 0xee, 0xed, 0xcf, 0x8c, 0xad, 0x19, 0x10, - 0x9c, 0xc2, 0xb4, 0xff, 0x88, 0x7e, 0x68, 0xb0, 0xd3, 0x0c, 0x7c, 0xe2, 0xc7, 0x8b, 0x81, 0xdf, - 0xe0, 0x92, 0xe7, 0x27, 0xa1, 0x2f, 0xa6, 0x1d, 0xe7, 0x1f, 0x79, 0x5e, 0x4e, 0x2d, 0xed, 0xee, - 0xc1, 0xfe, 0xcc, 0xa9, 0xf6, 0x1a, 0xec, 0x83, 0x58, 0x1d, 0xf4, 0x53, 0x30, 0x10, 0xc5, 0x4e, - 0xdc, 0x8a, 0xc4, 0x67, 0x3f, 0x2a, 0x3f, 0xbb, 0xc6, 0x4a, 0x0f, 0xf6, 0x67, 0xc6, 0x55, 0x35, - 0x5e, 0x84, 0x45, 0x05, 0xf4, 0x04, 0x0c, 0xee, 0x90, 0x28, 0x72, 0x36, 0xa5, 0xd0, 0x30, 0x2e, - 0xea, 0x0e, 0xae, 0xf2, 0x62, 0x2c, 0xe1, 0xe8, 0x31, 0xe8, 0x27, 0x61, 0x18, 0x84, 0x62, 0x55, - 0x8d, 0x0a, 0xc4, 0xfe, 0x25, 0x5a, 0x88, 0x39, 0xcc, 0xfe, 0x8f, 0x16, 0x8c, 0xab, 0xbe, 0xf2, - 0xb6, 0x8e, 0xe1, 0x74, 0x78, 0x03, 0xa0, 0x2e, 0x3f, 0x30, 0x62, 0xfc, 0x6e, 0xf8, 0xe2, 0xf9, - 0xac, 0x25, 0xdc, 0x3e, 0x8c, 0x09, 0x65, 0x55, 0x14, 0x61, 0x8d, 0x9a, 0xfd, 0xaf, 0x2d, 0x38, - 0x91, 0xfa, 0xa2, 0x6b, 0x6e, 0x14, 0xa3, 0x37, 0xdb, 0xbe, 0x6a, 0xb6, 0xb7, 0xaf, 0xa2, 0xb5, - 0xd9, 0x37, 0xa9, 0x35, 0x27, 0x4b, 0xb4, 0x2f, 0xba, 0x02, 0xfd, 0x6e, 0x4c, 0x76, 0xe4, 0xc7, - 0x3c, 0xd6, 0xf1, 0x63, 0x78, 0xaf, 0x92, 0x19, 0x59, 0xa1, 0x35, 0x31, 0x27, 0x60, 0xff, 0x2f, - 0x0b, 0x4a, 0x7c, 0xd9, 0xae, 0x3a, 0xcd, 0x63, 0x98, 0x8b, 0x15, 0xe8, 0x63, 0xd4, 0x79, 0xc7, - 0x1f, 0xcf, 0xee, 0xb8, 0xe8, 0xce, 0x2c, 0x15, 0xfd, 0xb8, 0x88, 0xad, 0x98, 0x19, 0x2d, 0xc2, - 0x8c, 0xc4, 0xf4, 0x8b, 0x50, 0x52, 0x08, 0x68, 0x02, 0x8a, 0xdb, 0x84, 0x5f, 0xab, 0x4a, 0x98, - 0xfe, 0x44, 0x53, 0xd0, 0xbf, 0xeb, 0x78, 0x2d, 0xb1, 0xd9, 0x31, 0xff, 0xf3, 0xc9, 0xc2, 0x25, - 0xcb, 0xfe, 0x06, 0xdb, 0x63, 0xa2, 0x91, 0x25, 0x7f, 0x57, 0x30, 0x93, 0x77, 0x61, 0xca, 0xcb, - 0xe0, 0x61, 0x62, 0x20, 0x7a, 0xe7, 0x79, 0x8f, 0x88, 0xbe, 0x4e, 0x65, 0x41, 0x71, 0x66, 0x1b, - 0xf4, 0x18, 0x08, 0x9a, 0x74, 0x45, 0x39, 0x1e, 0xeb, 0xaf, 0x10, 0x97, 0x6f, 0x88, 0x32, 0xac, - 0xa0, 0x94, 0x41, 0x4c, 0xa9, 0xce, 0x5f, 0x25, 0x7b, 0x35, 0xe2, 0x91, 0x7a, 0x1c, 0x84, 0x1f, - 0x68, 0xf7, 0xcf, 0xf0, 0xd1, 0xe7, 0xfc, 0x65, 0x58, 0x10, 0x28, 0x5e, 0x25, 0x7b, 0x7c, 0x2a, - 0xf4, 0xaf, 0x2b, 0x76, 0xfc, 0xba, 0xdf, 0xb4, 0x60, 0x54, 0x7d, 0xdd, 0x31, 0x6c, 0xa4, 0x05, - 0x73, 0x23, 0x9d, 0xe9, 0xb8, 0x1e, 0x73, 0xb6, 0xd0, 0x0f, 0x19, 0x0b, 0x10, 0x38, 0xd5, 0x30, - 0xa0, 0x43, 0x43, 0x79, 0xf6, 0x07, 0x39, 0x21, 0xbd, 0x7c, 0xd7, 0x55, 0xb2, 0xb7, 0x16, 0x50, - 0xf1, 0x21, 0xfb, 0xbb, 0x8c, 0x59, 0xeb, 0xeb, 0x38, 0x6b, 0xbf, 0x55, 0x80, 0x93, 0x6a, 0x04, - 0x8c, 0x03, 0xfa, 0x47, 0x7d, 0x0c, 0x9e, 0x85, 0xe1, 0x06, 0xd9, 0x70, 0x5a, 0x5e, 0xac, 0x6e, - 0xce, 0xfd, 0x5c, 0x7b, 0x52, 0x49, 0x8a, 0xb1, 0x8e, 0x73, 0x88, 0x61, 0xfb, 0xb5, 0x61, 0xc6, - 0x7b, 0x63, 0x87, 0xae, 0x60, 0x2a, 0xbd, 0x69, 0xfa, 0x8f, 0x11, 0x5d, 0xff, 0x21, 0x74, 0x1d, - 0x8f, 0x41, 0xbf, 0xbb, 0x43, 0xcf, 0xe2, 0x82, 0x79, 0xc4, 0xae, 0xd0, 0x42, 0xcc, 0x61, 0xe8, - 0x63, 0x30, 0x58, 0x0f, 0x76, 0x76, 0x1c, 0xbf, 0x51, 0x2e, 0x32, 0x79, 0x72, 0x98, 0x1e, 0xd7, - 0x8b, 0xbc, 0x08, 0x4b, 0x18, 0x7a, 0x04, 0xfa, 0x9c, 0x70, 0x33, 0x2a, 0xf7, 0x31, 0x9c, 0x21, - 0xda, 0xd2, 0x7c, 0xb8, 0x19, 0x61, 0x56, 0x4a, 0xe5, 0xc4, 0x3b, 0x41, 0xb8, 0xed, 0xfa, 0x9b, - 0x15, 0x37, 0x64, 0x42, 0x9f, 0x26, 0x27, 0xde, 0x56, 0x10, 0xac, 0x61, 0xa1, 0x65, 0xe8, 0x6f, - 0x06, 0x61, 0x1c, 0x95, 0x07, 0xd8, 0x70, 0x3f, 0x9a, 0xb3, 0x95, 0xf8, 0xd7, 0x56, 0x83, 0x30, - 0x4e, 0x3e, 0x80, 0xfe, 0x8b, 0x30, 0xaf, 0x8e, 0x7e, 0x0a, 0x8a, 0xc4, 0xdf, 0x2d, 0x0f, 0x32, - 0x2a, 0xd3, 0x59, 0x54, 0x96, 0xfc, 0xdd, 0x5b, 0x4e, 0x98, 0xf0, 0x99, 0x25, 0x7f, 0x17, 0xd3, - 0x3a, 0xe8, 0x75, 0x28, 0x49, 0xdd, 0x69, 0x54, 0x1e, 0xca, 0x5f, 0x62, 0x58, 0x20, 0x61, 0xf2, - 0x4e, 0xcb, 0x0d, 0xc9, 0x0e, 0xf1, 0xe3, 0x28, 0xb9, 0xfd, 0x4a, 0x68, 0x84, 0x13, 0x6a, 0xe8, - 0x75, 0x79, 0x9d, 0x5b, 0x0d, 0x5a, 0x7e, 0x1c, 0x95, 0x4b, 0xac, 0x7b, 0x99, 0x8a, 0xb6, 0x5b, - 0x09, 0x5e, 0xfa, 0xbe, 0xc7, 0x2b, 0x63, 0x83, 0x14, 0xc2, 0x30, 0xea, 0xb9, 0xbb, 0xc4, 0x27, - 0x51, 0x54, 0x0d, 0x83, 0x75, 0x52, 0x06, 0xd6, 0xf3, 0xd3, 0xd9, 0xfa, 0xa7, 0x60, 0x9d, 0x2c, - 0x4c, 0xde, 0xdb, 0x9f, 0x19, 0xbd, 0xa6, 0xd7, 0xc1, 0x26, 0x09, 0x74, 0x13, 0xc6, 0xa8, 0x80, - 0xea, 0x26, 0x44, 0x87, 0xbb, 0x11, 0x65, 0xd2, 0x29, 0x36, 0x2a, 0xe1, 0x14, 0x11, 0xf4, 0x2a, - 0x94, 0x3c, 0x77, 0x83, 0xd4, 0xf7, 0xea, 0x1e, 0x29, 0x8f, 0x30, 0x8a, 0x99, 0xdb, 0xea, 0x9a, - 0x44, 0xe2, 0x17, 0x00, 0xf5, 0x17, 0x27, 0xd5, 0xd1, 0x2d, 0x38, 0x15, 0x93, 0x70, 0xc7, 0xf5, - 0x1d, 0xba, 0x1d, 0x84, 0x3c, 0xc9, 0xb4, 0x78, 0xa3, 0x6c, 0xbd, 0x9d, 0x15, 0x43, 0x77, 0x6a, - 0x2d, 0x13, 0x0b, 0xe7, 0xd4, 0x46, 0x37, 0x60, 0x9c, 0xed, 0x84, 0x6a, 0xcb, 0xf3, 0xaa, 0x81, - 0xe7, 0xd6, 0xf7, 0xca, 0x63, 0x8c, 0xe0, 0xc7, 0xa4, 0x9a, 0x6e, 0xc5, 0x04, 0xd3, 0x1b, 0x6f, - 0xf2, 0x0f, 0xa7, 0x6b, 0xa3, 0x75, 0xa6, 0xb6, 0x69, 0x85, 0x6e, 0xbc, 0x47, 0xd7, 0x2f, 0xb9, - 0x1b, 0x97, 0xc7, 0x3b, 0xde, 0x1f, 0x75, 0x54, 0xa5, 0xdb, 0xd1, 0x0b, 0x71, 0x9a, 0x20, 0xdd, - 0xda, 0x51, 0xdc, 0x70, 0xfd, 0xf2, 0x04, 0xe3, 0x18, 0x6a, 0x67, 0xd4, 0x68, 0x21, 0xe6, 0x30, - 0xa6, 0xb2, 0xa1, 0x3f, 0x6e, 0x50, 0x0e, 0x3a, 0xc9, 0x10, 0x13, 0x95, 0x8d, 0x04, 0xe0, 0x04, - 0x87, 0x1e, 0xcb, 0x71, 0xbc, 0x57, 0x46, 0x0c, 0x55, 0x6d, 0x97, 0xb5, 0xb5, 0xd7, 0x31, 0x2d, - 0x47, 0xd7, 0x60, 0x90, 0xf8, 0xbb, 0xcb, 0x61, 0xb0, 0x53, 0x3e, 0x91, 0xbf, 0x67, 0x97, 0x38, - 0x0a, 0x67, 0xe8, 0xc9, 0x05, 0x40, 0x14, 0x63, 0x49, 0x02, 0xdd, 0x85, 0x72, 0xc6, 0x8c, 0xf0, - 0x09, 0x98, 0x62, 0x13, 0xf0, 0xb2, 0xa8, 0x5b, 0x5e, 0xcb, 0xc1, 0x3b, 0xe8, 0x00, 0xc3, 0xb9, - 0xd4, 0xd1, 0xcf, 0xc1, 0x28, 0xdf, 0x50, 0x5c, 0xdf, 0x1b, 0x95, 0x4f, 0xb2, 0xaf, 0x39, 0x97, - 0xbf, 0x39, 0x39, 0xe2, 0xc2, 0x49, 0xd1, 0xa1, 0x51, 0xbd, 0x34, 0xc2, 0x26, 0x35, 0x7b, 0x1d, - 0xc6, 0x14, 0xdf, 0x62, 0x4b, 0x07, 0xcd, 0x40, 0x3f, 0x65, 0xc8, 0xf2, 0xc6, 0x5e, 0xa2, 0x33, - 0xc5, 0xf4, 0x74, 0x98, 0x97, 0xb3, 0x99, 0x72, 0xdf, 0x25, 0x0b, 0x7b, 0x31, 0xe1, 0xb7, 0xae, - 0xa2, 0x36, 0x53, 0x12, 0x80, 0x13, 0x1c, 0xfb, 0xff, 0x71, 0xb9, 0x27, 0x61, 0x8e, 0x3d, 0x1c, - 0x07, 0x4f, 0xc3, 0xd0, 0x56, 0x10, 0xc5, 0x14, 0x9b, 0xb5, 0xd1, 0x9f, 0x48, 0x3a, 0x57, 0x44, - 0x39, 0x56, 0x18, 0xe8, 0x25, 0x18, 0xad, 0xeb, 0x0d, 0x88, 0xb3, 0x4c, 0x0d, 0x81, 0xd1, 0x3a, - 0x36, 0x71, 0xd1, 0x25, 0x18, 0x62, 0xaf, 0x35, 0xf5, 0xc0, 0x13, 0xf7, 0x3b, 0x79, 0x20, 0x0f, - 0x55, 0x45, 0xf9, 0x81, 0xf6, 0x1b, 0x2b, 0x6c, 0x7a, 0xe7, 0xa6, 0x5d, 0x58, 0xa9, 0x8a, 0x53, - 0x44, 0xdd, 0xb9, 0xaf, 0xb0, 0x52, 0x2c, 0xa0, 0xf6, 0xdf, 0x2a, 0x68, 0xa3, 0x4c, 0x6f, 0x2c, - 0x04, 0x55, 0x61, 0xf0, 0x8e, 0xe3, 0xc6, 0xae, 0xbf, 0x29, 0xc4, 0x85, 0x27, 0x3a, 0x1e, 0x29, - 0xac, 0xd2, 0x6d, 0x5e, 0x81, 0x1f, 0x7a, 0xe2, 0x0f, 0x96, 0x64, 0x28, 0xc5, 0xb0, 0xe5, 0xfb, - 0x94, 0x62, 0xa1, 0x57, 0x8a, 0x98, 0x57, 0xe0, 0x14, 0xc5, 0x1f, 0x2c, 0xc9, 0xa0, 0x37, 0x01, - 0xe4, 0xb2, 0x24, 0x0d, 0xf1, 0x4a, 0xf2, 0x74, 0x77, 0xa2, 0x6b, 0xaa, 0xce, 0xc2, 0x18, 0x3d, - 0x52, 0x93, 0xff, 0x58, 0xa3, 0x67, 0xc7, 0x4c, 0xac, 0x6a, 0xef, 0x0c, 0xfa, 0x59, 0xca, 0x09, - 0x9c, 0x30, 0x26, 0x8d, 0xf9, 0x58, 0x0c, 0xce, 0x93, 0xbd, 0x49, 0xc5, 0x6b, 0xee, 0x0e, 0xd1, - 0xb9, 0x86, 0x20, 0x82, 0x13, 0x7a, 0xf6, 0x6f, 0x17, 0xa1, 0x9c, 0xd7, 0x5d, 0xba, 0xe8, 0xc8, - 0x5d, 0x37, 0x5e, 0xa4, 0xd2, 0x90, 0x65, 0x2e, 0xba, 0x25, 0x51, 0x8e, 0x15, 0x06, 0x9d, 0xfd, - 0xc8, 0xdd, 0x94, 0x97, 0x9a, 0xfe, 0x64, 0xf6, 0x6b, 0xac, 0x14, 0x0b, 0x28, 0xc5, 0x0b, 0x89, - 0x13, 0x89, 0x67, 0x38, 0x6d, 0x95, 0x60, 0x56, 0x8a, 0x05, 0x54, 0xd7, 0x47, 0xf4, 0x75, 0xd1, - 0x47, 0x18, 0x43, 0xd4, 0x7f, 0xb4, 0x43, 0x84, 0xde, 0x02, 0xd8, 0x70, 0x7d, 0x37, 0xda, 0x62, - 0xd4, 0x07, 0x0e, 0x4d, 0x5d, 0xc9, 0x52, 0xcb, 0x8a, 0x0a, 0xd6, 0x28, 0xa2, 0x17, 0x60, 0x58, - 0x6d, 0xc0, 0x95, 0x4a, 0x79, 0xd0, 0x7c, 0xe3, 0x49, 0xb8, 0x51, 0x05, 0xeb, 0x78, 0xf6, 0xdb, - 0xe9, 0xf5, 0x22, 0x76, 0x80, 0x36, 0xbe, 0x56, 0xaf, 0xe3, 0x5b, 0xe8, 0x3c, 0xbe, 0xf6, 0xef, - 0x17, 0x61, 0xdc, 0x68, 0xac, 0x15, 0xf5, 0xc0, 0xb3, 0x2e, 0xd3, 0x73, 0xce, 0x89, 0x89, 0xd8, - 0x7f, 0x76, 0xf7, 0xad, 0xa2, 0x9f, 0x85, 0x74, 0x07, 0xf0, 0xfa, 0xe8, 0x2d, 0x28, 0x79, 0x4e, - 0xc4, 0x74, 0x1b, 0x44, 0xec, 0xbb, 0x5e, 0x88, 0x25, 0xf7, 0x08, 0x27, 0x8a, 0xb5, 0xa3, 0x86, - 0xd3, 0x4e, 0x48, 0xd2, 0x03, 0x99, 0xca, 0x3e, 0xf2, 0x9d, 0x57, 0x75, 0x82, 0x0a, 0x48, 0x7b, - 0x98, 0xc3, 0xd0, 0x25, 0x18, 0x09, 0x09, 0x5b, 0x15, 0x8b, 0x54, 0x94, 0x63, 0xcb, 0xac, 0x3f, - 0x91, 0xf9, 0xb0, 0x06, 0xc3, 0x06, 0x66, 0x22, 0xca, 0x0f, 0x74, 0x10, 0xe5, 0x9f, 0x80, 0x41, - 0xf6, 0x43, 0xad, 0x00, 0x35, 0x1b, 0x2b, 0xbc, 0x18, 0x4b, 0x78, 0x7a, 0xc1, 0x0c, 0xf5, 0xb8, - 0x60, 0x9e, 0x84, 0xb1, 0x8a, 0x43, 0x76, 0x02, 0x7f, 0xc9, 0x6f, 0x34, 0x03, 0xd7, 0x8f, 0x51, - 0x19, 0xfa, 0xd8, 0xe9, 0xc0, 0xf7, 0x76, 0x1f, 0xa5, 0x80, 0xfb, 0xa8, 0x60, 0x6e, 0x7f, 0xa7, - 0x00, 0xa3, 0x15, 0xe2, 0x91, 0x98, 0xf0, 0xab, 0x4c, 0x84, 0x96, 0x01, 0x6d, 0x86, 0x4e, 0x9d, - 0x54, 0x49, 0xe8, 0x06, 0x0d, 0x5d, 0xd7, 0x59, 0x64, 0xef, 0x09, 0xe8, 0x72, 0x1b, 0x14, 0x67, - 0xd4, 0x40, 0x6f, 0xc0, 0x68, 0x33, 0x24, 0x86, 0x8a, 0xce, 0xca, 0x93, 0x46, 0xaa, 0x3a, 0x22, - 0x17, 0x84, 0x8d, 0x22, 0x6c, 0x92, 0x42, 0x3f, 0x03, 0x13, 0x41, 0xd8, 0xdc, 0x72, 0xfc, 0x0a, - 0x69, 0x12, 0xbf, 0x41, 0x25, 0x7d, 0xa1, 0x82, 0x98, 0xba, 0xb7, 0x3f, 0x33, 0x71, 0x23, 0x05, - 0xc3, 0x6d, 0xd8, 0xe8, 0x0d, 0x98, 0x6c, 0x86, 0x41, 0xd3, 0xd9, 0x64, 0x0b, 0x45, 0x08, 0x34, - 0x9c, 0xfb, 0x3c, 0x7d, 0x6f, 0x7f, 0x66, 0xb2, 0x9a, 0x06, 0x1e, 0xec, 0xcf, 0x9c, 0x60, 0x03, - 0x45, 0x4b, 0x12, 0x20, 0x6e, 0x27, 0x63, 0x6f, 0xc2, 0xc9, 0x4a, 0x70, 0xc7, 0xbf, 0xe3, 0x84, - 0x8d, 0xf9, 0xea, 0x8a, 0xa6, 0x3b, 0xb8, 0x2e, 0xef, 0xae, 0xfc, 0x2d, 0x3a, 0xf3, 0x9c, 0xd2, - 0x6a, 0x72, 0xf9, 0x65, 0xd9, 0xf5, 0x48, 0x8e, 0x8e, 0xe2, 0xef, 0x16, 0x8c, 0x96, 0x12, 0x7c, - 0xf5, 0xac, 0x60, 0xe5, 0x3e, 0x2b, 0xbc, 0x06, 0x43, 0x1b, 0x2e, 0xf1, 0x1a, 0x98, 0x6c, 0x88, - 0x99, 0x79, 0x3c, 0xff, 0x79, 0x6d, 0x99, 0x62, 0x4a, 0x9d, 0x14, 0xbf, 0xf9, 0x2e, 0x8b, 0xca, - 0x58, 0x91, 0x41, 0xdb, 0x30, 0x21, 0xaf, 0x56, 0x12, 0x2a, 0x36, 0xf1, 0x13, 0x9d, 0xee, 0x6b, - 0x26, 0x71, 0x36, 0x81, 0x38, 0x45, 0x06, 0xb7, 0x11, 0xa6, 0x57, 0xdd, 0x1d, 0x7a, 0x5c, 0xf5, - 0xb1, 0x25, 0xcd, 0xae, 0xba, 0xec, 0xd6, 0xce, 0x4a, 0xed, 0x5f, 0xb1, 0xe0, 0xa1, 0xb6, 0x91, - 0x11, 0xda, 0x8b, 0x23, 0x9e, 0x85, 0xb4, 0x36, 0xa1, 0xd0, 0x5d, 0x9b, 0x60, 0xff, 0x13, 0x0b, - 0xa6, 0x96, 0x76, 0x9a, 0xf1, 0x5e, 0xc5, 0x35, 0x9f, 0x3e, 0x5e, 0x84, 0x81, 0x1d, 0xd2, 0x70, - 0x5b, 0x3b, 0x62, 0xe6, 0x66, 0x24, 0x4b, 0x5f, 0x65, 0xa5, 0x07, 0xfb, 0x33, 0xa3, 0xb5, 0x38, - 0x08, 0x9d, 0x4d, 0xc2, 0x0b, 0xb0, 0x40, 0x67, 0x07, 0xa3, 0xfb, 0x2e, 0xb9, 0xe6, 0xee, 0xb8, - 0xf2, 0xb9, 0xb4, 0xa3, 0x46, 0x6d, 0x56, 0x0e, 0xe8, 0xec, 0x6b, 0x2d, 0xc7, 0x8f, 0xdd, 0x78, - 0x4f, 0xbc, 0xea, 0x48, 0x22, 0x38, 0xa1, 0x67, 0x7f, 0xd7, 0x82, 0x71, 0xc9, 0x4b, 0xe6, 0x1b, - 0x8d, 0x90, 0x44, 0x11, 0x9a, 0x86, 0x82, 0xdb, 0x14, 0xbd, 0x04, 0xd1, 0xcb, 0xc2, 0x4a, 0x15, - 0x17, 0xdc, 0x26, 0xaa, 0x42, 0x89, 0xbf, 0xba, 0x26, 0x8b, 0xab, 0xa7, 0xb7, 0x5b, 0xd6, 0x83, - 0x35, 0x59, 0x13, 0x27, 0x44, 0xa4, 0x54, 0xcc, 0xce, 0xa1, 0xa2, 0xf9, 0x24, 0x74, 0x45, 0x94, - 0x63, 0x85, 0x81, 0x2e, 0xc0, 0x90, 0x1f, 0x34, 0xf8, 0x23, 0x38, 0xdf, 0xd3, 0x6c, 0xc9, 0x5e, - 0x17, 0x65, 0x58, 0x41, 0xed, 0x5f, 0xb4, 0x60, 0x44, 0x7e, 0x59, 0x8f, 0x02, 0x3a, 0xdd, 0x5a, - 0x89, 0x70, 0x9e, 0x6c, 0x2d, 0x2a, 0x60, 0x33, 0x88, 0x21, 0x57, 0x17, 0x0f, 0x23, 0x57, 0xdb, - 0x5f, 0x2e, 0xc0, 0x98, 0xec, 0x4e, 0xad, 0xb5, 0x1e, 0x91, 0x18, 0xad, 0x41, 0xc9, 0xe1, 0x43, - 0x4e, 0xe4, 0x8a, 0x7d, 0x2c, 0xfb, 0x42, 0x67, 0xcc, 0x4f, 0x22, 0xea, 0xcc, 0xcb, 0xda, 0x38, - 0x21, 0x84, 0x3c, 0x98, 0xf4, 0x83, 0x98, 0x1d, 0x7b, 0x0a, 0xde, 0xe9, 0xd9, 0x21, 0x4d, 0xfd, - 0xb4, 0xa0, 0x3e, 0x79, 0x3d, 0x4d, 0x05, 0xb7, 0x13, 0x46, 0x4b, 0x52, 0x89, 0x54, 0xcc, 0xbf, - 0xc2, 0xe9, 0xb3, 0x90, 0xad, 0x43, 0xb2, 0x7f, 0xd7, 0x82, 0x92, 0x44, 0x3b, 0x8e, 0x17, 0xa6, - 0x55, 0x18, 0x8c, 0xd8, 0x24, 0xc8, 0xa1, 0xb1, 0x3b, 0x75, 0x9c, 0xcf, 0x57, 0x72, 0x9a, 0xf3, - 0xff, 0x11, 0x96, 0x34, 0x98, 0x16, 0x5c, 0x75, 0xff, 0x43, 0xa2, 0x05, 0x57, 0xfd, 0xc9, 0x39, - 0x61, 0xfe, 0x1b, 0xeb, 0xb3, 0xa6, 0x2a, 0xa0, 0x42, 0x67, 0x33, 0x24, 0x1b, 0xee, 0xdd, 0xb4, - 0xd0, 0x59, 0x65, 0xa5, 0x58, 0x40, 0xd1, 0x9b, 0x30, 0x52, 0x97, 0xca, 0xe3, 0x84, 0x0d, 0x9c, - 0xef, 0xa8, 0x8a, 0x57, 0xaf, 0x36, 0xdc, 0x40, 0x6e, 0x51, 0xab, 0x8f, 0x0d, 0x6a, 0xe6, 0xbb, - 0x7f, 0xb1, 0xdb, 0xbb, 0x7f, 0x42, 0x37, 0xf7, 0xe5, 0xda, 0xfe, 0x55, 0x0b, 0x06, 0xb8, 0x0a, - 0xb2, 0x37, 0x9d, 0xad, 0xf6, 0x0a, 0x95, 0x8c, 0xdd, 0x2d, 0x5a, 0x28, 0x1e, 0xa5, 0xd0, 0x2a, - 0x94, 0xd8, 0x0f, 0xa6, 0x8a, 0x29, 0xe6, 0x5b, 0x06, 0xf2, 0x56, 0xf5, 0x0e, 0xde, 0x92, 0xd5, - 0x70, 0x42, 0xc1, 0xfe, 0x52, 0x91, 0xb2, 0xaa, 0x04, 0xd5, 0x38, 0xc1, 0xad, 0x07, 0x77, 0x82, - 0x17, 0x1e, 0xd4, 0x09, 0xbe, 0x09, 0xe3, 0x75, 0xed, 0xc9, 0x2b, 0x99, 0xc9, 0x0b, 0x1d, 0x17, - 0x89, 0xf6, 0x3a, 0xc6, 0xd5, 0x70, 0x8b, 0x26, 0x11, 0x9c, 0xa6, 0x8a, 0x7e, 0x16, 0x46, 0xf8, - 0x3c, 0x8b, 0x56, 0xfa, 0x58, 0x2b, 0x1f, 0xcb, 0x5f, 0x2f, 0x7a, 0x13, 0x6c, 0x25, 0xd6, 0xb4, - 0xea, 0xd8, 0x20, 0x66, 0x7f, 0xbe, 0x1f, 0xfa, 0x97, 0x76, 0x89, 0x1f, 0x1f, 0x03, 0x43, 0xaa, - 0xc3, 0x98, 0xeb, 0xef, 0x06, 0xde, 0x2e, 0x69, 0x70, 0xf8, 0x61, 0x0e, 0xd7, 0x53, 0x82, 0xf4, - 0xd8, 0x8a, 0x41, 0x02, 0xa7, 0x48, 0x3e, 0x88, 0x5b, 0xfb, 0x65, 0x18, 0xe0, 0x73, 0x2f, 0xae, - 0xec, 0x99, 0x0a, 0x76, 0x36, 0x88, 0x62, 0x17, 0x24, 0x1a, 0x05, 0xae, 0xd1, 0x17, 0xd5, 0xd1, - 0xdb, 0x30, 0xb6, 0xe1, 0x86, 0x51, 0x4c, 0xaf, 0xdb, 0x51, 0xec, 0xec, 0x34, 0xef, 0xe3, 0x96, - 0xae, 0xc6, 0x61, 0xd9, 0xa0, 0x84, 0x53, 0x94, 0xd1, 0x26, 0x8c, 0xd2, 0x8b, 0x63, 0xd2, 0xd4, - 0xe0, 0xa1, 0x9b, 0x52, 0x6a, 0xb8, 0x6b, 0x3a, 0x21, 0x6c, 0xd2, 0xa5, 0xcc, 0xa4, 0xce, 0x2e, - 0x9a, 0x43, 0x4c, 0xa2, 0x50, 0xcc, 0x84, 0xdf, 0x30, 0x39, 0x8c, 0xf2, 0x24, 0x66, 0x2a, 0x52, - 0x32, 0x79, 0x52, 0x62, 0x10, 0x62, 0x7f, 0x85, 0x9e, 0x8e, 0x74, 0x0c, 0x8f, 0xe1, 0x68, 0x79, - 0xc5, 0x3c, 0x5a, 0x4e, 0xe7, 0xce, 0x67, 0xce, 0xb1, 0xf2, 0x19, 0x18, 0xd6, 0xa6, 0x1b, 0xcd, - 0x41, 0xa9, 0x2e, 0xed, 0x1a, 0x04, 0xd7, 0x55, 0xe2, 0x8b, 0x32, 0x78, 0xc0, 0x09, 0x0e, 0x1d, - 0x0d, 0x2a, 0xec, 0xa5, 0xad, 0xa6, 0xa8, 0x28, 0x88, 0x19, 0xc4, 0x7e, 0x0e, 0x60, 0xe9, 0x2e, - 0xa9, 0xcf, 0xf3, 0x8b, 0x97, 0xf6, 0x7c, 0x66, 0xe5, 0x3f, 0x9f, 0xd9, 0xff, 0xc9, 0x82, 0xb1, - 0xe5, 0x45, 0x43, 0x20, 0x9f, 0x05, 0xe0, 0x52, 0xe8, 0xed, 0xdb, 0xd7, 0xa5, 0x66, 0x98, 0x2b, - 0xf7, 0x54, 0x29, 0xd6, 0x30, 0xd0, 0x69, 0x28, 0x7a, 0x2d, 0x5f, 0x08, 0x87, 0x83, 0xf7, 0xf6, - 0x67, 0x8a, 0xd7, 0x5a, 0x3e, 0xa6, 0x65, 0x9a, 0xa1, 0x52, 0xb1, 0x67, 0x43, 0xa5, 0xae, 0xf6, - 0xe8, 0x68, 0x06, 0xfa, 0xef, 0xdc, 0x71, 0x1b, 0x51, 0xb9, 0x3f, 0xd1, 0x5a, 0xdf, 0xbe, 0xbd, - 0x52, 0x89, 0x30, 0x2f, 0xb7, 0xff, 0x4a, 0x11, 0x26, 0x96, 0x3d, 0x72, 0xf7, 0xbe, 0xec, 0x1d, - 0x7b, 0x35, 0xae, 0xba, 0xd9, 0x7e, 0x1e, 0x1f, 0xb5, 0x39, 0x59, 0xf7, 0xa1, 0x78, 0x13, 0x06, - 0xf9, 0x2b, 0x2c, 0x1f, 0x8c, 0xe1, 0x8b, 0xcf, 0x66, 0x75, 0x21, 0x3d, 0x16, 0xb3, 0x42, 0xf1, - 0xc1, 0x4d, 0x52, 0x14, 0x13, 0x13, 0xa5, 0x58, 0x92, 0x9c, 0xfe, 0x24, 0x8c, 0xe8, 0x98, 0x87, - 0xb2, 0x4d, 0xf9, 0xab, 0x16, 0x9c, 0x58, 0xf6, 0x82, 0xfa, 0x76, 0xca, 0xd2, 0xed, 0x05, 0x18, - 0xa6, 0xfb, 0x29, 0x32, 0x6c, 0x7c, 0x0d, 0xab, 0x6f, 0x01, 0xc2, 0x3a, 0x9e, 0x56, 0xed, 0xe6, - 0xcd, 0x95, 0x4a, 0x96, 0xb1, 0xb8, 0x00, 0x61, 0x1d, 0xcf, 0xfe, 0xb6, 0x05, 0x67, 0x2e, 0x2f, - 0x2e, 0x25, 0xc6, 0x9e, 0x6d, 0xf6, 0xea, 0x54, 0xb8, 0x6b, 0x68, 0x5d, 0x49, 0x84, 0xbb, 0x0a, - 0xeb, 0x85, 0x80, 0x7e, 0x58, 0x7c, 0x31, 0x7e, 0xc3, 0x82, 0x13, 0x97, 0xdd, 0x18, 0x93, 0x66, - 0x90, 0xb6, 0x9c, 0x0e, 0x49, 0x33, 0x88, 0xdc, 0x38, 0x08, 0xf7, 0xd2, 0x96, 0xd3, 0x58, 0x41, - 0xb0, 0x86, 0xc5, 0x5b, 0xde, 0x75, 0x23, 0xda, 0xd3, 0x82, 0x79, 0xc3, 0xc4, 0xa2, 0x1c, 0x2b, - 0x0c, 0xfa, 0x61, 0x0d, 0x37, 0x64, 0x12, 0xc2, 0x9e, 0xd8, 0xce, 0xea, 0xc3, 0x2a, 0x12, 0x80, - 0x13, 0x1c, 0xfb, 0x57, 0x2c, 0x38, 0x79, 0xd9, 0x6b, 0x45, 0x31, 0x09, 0x37, 0x22, 0xa3, 0xb3, - 0xcf, 0x41, 0x89, 0x48, 0x29, 0x5c, 0xf4, 0x55, 0x9d, 0x1b, 0x4a, 0x3c, 0xe7, 0x66, 0xdb, 0x0a, - 0xaf, 0x07, 0xb3, 0xd1, 0xc3, 0x99, 0x3b, 0x7e, 0xad, 0x00, 0xa3, 0x57, 0xd6, 0xd6, 0xaa, 0x97, - 0x49, 0x2c, 0x58, 0x66, 0x77, 0x0d, 0x12, 0xd6, 0x2e, 0xc2, 0x9d, 0x64, 0x9d, 0x56, 0xec, 0x7a, - 0xb3, 0xdc, 0x4f, 0x68, 0x76, 0xc5, 0x8f, 0x6f, 0x84, 0xb5, 0x38, 0x74, 0xfd, 0xcd, 0xcc, 0xab, - 0xb3, 0x64, 0xec, 0xc5, 0x3c, 0xc6, 0x8e, 0x9e, 0x83, 0x01, 0xe6, 0xa8, 0x24, 0xa5, 0x8e, 0x87, - 0x95, 0xa8, 0xc0, 0x4a, 0x0f, 0xf6, 0x67, 0x4a, 0x37, 0xf1, 0x0a, 0xff, 0x83, 0x05, 0x2a, 0xba, - 0x09, 0xc3, 0x5b, 0x71, 0xdc, 0xbc, 0x42, 0x9c, 0x06, 0x09, 0x25, 0x77, 0x38, 0x9b, 0xc5, 0x1d, - 0xe8, 0x20, 0x70, 0xb4, 0x64, 0x43, 0x25, 0x65, 0x11, 0xd6, 0xe9, 0xd8, 0x35, 0x80, 0x04, 0x76, - 0x44, 0xd7, 0x06, 0xfb, 0x07, 0x16, 0x0c, 0x72, 0x9b, 0xf1, 0x10, 0xbd, 0x0c, 0x7d, 0xe4, 0x2e, - 0xa9, 0x8b, 0x13, 0x3c, 0xb3, 0xc3, 0xc9, 0x29, 0xc7, 0x95, 0x60, 0xf4, 0x3f, 0x66, 0xb5, 0xd0, - 0x15, 0x18, 0xa4, 0xbd, 0xbd, 0xac, 0x0c, 0xe8, 0x1f, 0xcd, 0xfb, 0x62, 0x35, 0xed, 0xfc, 0x60, - 0x14, 0x45, 0x58, 0x56, 0x67, 0x0a, 0x9d, 0x7a, 0xb3, 0x46, 0x19, 0x58, 0xdc, 0xe9, 0xba, 0xb5, - 0xb6, 0x58, 0xe5, 0x48, 0x82, 0x1a, 0x57, 0xe8, 0xc8, 0x42, 0x9c, 0x10, 0xb1, 0xd7, 0xa0, 0x44, - 0x27, 0x75, 0xde, 0x73, 0x9d, 0xce, 0xba, 0xa4, 0xa7, 0xa0, 0x24, 0xf5, 0x3a, 0x91, 0xb0, 0x6a, - 0x67, 0x54, 0xa5, 0xda, 0x27, 0xc2, 0x09, 0xdc, 0xde, 0x80, 0x29, 0xf6, 0x48, 0xea, 0xc4, 0x5b, - 0xc6, 0x1e, 0xeb, 0xbe, 0x98, 0x9f, 0x16, 0xf2, 0x15, 0x9f, 0x99, 0xb2, 0x66, 0x86, 0x3b, 0x22, - 0x29, 0x6a, 0xb2, 0xd6, 0x9f, 0xf6, 0xc1, 0xc3, 0x2b, 0xb5, 0x7c, 0x77, 0x82, 0x4b, 0x30, 0xc2, - 0x65, 0x02, 0xba, 0xb4, 0x1d, 0x4f, 0xb4, 0xab, 0x9e, 0x10, 0xd6, 0x34, 0x18, 0x36, 0x30, 0xd1, - 0x19, 0x28, 0xba, 0xef, 0xf8, 0x69, 0x9b, 0xbb, 0x95, 0xd7, 0xae, 0x63, 0x5a, 0x4e, 0xc1, 0x54, - 0xbc, 0xe0, 0xac, 0x54, 0x81, 0x95, 0x88, 0xf1, 0x0a, 0x8c, 0xb9, 0x51, 0x3d, 0x72, 0x57, 0x7c, - 0xca, 0x67, 0x12, 0x57, 0x94, 0x44, 0xf6, 0xa7, 0x9d, 0x56, 0x50, 0x9c, 0xc2, 0xd6, 0xf8, 0x7a, - 0x7f, 0xcf, 0x22, 0x4a, 0x57, 0x33, 0x6f, 0x2a, 0x7d, 0x35, 0xd9, 0xd7, 0x45, 0xcc, 0xfe, 0x47, - 0x48, 0x5f, 0xfc, 0x83, 0x23, 0x2c, 0x61, 0xe8, 0x32, 0x4c, 0xd6, 0xb7, 0x9c, 0xe6, 0x7c, 0x2b, - 0xde, 0xaa, 0xb8, 0x51, 0x3d, 0xd8, 0x25, 0xe1, 0x1e, 0x93, 0x89, 0x87, 0x12, 0x75, 0x93, 0x02, - 0x2c, 0x5e, 0x99, 0xaf, 0x52, 0x4c, 0xdc, 0x5e, 0xc7, 0x54, 0x0e, 0xc0, 0x51, 0x38, 0x05, 0xcc, - 0xc3, 0xb8, 0x6c, 0xa6, 0x46, 0x22, 0x76, 0x46, 0x0c, 0xb3, 0x8e, 0x29, 0x27, 0x31, 0x51, 0xac, - 0xba, 0x95, 0xc6, 0x47, 0x2f, 0xc2, 0xa8, 0xeb, 0xbb, 0xb1, 0xeb, 0xc4, 0x41, 0xc8, 0x4e, 0xd8, - 0x11, 0x7e, 0x6a, 0x50, 0x36, 0xbf, 0xa2, 0x03, 0xb0, 0x89, 0x67, 0xff, 0x49, 0x1f, 0x4c, 0xb2, - 0x69, 0xfb, 0xc9, 0x0a, 0xfb, 0xd0, 0xac, 0xb0, 0x9b, 0xed, 0x2b, 0xec, 0x28, 0xc4, 0xdd, 0x0f, - 0x72, 0x99, 0xbd, 0x0d, 0x25, 0x65, 0x36, 0x29, 0x2d, 0x7f, 0xad, 0x1c, 0xcb, 0xdf, 0xee, 0xd2, - 0x87, 0x7c, 0x9d, 0x29, 0x66, 0xbe, 0xce, 0xfc, 0x3d, 0x0b, 0x12, 0xeb, 0x31, 0x74, 0x05, 0x4a, - 0xcd, 0x80, 0xbd, 0xd0, 0x86, 0xd2, 0xec, 0xe1, 0xe1, 0xcc, 0x83, 0x8a, 0x1f, 0x8a, 0x7c, 0xfc, - 0xaa, 0xb2, 0x06, 0x4e, 0x2a, 0xa3, 0x05, 0x18, 0x6c, 0x86, 0xa4, 0x16, 0x33, 0xff, 0xa7, 0xae, - 0x74, 0xf8, 0x1a, 0xe1, 0xf8, 0x58, 0x56, 0xb4, 0x7f, 0xcb, 0x02, 0xe0, 0x0f, 0x20, 0x8e, 0xbf, - 0x49, 0x8e, 0x41, 0xa9, 0x53, 0x81, 0xbe, 0xa8, 0x49, 0xea, 0x9d, 0xde, 0xce, 0x93, 0xfe, 0xd4, - 0x9a, 0xa4, 0x9e, 0x0c, 0x38, 0xfd, 0x87, 0x59, 0x6d, 0xfb, 0x17, 0x00, 0xc6, 0x12, 0x34, 0x7a, - 0xd9, 0x46, 0xcf, 0x18, 0xde, 0x25, 0xa7, 0x53, 0xde, 0x25, 0x25, 0x86, 0xad, 0x39, 0x94, 0xbc, - 0x0d, 0xc5, 0x1d, 0xe7, 0xae, 0xb8, 0xd1, 0x3f, 0xd5, 0xb9, 0x1b, 0x94, 0xfe, 0xec, 0xaa, 0x73, - 0x97, 0xdf, 0x99, 0x9e, 0x92, 0x0b, 0x64, 0xd5, 0xb9, 0x7b, 0xc0, 0x5f, 0xc8, 0x19, 0x93, 0xba, - 0xe6, 0x46, 0xf1, 0x7b, 0xff, 0x25, 0xf9, 0xcf, 0x96, 0x1d, 0x6d, 0x84, 0xb5, 0xe5, 0xfa, 0xe2, - 0x39, 0xa0, 0xa7, 0xb6, 0x5c, 0x3f, 0xdd, 0x96, 0xeb, 0xf7, 0xd0, 0x96, 0xeb, 0xa3, 0x77, 0x61, - 0x50, 0x3c, 0xbd, 0x31, 0xb3, 0xd8, 0xe1, 0x8b, 0x73, 0x3d, 0xb4, 0x27, 0x5e, 0xee, 0x78, 0x9b, - 0x73, 0xf2, 0x4e, 0x28, 0x4a, 0xbb, 0xb6, 0x2b, 0x1b, 0x44, 0x7f, 0xc7, 0x82, 0x31, 0xf1, 0x1b, - 0x93, 0x77, 0x5a, 0x24, 0x8a, 0x85, 0xec, 0xf9, 0x89, 0xde, 0xfb, 0x20, 0x2a, 0xf2, 0xae, 0x7c, - 0x42, 0xb2, 0x59, 0x13, 0xd8, 0xb5, 0x47, 0xa9, 0x5e, 0xa0, 0x7f, 0x66, 0xc1, 0xd4, 0x8e, 0x73, - 0x97, 0xb7, 0xc8, 0xcb, 0xb0, 0x13, 0xbb, 0x81, 0x30, 0xf3, 0x7d, 0xb9, 0xb7, 0xe9, 0x6f, 0xab, - 0xce, 0x3b, 0x29, 0x2d, 0x02, 0xa7, 0xb2, 0x50, 0xba, 0x76, 0x35, 0xb3, 0x5f, 0xd3, 0x1b, 0x30, - 0x24, 0xd7, 0x5b, 0xc6, 0xcd, 0xbb, 0xa2, 0x0b, 0xd6, 0x87, 0x7e, 0xf9, 0xd4, 0x6e, 0xea, 0xac, - 0x1d, 0xb1, 0xd6, 0x1e, 0x68, 0x3b, 0x6f, 0xc3, 0x88, 0xbe, 0xc6, 0x1e, 0x68, 0x5b, 0xef, 0xc0, - 0x89, 0x8c, 0xb5, 0xf4, 0x40, 0x9b, 0xbc, 0x03, 0xa7, 0x73, 0xd7, 0xc7, 0x83, 0x6c, 0xd8, 0xfe, - 0x9a, 0xa5, 0xf3, 0xc1, 0x63, 0x50, 0x85, 0x2e, 0x9a, 0xaa, 0xd0, 0xb3, 0x9d, 0x77, 0x4e, 0x8e, - 0x3e, 0xf4, 0x4d, 0xbd, 0xd3, 0x94, 0xab, 0xa3, 0x57, 0x61, 0xc0, 0xa3, 0x25, 0xf2, 0xcd, 0xd7, - 0xee, 0xbe, 0x23, 0x13, 0x59, 0x8a, 0x95, 0x47, 0x58, 0x50, 0xb0, 0x7f, 0xc7, 0x82, 0xbe, 0x63, - 0x18, 0x09, 0x6c, 0x8e, 0xc4, 0x33, 0xb9, 0xa4, 0x45, 0xc0, 0x91, 0x59, 0xec, 0xdc, 0x59, 0x92, - 0x41, 0x55, 0x72, 0x06, 0xe6, 0xff, 0x16, 0x60, 0x98, 0x36, 0x25, 0x8d, 0x93, 0x5e, 0x82, 0x51, - 0xcf, 0x59, 0x27, 0x9e, 0x7c, 0x9e, 0x49, 0x2b, 0x4c, 0xae, 0xe9, 0x40, 0x6c, 0xe2, 0xd2, 0xca, - 0x1b, 0xfa, 0x4b, 0x95, 0x90, 0x5f, 0x54, 0x65, 0xe3, 0x19, 0x0b, 0x9b, 0xb8, 0xf4, 0xee, 0x7e, - 0xc7, 0x89, 0xeb, 0x5b, 0x42, 0x99, 0xa2, 0xba, 0x7b, 0x9b, 0x16, 0x62, 0x0e, 0xa3, 0x02, 0x9c, - 0x5c, 0x9d, 0xb7, 0xe8, 0xcd, 0x30, 0xf0, 0x85, 0x78, 0xac, 0x04, 0x38, 0x6c, 0x82, 0x71, 0x1a, - 0x3f, 0xc3, 0xcd, 0xb4, 0x9f, 0x99, 0x5e, 0xf5, 0xe0, 0x66, 0x8a, 0xaa, 0x30, 0xe5, 0xfa, 0x75, - 0xaf, 0xd5, 0x20, 0x37, 0x7d, 0x2e, 0xdd, 0x79, 0xee, 0xbb, 0xa4, 0x21, 0x04, 0x68, 0x65, 0x25, - 0xb7, 0x92, 0x81, 0x83, 0x33, 0x6b, 0xda, 0x7f, 0x09, 0x4e, 0x5c, 0x0b, 0x9c, 0xc6, 0x82, 0xe3, - 0x39, 0x7e, 0x9d, 0x84, 0x2b, 0xfe, 0x66, 0x57, 0xe3, 0x0f, 0xdd, 0x54, 0xa3, 0xd0, 0xcd, 0x54, - 0xc3, 0xde, 0x02, 0xa4, 0x37, 0x20, 0x4c, 0x0e, 0x31, 0x0c, 0xba, 0xbc, 0x29, 0xb1, 0xfc, 0x1f, - 0xcf, 0x96, 0xae, 0xdb, 0x7a, 0xa6, 0x19, 0xd3, 0xf1, 0x02, 0x2c, 0x09, 0xd9, 0x97, 0x20, 0xd3, - 0xcd, 0xa8, 0xbb, 0xda, 0xc6, 0x7e, 0x01, 0x26, 0x59, 0xcd, 0xc3, 0xa9, 0x14, 0xec, 0xbf, 0x61, - 0xc1, 0xf8, 0xf5, 0x94, 0x63, 0xf8, 0x79, 0x18, 0xe0, 0xa1, 0x85, 0xd2, 0x0a, 0xd6, 0x1a, 0x2b, - 0xc5, 0x02, 0x7a, 0xe4, 0xfa, 0xbd, 0x1f, 0x5a, 0x50, 0x52, 0x31, 0x27, 0x8e, 0x41, 0xa8, 0x5d, - 0x34, 0x84, 0xda, 0x4c, 0xbd, 0x93, 0xea, 0x4e, 0x9e, 0x4c, 0x8b, 0xae, 0x2a, 0x17, 0xe7, 0x0e, - 0x2a, 0xa7, 0x84, 0x0c, 0x77, 0x88, 0x1d, 0x33, 0xfd, 0xa0, 0xa5, 0xd3, 0x33, 0xb3, 0xbe, 0x50, - 0xb8, 0x1f, 0x12, 0xeb, 0x0b, 0xd5, 0x9f, 0x1c, 0xee, 0x57, 0xd5, 0xba, 0xcc, 0x4e, 0x85, 0x9f, - 0x66, 0x16, 0xca, 0x6c, 0x6f, 0xaa, 0xc8, 0x02, 0x33, 0xc2, 0xe2, 0x58, 0x94, 0x1e, 0x30, 0x46, - 0x26, 0xfe, 0xf1, 0xf8, 0x20, 0x49, 0x15, 0xfb, 0x0a, 0x8c, 0xa7, 0x06, 0x0c, 0xbd, 0x00, 0xfd, - 0xcd, 0x2d, 0x27, 0x22, 0x29, 0x8b, 0xb3, 0xfe, 0x2a, 0x2d, 0x3c, 0xd8, 0x9f, 0x19, 0x53, 0x15, - 0x58, 0x09, 0xe6, 0xd8, 0xf6, 0xff, 0xb4, 0xa0, 0xef, 0x7a, 0xd0, 0x38, 0x8e, 0xc5, 0xf4, 0x8a, - 0xb1, 0x98, 0x1e, 0xc9, 0x8b, 0xae, 0x94, 0xbb, 0x8e, 0x96, 0x53, 0xeb, 0xe8, 0x6c, 0x2e, 0x85, - 0xce, 0x4b, 0x68, 0x07, 0x86, 0x59, 0xcc, 0x26, 0x61, 0x01, 0xf7, 0x9c, 0x71, 0xbf, 0x9a, 0x49, - 0xdd, 0xaf, 0xc6, 0x35, 0x54, 0xed, 0x96, 0xf5, 0x04, 0x0c, 0x0a, 0x2b, 0xac, 0xb4, 0x2d, 0xb6, - 0xc0, 0xc5, 0x12, 0x6e, 0xff, 0x6a, 0x11, 0x8c, 0x18, 0x51, 0xe8, 0x77, 0x2d, 0x98, 0x0d, 0xb9, - 0x73, 0x5b, 0xa3, 0xd2, 0x0a, 0x5d, 0x7f, 0xb3, 0x56, 0xdf, 0x22, 0x8d, 0x96, 0xe7, 0xfa, 0x9b, - 0x2b, 0x9b, 0x7e, 0xa0, 0x8a, 0x97, 0xee, 0x92, 0x7a, 0x8b, 0xbd, 0xb9, 0x74, 0x09, 0x48, 0xa5, - 0xac, 0x1c, 0x2e, 0xde, 0xdb, 0x9f, 0x99, 0xc5, 0x87, 0xa2, 0x8d, 0x0f, 0xd9, 0x17, 0xf4, 0x6d, - 0x0b, 0xe6, 0x78, 0xe8, 0xa4, 0xde, 0xfb, 0xdf, 0xe1, 0x36, 0x5a, 0x95, 0xa4, 0x12, 0x22, 0x6b, - 0x24, 0xdc, 0x59, 0x78, 0x51, 0x0c, 0xe8, 0x5c, 0xf5, 0x70, 0x6d, 0xe1, 0xc3, 0x76, 0xce, 0xfe, - 0xb7, 0x45, 0x18, 0xa5, 0xa3, 0x98, 0x04, 0x74, 0x78, 0xc1, 0x58, 0x12, 0x8f, 0xa6, 0x96, 0xc4, - 0xa4, 0x81, 0x7c, 0x34, 0xb1, 0x1c, 0x22, 0x98, 0xf4, 0x9c, 0x28, 0xbe, 0x42, 0x9c, 0x30, 0x5e, - 0x27, 0x0e, 0x33, 0x2b, 0x10, 0xcb, 0xfc, 0x30, 0x96, 0x0a, 0x4a, 0xfd, 0x75, 0x2d, 0x4d, 0x0c, - 0xb7, 0xd3, 0x47, 0xbb, 0x80, 0x98, 0x09, 0x43, 0xe8, 0xf8, 0x11, 0xff, 0x16, 0x57, 0xbc, 0xc7, - 0x1c, 0xae, 0xd5, 0x69, 0xd1, 0x2a, 0xba, 0xd6, 0x46, 0x0d, 0x67, 0xb4, 0xa0, 0x99, 0xa6, 0xf4, - 0xf7, 0x6a, 0x9a, 0x32, 0xd0, 0xc5, 0xe1, 0x61, 0x07, 0x26, 0xc4, 0xac, 0x6c, 0xb8, 0x9b, 0xe2, - 0x90, 0x7e, 0x3d, 0x65, 0xba, 0x66, 0xf5, 0x6e, 0x64, 0xd3, 0xc5, 0x6e, 0xcd, 0xfe, 0x79, 0x38, - 0x41, 0x9b, 0x33, 0xcd, 0xf3, 0x23, 0x44, 0x60, 0x7c, 0xbb, 0xb5, 0x4e, 0x3c, 0x12, 0xcb, 0x32, - 0xd1, 0x68, 0xa6, 0xd8, 0x6f, 0xd6, 0x4e, 0x64, 0xcb, 0xab, 0x26, 0x09, 0x9c, 0xa6, 0x69, 0xff, - 0xba, 0x05, 0xcc, 0x08, 0xf6, 0x18, 0x8e, 0xbf, 0x4f, 0x99, 0xc7, 0x5f, 0x39, 0x8f, 0x03, 0xe5, - 0x9c, 0x7c, 0xcf, 0xf3, 0x69, 0xa9, 0x86, 0xc1, 0xdd, 0x3d, 0x29, 0xfb, 0x77, 0x97, 0xb8, 0xfe, - 0x8f, 0xc5, 0x37, 0xa4, 0xf2, 0xf5, 0x45, 0x9f, 0x85, 0xa1, 0xba, 0xd3, 0x74, 0xea, 0x3c, 0x38, - 0x5f, 0xae, 0xf6, 0xc7, 0xa8, 0x34, 0xbb, 0x28, 0x6a, 0x70, 0x6d, 0xc6, 0xc7, 0xe5, 0x57, 0xca, - 0xe2, 0xae, 0x1a, 0x0c, 0xd5, 0xe4, 0xf4, 0x36, 0x8c, 0x1a, 0xc4, 0x1e, 0xe8, 0xd5, 0xf7, 0xb3, - 0xfc, 0xb8, 0x50, 0x37, 0x96, 0x1d, 0x98, 0xf4, 0xb5, 0xff, 0x94, 0x39, 0x4a, 0x71, 0xfa, 0xa3, - 0xdd, 0x0e, 0x04, 0xc6, 0x49, 0x35, 0x23, 0xdf, 0x14, 0x19, 0xdc, 0x4e, 0xd9, 0xfe, 0x07, 0x16, - 0x3c, 0xa4, 0x23, 0x6a, 0x6e, 0xd8, 0xdd, 0xf4, 0xc9, 0x15, 0x18, 0x0a, 0x9a, 0x24, 0x74, 0x92, - 0x3b, 0xd9, 0x05, 0x39, 0xe8, 0x37, 0x44, 0xf9, 0xc1, 0xfe, 0xcc, 0x94, 0x4e, 0x5d, 0x96, 0x63, - 0x55, 0x13, 0xd9, 0x30, 0xc0, 0x06, 0x23, 0x12, 0x2e, 0xf2, 0x2c, 0x80, 0x1d, 0x7b, 0x5a, 0x8d, - 0xb0, 0x80, 0xd8, 0xbf, 0x60, 0xf1, 0x85, 0xa5, 0x77, 0x1d, 0xbd, 0x03, 0x13, 0x3b, 0xf4, 0xfa, - 0xb6, 0x74, 0xb7, 0x19, 0x72, 0x35, 0xba, 0x1c, 0xa7, 0xa7, 0xba, 0x8d, 0x93, 0xf6, 0x91, 0x0b, - 0x65, 0xd1, 0xe7, 0x89, 0xd5, 0x14, 0x31, 0xdc, 0x46, 0xde, 0xfe, 0xf3, 0x02, 0xdf, 0x89, 0x4c, - 0xaa, 0x7b, 0x02, 0x06, 0x9b, 0x41, 0x63, 0x71, 0xa5, 0x82, 0xc5, 0x08, 0x29, 0x76, 0x55, 0xe5, - 0xc5, 0x58, 0xc2, 0xd1, 0x45, 0x00, 0x72, 0x37, 0x26, 0xa1, 0xef, 0x78, 0xca, 0xf0, 0x43, 0x09, - 0x4f, 0x4b, 0x0a, 0x82, 0x35, 0x2c, 0x5a, 0xa7, 0x19, 0x06, 0xbb, 0x6e, 0x83, 0x39, 0x11, 0x15, - 0xcd, 0x3a, 0x55, 0x05, 0xc1, 0x1a, 0x16, 0xbd, 0x2a, 0xb7, 0xfc, 0x88, 0x1f, 0x80, 0xce, 0xba, - 0x88, 0x2a, 0x35, 0x94, 0x5c, 0x95, 0x6f, 0xea, 0x40, 0x6c, 0xe2, 0xa2, 0x79, 0x18, 0x88, 0x1d, - 0x66, 0xce, 0xd0, 0x9f, 0x6f, 0x1e, 0xb6, 0x46, 0x31, 0xf4, 0x68, 0x6d, 0xb4, 0x02, 0x16, 0x15, - 0xd1, 0x1b, 0x92, 0x05, 0x73, 0x96, 0x2c, 0xcc, 0xfc, 0x72, 0x97, 0xad, 0xce, 0xbe, 0x75, 0x1e, - 0x2c, 0xcc, 0x07, 0x0d, 0x5a, 0xf6, 0xe7, 0x4a, 0x00, 0x89, 0xb4, 0x87, 0xde, 0x6d, 0x63, 0x11, - 0x4f, 0x77, 0x96, 0x0f, 0x8f, 0x8e, 0x3f, 0xa0, 0xcf, 0x5b, 0x30, 0xec, 0x78, 0x5e, 0x50, 0x77, - 0x62, 0x36, 0xca, 0x85, 0xce, 0x2c, 0x4a, 0xb4, 0x3f, 0x9f, 0xd4, 0xe0, 0x5d, 0x78, 0x4e, 0x5a, - 0x2a, 0x68, 0x90, 0xae, 0xbd, 0xd0, 0x1b, 0x46, 0x1f, 0x97, 0x97, 0x00, 0xbe, 0x3c, 0xa6, 0xd3, - 0x97, 0x80, 0x12, 0xe3, 0xc6, 0x9a, 0xfc, 0x8f, 0x6e, 0x1a, 0xe1, 0x97, 0xfa, 0xf2, 0x3d, 0xcd, - 0x0d, 0xa1, 0xa7, 0x5b, 0xe4, 0x25, 0x54, 0xd5, 0xdd, 0x1d, 0xfa, 0xf3, 0xc3, 0x31, 0x68, 0xd2, - 0x75, 0x17, 0x57, 0x87, 0xb7, 0x61, 0xbc, 0x61, 0x1e, 0xb7, 0x62, 0x35, 0x3d, 0x9e, 0x47, 0x37, - 0x75, 0x3a, 0x27, 0x07, 0x6c, 0x0a, 0x80, 0xd3, 0x84, 0x51, 0x95, 0x3b, 0x9e, 0xac, 0xf8, 0x1b, - 0x81, 0x30, 0x17, 0xb5, 0x73, 0xe7, 0x72, 0x2f, 0x8a, 0xc9, 0x0e, 0xc5, 0x4c, 0xce, 0xd1, 0xeb, - 0xa2, 0x2e, 0x56, 0x54, 0xd0, 0xab, 0x30, 0xc0, 0xbc, 0x01, 0xa3, 0xf2, 0x50, 0xbe, 0x1e, 0xd0, - 0x74, 0x64, 0x4f, 0x36, 0x15, 0xfb, 0x1b, 0x61, 0x41, 0x01, 0x5d, 0x91, 0xd1, 0x2e, 0xa2, 0x15, - 0xff, 0x66, 0x44, 0x58, 0xb4, 0x8b, 0xd2, 0xc2, 0x47, 0x93, 0x40, 0x16, 0xbc, 0x3c, 0x33, 0x2e, - 0xab, 0x51, 0x93, 0xca, 0x2b, 0xe2, 0xbf, 0x0c, 0xf7, 0x5a, 0x86, 0xfc, 0xee, 0x99, 0x21, 0x61, - 0x93, 0xe1, 0xbc, 0x65, 0x92, 0xc0, 0x69, 0x9a, 0xc7, 0x7a, 0x7c, 0x4e, 0xfb, 0x30, 0x91, 0xde, - 0x58, 0x0f, 0xf4, 0xb8, 0xfe, 0x41, 0x1f, 0x8c, 0x99, 0x0b, 0x01, 0xcd, 0x41, 0x49, 0x10, 0x51, - 0x91, 0xef, 0xd4, 0xda, 0x5e, 0x95, 0x00, 0x9c, 0xe0, 0xb0, 0xc8, 0x7f, 0xac, 0xba, 0x66, 0x07, - 0x98, 0x44, 0xfe, 0x53, 0x10, 0xac, 0x61, 0x51, 0x21, 0x7a, 0x3d, 0x08, 0x62, 0x75, 0x14, 0xa8, - 0xd5, 0xb2, 0xc0, 0x4a, 0xb1, 0x80, 0xd2, 0x23, 0x60, 0x9b, 0x84, 0x3e, 0xf1, 0x4c, 0x4d, 0xa6, - 0x3a, 0x02, 0xae, 0xea, 0x40, 0x6c, 0xe2, 0xd2, 0x23, 0x2d, 0x88, 0xd8, 0xf2, 0x13, 0xa2, 0x7a, - 0x62, 0x57, 0x59, 0xe3, 0xde, 0xb0, 0x12, 0x8e, 0x5e, 0x87, 0x87, 0x94, 0xf3, 0x2a, 0xe6, 0x9a, - 0x61, 0xd9, 0xe2, 0x80, 0x71, 0xb3, 0x7e, 0x68, 0x31, 0x1b, 0x0d, 0xe7, 0xd5, 0x47, 0xaf, 0xc0, - 0x98, 0x10, 0x81, 0x25, 0xc5, 0x41, 0xd3, 0x58, 0xe1, 0xaa, 0x01, 0xc5, 0x29, 0x6c, 0x54, 0x81, - 0x09, 0x5a, 0xc2, 0xa4, 0x50, 0x49, 0x81, 0x3b, 0xe1, 0xaa, 0xb3, 0xfe, 0x6a, 0x0a, 0x8e, 0xdb, - 0x6a, 0xa0, 0x79, 0x18, 0xe7, 0x32, 0x0a, 0xbd, 0x53, 0xb2, 0x79, 0x10, 0x56, 0xdc, 0x6a, 0x23, - 0xdc, 0x30, 0xc1, 0x38, 0x8d, 0x8f, 0x2e, 0xc1, 0x88, 0x13, 0xd6, 0xb7, 0xdc, 0x98, 0xd4, 0xe3, - 0x56, 0xc8, 0x63, 0xc9, 0x68, 0xd6, 0x1e, 0xf3, 0x1a, 0x0c, 0x1b, 0x98, 0xf6, 0xbb, 0x70, 0x22, - 0xc3, 0x01, 0x84, 0x2e, 0x1c, 0xa7, 0xe9, 0xca, 0x6f, 0x4a, 0x59, 0x48, 0xce, 0x57, 0x57, 0xe4, - 0xd7, 0x68, 0x58, 0x74, 0x75, 0x32, 0x95, 0xb8, 0x16, 0x93, 0x59, 0xad, 0xce, 0x65, 0x09, 0xc0, - 0x09, 0x8e, 0xfd, 0x07, 0x00, 0x9a, 0x42, 0xa7, 0x07, 0xfb, 0xb8, 0x4b, 0x30, 0x22, 0x03, 0x89, - 0x6b, 0x01, 0x6c, 0xd5, 0x67, 0x5e, 0xd6, 0x60, 0xd8, 0xc0, 0xa4, 0x7d, 0xf3, 0x55, 0xf8, 0xdd, - 0x94, 0x3d, 0x66, 0x12, 0x7c, 0x37, 0xc1, 0x41, 0x4f, 0xc3, 0x50, 0x44, 0xbc, 0x8d, 0x6b, 0xae, - 0xbf, 0x2d, 0x16, 0xb6, 0xe2, 0xc2, 0x35, 0x51, 0x8e, 0x15, 0x06, 0x5a, 0x80, 0x62, 0xcb, 0x6d, - 0x88, 0xa5, 0x2c, 0x0f, 0xfc, 0xe2, 0xcd, 0x95, 0xca, 0xc1, 0xfe, 0xcc, 0xa3, 0x79, 0xf1, 0xd1, - 0xe9, 0xd5, 0x3e, 0x9a, 0xa5, 0xdb, 0x8f, 0x56, 0xce, 0x7a, 0x1b, 0x18, 0x38, 0xe4, 0xdb, 0xc0, - 0x45, 0x00, 0xf1, 0xd5, 0x72, 0x2d, 0x17, 0x93, 0x59, 0xbb, 0xac, 0x20, 0x58, 0xc3, 0x42, 0x11, - 0x4c, 0xd6, 0x43, 0xe2, 0xc8, 0x3b, 0x34, 0x77, 0x65, 0x18, 0xba, 0x7f, 0x05, 0xc1, 0x62, 0x9a, - 0x18, 0x6e, 0xa7, 0x8f, 0x02, 0x98, 0x6c, 0x08, 0x5f, 0xe9, 0xa4, 0xd1, 0xd2, 0xe1, 0xfd, 0x27, - 0x98, 0x41, 0x4e, 0x9a, 0x10, 0x6e, 0xa7, 0x8d, 0xde, 0x82, 0x69, 0x59, 0xd8, 0xee, 0x9e, 0xce, - 0xb6, 0x4b, 0x71, 0xe1, 0xec, 0xbd, 0xfd, 0x99, 0xe9, 0x4a, 0x2e, 0x16, 0xee, 0x40, 0x01, 0x61, - 0x18, 0x60, 0x6f, 0x49, 0x51, 0x79, 0x98, 0x9d, 0x73, 0x4f, 0xe6, 0x2b, 0x03, 0xe8, 0x5a, 0x9f, - 0x65, 0xef, 0x50, 0xc2, 0xa4, 0x3c, 0x79, 0x96, 0x63, 0x85, 0x58, 0x50, 0x42, 0x1b, 0x30, 0xec, - 0xf8, 0x7e, 0x10, 0x3b, 0x5c, 0x84, 0x1a, 0xc9, 0x97, 0xfd, 0x34, 0xc2, 0xf3, 0x49, 0x0d, 0x4e, - 0x5d, 0x59, 0xa9, 0x6a, 0x10, 0xac, 0x13, 0x46, 0x77, 0x60, 0x3c, 0xb8, 0x43, 0x99, 0xa3, 0xd4, - 0x52, 0x44, 0xe5, 0x51, 0xd6, 0xd6, 0xf3, 0x3d, 0xea, 0x69, 0x8d, 0xca, 0x1a, 0xd7, 0x32, 0x89, - 0xe2, 0x74, 0x2b, 0x68, 0xd6, 0xd0, 0x56, 0x8f, 0x25, 0xbe, 0x13, 0x89, 0xb6, 0x5a, 0x57, 0x4e, - 0xb3, 0x70, 0x07, 0xdc, 0x44, 0x9a, 0xed, 0xfe, 0xf1, 0x54, 0xb8, 0x83, 0x04, 0x84, 0x75, 0x3c, - 0xb4, 0x05, 0x23, 0xc9, 0x93, 0x55, 0x18, 0xb1, 0x60, 0x4b, 0xc3, 0x17, 0x2f, 0xf6, 0xf6, 0x71, - 0x2b, 0x5a, 0x4d, 0x7e, 0x73, 0xd0, 0x4b, 0xb0, 0x41, 0x79, 0xfa, 0xa7, 0x60, 0x58, 0x9b, 0xd8, - 0xc3, 0x78, 0x00, 0x4c, 0xbf, 0x02, 0x13, 0xe9, 0xa9, 0x3b, 0x94, 0x07, 0xc1, 0xff, 0x2e, 0xc0, - 0x78, 0xc6, 0xcb, 0x15, 0x8b, 0xb1, 0x9e, 0x62, 0xa8, 0x49, 0x48, 0x75, 0x93, 0x2d, 0x16, 0x7a, - 0x60, 0x8b, 0x92, 0x47, 0x17, 0x73, 0x79, 0xb4, 0x60, 0x85, 0x7d, 0xef, 0x87, 0x15, 0x9a, 0xa7, - 0x4f, 0x7f, 0x4f, 0xa7, 0xcf, 0x11, 0xb0, 0x4f, 0xe3, 0x00, 0x1b, 0xec, 0xe1, 0x00, 0xfb, 0x52, - 0x01, 0x26, 0xd2, 0x16, 0xbe, 0xc7, 0xf0, 0xde, 0xf1, 0xaa, 0xf1, 0xde, 0x91, 0x9d, 0xb1, 0x20, - 0x6d, 0x77, 0x9c, 0xf7, 0xf6, 0x81, 0x53, 0x6f, 0x1f, 0x4f, 0xf6, 0x44, 0xad, 0xf3, 0x3b, 0xc8, - 0x3f, 0x2c, 0xc0, 0xc9, 0x74, 0x95, 0x45, 0xcf, 0x71, 0x77, 0x8e, 0x61, 0x6c, 0x6e, 0x18, 0x63, - 0xf3, 0x4c, 0x2f, 0x5f, 0xc3, 0xba, 0x96, 0x3b, 0x40, 0xb7, 0x53, 0x03, 0x34, 0xd7, 0x3b, 0xc9, - 0xce, 0xa3, 0xf4, 0xdd, 0x22, 0x9c, 0xcd, 0xac, 0x97, 0x3c, 0x17, 0x2c, 0x1b, 0xcf, 0x05, 0x17, - 0x53, 0xcf, 0x05, 0x76, 0xe7, 0xda, 0x47, 0xf3, 0x7e, 0x20, 0xbc, 0x1c, 0x59, 0x20, 0xc0, 0xfb, - 0x7c, 0x3b, 0x30, 0xbc, 0x1c, 0x15, 0x21, 0x6c, 0xd2, 0xfd, 0x71, 0x7a, 0x33, 0xf8, 0x03, 0x0b, - 0x4e, 0x67, 0xce, 0xcd, 0x31, 0xe8, 0xd5, 0xaf, 0x9b, 0x7a, 0xf5, 0x27, 0x7a, 0x5e, 0xad, 0x39, - 0x8a, 0xf6, 0x3f, 0x29, 0xe6, 0x7c, 0x0b, 0xd3, 0x4c, 0xde, 0x80, 0x61, 0xa7, 0x5e, 0x27, 0x51, - 0xb4, 0x1a, 0x34, 0x54, 0x60, 0xbc, 0x67, 0x98, 0xb4, 0x91, 0x14, 0x1f, 0xec, 0xcf, 0x4c, 0xa7, - 0x49, 0x24, 0x60, 0xac, 0x53, 0x30, 0x63, 0x79, 0x16, 0x8e, 0x34, 0x96, 0xe7, 0x45, 0x80, 0x5d, - 0xa5, 0xaf, 0x48, 0xab, 0x39, 0x35, 0x4d, 0x86, 0x86, 0x85, 0x7e, 0x8e, 0xdd, 0x02, 0xb8, 0x31, - 0x10, 0x5f, 0x8a, 0xcf, 0xf5, 0x38, 0x57, 0xba, 0x61, 0x11, 0x77, 0xa7, 0x57, 0x2a, 0x61, 0x45, - 0x12, 0xfd, 0x0c, 0x4c, 0x44, 0x3c, 0x5a, 0xcb, 0xa2, 0xe7, 0x44, 0xcc, 0x89, 0x4b, 0xac, 0x42, - 0xe6, 0x23, 0x5f, 0x4b, 0xc1, 0x70, 0x1b, 0x36, 0x5a, 0x96, 0x1f, 0xc5, 0x42, 0xcb, 0xf0, 0x85, - 0x79, 0x3e, 0xf9, 0x20, 0x91, 0xe1, 0x65, 0x2a, 0x3d, 0xfc, 0x6c, 0xe0, 0xb5, 0x9a, 0xf6, 0x97, - 0xfa, 0xe0, 0xe1, 0x0e, 0x4c, 0x0c, 0xcd, 0x9b, 0x46, 0x00, 0x4f, 0xa5, 0xf5, 0x7f, 0xd3, 0x99, - 0x95, 0x0d, 0x85, 0x60, 0x6a, 0xad, 0x14, 0xde, 0xf7, 0x5a, 0xf9, 0x82, 0xa5, 0x69, 0x66, 0xb9, - 0xa9, 0xf0, 0xa7, 0x0e, 0xc9, 0x9c, 0x8f, 0x50, 0x55, 0xbb, 0x91, 0xa1, 0xef, 0xbc, 0xd8, 0x73, - 0x77, 0x7a, 0x56, 0x80, 0x1e, 0xef, 0x93, 0xd1, 0x7b, 0x16, 0x3c, 0x9a, 0xd9, 0x5f, 0xc3, 0x68, - 0x69, 0x0e, 0x4a, 0x75, 0x5a, 0xa8, 0x39, 0x86, 0x26, 0xee, 0xd9, 0x12, 0x80, 0x13, 0x1c, 0xc3, - 0x36, 0xa9, 0xd0, 0xd5, 0x36, 0xe9, 0xdf, 0x58, 0xd0, 0xb6, 0x80, 0x8f, 0x81, 0x93, 0xae, 0x98, - 0x9c, 0xf4, 0xa3, 0xbd, 0xcc, 0x65, 0x0e, 0x13, 0xfd, 0xce, 0x38, 0x9c, 0xca, 0xf1, 0x04, 0xdb, - 0x85, 0xc9, 0xcd, 0x3a, 0x31, 0x5d, 0x6e, 0xc5, 0xc7, 0x64, 0x7a, 0x27, 0x77, 0xf4, 0xcf, 0xe5, - 0x17, 0xe2, 0x36, 0x14, 0xdc, 0xde, 0x04, 0x7a, 0xcf, 0x82, 0x29, 0xe7, 0x4e, 0xd4, 0x96, 0x80, - 0x4d, 0xac, 0x99, 0xe7, 0x33, 0xf5, 0xb4, 0x5d, 0x12, 0xb6, 0x31, 0xb7, 0xb8, 0xa9, 0x2c, 0x2c, - 0x9c, 0xd9, 0x16, 0xc2, 0x22, 0x96, 0x29, 0x95, 0xb7, 0x3b, 0x38, 0x85, 0x67, 0xb9, 0xec, 0x71, - 0x9e, 0x2a, 0x21, 0x58, 0xd1, 0x41, 0xb7, 0xa0, 0xb4, 0x29, 0xfd, 0x68, 0x05, 0xcf, 0xce, 0x3c, - 0x04, 0x33, 0x9d, 0x6d, 0xb9, 0xef, 0x88, 0x02, 0xe1, 0x84, 0x14, 0x7a, 0x05, 0x8a, 0xfe, 0x46, - 0xd4, 0x29, 0x87, 0x4c, 0xca, 0x96, 0x8f, 0x7b, 0xf7, 0x5f, 0x5f, 0xae, 0x61, 0x5a, 0x11, 0x5d, - 0x81, 0x62, 0xb8, 0xde, 0x10, 0x4f, 0x0b, 0x99, 0x72, 0x29, 0x5e, 0xa8, 0x64, 0x2f, 0x12, 0x4e, - 0x09, 0x2f, 0x54, 0x30, 0x25, 0x81, 0xaa, 0xd0, 0xcf, 0x9c, 0xa6, 0xc4, 0x0b, 0x42, 0xa6, 0x40, - 0xda, 0xc1, 0xf9, 0x90, 0x87, 0x00, 0x60, 0x08, 0x98, 0x13, 0x42, 0xaf, 0xc2, 0x40, 0x9d, 0xa5, - 0x59, 0x11, 0x8a, 0x9f, 0xec, 0x28, 0x3c, 0x6d, 0x89, 0x58, 0xf8, 0x0b, 0x2a, 0x2f, 0xc7, 0x82, - 0x02, 0x5a, 0x83, 0x81, 0x3a, 0x69, 0x6e, 0x6d, 0x44, 0x42, 0x9f, 0xf3, 0xf1, 0x4c, 0x5a, 0x1d, - 0xb2, 0x0a, 0x09, 0xaa, 0x0c, 0x03, 0x0b, 0x5a, 0xe8, 0x93, 0x50, 0xd8, 0xa8, 0x0b, 0x4f, 0xaa, - 0xcc, 0x37, 0x04, 0x33, 0x2c, 0xc3, 0xc2, 0xc0, 0xbd, 0xfd, 0x99, 0xc2, 0xf2, 0x22, 0x2e, 0x6c, - 0xd4, 0xd1, 0x75, 0x18, 0xdc, 0xe0, 0xbe, 0xf5, 0x22, 0x1c, 0xf6, 0xe3, 0xd9, 0x6e, 0xff, 0x6d, - 0xee, 0xf7, 0xdc, 0x03, 0x48, 0x00, 0xb0, 0x24, 0x82, 0xd6, 0x00, 0x36, 0x54, 0x8c, 0x00, 0x11, - 0x0f, 0xfb, 0xa3, 0xbd, 0x44, 0x12, 0x10, 0xca, 0x0d, 0x55, 0x8a, 0x35, 0x3a, 0xe8, 0x33, 0x50, - 0x72, 0x64, 0x9a, 0x2f, 0x16, 0x0b, 0xdb, 0x94, 0x35, 0x92, 0x4d, 0xd8, 0x39, 0x03, 0x1a, 0x5f, - 0xc1, 0x0a, 0x09, 0x27, 0x44, 0xd1, 0x36, 0x8c, 0xee, 0x46, 0xcd, 0x2d, 0x22, 0x37, 0x2d, 0x0b, - 0x90, 0x9d, 0x73, 0x48, 0xdd, 0x12, 0x88, 0x6e, 0x18, 0xb7, 0x1c, 0xaf, 0x8d, 0xcf, 0x30, 0x77, - 0xb1, 0x5b, 0x3a, 0x31, 0x6c, 0xd2, 0xa6, 0x83, 0xfe, 0x4e, 0x2b, 0x58, 0xdf, 0x8b, 0x89, 0x08, - 0x9b, 0x9d, 0x39, 0xe8, 0xaf, 0x71, 0x94, 0xf6, 0x41, 0x17, 0x00, 0x2c, 0x89, 0xd0, 0x6d, 0xed, - 0xc8, 0x14, 0x7a, 0x42, 0x83, 0xf3, 0x44, 0xee, 0xf0, 0xb4, 0xf5, 0x37, 0x19, 0x14, 0xc6, 0x0f, - 0x13, 0x52, 0x8c, 0x0f, 0x36, 0xb7, 0x82, 0x38, 0xf0, 0x53, 0x3c, 0x78, 0x32, 0x9f, 0x0f, 0x56, - 0x33, 0xf0, 0xdb, 0xf9, 0x60, 0x16, 0x16, 0xce, 0x6c, 0x0b, 0x35, 0x60, 0xac, 0x19, 0x84, 0xf1, - 0x9d, 0x20, 0x94, 0xab, 0x0a, 0x75, 0xb8, 0xda, 0x1b, 0x98, 0xa2, 0x45, 0x66, 0xfd, 0x6d, 0x42, - 0x70, 0x8a, 0x26, 0xfa, 0x34, 0x0c, 0x46, 0x75, 0xc7, 0x23, 0x2b, 0x37, 0xca, 0x27, 0xf2, 0x0f, - 0x98, 0x1a, 0x47, 0xc9, 0x59, 0x5d, 0x6c, 0x72, 0x04, 0x0a, 0x96, 0xe4, 0xd0, 0x32, 0xf4, 0xb3, - 0x5c, 0x0c, 0x2c, 0xe2, 0x77, 0x4e, 0xe4, 0xa4, 0x36, 0x0b, 0x69, 0xce, 0x87, 0x58, 0x31, 0xe6, - 0xd5, 0xe9, 0x1e, 0x10, 0x12, 0x6e, 0x10, 0x95, 0x4f, 0xe6, 0xef, 0x01, 0x21, 0x18, 0xdf, 0xa8, - 0x75, 0xda, 0x03, 0x0a, 0x09, 0x27, 0x44, 0x29, 0x17, 0xa6, 0x9c, 0xf3, 0x54, 0x3e, 0x17, 0xce, - 0xe7, 0x9b, 0x8c, 0x0b, 0x53, 0xae, 0x49, 0x49, 0xd8, 0xef, 0x0d, 0xb6, 0x4b, 0x25, 0xec, 0x4e, - 0xf4, 0x39, 0xab, 0xcd, 0x60, 0xe0, 0x13, 0xbd, 0xaa, 0x68, 0x8e, 0x50, 0x1e, 0x7d, 0xcf, 0x82, - 0x53, 0xcd, 0xcc, 0x0f, 0x11, 0x47, 0x7c, 0x6f, 0x9a, 0x1e, 0xfe, 0xe9, 0x2a, 0x2a, 0x7f, 0x36, - 0x1c, 0xe7, 0xb4, 0x94, 0x96, 0xf9, 0x8b, 0xef, 0x5b, 0xe6, 0x5f, 0x85, 0x21, 0x26, 0x46, 0x26, - 0x61, 0xba, 0x7a, 0x32, 0xbb, 0x63, 0xc2, 0xc2, 0xa2, 0xa8, 0x88, 0x15, 0x09, 0xf4, 0x8b, 0x16, - 0x9c, 0x49, 0x77, 0x1d, 0x13, 0x06, 0x16, 0x21, 0x5f, 0xf9, 0x75, 0x6c, 0x59, 0x7c, 0xff, 0x99, - 0x6a, 0x27, 0xe4, 0x83, 0x6e, 0x08, 0xb8, 0x73, 0x63, 0xa8, 0x92, 0x71, 0x1f, 0x1c, 0x30, 0xdf, - 0x13, 0x7b, 0xb8, 0x13, 0x3e, 0x0f, 0x23, 0x3b, 0x41, 0xcb, 0x97, 0x3e, 0x31, 0xc2, 0xe3, 0x99, - 0xe9, 0xae, 0x57, 0xb5, 0x72, 0x6c, 0x60, 0xa5, 0x6e, 0x92, 0x43, 0xf7, 0x7b, 0x93, 0x3c, 0xde, - 0xfb, 0xc9, 0x57, 0xac, 0x0c, 0xc1, 0x9a, 0xdf, 0x58, 0x5f, 0x36, 0x6f, 0xac, 0xe7, 0xd3, 0x37, - 0xd6, 0x36, 0x0d, 0xa5, 0x71, 0x59, 0xed, 0x3d, 0x24, 0x76, 0xaf, 0xf1, 0xd0, 0x6c, 0x0f, 0xce, - 0x75, 0x3b, 0x38, 0x98, 0x09, 0x63, 0x43, 0xbd, 0xed, 0x27, 0x26, 0x8c, 0x8d, 0x95, 0x0a, 0x66, - 0x90, 0x5e, 0x23, 0xeb, 0xd8, 0xff, 0xdd, 0x82, 0x62, 0x35, 0x68, 0x1c, 0x83, 0xc6, 0xf5, 0x53, - 0x86, 0xc6, 0xf5, 0xe1, 0x9c, 0x64, 0xc1, 0xb9, 0xfa, 0xd5, 0xa5, 0x94, 0x7e, 0xf5, 0x4c, 0x1e, - 0x81, 0xce, 0xda, 0xd4, 0x5f, 0x2b, 0x82, 0x9e, 0xda, 0x18, 0xfd, 0xbb, 0xfb, 0xb1, 0x85, 0x2f, - 0x76, 0xca, 0x76, 0x2c, 0x28, 0x33, 0xcb, 0x47, 0xe9, 0x66, 0xfb, 0x23, 0x66, 0x12, 0x7f, 0x9b, - 0xb8, 0x9b, 0x5b, 0x31, 0x69, 0xa4, 0x3f, 0xe7, 0xf8, 0x4c, 0xe2, 0xff, 0xab, 0x05, 0xe3, 0xa9, - 0xd6, 0x91, 0x97, 0xe5, 0xb3, 0x77, 0x9f, 0x9a, 0xb6, 0xc9, 0xae, 0x4e, 0x7e, 0xb3, 0x00, 0xea, - 0x39, 0x4b, 0x6a, 0xa1, 0x98, 0x5c, 0xae, 0xde, 0xbb, 0x22, 0xac, 0x61, 0xa0, 0x17, 0x60, 0x38, - 0x0e, 0x9a, 0x81, 0x17, 0x6c, 0xee, 0x5d, 0x25, 0x32, 0x96, 0x93, 0x7a, 0x74, 0x5c, 0x4b, 0x40, - 0x58, 0xc7, 0xb3, 0x7f, 0xa3, 0x08, 0xe9, 0x74, 0xd8, 0x3f, 0x59, 0x93, 0x1f, 0xce, 0x35, 0xf9, - 0x5d, 0x0b, 0x26, 0x68, 0xeb, 0xcc, 0xaa, 0x4c, 0x1e, 0x87, 0x2a, 0x35, 0x8f, 0xd5, 0x21, 0x35, - 0xcf, 0x79, 0xca, 0xbb, 0x1a, 0x41, 0x2b, 0x16, 0x5a, 0x2c, 0x8d, 0x39, 0xd1, 0x52, 0x2c, 0xa0, - 0x02, 0x8f, 0x84, 0xa1, 0xf0, 0xc4, 0xd3, 0xf1, 0x48, 0x18, 0x62, 0x01, 0x95, 0x99, 0x7b, 0xfa, - 0x72, 0x32, 0xf7, 0xb0, 0x30, 0x88, 0xc2, 0x92, 0x49, 0x08, 0x26, 0x5a, 0x18, 0x44, 0x69, 0xe2, - 0x94, 0xe0, 0xd8, 0x5f, 0x2b, 0xc2, 0x48, 0x35, 0x68, 0x24, 0x0f, 0x4a, 0xcf, 0x1b, 0x0f, 0x4a, - 0xe7, 0x52, 0x0f, 0x4a, 0x13, 0x3a, 0xee, 0x4f, 0x9e, 0x8f, 0x3e, 0xa8, 0xe7, 0xa3, 0xbf, 0xb0, - 0x60, 0xac, 0x1a, 0x34, 0xe8, 0x02, 0xfd, 0x71, 0x5a, 0x8d, 0x7a, 0x90, 0xcd, 0x81, 0x0e, 0x41, - 0x36, 0xff, 0x91, 0x05, 0x83, 0xd5, 0xa0, 0x71, 0x0c, 0x1a, 0xde, 0x97, 0x4d, 0x0d, 0xef, 0x43, - 0x39, 0x5c, 0x36, 0x47, 0xa9, 0xfb, 0xf5, 0x22, 0x8c, 0xd2, 0x7e, 0x06, 0x9b, 0x72, 0x96, 0x8c, - 0x11, 0xb1, 0x7a, 0x18, 0x11, 0x2a, 0xcc, 0x05, 0x9e, 0x17, 0xdc, 0x49, 0xcf, 0xd8, 0x32, 0x2b, - 0xc5, 0x02, 0x8a, 0x9e, 0x86, 0xa1, 0x66, 0x48, 0x76, 0xdd, 0xa0, 0x15, 0xa5, 0x7d, 0x79, 0xab, - 0xa2, 0x1c, 0x2b, 0x0c, 0x2a, 0xff, 0x47, 0xae, 0x5f, 0x27, 0xd2, 0xba, 0xa9, 0x8f, 0x59, 0x37, - 0xf1, 0x38, 0xc5, 0x5a, 0x39, 0x36, 0xb0, 0xd0, 0x6d, 0x28, 0xb1, 0xff, 0x6c, 0xdf, 0x1c, 0x3e, - 0x73, 0x8e, 0x48, 0x0e, 0x20, 0x08, 0xe0, 0x84, 0x16, 0xba, 0x08, 0x10, 0x4b, 0x3b, 0xac, 0x48, - 0xb8, 0x9a, 0x2b, 0x89, 0x52, 0x59, 0x68, 0x45, 0x58, 0xc3, 0x42, 0x4f, 0x41, 0x29, 0x76, 0x5c, - 0xef, 0x9a, 0xeb, 0x93, 0x48, 0xd8, 0xb1, 0x89, 0xd8, 0xff, 0xa2, 0x10, 0x27, 0x70, 0x7a, 0xa2, - 0xb3, 0x40, 0x06, 0x3c, 0xef, 0xd6, 0x10, 0xc3, 0x66, 0x27, 0xfa, 0x35, 0x55, 0x8a, 0x35, 0x0c, - 0xfb, 0x12, 0x9c, 0xac, 0x06, 0x8d, 0x6a, 0x10, 0xc6, 0xcb, 0x41, 0x78, 0xc7, 0x09, 0x1b, 0x72, - 0xfe, 0x66, 0x64, 0x18, 0x7a, 0x7a, 0xea, 0xf6, 0x73, 0xfd, 0x84, 0x11, 0x60, 0xfe, 0x39, 0x76, - 0xa6, 0x1f, 0xd2, 0xe9, 0xe8, 0x3f, 0x14, 0x00, 0x55, 0x99, 0xa5, 0x98, 0x91, 0xfb, 0xed, 0x2d, - 0x18, 0x8b, 0xc8, 0x35, 0xd7, 0x6f, 0xdd, 0x95, 0xf7, 0xb4, 0x0e, 0x1e, 0x5d, 0xb5, 0x25, 0x1d, - 0x93, 0x6b, 0x7b, 0xcc, 0x32, 0x9c, 0xa2, 0x46, 0x87, 0x30, 0x6c, 0xf9, 0xf3, 0xd1, 0xcd, 0x88, - 0x84, 0x22, 0x19, 0x19, 0x1b, 0x42, 0x2c, 0x0b, 0x71, 0x02, 0xa7, 0x4b, 0x86, 0xfd, 0xb9, 0x1e, - 0xf8, 0x38, 0x08, 0x62, 0xb9, 0xc8, 0x58, 0x3a, 0x1b, 0xad, 0x1c, 0x1b, 0x58, 0x68, 0x19, 0x50, - 0xd4, 0x6a, 0x36, 0x3d, 0xf6, 0xfc, 0xea, 0x78, 0x97, 0xc3, 0xa0, 0xd5, 0xe4, 0x4f, 0x5f, 0x22, - 0x13, 0x4c, 0xad, 0x0d, 0x8a, 0x33, 0x6a, 0x50, 0xc6, 0xb0, 0x11, 0xb1, 0xdf, 0x22, 0x96, 0x01, - 0xd7, 0xbb, 0xd6, 0x58, 0x11, 0x96, 0x30, 0xfb, 0xb3, 0xec, 0x30, 0x63, 0x39, 0xa4, 0xe2, 0x56, - 0x48, 0xd0, 0x0e, 0x8c, 0x36, 0xd9, 0x81, 0x15, 0x87, 0x81, 0xe7, 0x11, 0x29, 0x37, 0xde, 0x9f, - 0xd5, 0x1a, 0xcf, 0x29, 0xa3, 0x93, 0xc3, 0x26, 0x75, 0xfb, 0x73, 0xe3, 0x8c, 0x2f, 0xd5, 0xf8, - 0xa5, 0x65, 0x50, 0xd8, 0xa2, 0x0b, 0x09, 0x6d, 0x3a, 0x3f, 0xeb, 0x5c, 0xc2, 0xe9, 0x85, 0x3d, - 0x3b, 0x96, 0x75, 0xd1, 0x6b, 0xec, 0xcd, 0x90, 0x33, 0x83, 0x6e, 0xc9, 0x68, 0x39, 0x96, 0xf1, - 0x3c, 0x28, 0x2a, 0x62, 0x8d, 0x08, 0xba, 0x06, 0xa3, 0x22, 0xe5, 0x90, 0x50, 0x60, 0x14, 0x8d, - 0xeb, 0xef, 0x28, 0xd6, 0x81, 0x07, 0xe9, 0x02, 0x6c, 0x56, 0x46, 0x9b, 0x70, 0x46, 0xcb, 0xbf, - 0x97, 0x61, 0x39, 0xc9, 0x79, 0xcb, 0xa3, 0xf7, 0xf6, 0x67, 0xce, 0xac, 0x75, 0x42, 0xc4, 0x9d, - 0xe9, 0xa0, 0x1b, 0x70, 0xd2, 0xa9, 0xc7, 0xee, 0x2e, 0xa9, 0x10, 0xa7, 0xe1, 0xb9, 0x3e, 0x31, - 0x83, 0x5b, 0x9c, 0xbe, 0xb7, 0x3f, 0x73, 0x72, 0x3e, 0x0b, 0x01, 0x67, 0xd7, 0x43, 0x2f, 0x43, - 0xa9, 0xe1, 0x47, 0x62, 0x0c, 0x06, 0x8c, 0xd4, 0x92, 0xa5, 0xca, 0xf5, 0x9a, 0xfa, 0xfe, 0xe4, - 0x0f, 0x4e, 0x2a, 0xa0, 0x4d, 0x18, 0xd1, 0x1d, 0xd8, 0x44, 0x5a, 0xd2, 0x67, 0x3a, 0xdc, 0x6d, - 0x0d, 0xaf, 0x2f, 0xae, 0xbd, 0x53, 0x76, 0xc9, 0x86, 0x43, 0x98, 0x41, 0x18, 0xbd, 0x0a, 0x28, - 0x22, 0xe1, 0xae, 0x5b, 0x27, 0xf3, 0x75, 0x16, 0xc8, 0x9b, 0xe9, 0x7c, 0x86, 0x0c, 0x27, 0x1b, - 0x54, 0x6b, 0xc3, 0xc0, 0x19, 0xb5, 0xd0, 0x15, 0xca, 0x51, 0xf4, 0x52, 0x61, 0x46, 0x2e, 0xc5, - 0xbc, 0x72, 0x85, 0x34, 0x43, 0x52, 0x77, 0x62, 0xd2, 0x30, 0x29, 0xe2, 0x54, 0x3d, 0x7a, 0xde, - 0xa8, 0xfc, 0x28, 0x60, 0x1a, 0x3f, 0xb7, 0xe7, 0x48, 0xa1, 0x37, 0xa4, 0xad, 0x20, 0x8a, 0xaf, - 0x93, 0xf8, 0x4e, 0x10, 0x6e, 0x8b, 0x88, 0x74, 0x49, 0x70, 0xd4, 0x04, 0x84, 0x75, 0x3c, 0x2a, - 0x11, 0xb1, 0x47, 0xbb, 0x95, 0x0a, 0x7b, 0x43, 0x19, 0x4a, 0xf6, 0xc9, 0x15, 0x5e, 0x8c, 0x25, - 0x5c, 0xa2, 0xae, 0x54, 0x17, 0xd9, 0xcb, 0x48, 0x0a, 0x75, 0xa5, 0xba, 0x88, 0x25, 0x1c, 0x91, - 0xf6, 0xb4, 0x9d, 0x63, 0xf9, 0x6f, 0x5a, 0xed, 0x7c, 0xb9, 0xc7, 0xcc, 0x9d, 0x3e, 0x4c, 0xa8, - 0x84, 0xa1, 0x3c, 0x54, 0x5f, 0x54, 0x1e, 0x67, 0x8b, 0xa4, 0xf7, 0x38, 0x7f, 0x4a, 0xa7, 0xb7, - 0x92, 0xa2, 0x84, 0xdb, 0x68, 0x1b, 0x41, 0x53, 0x26, 0xba, 0xe6, 0xb7, 0x99, 0x83, 0x52, 0xd4, - 0x5a, 0x6f, 0x04, 0x3b, 0x8e, 0xeb, 0xb3, 0x87, 0x0c, 0x4d, 0x10, 0xa9, 0x49, 0x00, 0x4e, 0x70, - 0xd0, 0x32, 0x0c, 0x39, 0xe2, 0xf2, 0x25, 0x9e, 0x1e, 0x32, 0xa3, 0x28, 0xc8, 0x0b, 0x1a, 0xd7, - 0xa7, 0xca, 0x7f, 0x58, 0xd5, 0x45, 0x2f, 0xc1, 0xa8, 0x70, 0xf4, 0x13, 0x36, 0xba, 0x27, 0x4c, - 0x9f, 0x90, 0x9a, 0x0e, 0xc4, 0x26, 0x2e, 0xfa, 0x39, 0x18, 0xa3, 0x54, 0x12, 0xc6, 0x56, 0x9e, - 0xea, 0x85, 0x23, 0x6a, 0x79, 0x0b, 0xf4, 0xca, 0x38, 0x45, 0x0c, 0x35, 0xe0, 0x11, 0xa7, 0x15, - 0x07, 0x4c, 0xe9, 0x69, 0xae, 0xff, 0xb5, 0x60, 0x9b, 0xf8, 0xec, 0xbd, 0x61, 0x68, 0xe1, 0xdc, - 0xbd, 0xfd, 0x99, 0x47, 0xe6, 0x3b, 0xe0, 0xe1, 0x8e, 0x54, 0xd0, 0x4d, 0x18, 0x8e, 0x03, 0x4f, - 0x18, 0xd7, 0x47, 0xe5, 0x53, 0xf9, 0x41, 0x9f, 0xd6, 0x14, 0x9a, 0xae, 0x4e, 0x50, 0x55, 0xb1, - 0x4e, 0x07, 0xad, 0xf1, 0x3d, 0xc6, 0xc2, 0xe1, 0x92, 0xa8, 0xfc, 0x50, 0xfe, 0xc0, 0xa8, 0xa8, - 0xb9, 0xe6, 0x16, 0x14, 0x35, 0xb1, 0x4e, 0x06, 0x5d, 0x86, 0xc9, 0x66, 0xe8, 0x06, 0x6c, 0x61, - 0x2b, 0x85, 0x73, 0xd9, 0x08, 0x07, 0x38, 0x59, 0x4d, 0x23, 0xe0, 0xf6, 0x3a, 0xe8, 0x02, 0x15, - 0x50, 0x79, 0x61, 0xf9, 0x34, 0xcf, 0x7b, 0xc4, 0x85, 0x53, 0x5e, 0x86, 0x15, 0x74, 0xfa, 0xa7, - 0x61, 0xb2, 0x8d, 0x53, 0x1e, 0xca, 0xd0, 0xf9, 0x9f, 0xf7, 0x43, 0x49, 0xa9, 0x03, 0xd1, 0x9c, - 0xa9, 0xe5, 0x3d, 0x9d, 0xd6, 0xf2, 0x0e, 0x51, 0x79, 0x4d, 0x57, 0xec, 0xae, 0x19, 0x66, 0x3a, - 0x85, 0xfc, 0x7c, 0x43, 0xfa, 0x5d, 0xb8, 0xab, 0x57, 0xa2, 0x76, 0xbb, 0x2b, 0xf6, 0xac, 0x2e, - 0xee, 0xeb, 0x78, 0x61, 0xec, 0x31, 0x85, 0x2a, 0xbd, 0x1a, 0x36, 0x83, 0xc6, 0x4a, 0x35, 0x9d, - 0x53, 0xb0, 0x4a, 0x0b, 0x31, 0x87, 0x31, 0xe1, 0x9e, 0x1e, 0xeb, 0x4c, 0xb8, 0x1f, 0xbc, 0x4f, - 0xe1, 0x5e, 0x12, 0xc0, 0x09, 0x2d, 0xe4, 0xc1, 0x64, 0xdd, 0x4c, 0x07, 0xa9, 0x3c, 0x11, 0x1f, - 0xeb, 0x9a, 0x98, 0xb1, 0xa5, 0xe5, 0x89, 0x5a, 0x4c, 0x53, 0xc1, 0xed, 0x84, 0xd1, 0x4b, 0x30, - 0xf4, 0x4e, 0x10, 0xb1, 0x65, 0x27, 0xce, 0x36, 0xe9, 0xfb, 0x35, 0xf4, 0xda, 0x8d, 0x1a, 0x2b, - 0x3f, 0xd8, 0x9f, 0x19, 0xae, 0x06, 0x0d, 0xf9, 0x17, 0xab, 0x0a, 0xe8, 0x2e, 0x9c, 0x34, 0x38, - 0x82, 0xea, 0x2e, 0xf4, 0xde, 0xdd, 0x33, 0xa2, 0xb9, 0x93, 0x2b, 0x59, 0x94, 0x70, 0x76, 0x03, - 0xf6, 0x37, 0xb8, 0xd2, 0x53, 0xa8, 0x46, 0x48, 0xd4, 0xf2, 0x8e, 0x23, 0x19, 0xcc, 0x92, 0xa1, - 0xb5, 0xb9, 0x6f, 0xc5, 0xfa, 0xef, 0x5b, 0x4c, 0xb1, 0xbe, 0x46, 0x76, 0x9a, 0x9e, 0x13, 0x1f, - 0x87, 0x79, 0xfb, 0x6b, 0x30, 0x14, 0x8b, 0xd6, 0x3a, 0xe5, 0xaf, 0xd1, 0x3a, 0xc5, 0x1e, 0x17, - 0xd4, 0x81, 0x28, 0x4b, 0xb1, 0x22, 0x63, 0xff, 0x4b, 0x3e, 0x03, 0x12, 0x72, 0x0c, 0xba, 0x85, - 0x8a, 0xa9, 0x5b, 0x98, 0xe9, 0xf2, 0x05, 0x39, 0x3a, 0x86, 0x7f, 0x61, 0xf6, 0x9b, 0xdd, 0x3d, - 0x3e, 0xec, 0x2f, 0x3a, 0xf6, 0x2f, 0x5b, 0x30, 0x95, 0x65, 0xa4, 0x40, 0x85, 0x18, 0x7e, 0xf3, - 0x51, 0x2f, 0x5c, 0x6a, 0x04, 0x6f, 0x89, 0x72, 0xac, 0x30, 0x7a, 0xce, 0x21, 0x71, 0xb8, 0x40, - 0x67, 0x37, 0xc0, 0xcc, 0x1c, 0x8a, 0x5e, 0xe1, 0xfe, 0x2a, 0x96, 0x4a, 0xed, 0x79, 0x38, 0x5f, - 0x15, 0xfb, 0xab, 0x05, 0x98, 0xe2, 0x2a, 0xea, 0xf9, 0xdd, 0xc0, 0x6d, 0x54, 0x83, 0x86, 0xf0, - 0xde, 0x79, 0x03, 0x46, 0x9a, 0xda, 0x75, 0xb5, 0x53, 0xa8, 0x25, 0xfd, 0x5a, 0x9b, 0x5c, 0x1b, - 0xf4, 0x52, 0x6c, 0xd0, 0x42, 0x0d, 0x18, 0x21, 0xbb, 0x6e, 0x5d, 0xe9, 0x39, 0x0b, 0x87, 0x66, - 0xe9, 0xaa, 0x95, 0x25, 0x8d, 0x0e, 0x36, 0xa8, 0x3e, 0x80, 0x4c, 0x4f, 0xf6, 0x97, 0x2d, 0x78, - 0x28, 0x27, 0x30, 0x13, 0x6d, 0xee, 0x0e, 0x7b, 0x0c, 0x10, 0x69, 0x68, 0x55, 0x73, 0xfc, 0x89, - 0x00, 0x0b, 0x28, 0xfa, 0x34, 0x00, 0x57, 0xf1, 0x53, 0x29, 0x5a, 0x7c, 0x7a, 0x6f, 0x01, 0x4b, - 0xb4, 0xa8, 0x16, 0xb2, 0x3e, 0xd6, 0x68, 0xd9, 0xbf, 0x5e, 0x84, 0x7e, 0xa6, 0x52, 0x46, 0xcb, - 0x30, 0xb8, 0xc5, 0xc3, 0x40, 0xf7, 0x12, 0x71, 0x3a, 0xb9, 0x8e, 0xf0, 0x02, 0x2c, 0x2b, 0xa3, - 0x55, 0x38, 0x21, 0x3c, 0xc4, 0x2a, 0xc4, 0x73, 0xf6, 0xe4, 0xad, 0x96, 0xa7, 0xff, 0x91, 0xa9, - 0x29, 0x4e, 0xac, 0xb4, 0xa3, 0xe0, 0xac, 0x7a, 0xe8, 0x95, 0xb6, 0xe0, 0x8f, 0x3c, 0x80, 0xb6, - 0x92, 0x81, 0xbb, 0x04, 0x80, 0x7c, 0x09, 0x46, 0x9b, 0x6d, 0xf7, 0x77, 0x2d, 0x1d, 0xbc, 0x79, - 0x67, 0x37, 0x71, 0x99, 0x75, 0x42, 0x8b, 0xd9, 0x62, 0xac, 0x6d, 0x85, 0x24, 0xda, 0x0a, 0xbc, - 0x86, 0xc8, 0x7d, 0x9c, 0x58, 0x27, 0xa4, 0xe0, 0xb8, 0xad, 0x06, 0xa5, 0xb2, 0xe1, 0xb8, 0x5e, - 0x2b, 0x24, 0x09, 0x95, 0x01, 0x93, 0xca, 0x72, 0x0a, 0x8e, 0xdb, 0x6a, 0xd0, 0x75, 0x74, 0x52, - 0x24, 0xce, 0x95, 0x71, 0x03, 0x94, 0xc9, 0xc9, 0xa0, 0xf4, 0x1f, 0xe8, 0x10, 0xcb, 0x46, 0x3c, - 0xf9, 0xab, 0xd4, 0xbb, 0x5a, 0x5a, 0x46, 0xe1, 0x39, 0x20, 0xa9, 0xdc, 0x4f, 0xfa, 0xd6, 0x3f, - 0xb6, 0xe0, 0x44, 0x86, 0x69, 0x1b, 0x67, 0x55, 0x9b, 0x6e, 0x14, 0xab, 0xac, 0x33, 0x1a, 0xab, - 0xe2, 0xe5, 0x58, 0x61, 0xd0, 0xfd, 0xc0, 0x99, 0x61, 0x9a, 0x01, 0x0a, 0xd3, 0x11, 0x01, 0x3d, - 0x1c, 0x03, 0x44, 0xe7, 0xa0, 0xaf, 0x15, 0x91, 0x50, 0xe6, 0x3d, 0x95, 0xfc, 0x9b, 0x69, 0x04, - 0x19, 0x84, 0x4a, 0x94, 0x9b, 0x4a, 0x19, 0xa7, 0x49, 0x94, 0x5c, 0x1d, 0xc7, 0x61, 0xf6, 0x17, - 0x8b, 0x70, 0x3a, 0xd7, 0x60, 0x95, 0x76, 0x69, 0x27, 0xf0, 0xdd, 0x38, 0x50, 0x51, 0x08, 0x79, - 0xd0, 0x15, 0xd2, 0xdc, 0x5a, 0x15, 0xe5, 0x58, 0x61, 0xa0, 0xf3, 0x32, 0x2d, 0x76, 0x3a, 0xaf, - 0xce, 0x42, 0xc5, 0xc8, 0x8c, 0xdd, 0x6b, 0x82, 0xac, 0xc7, 0xa0, 0xaf, 0x19, 0x04, 0x5e, 0x9a, - 0x19, 0xd1, 0xee, 0x06, 0x81, 0x87, 0x19, 0x10, 0x7d, 0x4c, 0x8c, 0x43, 0xea, 0xe5, 0x02, 0x3b, - 0x8d, 0x20, 0xd2, 0x06, 0xe3, 0x09, 0x18, 0xdc, 0x26, 0x7b, 0xa1, 0xeb, 0x6f, 0xa6, 0xdf, 0x6d, - 0xae, 0xf2, 0x62, 0x2c, 0xe1, 0x66, 0x5a, 0x89, 0xc1, 0xa3, 0x48, 0x2b, 0xa1, 0xcf, 0xec, 0x50, - 0xd7, 0xa3, 0xed, 0x0b, 0x45, 0x18, 0xc7, 0x0b, 0x95, 0x9f, 0x4c, 0xc4, 0xcd, 0xf6, 0x89, 0x38, - 0xea, 0x64, 0x63, 0xdd, 0x67, 0xe3, 0xeb, 0x16, 0x8c, 0xb3, 0xd0, 0xcb, 0x22, 0x68, 0x88, 0x1b, - 0xf8, 0xc7, 0x20, 0xba, 0x3d, 0x06, 0xfd, 0x21, 0x6d, 0x34, 0x9d, 0x41, 0x88, 0xf5, 0x04, 0x73, - 0x18, 0x7a, 0x04, 0xfa, 0x58, 0x17, 0xe8, 0xe4, 0x8d, 0xf0, 0xe4, 0x0b, 0x15, 0x27, 0x76, 0x30, - 0x2b, 0x65, 0xde, 0x9b, 0x98, 0x34, 0x3d, 0x97, 0x77, 0x3a, 0xd1, 0x80, 0x7f, 0x38, 0xbc, 0x37, - 0x33, 0xbb, 0xf6, 0xfe, 0xbc, 0x37, 0xb3, 0x49, 0x76, 0xbe, 0x16, 0xfd, 0x8f, 0x02, 0x9c, 0xcd, - 0xac, 0xd7, 0xb3, 0xf7, 0x66, 0xe7, 0xda, 0x47, 0xf3, 0xfc, 0x9e, 0xfd, 0x2a, 0x5e, 0x3c, 0xc6, - 0x57, 0xf1, 0xbe, 0x5e, 0x25, 0xc7, 0xfe, 0x1e, 0x9c, 0x2a, 0x33, 0x87, 0xec, 0x43, 0xe2, 0x54, - 0x99, 0xd9, 0xb7, 0x9c, 0x6b, 0xdd, 0x0f, 0x0b, 0x39, 0xdf, 0xc2, 0x2e, 0x78, 0x17, 0x28, 0x9f, - 0x61, 0xc0, 0x48, 0x48, 0xc2, 0x23, 0x9c, 0xc7, 0xf0, 0x32, 0xac, 0xa0, 0xc8, 0xd5, 0xdc, 0x13, - 0x79, 0xd7, 0x5e, 0x3a, 0xd4, 0x96, 0x99, 0x35, 0x1f, 0x2c, 0xf4, 0x08, 0x27, 0x69, 0x57, 0xc5, - 0x55, 0xed, 0x52, 0x5e, 0xec, 0xfd, 0x52, 0x3e, 0x92, 0x7d, 0x21, 0x47, 0xf3, 0x30, 0xbe, 0xe3, - 0xfa, 0x2c, 0x0d, 0xb8, 0x29, 0x8a, 0x2a, 0x6f, 0xfd, 0x55, 0x13, 0x8c, 0xd3, 0xf8, 0xd3, 0x2f, - 0xc1, 0xe8, 0xfd, 0x6b, 0x11, 0xbf, 0x5b, 0x84, 0x87, 0x3b, 0x6c, 0x7b, 0xce, 0xeb, 0x8d, 0x39, - 0xd0, 0x78, 0x7d, 0xdb, 0x3c, 0x54, 0x61, 0x6a, 0xa3, 0xe5, 0x79, 0x7b, 0xcc, 0xf0, 0x8c, 0x34, - 0x24, 0x86, 0x90, 0x15, 0x55, 0x5c, 0xf5, 0xe5, 0x0c, 0x1c, 0x9c, 0x59, 0x13, 0xbd, 0x0a, 0x28, - 0x58, 0x67, 0xb1, 0xbe, 0x1b, 0x49, 0xdc, 0x16, 0x36, 0xf0, 0xc5, 0x64, 0x33, 0xde, 0x68, 0xc3, - 0xc0, 0x19, 0xb5, 0xa8, 0xd0, 0x4f, 0x4f, 0xa5, 0x3d, 0xd5, 0xad, 0x94, 0xd0, 0x8f, 0x75, 0x20, - 0x36, 0x71, 0xd1, 0x65, 0x98, 0x74, 0x76, 0x1d, 0x97, 0xc7, 0xf1, 0x93, 0x04, 0xb8, 0xd4, 0xaf, - 0x74, 0x77, 0xf3, 0x69, 0x04, 0xdc, 0x5e, 0x27, 0xe5, 0x1f, 0x39, 0x90, 0xef, 0x1f, 0xd9, 0x99, - 0x2f, 0x76, 0x53, 0xc5, 0xda, 0xff, 0xd9, 0xa2, 0xc7, 0x57, 0x46, 0xde, 0x69, 0x3a, 0x0e, 0x4a, - 0xa5, 0xa8, 0xb9, 0x2a, 0xaa, 0x71, 0x58, 0xd4, 0x81, 0xd8, 0xc4, 0xe5, 0x0b, 0x22, 0x4a, 0xec, - 0xe7, 0x0d, 0xd1, 0x5d, 0xf8, 0x22, 0x2b, 0x0c, 0xf4, 0x3a, 0x0c, 0x36, 0xdc, 0x5d, 0x37, 0x0a, - 0x42, 0xb1, 0x59, 0x0e, 0x69, 0xe3, 0x9c, 0xf0, 0xc1, 0x0a, 0x27, 0x83, 0x25, 0x3d, 0xfb, 0x0b, - 0x05, 0x18, 0x95, 0x2d, 0xbe, 0xd6, 0x0a, 0x62, 0xe7, 0x18, 0x8e, 0xe5, 0xcb, 0xc6, 0xb1, 0xfc, - 0xb1, 0x4e, 0x0e, 0xd9, 0xac, 0x4b, 0xb9, 0xc7, 0xf1, 0x8d, 0xd4, 0x71, 0xfc, 0x78, 0x77, 0x52, - 0x9d, 0x8f, 0xe1, 0x7f, 0x65, 0xc1, 0xa4, 0x81, 0x7f, 0x0c, 0xa7, 0xc1, 0xb2, 0x79, 0x1a, 0x3c, - 0xda, 0xf5, 0x1b, 0x72, 0x4e, 0x81, 0xaf, 0x14, 0x52, 0x7d, 0x67, 0xdc, 0xff, 0x1d, 0xe8, 0xdb, - 0x72, 0xc2, 0x46, 0xa7, 0x68, 0xb4, 0x6d, 0x95, 0x66, 0xaf, 0x38, 0x61, 0x83, 0xf3, 0xf0, 0xa7, - 0x55, 0x4a, 0x4c, 0x27, 0x6c, 0x74, 0x75, 0x17, 0x61, 0x4d, 0xa1, 0x4b, 0x30, 0x10, 0xd5, 0x83, - 0xa6, 0x32, 0x87, 0x3d, 0xc7, 0xd3, 0x65, 0xd2, 0x92, 0x83, 0xfd, 0x19, 0x64, 0x36, 0x47, 0x8b, - 0xb1, 0xc0, 0x9f, 0xde, 0x84, 0x92, 0x6a, 0xfa, 0x81, 0x1a, 0xfa, 0x7f, 0xa7, 0x08, 0x27, 0x32, - 0xd6, 0x05, 0x8a, 0x8c, 0xd1, 0x7a, 0xb6, 0xc7, 0xe5, 0xf4, 0x3e, 0xc7, 0x2b, 0x62, 0x37, 0x96, - 0x86, 0x98, 0xff, 0x9e, 0x1b, 0xbd, 0x19, 0x91, 0x74, 0xa3, 0xb4, 0xa8, 0x7b, 0xa3, 0xb4, 0xb1, - 0x63, 0x1b, 0x6a, 0xda, 0x90, 0xea, 0xe9, 0x03, 0x9d, 0xd3, 0x3f, 0x2b, 0xc2, 0x54, 0x56, 0x1c, - 0x07, 0xf4, 0xf3, 0xa9, 0xdc, 0x36, 0xcf, 0xf7, 0x1a, 0x01, 0x82, 0x27, 0xbc, 0x11, 0x81, 0xaf, - 0x66, 0xcd, 0x6c, 0x37, 0x5d, 0x87, 0x59, 0xb4, 0xc9, 0xfc, 0xb7, 0x42, 0x9e, 0x93, 0x48, 0x6e, - 0xf1, 0x4f, 0xf4, 0xdc, 0x01, 0x91, 0xcc, 0x28, 0x4a, 0xf9, 0x6f, 0xc9, 0xe2, 0xee, 0xfe, 0x5b, - 0xb2, 0xe5, 0x69, 0x17, 0x86, 0xb5, 0xaf, 0x79, 0xa0, 0x33, 0xbe, 0x4d, 0x4f, 0x14, 0xad, 0xdf, - 0x0f, 0x74, 0xd6, 0xbf, 0x6c, 0x41, 0xca, 0x74, 0x4d, 0xa9, 0xa4, 0xac, 0x5c, 0x95, 0xd4, 0x39, - 0xe8, 0x0b, 0x03, 0x8f, 0xa4, 0xd3, 0x9d, 0xe0, 0xc0, 0x23, 0x98, 0x41, 0x54, 0xfe, 0xfb, 0x62, - 0x5e, 0xfe, 0x7b, 0x7a, 0x35, 0xf6, 0xc8, 0x2e, 0x91, 0xda, 0x08, 0xc5, 0x93, 0xaf, 0xd1, 0x42, - 0xcc, 0x61, 0xf6, 0xd7, 0xfb, 0xe0, 0x4c, 0x47, 0x0f, 0x48, 0x7a, 0x65, 0xd9, 0x74, 0x62, 0x72, - 0xc7, 0xd9, 0x4b, 0x07, 0x63, 0xbe, 0xcc, 0x8b, 0xb1, 0x84, 0x33, 0x43, 0x5b, 0x1e, 0xcf, 0x31, - 0xa5, 0xc0, 0x13, 0x61, 0x1c, 0x05, 0xd4, 0x54, 0x1c, 0x15, 0x8f, 0x42, 0x71, 0x74, 0x11, 0x20, - 0x8a, 0xbc, 0x25, 0x9f, 0x4a, 0x60, 0x0d, 0x61, 0xc1, 0x9b, 0xc4, 0xfd, 0xac, 0x5d, 0x13, 0x10, - 0xac, 0x61, 0xa1, 0x0a, 0x4c, 0x34, 0xc3, 0x20, 0xe6, 0xfa, 0xd0, 0x0a, 0xb7, 0x1d, 0xe9, 0x37, - 0x9d, 0xcf, 0xaa, 0x29, 0x38, 0x6e, 0xab, 0x81, 0x5e, 0x80, 0x61, 0xe1, 0x90, 0x56, 0x0d, 0x02, - 0x4f, 0xa8, 0x6a, 0x94, 0x25, 0x42, 0x2d, 0x01, 0x61, 0x1d, 0x4f, 0xab, 0xc6, 0x94, 0xac, 0x83, - 0x99, 0xd5, 0xb8, 0xa2, 0x55, 0xc3, 0x4b, 0xc5, 0x74, 0x19, 0xea, 0x29, 0xa6, 0x4b, 0xa2, 0xbc, - 0x2a, 0xf5, 0xfc, 0xae, 0x04, 0x5d, 0xd5, 0x3d, 0xbf, 0xd9, 0x07, 0x27, 0xc4, 0xc2, 0x79, 0xd0, - 0xcb, 0xe5, 0x01, 0xe5, 0xd2, 0xff, 0xc9, 0x9a, 0x39, 0xee, 0x35, 0xf3, 0x8d, 0x22, 0x0c, 0xf0, - 0xa9, 0x38, 0x06, 0x19, 0x7e, 0x59, 0x28, 0xfd, 0x3a, 0x44, 0x33, 0xe1, 0x7d, 0x99, 0xad, 0x38, - 0xb1, 0xc3, 0xcf, 0x2f, 0xc5, 0x46, 0x13, 0xf5, 0x20, 0x9a, 0x35, 0x18, 0xed, 0x74, 0x4a, 0xab, - 0x05, 0x9c, 0x86, 0xc6, 0x76, 0xdf, 0x02, 0x88, 0x58, 0x3e, 0x77, 0x4a, 0x43, 0xc4, 0xc5, 0x79, - 0xb2, 0x43, 0xeb, 0x35, 0x85, 0xcc, 0xfb, 0x90, 0x2c, 0x41, 0x05, 0xc0, 0x1a, 0xc5, 0xe9, 0x17, - 0xa1, 0xa4, 0x90, 0xbb, 0xa9, 0x00, 0x46, 0xf4, 0x53, 0xef, 0x53, 0x30, 0x9e, 0x6a, 0xeb, 0x50, - 0x1a, 0x84, 0xdf, 0xb6, 0x60, 0x9c, 0x77, 0x79, 0xc9, 0xdf, 0x15, 0x9b, 0xfd, 0x5d, 0x98, 0xf2, - 0x32, 0x36, 0x9d, 0x98, 0xd1, 0xde, 0x37, 0xa9, 0xd2, 0x18, 0x64, 0x41, 0x71, 0x66, 0x1b, 0xe8, - 0x02, 0x0c, 0x05, 0xec, 0x3c, 0x75, 0x3c, 0xe1, 0x4d, 0x30, 0xc2, 0xf3, 0x23, 0xf0, 0x32, 0xac, - 0xa0, 0xf6, 0xf7, 0x2c, 0x98, 0xe4, 0x3d, 0xbf, 0x4a, 0xf6, 0xd4, 0xed, 0xf8, 0x83, 0xec, 0xbb, - 0x48, 0xff, 0x50, 0xc8, 0x49, 0xff, 0xa0, 0x7f, 0x5a, 0xb1, 0xe3, 0xa7, 0x7d, 0xd5, 0x02, 0xb1, - 0x02, 0x8f, 0xe1, 0x1e, 0xf8, 0xd3, 0xe6, 0x3d, 0x70, 0x3a, 0x7f, 0x51, 0xe7, 0x5c, 0x00, 0xff, - 0xc2, 0x82, 0x09, 0x8e, 0x90, 0x3c, 0x44, 0x7e, 0xa0, 0xf3, 0xd0, 0x4b, 0x4e, 0x32, 0x95, 0x04, - 0x3a, 0xfb, 0xa3, 0x8c, 0xc9, 0xea, 0xeb, 0x38, 0x59, 0x0d, 0xb9, 0x81, 0x0e, 0x91, 0x6b, 0xef, - 0xd0, 0x11, 0x4b, 0xed, 0x3f, 0xb5, 0x00, 0xf1, 0x66, 0x8c, 0x73, 0x99, 0x9e, 0x76, 0xac, 0x54, - 0xd3, 0x04, 0x25, 0xac, 0x46, 0x41, 0xb0, 0x86, 0x75, 0x24, 0xc3, 0x93, 0x7a, 0x4d, 0x2e, 0x76, - 0x7f, 0x4d, 0x3e, 0xc4, 0x88, 0xfe, 0xcd, 0x3e, 0x48, 0x9b, 0x2e, 0xa3, 0x5b, 0x30, 0x52, 0x77, - 0x9a, 0xce, 0xba, 0xeb, 0xb9, 0xb1, 0x4b, 0xa2, 0x4e, 0x66, 0x28, 0x8b, 0x1a, 0x9e, 0x78, 0x27, - 0xd4, 0x4a, 0xb0, 0x41, 0x07, 0xcd, 0x02, 0x34, 0x43, 0x77, 0xd7, 0xf5, 0xc8, 0x26, 0xbb, 0x0a, - 0x33, 0xff, 0x25, 0x6e, 0x5b, 0x21, 0x4b, 0xb1, 0x86, 0x91, 0xe1, 0xef, 0x52, 0x7c, 0x70, 0xfe, - 0x2e, 0x7d, 0x87, 0xf4, 0x77, 0xe9, 0xef, 0xc9, 0xdf, 0x05, 0xc3, 0x29, 0x79, 0x76, 0xd3, 0xff, - 0xcb, 0xae, 0x47, 0x84, 0xc0, 0xc6, 0xbd, 0x9a, 0xa6, 0xef, 0xed, 0xcf, 0x9c, 0xc2, 0x99, 0x18, - 0x38, 0xa7, 0x26, 0xfa, 0x34, 0x94, 0x1d, 0xcf, 0x0b, 0xee, 0xa8, 0x51, 0x5b, 0x8a, 0xea, 0x8e, - 0x97, 0x04, 0xf0, 0x1e, 0x5a, 0x78, 0xe4, 0xde, 0xfe, 0x4c, 0x79, 0x3e, 0x07, 0x07, 0xe7, 0xd6, - 0xb6, 0xb7, 0xe1, 0x44, 0x8d, 0x84, 0x32, 0x7d, 0xa7, 0xda, 0x62, 0x6b, 0x50, 0x0a, 0x53, 0x4c, - 0xa5, 0xa7, 0x10, 0x1a, 0x5a, 0x70, 0x45, 0xc9, 0x44, 0x12, 0x42, 0xf6, 0x9f, 0x5b, 0x30, 0x28, - 0xcc, 0xa1, 0x8f, 0x41, 0x96, 0x99, 0x37, 0xf4, 0x91, 0x33, 0xd9, 0x8c, 0x97, 0x75, 0x26, 0x57, - 0x13, 0xb9, 0x92, 0xd2, 0x44, 0x3e, 0xda, 0x89, 0x48, 0x67, 0x1d, 0xe4, 0x2f, 0x15, 0x61, 0xcc, - 0x34, 0x05, 0x3f, 0x86, 0x21, 0xb8, 0x0e, 0x83, 0x91, 0xf0, 0x3b, 0x28, 0xe4, 0xdb, 0xaf, 0xa6, - 0x27, 0x31, 0xb1, 0x72, 0x11, 0x9e, 0x06, 0x92, 0x48, 0xa6, 0x43, 0x43, 0xf1, 0x01, 0x3a, 0x34, - 0x74, 0xb3, 0xc6, 0xef, 0x3b, 0x0a, 0x6b, 0x7c, 0xfb, 0x9b, 0x8c, 0xf9, 0xeb, 0xe5, 0xc7, 0x20, - 0x17, 0x5c, 0x36, 0x8f, 0x09, 0xbb, 0xc3, 0xca, 0x12, 0x9d, 0xca, 0x91, 0x0f, 0xfe, 0xa9, 0x05, - 0xc3, 0x02, 0xf1, 0x18, 0xba, 0xfd, 0x33, 0x66, 0xb7, 0x1f, 0xee, 0xd0, 0xed, 0x9c, 0xfe, 0xfe, - 0xfd, 0x82, 0xea, 0x6f, 0x35, 0x08, 0xe3, 0x9e, 0x12, 0x3a, 0x0c, 0xd1, 0xdb, 0x60, 0x50, 0x0f, - 0x3c, 0x71, 0x98, 0x3f, 0x92, 0x38, 0xb6, 0xf2, 0xf2, 0x03, 0xed, 0x37, 0x56, 0xd8, 0xcc, 0xef, - 0x32, 0x08, 0x63, 0x71, 0x80, 0x26, 0x7e, 0x97, 0x41, 0x18, 0x63, 0x06, 0x41, 0x0d, 0x80, 0xd8, - 0x09, 0x37, 0x49, 0x4c, 0xcb, 0x84, 0x27, 0x78, 0xfe, 0x2e, 0x6c, 0xc5, 0xae, 0x37, 0xeb, 0xfa, - 0x71, 0x14, 0x87, 0xb3, 0x2b, 0x7e, 0x7c, 0x23, 0xe4, 0x77, 0x03, 0xcd, 0x53, 0x55, 0xd1, 0xc2, - 0x1a, 0x5d, 0xe9, 0x2a, 0xc5, 0xda, 0xe8, 0x37, 0x1f, 0x0a, 0xaf, 0x8b, 0x72, 0xac, 0x30, 0xec, - 0x17, 0x19, 0x4f, 0x66, 0x03, 0x74, 0x38, 0x27, 0xd2, 0x6f, 0x0f, 0xa9, 0xa1, 0x65, 0xaf, 0x04, - 0x15, 0xdd, 0x55, 0xb5, 0x33, 0x0b, 0xa4, 0x0d, 0xeb, 0x6e, 0x01, 0x89, 0x3f, 0x2b, 0xfa, 0xd9, - 0xb6, 0xf7, 0xe3, 0x67, 0xba, 0xf0, 0xd2, 0x43, 0xbc, 0x18, 0xb3, 0xa8, 0xa0, 0x2c, 0x7a, 0xe2, - 0x4a, 0x35, 0x9d, 0x72, 0x63, 0x51, 0x02, 0x70, 0x82, 0x83, 0xe6, 0xc4, 0xcd, 0x92, 0xeb, 0xe7, - 0x1e, 0x4e, 0xdd, 0x2c, 0xe5, 0xe7, 0x6b, 0x57, 0xcb, 0x67, 0x61, 0x58, 0xa5, 0x31, 0xab, 0xf2, - 0x6c, 0x50, 0x25, 0x2e, 0x4b, 0x2d, 0x25, 0xc5, 0x58, 0xc7, 0x41, 0x6b, 0x30, 0x1e, 0xf1, 0x1c, - 0x6b, 0xd2, 0x7b, 0x49, 0xe8, 0x0d, 0x9e, 0x94, 0xef, 0xce, 0x35, 0x13, 0x7c, 0xc0, 0x8a, 0xf8, - 0x66, 0x95, 0xfe, 0x4e, 0x69, 0x12, 0xe8, 0x15, 0x18, 0xf3, 0xf4, 0x5c, 0xd3, 0x55, 0xa1, 0x56, - 0x50, 0x66, 0x99, 0x46, 0x26, 0xea, 0x2a, 0x4e, 0x61, 0x53, 0x21, 0x40, 0x2f, 0x11, 0x41, 0xb5, - 0x1c, 0x7f, 0x93, 0x44, 0x22, 0x09, 0x13, 0x13, 0x02, 0xae, 0xe5, 0xe0, 0xe0, 0xdc, 0xda, 0xe8, - 0x12, 0x8c, 0xc8, 0xcf, 0xd7, 0xbc, 0xf9, 0x12, 0xe3, 0x5f, 0x0d, 0x86, 0x0d, 0x4c, 0x74, 0x07, - 0x4e, 0xca, 0xff, 0x6b, 0xa1, 0xb3, 0xb1, 0xe1, 0xd6, 0x85, 0x33, 0xe5, 0x30, 0x23, 0x31, 0x2f, - 0x3d, 0x21, 0x96, 0xb2, 0x90, 0x0e, 0xf6, 0x67, 0xce, 0x89, 0x51, 0xcb, 0x84, 0xb3, 0x49, 0xcc, - 0xa6, 0x8f, 0x56, 0xe1, 0xc4, 0x16, 0x71, 0xbc, 0x78, 0x6b, 0x71, 0x8b, 0xd4, 0xb7, 0xe5, 0x26, - 0x62, 0x3e, 0x82, 0x9a, 0xc9, 0xec, 0x95, 0x76, 0x14, 0x9c, 0x55, 0x0f, 0xbd, 0x09, 0xe5, 0x66, - 0x6b, 0xdd, 0x73, 0xa3, 0xad, 0xeb, 0x41, 0xcc, 0x9e, 0xba, 0x55, 0x16, 0x30, 0xe1, 0x4c, 0xa8, - 0xfc, 0x23, 0xab, 0x39, 0x78, 0x38, 0x97, 0x02, 0x7a, 0x17, 0x4e, 0xa6, 0x16, 0x03, 0x4f, 0x2c, - 0x27, 0x9c, 0x0e, 0x9f, 0xc8, 0xde, 0x4e, 0x19, 0x15, 0xb8, 0x8b, 0x6b, 0x26, 0x08, 0x67, 0x37, - 0xf1, 0xfe, 0x0c, 0x20, 0xde, 0xa1, 0x95, 0x35, 0xe9, 0x06, 0x7d, 0x06, 0x46, 0xf4, 0x55, 0x24, - 0x0e, 0x98, 0xf3, 0xdd, 0xf2, 0xaa, 0x0b, 0xd9, 0x48, 0xad, 0x28, 0x1d, 0x86, 0x0d, 0x8a, 0x36, - 0x81, 0xec, 0xef, 0x43, 0xd7, 0x60, 0xa8, 0xee, 0xb9, 0xc4, 0x8f, 0x57, 0xaa, 0x9d, 0x9c, 0xe0, - 0x17, 0x05, 0x8e, 0x18, 0x30, 0x11, 0xd3, 0x8d, 0x97, 0x61, 0x45, 0xc1, 0xfe, 0xbd, 0x02, 0xcc, - 0x74, 0x09, 0x10, 0x98, 0xd2, 0x01, 0x5a, 0x3d, 0xe9, 0x00, 0xe7, 0x65, 0x4e, 0xb3, 0xeb, 0xa9, - 0xfb, 0x67, 0x2a, 0x5f, 0x59, 0x72, 0x0b, 0x4d, 0xe3, 0xf7, 0x6c, 0x37, 0xa9, 0xab, 0x11, 0xfb, - 0xba, 0x5a, 0xf4, 0x1a, 0xcf, 0x07, 0xfd, 0xbd, 0x4b, 0xf4, 0xb9, 0xaa, 0x60, 0xfb, 0x9b, 0x05, - 0x38, 0xa9, 0x86, 0xf0, 0xc7, 0x77, 0xe0, 0x6e, 0xb6, 0x0f, 0xdc, 0x11, 0x28, 0xd2, 0xed, 0x1b, - 0x30, 0x50, 0xdb, 0x8b, 0xea, 0xb1, 0xd7, 0x83, 0x00, 0xf4, 0x98, 0xb1, 0x41, 0x93, 0x63, 0x9a, - 0xa5, 0x25, 0x15, 0xfb, 0xd5, 0xfe, 0x6b, 0x16, 0x8c, 0xaf, 0x2d, 0x56, 0x6b, 0x41, 0x7d, 0x9b, - 0xc4, 0xf3, 0x5c, 0x4d, 0x84, 0x85, 0xfc, 0x63, 0xdd, 0xa7, 0x5c, 0x93, 0x25, 0x31, 0x9d, 0x83, - 0xbe, 0xad, 0x20, 0x8a, 0xd3, 0xaf, 0x6c, 0x57, 0x82, 0x28, 0xc6, 0x0c, 0x62, 0xff, 0x91, 0x05, - 0xfd, 0x2c, 0x13, 0x67, 0xb7, 0x8c, 0xad, 0xbd, 0x7c, 0x17, 0x7a, 0x01, 0x06, 0xc8, 0xc6, 0x06, - 0xa9, 0xc7, 0x62, 0x56, 0xa5, 0x77, 0xdd, 0xc0, 0x12, 0x2b, 0xa5, 0x87, 0x3e, 0x6b, 0x8c, 0xff, - 0xc5, 0x02, 0x19, 0xdd, 0x86, 0x52, 0xec, 0xee, 0x90, 0xf9, 0x46, 0x43, 0xbc, 0x53, 0xdc, 0x87, - 0x33, 0xe3, 0x9a, 0x24, 0x80, 0x13, 0x5a, 0xf6, 0x17, 0x0b, 0x00, 0x89, 0x07, 0x6e, 0xb7, 0x4f, - 0x5c, 0x68, 0x4b, 0x4a, 0x7b, 0x3e, 0x23, 0x29, 0x2d, 0x4a, 0x08, 0x66, 0xa4, 0xa4, 0x55, 0xc3, - 0x54, 0xec, 0x69, 0x98, 0xfa, 0x0e, 0x33, 0x4c, 0x8b, 0x30, 0x99, 0x78, 0x10, 0x9b, 0xe1, 0x14, - 0x58, 0x98, 0xf0, 0xb5, 0x34, 0x10, 0xb7, 0xe3, 0xdb, 0x9f, 0xb7, 0x40, 0xb8, 0x1b, 0xf4, 0xb0, - 0x98, 0xdf, 0x90, 0xf9, 0x23, 0x8d, 0x38, 0xa3, 0xe7, 0xf2, 0xfd, 0x2f, 0x44, 0x74, 0x51, 0x75, - 0x78, 0x18, 0x31, 0x45, 0x0d, 0x5a, 0x76, 0x03, 0x04, 0xb4, 0x42, 0x98, 0x92, 0xa1, 0x7b, 0x6f, - 0x2e, 0x02, 0x34, 0x18, 0xae, 0x96, 0x8f, 0x4e, 0xb1, 0xaa, 0x8a, 0x82, 0x60, 0x0d, 0xcb, 0xfe, - 0xdb, 0x05, 0x18, 0x96, 0x71, 0x2d, 0xe9, 0x3d, 0xbe, 0x7b, 0x2b, 0x87, 0x0a, 0x65, 0xcf, 0x12, - 0x38, 0x52, 0xc2, 0x2a, 0xe2, 0xb9, 0x9e, 0xc0, 0x51, 0x02, 0x70, 0x82, 0x83, 0x9e, 0x80, 0xc1, - 0xa8, 0xb5, 0xce, 0xd0, 0x53, 0x46, 0xf4, 0x35, 0x5e, 0x8c, 0x25, 0x1c, 0x7d, 0x1a, 0x26, 0x78, - 0xbd, 0x30, 0x68, 0x3a, 0x9b, 0x5c, 0x83, 0xd4, 0xaf, 0xbc, 0xda, 0x26, 0x56, 0x53, 0xb0, 0x83, - 0xfd, 0x99, 0xa9, 0x74, 0x19, 0xd3, 0x3d, 0xb6, 0x51, 0xa1, 0xfb, 0x62, 0x22, 0xed, 0x30, 0x83, - 0xae, 0xc0, 0x00, 0x67, 0x79, 0x82, 0x05, 0x75, 0x78, 0x51, 0xd2, 0xdc, 0x6c, 0x58, 0x6c, 0x6f, - 0xc1, 0x35, 0x45, 0x7d, 0xf4, 0x26, 0x0c, 0x37, 0x82, 0x3b, 0xfe, 0x1d, 0x27, 0x6c, 0xcc, 0x57, - 0x57, 0xc4, 0xaa, 0xc9, 0x94, 0x9c, 0x2a, 0x09, 0x9a, 0xee, 0xba, 0xc3, 0xb4, 0xa7, 0x09, 0x08, - 0xeb, 0xe4, 0xd0, 0x1a, 0x0b, 0xca, 0xc4, 0x33, 0xac, 0x77, 0xb2, 0x3a, 0x53, 0x49, 0xd9, 0x35, - 0xca, 0xa3, 0x22, 0x72, 0x93, 0xc8, 0xcf, 0x9e, 0x10, 0xb2, 0xdf, 0x3b, 0x01, 0xc6, 0x6a, 0x35, - 0x42, 0xd9, 0x5b, 0x47, 0x14, 0xca, 0x1e, 0xc3, 0x10, 0xd9, 0x69, 0xc6, 0x7b, 0x15, 0x37, 0xec, - 0x94, 0x0b, 0x65, 0x49, 0xe0, 0xb4, 0xd3, 0x94, 0x10, 0xac, 0xe8, 0x64, 0xe7, 0x1b, 0x28, 0x7e, - 0x80, 0xf9, 0x06, 0xfa, 0x8e, 0x31, 0xdf, 0xc0, 0x75, 0x18, 0xdc, 0x74, 0x63, 0x4c, 0x9a, 0x81, - 0x38, 0xee, 0x33, 0x57, 0xc2, 0x65, 0x8e, 0xd2, 0x1e, 0xf7, 0x5a, 0x00, 0xb0, 0x24, 0x82, 0x5e, - 0x55, 0x7b, 0x60, 0x20, 0x5f, 0x5a, 0x6e, 0x7f, 0x7c, 0xc8, 0xdc, 0x05, 0x22, 0xbf, 0xc0, 0xe0, - 0xfd, 0xe6, 0x17, 0x58, 0x96, 0x59, 0x01, 0x86, 0xf2, 0x8d, 0x34, 0x59, 0xd0, 0xff, 0x2e, 0xb9, - 0x00, 0x8c, 0xfc, 0x09, 0xa5, 0xa3, 0xcb, 0x9f, 0xf0, 0x79, 0x0b, 0x4e, 0x36, 0xb3, 0x52, 0x89, - 0x88, 0xa8, 0xfe, 0x2f, 0xf4, 0x9c, 0x2b, 0xc5, 0x68, 0x90, 0x5d, 0x9b, 0x32, 0xd1, 0x70, 0x76, - 0x73, 0x74, 0xa0, 0xc3, 0xf5, 0x86, 0x48, 0x05, 0xf0, 0x58, 0x4e, 0x22, 0x86, 0x0e, 0xe9, 0x17, - 0x1e, 0x4c, 0xf8, 0xff, 0x24, 0x05, 0xc3, 0xe8, 0xfb, 0x4e, 0xc1, 0xf0, 0xaa, 0x4a, 0xc1, 0xd0, - 0x21, 0xf4, 0x0d, 0x4f, 0xb0, 0xd0, 0x35, 0xf1, 0x82, 0x96, 0x3c, 0x61, 0xfc, 0x28, 0x92, 0x27, - 0xbc, 0x65, 0x32, 0x7b, 0x1e, 0xc9, 0xff, 0xa9, 0x2e, 0xcc, 0xde, 0xa0, 0xdb, 0x99, 0xdd, 0xf3, - 0x44, 0x11, 0x93, 0xf7, 0x95, 0x28, 0xe2, 0x96, 0x9e, 0x82, 0x01, 0x75, 0xc9, 0x31, 0x40, 0x91, - 0x7a, 0x4c, 0xbc, 0x70, 0x4b, 0x3f, 0x82, 0x4e, 0xe4, 0xd3, 0x55, 0x27, 0x4d, 0x3b, 0xdd, 0xac, - 0x43, 0xa8, 0x3d, 0xa1, 0xc3, 0xd4, 0xf1, 0x24, 0x74, 0x38, 0x79, 0xe4, 0x09, 0x1d, 0x4e, 0x1d, - 0x43, 0x42, 0x87, 0x87, 0x3e, 0xd0, 0x84, 0x0e, 0xe5, 0x07, 0x90, 0xd0, 0xe1, 0x7a, 0x92, 0xd0, - 0xe1, 0x74, 0xfe, 0x94, 0x64, 0x58, 0xa5, 0xe5, 0xa4, 0x71, 0xb8, 0x05, 0xa5, 0xa6, 0xf4, 0xa9, - 0x2e, 0x4f, 0xe7, 0x4f, 0x49, 0xa6, 0xe3, 0x35, 0x9f, 0x12, 0x05, 0xc2, 0x09, 0x29, 0x4a, 0x37, - 0x49, 0xeb, 0xf0, 0x70, 0x07, 0xc5, 0x58, 0x96, 0xca, 0x21, 0x3f, 0x99, 0x83, 0xfd, 0xd7, 0x0b, - 0x70, 0xb6, 0xf3, 0xba, 0x4e, 0xf4, 0x15, 0xd5, 0x44, 0xbf, 0x9e, 0xd2, 0x57, 0xf0, 0x4b, 0x40, - 0x82, 0xd5, 0x73, 0xe0, 0x89, 0xcb, 0x30, 0xa9, 0xcc, 0xd1, 0x3c, 0xb7, 0xbe, 0xa7, 0xe5, 0x95, - 0x53, 0xae, 0x31, 0xb5, 0x34, 0x02, 0x6e, 0xaf, 0x83, 0xe6, 0x61, 0xdc, 0x28, 0x5c, 0xa9, 0x08, - 0x61, 0x5f, 0x29, 0x48, 0x6a, 0x26, 0x18, 0xa7, 0xf1, 0xed, 0xaf, 0x58, 0xf0, 0x50, 0x4e, 0x24, - 0xe5, 0x9e, 0xe3, 0x2a, 0x6c, 0xc0, 0x78, 0xd3, 0xac, 0xda, 0x25, 0xfc, 0x8a, 0x11, 0xaf, 0x59, - 0xf5, 0x35, 0x05, 0xc0, 0x69, 0xa2, 0x0b, 0x17, 0xbe, 0xf5, 0xfd, 0xb3, 0x1f, 0xf9, 0xc3, 0xef, - 0x9f, 0xfd, 0xc8, 0xf7, 0xbe, 0x7f, 0xf6, 0x23, 0x7f, 0xf9, 0xde, 0x59, 0xeb, 0x5b, 0xf7, 0xce, - 0x5a, 0x7f, 0x78, 0xef, 0xac, 0xf5, 0xbd, 0x7b, 0x67, 0xad, 0x3f, 0xbe, 0x77, 0xd6, 0xfa, 0xe2, - 0x0f, 0xce, 0x7e, 0xe4, 0x8d, 0xc2, 0xee, 0xb3, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x6f, - 0x73, 0x33, 0xff, 0xd9, 0x00, 0x00, + // 12346 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x90, 0x24, 0x47, + 0x56, 0xd8, 0x55, 0xf7, 0x7c, 0xf5, 0x9b, 0xef, 0xdc, 0x5d, 0xa9, 0x77, 0x24, 0x6d, 0xaf, 0x4a, + 0x77, 0xd2, 0xea, 0x6b, 0xe6, 0xb4, 0x92, 0x4e, 0xcb, 0xe9, 0x4e, 0x30, 0x33, 0x3d, 0xb3, 0xdb, + 0xda, 0x9d, 0xd9, 0x56, 0xf6, 0xec, 0xee, 0x9d, 0x10, 0xe7, 0xab, 0xe9, 0xce, 0x99, 0x29, 0x4d, + 0x4d, 0x55, 0xab, 0xaa, 0x7a, 0x76, 0x47, 0x01, 0x11, 0xf6, 0x19, 0xf0, 0x07, 0xfc, 0x20, 0x6c, + 0xc2, 0xc6, 0x40, 0xe0, 0x08, 0x1b, 0x07, 0x9c, 0xb1, 0x1d, 0xc6, 0x60, 0xc0, 0x80, 0x6d, 0x8c, + 0x1d, 0x0e, 0xf8, 0x83, 0xc1, 0xfe, 0x71, 0x44, 0x10, 0x1e, 0xc3, 0x40, 0xd8, 0xc1, 0x0f, 0x3b, + 0x6c, 0xf3, 0x8b, 0x31, 0x36, 0x8e, 0xfc, 0xac, 0xcc, 0xea, 0xaa, 0xee, 0x9e, 0xd5, 0xec, 0x48, + 0x10, 0xf7, 0xaf, 0x3b, 0xdf, 0xcb, 0x97, 0x59, 0xf9, 0xf1, 0xf2, 0xe5, 0xcb, 0xf7, 0x01, 0x6f, + 0xee, 0x5e, 0x8b, 0xe6, 0xdd, 0x60, 0x61, 0xb7, 0xb3, 0x49, 0x42, 0x9f, 0xc4, 0x24, 0x5a, 0xd8, + 0x27, 0x7e, 0x2b, 0x08, 0x17, 0x04, 0xc0, 0x69, 0xbb, 0x0b, 0xcd, 0x20, 0x24, 0x0b, 0xfb, 0xaf, + 0x2c, 0x6c, 0x13, 0x9f, 0x84, 0x4e, 0x4c, 0x5a, 0xf3, 0xed, 0x30, 0x88, 0x03, 0x84, 0x38, 0xce, + 0xbc, 0xd3, 0x76, 0xe7, 0x29, 0xce, 0xfc, 0xfe, 0x2b, 0x73, 0x2f, 0x6f, 0xbb, 0xf1, 0x4e, 0x67, + 0x73, 0xbe, 0x19, 0xec, 0x2d, 0x6c, 0x07, 0xdb, 0xc1, 0x02, 0x43, 0xdd, 0xec, 0x6c, 0xb1, 0x7f, + 0xec, 0x0f, 0xfb, 0xc5, 0x49, 0xcc, 0xad, 0x25, 0xcd, 0x90, 0x07, 0x31, 0xf1, 0x23, 0x37, 0xf0, + 0xa3, 0x97, 0x9d, 0xb6, 0x1b, 0x91, 0x70, 0x9f, 0x84, 0x0b, 0xed, 0xdd, 0x6d, 0x0a, 0x8b, 0x4c, + 0x84, 0x85, 0xfd, 0x57, 0x36, 0x49, 0xec, 0x74, 0xf5, 0x68, 0xee, 0xb5, 0x84, 0xdc, 0x9e, 0xd3, + 0xdc, 0x71, 0x7d, 0x12, 0x1e, 0x48, 0x1a, 0x0b, 0x21, 0x89, 0x82, 0x4e, 0xd8, 0x24, 0x27, 0xaa, + 0x15, 0x2d, 0xec, 0x91, 0xd8, 0xc9, 0xf8, 0xfa, 0xb9, 0x85, 0xbc, 0x5a, 0x61, 0xc7, 0x8f, 0xdd, + 0xbd, 0xee, 0x66, 0x3e, 0xd7, 0xaf, 0x42, 0xd4, 0xdc, 0x21, 0x7b, 0x4e, 0x57, 0xbd, 0x57, 0xf3, + 0xea, 0x75, 0x62, 0xd7, 0x5b, 0x70, 0xfd, 0x38, 0x8a, 0xc3, 0x74, 0x25, 0xfb, 0x1b, 0x16, 0x5c, + 0x5e, 0xbc, 0xd7, 0x58, 0xf1, 0x9c, 0x28, 0x76, 0x9b, 0x4b, 0x5e, 0xd0, 0xdc, 0x6d, 0xc4, 0x41, + 0x48, 0xee, 0x06, 0x5e, 0x67, 0x8f, 0x34, 0xd8, 0x40, 0xa0, 0x97, 0x60, 0x6c, 0x9f, 0xfd, 0xaf, + 0x55, 0xcb, 0xd6, 0x65, 0xeb, 0x4a, 0x69, 0x69, 0xe6, 0xd7, 0x0e, 0x2b, 0x9f, 0x3a, 0x3a, 0xac, + 0x8c, 0xdd, 0x15, 0xe5, 0x58, 0x61, 0xa0, 0x67, 0x61, 0x64, 0x2b, 0xda, 0x38, 0x68, 0x93, 0x72, + 0x81, 0xe1, 0x4e, 0x09, 0xdc, 0x91, 0xd5, 0x06, 0x2d, 0xc5, 0x02, 0x8a, 0x16, 0xa0, 0xd4, 0x76, + 0xc2, 0xd8, 0x8d, 0xdd, 0xc0, 0x2f, 0x17, 0x2f, 0x5b, 0x57, 0x86, 0x97, 0x66, 0x05, 0x6a, 0xa9, + 0x2e, 0x01, 0x38, 0xc1, 0xa1, 0xdd, 0x08, 0x89, 0xd3, 0xba, 0xed, 0x7b, 0x07, 0xe5, 0xa1, 0xcb, + 0xd6, 0x95, 0xb1, 0xa4, 0x1b, 0x58, 0x94, 0x63, 0x85, 0x61, 0xff, 0x70, 0x01, 0xc6, 0x16, 0xb7, + 0xb6, 0x5c, 0xdf, 0x8d, 0x0f, 0xd0, 0x5d, 0x98, 0xf0, 0x83, 0x16, 0x91, 0xff, 0xd9, 0x57, 0x8c, + 0x5f, 0xbd, 0x3c, 0xdf, 0xbd, 0x32, 0xe7, 0xd7, 0x35, 0xbc, 0xa5, 0x99, 0xa3, 0xc3, 0xca, 0x84, + 0x5e, 0x82, 0x0d, 0x3a, 0x08, 0xc3, 0x78, 0x3b, 0x68, 0x29, 0xb2, 0x05, 0x46, 0xb6, 0x92, 0x45, + 0xb6, 0x9e, 0xa0, 0x2d, 0x4d, 0x1f, 0x1d, 0x56, 0xc6, 0xb5, 0x02, 0xac, 0x13, 0x41, 0x9b, 0x30, + 0x4d, 0xff, 0xfa, 0xb1, 0xab, 0xe8, 0x16, 0x19, 0xdd, 0x67, 0xf2, 0xe8, 0x6a, 0xa8, 0x4b, 0xe7, + 0x8e, 0x0e, 0x2b, 0xd3, 0xa9, 0x42, 0x9c, 0x26, 0x68, 0x7f, 0x08, 0x53, 0x8b, 0x71, 0xec, 0x34, + 0x77, 0x48, 0x8b, 0xcf, 0x20, 0x7a, 0x0d, 0x86, 0x7c, 0x67, 0x8f, 0x88, 0xf9, 0xbd, 0x2c, 0x06, + 0x76, 0x68, 0xdd, 0xd9, 0x23, 0xc7, 0x87, 0x95, 0x99, 0x3b, 0xbe, 0xfb, 0x41, 0x47, 0xac, 0x0a, + 0x5a, 0x86, 0x19, 0x36, 0xba, 0x0a, 0xd0, 0x22, 0xfb, 0x6e, 0x93, 0xd4, 0x9d, 0x78, 0x47, 0xcc, + 0x37, 0x12, 0x75, 0xa1, 0xaa, 0x20, 0x58, 0xc3, 0xb2, 0x1f, 0x40, 0x69, 0x71, 0x3f, 0x70, 0x5b, + 0xf5, 0xa0, 0x15, 0xa1, 0x5d, 0x98, 0x6e, 0x87, 0x64, 0x8b, 0x84, 0xaa, 0xa8, 0x6c, 0x5d, 0x2e, + 0x5e, 0x19, 0xbf, 0x7a, 0x25, 0xf3, 0x63, 0x4d, 0xd4, 0x15, 0x3f, 0x0e, 0x0f, 0x96, 0x1e, 0x17, + 0xed, 0x4d, 0xa7, 0xa0, 0x38, 0x4d, 0xd9, 0xfe, 0x77, 0x05, 0xb8, 0xb0, 0xf8, 0x61, 0x27, 0x24, + 0x55, 0x37, 0xda, 0x4d, 0xaf, 0xf0, 0x96, 0x1b, 0xed, 0xae, 0x27, 0x23, 0xa0, 0x96, 0x56, 0x55, + 0x94, 0x63, 0x85, 0x81, 0x5e, 0x86, 0x51, 0xfa, 0xfb, 0x0e, 0xae, 0x89, 0x4f, 0x3e, 0x27, 0x90, + 0xc7, 0xab, 0x4e, 0xec, 0x54, 0x39, 0x08, 0x4b, 0x1c, 0xb4, 0x06, 0xe3, 0x4d, 0xb6, 0x21, 0xb7, + 0xd7, 0x82, 0x16, 0x61, 0x93, 0x59, 0x5a, 0x7a, 0x91, 0xa2, 0x2f, 0x27, 0xc5, 0xc7, 0x87, 0x95, + 0x32, 0xef, 0x9b, 0x20, 0xa1, 0xc1, 0xb0, 0x5e, 0x1f, 0xd9, 0x6a, 0x7f, 0x0d, 0x31, 0x4a, 0x90, + 0xb1, 0xb7, 0xae, 0x68, 0x5b, 0x65, 0x98, 0x6d, 0x95, 0x89, 0xec, 0x6d, 0x82, 0x5e, 0x81, 0xa1, + 0x5d, 0xd7, 0x6f, 0x95, 0x47, 0x18, 0xad, 0xa7, 0xe8, 0x9c, 0xdf, 0x74, 0xfd, 0xd6, 0xf1, 0x61, + 0x65, 0xd6, 0xe8, 0x0e, 0x2d, 0xc4, 0x0c, 0xd5, 0xfe, 0x23, 0x0b, 0x2a, 0x0c, 0xb6, 0xea, 0x7a, + 0xa4, 0x4e, 0xc2, 0xc8, 0x8d, 0x62, 0xe2, 0xc7, 0xc6, 0x80, 0x5e, 0x05, 0x88, 0x48, 0x33, 0x24, + 0xb1, 0x36, 0xa4, 0x6a, 0x61, 0x34, 0x14, 0x04, 0x6b, 0x58, 0x94, 0x21, 0x44, 0x3b, 0x4e, 0xc8, + 0xd6, 0x97, 0x18, 0x58, 0xc5, 0x10, 0x1a, 0x12, 0x80, 0x13, 0x1c, 0x83, 0x21, 0x14, 0xfb, 0x31, + 0x04, 0xf4, 0x45, 0x98, 0x4e, 0x1a, 0x8b, 0xda, 0x4e, 0x53, 0x0e, 0x20, 0xdb, 0x32, 0x0d, 0x13, + 0x84, 0xd3, 0xb8, 0xf6, 0x3f, 0xb4, 0xc4, 0xe2, 0xa1, 0x5f, 0xfd, 0x09, 0xff, 0x56, 0xfb, 0x17, + 0x2c, 0x18, 0x5d, 0x72, 0xfd, 0x96, 0xeb, 0x6f, 0xa3, 0xaf, 0xc2, 0x18, 0x3d, 0x9b, 0x5a, 0x4e, + 0xec, 0x08, 0xbe, 0xf7, 0x59, 0x6d, 0x6f, 0xa9, 0xa3, 0x62, 0xbe, 0xbd, 0xbb, 0x4d, 0x0b, 0xa2, + 0x79, 0x8a, 0x4d, 0x77, 0xdb, 0xed, 0xcd, 0xf7, 0x49, 0x33, 0x5e, 0x23, 0xb1, 0x93, 0x7c, 0x4e, + 0x52, 0x86, 0x15, 0x55, 0x74, 0x13, 0x46, 0x62, 0x27, 0xdc, 0x26, 0xb1, 0x60, 0x80, 0x99, 0x8c, + 0x8a, 0xd7, 0xc4, 0x74, 0x47, 0x12, 0xbf, 0x49, 0x92, 0x63, 0x61, 0x83, 0x55, 0xc5, 0x82, 0x84, + 0xfd, 0x53, 0x16, 0x5c, 0x5c, 0x6e, 0xd4, 0x72, 0xd6, 0xd5, 0xb3, 0x30, 0xd2, 0x0a, 0xdd, 0x7d, + 0x12, 0x8a, 0x71, 0x56, 0x54, 0xaa, 0xac, 0x14, 0x0b, 0x28, 0xba, 0x06, 0x13, 0xfc, 0x40, 0xba, + 0xe1, 0xf8, 0x2d, 0x4f, 0x0e, 0xf1, 0x79, 0x81, 0x3d, 0x71, 0x57, 0x83, 0x61, 0x03, 0xf3, 0x84, + 0x03, 0xdd, 0x84, 0x89, 0x65, 0xa7, 0xed, 0x6c, 0xba, 0x9e, 0x1b, 0xbb, 0x24, 0x42, 0xcf, 0x41, + 0xd1, 0x69, 0xb5, 0x18, 0x0f, 0x2b, 0x2d, 0x5d, 0x38, 0x3a, 0xac, 0x14, 0x17, 0x5b, 0x74, 0x33, + 0x81, 0xc2, 0x3a, 0xc0, 0x14, 0x03, 0xbd, 0x00, 0x43, 0xad, 0x30, 0x68, 0x97, 0x0b, 0x0c, 0xf3, + 0x31, 0xba, 0xef, 0xaa, 0x61, 0xd0, 0x4e, 0xa1, 0x32, 0x1c, 0xfb, 0x57, 0x0a, 0xf0, 0xe4, 0x32, + 0x69, 0xef, 0xac, 0x36, 0x72, 0x46, 0xe5, 0x0a, 0x8c, 0xed, 0x05, 0xbe, 0x1b, 0x07, 0x61, 0x24, + 0x9a, 0x66, 0xdb, 0x7d, 0x4d, 0x94, 0x61, 0x05, 0x45, 0x97, 0x61, 0xa8, 0x9d, 0xb0, 0xea, 0x09, + 0xc9, 0xe6, 0x19, 0x93, 0x66, 0x10, 0x8a, 0xd1, 0x89, 0x48, 0x28, 0xd8, 0x94, 0xc2, 0xb8, 0x13, + 0x91, 0x10, 0x33, 0x48, 0xb2, 0xde, 0xe9, 0x4e, 0x10, 0x7b, 0x28, 0xb5, 0xde, 0x29, 0x04, 0x6b, + 0x58, 0xa8, 0x0e, 0x25, 0xfe, 0x0f, 0x93, 0x2d, 0xc6, 0x91, 0x72, 0x56, 0x49, 0x43, 0x22, 0x89, + 0x55, 0x32, 0xc9, 0x36, 0x84, 0x2c, 0xc4, 0x09, 0x11, 0x63, 0x9e, 0x46, 0xfa, 0xce, 0xd3, 0x2f, + 0x15, 0x00, 0xf1, 0x21, 0xfc, 0x33, 0x36, 0x70, 0x77, 0xba, 0x07, 0x2e, 0xf3, 0x68, 0xbc, 0x15, + 0x34, 0x1d, 0x2f, 0xbd, 0xc7, 0x4e, 0x6b, 0xf4, 0x7e, 0xc8, 0x02, 0xb4, 0xec, 0xfa, 0x2d, 0x12, + 0x9e, 0x81, 0x5c, 0x78, 0xb2, 0x0d, 0x78, 0x0b, 0xa6, 0x96, 0x3d, 0x97, 0xf8, 0x71, 0xad, 0xbe, + 0x1c, 0xf8, 0x5b, 0xee, 0x36, 0xfa, 0x3c, 0x4c, 0x51, 0x31, 0x39, 0xe8, 0xc4, 0x0d, 0xd2, 0x0c, + 0x7c, 0x26, 0x51, 0x50, 0xe1, 0x12, 0x1d, 0x1d, 0x56, 0xa6, 0x36, 0x0c, 0x08, 0x4e, 0x61, 0xda, + 0xbf, 0x43, 0x3f, 0x34, 0xd8, 0x6b, 0x07, 0x3e, 0xf1, 0xe3, 0xe5, 0xc0, 0x6f, 0x71, 0xc9, 0xf3, + 0xf3, 0x30, 0x14, 0xd3, 0x8e, 0xf3, 0x8f, 0x7c, 0x56, 0x4e, 0x2d, 0xed, 0xee, 0xf1, 0x61, 0xe5, + 0xb1, 0xee, 0x1a, 0xec, 0x83, 0x58, 0x1d, 0xf4, 0x2d, 0x30, 0x12, 0xc5, 0x4e, 0xdc, 0x89, 0xc4, + 0x67, 0x3f, 0x2d, 0x3f, 0xbb, 0xc1, 0x4a, 0x8f, 0x0f, 0x2b, 0xd3, 0xaa, 0x1a, 0x2f, 0xc2, 0xa2, + 0x02, 0x7a, 0x1e, 0x46, 0xf7, 0x48, 0x14, 0x39, 0xdb, 0x52, 0x68, 0x98, 0x16, 0x75, 0x47, 0xd7, + 0x78, 0x31, 0x96, 0x70, 0xf4, 0x0c, 0x0c, 0x93, 0x30, 0x0c, 0x42, 0xb1, 0xaa, 0x26, 0x05, 0xe2, + 0xf0, 0x0a, 0x2d, 0xc4, 0x1c, 0x66, 0xff, 0x07, 0x0b, 0xa6, 0x55, 0x5f, 0x79, 0x5b, 0x67, 0x70, + 0x3a, 0xbc, 0x0b, 0xd0, 0x94, 0x1f, 0x18, 0x31, 0x7e, 0x37, 0x7e, 0xf5, 0xd9, 0xac, 0x25, 0xdc, + 0x3d, 0x8c, 0x09, 0x65, 0x55, 0x14, 0x61, 0x8d, 0x9a, 0xfd, 0x2f, 0x2d, 0x38, 0x97, 0xfa, 0xa2, + 0x5b, 0x6e, 0x14, 0xa3, 0xf7, 0xba, 0xbe, 0x6a, 0x7e, 0xb0, 0xaf, 0xa2, 0xb5, 0xd9, 0x37, 0xa9, + 0x35, 0x27, 0x4b, 0xb4, 0x2f, 0xba, 0x01, 0xc3, 0x6e, 0x4c, 0xf6, 0xe4, 0xc7, 0x3c, 0xd3, 0xf3, + 0x63, 0x78, 0xaf, 0x92, 0x19, 0xa9, 0xd1, 0x9a, 0x98, 0x13, 0xb0, 0xff, 0x97, 0x05, 0x25, 0xbe, + 0x6c, 0xd7, 0x9c, 0xf6, 0x19, 0xcc, 0x45, 0x0d, 0x86, 0x18, 0x75, 0xde, 0xf1, 0xe7, 0xb2, 0x3b, + 0x2e, 0xba, 0x33, 0x4f, 0x45, 0x3f, 0x2e, 0x62, 0x2b, 0x66, 0x46, 0x8b, 0x30, 0x23, 0x31, 0xf7, + 0x06, 0x94, 0x14, 0x02, 0x9a, 0x81, 0xe2, 0x2e, 0xe1, 0xd7, 0xaa, 0x12, 0xa6, 0x3f, 0xd1, 0x79, + 0x18, 0xde, 0x77, 0xbc, 0x8e, 0xd8, 0xec, 0x98, 0xff, 0xf9, 0x7c, 0xe1, 0x9a, 0x65, 0xff, 0x22, + 0xdb, 0x63, 0xa2, 0x91, 0x15, 0x7f, 0x5f, 0x30, 0x93, 0x0f, 0xe1, 0xbc, 0x97, 0xc1, 0xc3, 0xc4, + 0x40, 0x0c, 0xce, 0xf3, 0x9e, 0x14, 0x7d, 0x3d, 0x9f, 0x05, 0xc5, 0x99, 0x6d, 0xd0, 0x63, 0x20, + 0x68, 0xd3, 0x15, 0xe5, 0x78, 0xac, 0xbf, 0x42, 0x5c, 0xbe, 0x2d, 0xca, 0xb0, 0x82, 0x52, 0x06, + 0x71, 0x5e, 0x75, 0xfe, 0x26, 0x39, 0x68, 0x10, 0x8f, 0x34, 0xe3, 0x20, 0xfc, 0x58, 0xbb, 0xff, + 0x14, 0x1f, 0x7d, 0xce, 0x5f, 0xc6, 0x05, 0x81, 0xe2, 0x4d, 0x72, 0xc0, 0xa7, 0x42, 0xff, 0xba, + 0x62, 0xcf, 0xaf, 0xfb, 0x69, 0x0b, 0x26, 0xd5, 0xd7, 0x9d, 0xc1, 0x46, 0x5a, 0x32, 0x37, 0xd2, + 0x53, 0x3d, 0xd7, 0x63, 0xce, 0x16, 0xfa, 0x53, 0xc6, 0x02, 0x04, 0x4e, 0x3d, 0x0c, 0xe8, 0xd0, + 0x50, 0x9e, 0xfd, 0x71, 0x4e, 0xc8, 0x20, 0xdf, 0x75, 0x93, 0x1c, 0x6c, 0x04, 0x54, 0x7c, 0xc8, + 0xfe, 0x2e, 0x63, 0xd6, 0x86, 0x7a, 0xce, 0xda, 0xcf, 0x16, 0xe0, 0x82, 0x1a, 0x01, 0xe3, 0x80, + 0xfe, 0xb3, 0x3e, 0x06, 0xaf, 0xc0, 0x78, 0x8b, 0x6c, 0x39, 0x1d, 0x2f, 0x56, 0x37, 0xe7, 0x61, + 0xae, 0x3d, 0xa9, 0x26, 0xc5, 0x58, 0xc7, 0x39, 0xc1, 0xb0, 0xfd, 0xf8, 0x38, 0xe3, 0xbd, 0xb1, + 0x43, 0x57, 0x30, 0x95, 0xde, 0x34, 0xfd, 0xc7, 0x84, 0xae, 0xff, 0x10, 0xba, 0x8e, 0x67, 0x60, + 0xd8, 0xdd, 0xa3, 0x67, 0x71, 0xc1, 0x3c, 0x62, 0x6b, 0xb4, 0x10, 0x73, 0x18, 0xfa, 0x0c, 0x8c, + 0x36, 0x83, 0xbd, 0x3d, 0xc7, 0x6f, 0x95, 0x8b, 0x4c, 0x9e, 0x1c, 0xa7, 0xc7, 0xf5, 0x32, 0x2f, + 0xc2, 0x12, 0x86, 0x9e, 0x84, 0x21, 0x27, 0xdc, 0x8e, 0xca, 0x43, 0x0c, 0x67, 0x8c, 0xb6, 0xb4, + 0x18, 0x6e, 0x47, 0x98, 0x95, 0x52, 0x39, 0xf1, 0x7e, 0x10, 0xee, 0xba, 0xfe, 0x76, 0xd5, 0x0d, + 0x99, 0xd0, 0xa7, 0xc9, 0x89, 0xf7, 0x14, 0x04, 0x6b, 0x58, 0x68, 0x15, 0x86, 0xdb, 0x41, 0x18, + 0x47, 0xe5, 0x11, 0x36, 0xdc, 0x4f, 0xe7, 0x6c, 0x25, 0xfe, 0xb5, 0xf5, 0x20, 0x8c, 0x93, 0x0f, + 0xa0, 0xff, 0x22, 0xcc, 0xab, 0xa3, 0x6f, 0x81, 0x22, 0xf1, 0xf7, 0xcb, 0xa3, 0x8c, 0xca, 0x5c, + 0x16, 0x95, 0x15, 0x7f, 0xff, 0xae, 0x13, 0x26, 0x7c, 0x66, 0xc5, 0xdf, 0xc7, 0xb4, 0x0e, 0xfa, + 0x32, 0x94, 0xa4, 0xee, 0x34, 0x2a, 0x8f, 0xe5, 0x2f, 0x31, 0x2c, 0x90, 0x30, 0xf9, 0xa0, 0xe3, + 0x86, 0x64, 0x8f, 0xf8, 0x71, 0x94, 0xdc, 0x7e, 0x25, 0x34, 0xc2, 0x09, 0x35, 0xf4, 0x65, 0x79, + 0x9d, 0x5b, 0x0b, 0x3a, 0x7e, 0x1c, 0x95, 0x4b, 0xac, 0x7b, 0x99, 0x8a, 0xb6, 0xbb, 0x09, 0x5e, + 0xfa, 0xbe, 0xc7, 0x2b, 0x63, 0x83, 0x14, 0xc2, 0x30, 0xe9, 0xb9, 0xfb, 0xc4, 0x27, 0x51, 0x54, + 0x0f, 0x83, 0x4d, 0x52, 0x06, 0xd6, 0xf3, 0x8b, 0xd9, 0xfa, 0xa7, 0x60, 0x93, 0x2c, 0xcd, 0x1e, + 0x1d, 0x56, 0x26, 0x6f, 0xe9, 0x75, 0xb0, 0x49, 0x02, 0xdd, 0x81, 0x29, 0x2a, 0xa0, 0xba, 0x09, + 0xd1, 0xf1, 0x7e, 0x44, 0x99, 0x74, 0x8a, 0x8d, 0x4a, 0x38, 0x45, 0x04, 0xbd, 0x0d, 0x25, 0xcf, + 0xdd, 0x22, 0xcd, 0x83, 0xa6, 0x47, 0xca, 0x13, 0x8c, 0x62, 0xe6, 0xb6, 0xba, 0x25, 0x91, 0xf8, + 0x05, 0x40, 0xfd, 0xc5, 0x49, 0x75, 0x74, 0x17, 0x1e, 0x8b, 0x49, 0xb8, 0xe7, 0xfa, 0x0e, 0xdd, + 0x0e, 0x42, 0x9e, 0x64, 0x5a, 0xbc, 0x49, 0xb6, 0xde, 0x2e, 0x89, 0xa1, 0x7b, 0x6c, 0x23, 0x13, + 0x0b, 0xe7, 0xd4, 0x46, 0xb7, 0x61, 0x9a, 0xed, 0x84, 0x7a, 0xc7, 0xf3, 0xea, 0x81, 0xe7, 0x36, + 0x0f, 0xca, 0x53, 0x8c, 0xe0, 0x67, 0xa4, 0x9a, 0xae, 0x66, 0x82, 0xe9, 0x8d, 0x37, 0xf9, 0x87, + 0xd3, 0xb5, 0xd1, 0x26, 0x53, 0xdb, 0x74, 0x42, 0x37, 0x3e, 0xa0, 0xeb, 0x97, 0x3c, 0x88, 0xcb, + 0xd3, 0x3d, 0xef, 0x8f, 0x3a, 0xaa, 0xd2, 0xed, 0xe8, 0x85, 0x38, 0x4d, 0x90, 0x6e, 0xed, 0x28, + 0x6e, 0xb9, 0x7e, 0x79, 0x86, 0x71, 0x0c, 0xb5, 0x33, 0x1a, 0xb4, 0x10, 0x73, 0x18, 0x53, 0xd9, + 0xd0, 0x1f, 0xb7, 0x29, 0x07, 0x9d, 0x65, 0x88, 0x89, 0xca, 0x46, 0x02, 0x70, 0x82, 0x43, 0x8f, + 0xe5, 0x38, 0x3e, 0x28, 0x23, 0x86, 0xaa, 0xb6, 0xcb, 0xc6, 0xc6, 0x97, 0x31, 0x2d, 0x47, 0xb7, + 0x60, 0x94, 0xf8, 0xfb, 0xab, 0x61, 0xb0, 0x57, 0x3e, 0x97, 0xbf, 0x67, 0x57, 0x38, 0x0a, 0x67, + 0xe8, 0xc9, 0x05, 0x40, 0x14, 0x63, 0x49, 0x02, 0x3d, 0x80, 0x72, 0xc6, 0x8c, 0xf0, 0x09, 0x38, + 0xcf, 0x26, 0xe0, 0x0b, 0xa2, 0x6e, 0x79, 0x23, 0x07, 0xef, 0xb8, 0x07, 0x0c, 0xe7, 0x52, 0x47, + 0xdf, 0x01, 0x93, 0x7c, 0x43, 0x71, 0x7d, 0x6f, 0x54, 0xbe, 0xc0, 0xbe, 0xe6, 0x72, 0xfe, 0xe6, + 0xe4, 0x88, 0x4b, 0x17, 0x44, 0x87, 0x26, 0xf5, 0xd2, 0x08, 0x9b, 0xd4, 0xec, 0x4d, 0x98, 0x52, + 0x7c, 0x8b, 0x2d, 0x1d, 0x54, 0x81, 0x61, 0xca, 0x90, 0xe5, 0x8d, 0xbd, 0x44, 0x67, 0x8a, 0xe9, + 0xe9, 0x30, 0x2f, 0x67, 0x33, 0xe5, 0x7e, 0x48, 0x96, 0x0e, 0x62, 0xc2, 0x6f, 0x5d, 0x45, 0x6d, + 0xa6, 0x24, 0x00, 0x27, 0x38, 0xf6, 0xff, 0xe3, 0x72, 0x4f, 0xc2, 0x1c, 0x07, 0x38, 0x0e, 0x5e, + 0x82, 0xb1, 0x9d, 0x20, 0x8a, 0x29, 0x36, 0x6b, 0x63, 0x38, 0x91, 0x74, 0x6e, 0x88, 0x72, 0xac, + 0x30, 0xd0, 0x9b, 0x30, 0xd9, 0xd4, 0x1b, 0x10, 0x67, 0x99, 0x1a, 0x02, 0xa3, 0x75, 0x6c, 0xe2, + 0xa2, 0x6b, 0x30, 0xc6, 0x5e, 0x6b, 0x9a, 0x81, 0x27, 0xee, 0x77, 0xf2, 0x40, 0x1e, 0xab, 0x8b, + 0xf2, 0x63, 0xed, 0x37, 0x56, 0xd8, 0xf4, 0xce, 0x4d, 0xbb, 0x50, 0xab, 0x8b, 0x53, 0x44, 0xdd, + 0xb9, 0x6f, 0xb0, 0x52, 0x2c, 0xa0, 0xf6, 0xdf, 0x28, 0x68, 0xa3, 0x4c, 0x6f, 0x2c, 0x04, 0xd5, + 0x61, 0xf4, 0xbe, 0xe3, 0xc6, 0xae, 0xbf, 0x2d, 0xc4, 0x85, 0xe7, 0x7b, 0x1e, 0x29, 0xac, 0xd2, + 0x3d, 0x5e, 0x81, 0x1f, 0x7a, 0xe2, 0x0f, 0x96, 0x64, 0x28, 0xc5, 0xb0, 0xe3, 0xfb, 0x94, 0x62, + 0x61, 0x50, 0x8a, 0x98, 0x57, 0xe0, 0x14, 0xc5, 0x1f, 0x2c, 0xc9, 0xa0, 0xf7, 0x00, 0xe4, 0xb2, + 0x24, 0x2d, 0xf1, 0x4a, 0xf2, 0x52, 0x7f, 0xa2, 0x1b, 0xaa, 0xce, 0xd2, 0x14, 0x3d, 0x52, 0x93, + 0xff, 0x58, 0xa3, 0x67, 0xc7, 0x4c, 0xac, 0xea, 0xee, 0x0c, 0xfa, 0x76, 0xca, 0x09, 0x9c, 0x30, + 0x26, 0xad, 0xc5, 0x58, 0x0c, 0xce, 0x0b, 0x83, 0x49, 0xc5, 0x1b, 0xee, 0x1e, 0xd1, 0xb9, 0x86, + 0x20, 0x82, 0x13, 0x7a, 0xf6, 0xcf, 0x17, 0xa1, 0x9c, 0xd7, 0x5d, 0xba, 0xe8, 0xc8, 0x03, 0x37, + 0x5e, 0xa6, 0xd2, 0x90, 0x65, 0x2e, 0xba, 0x15, 0x51, 0x8e, 0x15, 0x06, 0x9d, 0xfd, 0xc8, 0xdd, + 0x96, 0x97, 0x9a, 0xe1, 0x64, 0xf6, 0x1b, 0xac, 0x14, 0x0b, 0x28, 0xc5, 0x0b, 0x89, 0x13, 0x89, + 0x67, 0x38, 0x6d, 0x95, 0x60, 0x56, 0x8a, 0x05, 0x54, 0xd7, 0x47, 0x0c, 0xf5, 0xd1, 0x47, 0x18, + 0x43, 0x34, 0x7c, 0xba, 0x43, 0x84, 0xbe, 0x02, 0xb0, 0xe5, 0xfa, 0x6e, 0xb4, 0xc3, 0xa8, 0x8f, + 0x9c, 0x98, 0xba, 0x92, 0xa5, 0x56, 0x15, 0x15, 0xac, 0x51, 0x44, 0xaf, 0xc3, 0xb8, 0xda, 0x80, + 0xb5, 0x6a, 0x79, 0xd4, 0x7c, 0xe3, 0x49, 0xb8, 0x51, 0x15, 0xeb, 0x78, 0xf6, 0xfb, 0xe9, 0xf5, + 0x22, 0x76, 0x80, 0x36, 0xbe, 0xd6, 0xa0, 0xe3, 0x5b, 0xe8, 0x3d, 0xbe, 0xf6, 0xaf, 0x16, 0x61, + 0xda, 0x68, 0xac, 0x13, 0x0d, 0xc0, 0xb3, 0xae, 0xd3, 0x73, 0xce, 0x89, 0x89, 0xd8, 0x7f, 0x76, + 0xff, 0xad, 0xa2, 0x9f, 0x85, 0x74, 0x07, 0xf0, 0xfa, 0xe8, 0x2b, 0x50, 0xf2, 0x9c, 0x88, 0xe9, + 0x36, 0x88, 0xd8, 0x77, 0x83, 0x10, 0x4b, 0xee, 0x11, 0x4e, 0x14, 0x6b, 0x47, 0x0d, 0xa7, 0x9d, + 0x90, 0xa4, 0x07, 0x32, 0x95, 0x7d, 0xe4, 0x3b, 0xaf, 0xea, 0x04, 0x15, 0x90, 0x0e, 0x30, 0x87, + 0xa1, 0x6b, 0x30, 0x11, 0x12, 0xb6, 0x2a, 0x96, 0xa9, 0x28, 0xc7, 0x96, 0xd9, 0x70, 0x22, 0xf3, + 0x61, 0x0d, 0x86, 0x0d, 0xcc, 0x44, 0x94, 0x1f, 0xe9, 0x21, 0xca, 0x3f, 0x0f, 0xa3, 0xec, 0x87, + 0x5a, 0x01, 0x6a, 0x36, 0x6a, 0xbc, 0x18, 0x4b, 0x78, 0x7a, 0xc1, 0x8c, 0x0d, 0xb8, 0x60, 0x5e, + 0x80, 0xa9, 0xaa, 0x43, 0xf6, 0x02, 0x7f, 0xc5, 0x6f, 0xb5, 0x03, 0xd7, 0x8f, 0x51, 0x19, 0x86, + 0xd8, 0xe9, 0xc0, 0xf7, 0xf6, 0x10, 0xa5, 0x80, 0x87, 0xa8, 0x60, 0x6e, 0xff, 0x56, 0x01, 0x26, + 0xab, 0xc4, 0x23, 0x31, 0xe1, 0x57, 0x99, 0x08, 0xad, 0x02, 0xda, 0x0e, 0x9d, 0x26, 0xa9, 0x93, + 0xd0, 0x0d, 0x5a, 0xba, 0xae, 0xb3, 0xc8, 0xde, 0x13, 0xd0, 0xf5, 0x2e, 0x28, 0xce, 0xa8, 0x81, + 0xde, 0x85, 0xc9, 0x76, 0x48, 0x0c, 0x15, 0x9d, 0x95, 0x27, 0x8d, 0xd4, 0x75, 0x44, 0x2e, 0x08, + 0x1b, 0x45, 0xd8, 0x24, 0x85, 0xbe, 0x0d, 0x66, 0x82, 0xb0, 0xbd, 0xe3, 0xf8, 0x55, 0xd2, 0x26, + 0x7e, 0x8b, 0x4a, 0xfa, 0x42, 0x05, 0x71, 0xfe, 0xe8, 0xb0, 0x32, 0x73, 0x3b, 0x05, 0xc3, 0x5d, + 0xd8, 0xe8, 0x5d, 0x98, 0x6d, 0x87, 0x41, 0xdb, 0xd9, 0x66, 0x0b, 0x45, 0x08, 0x34, 0x9c, 0xfb, + 0xbc, 0x74, 0x74, 0x58, 0x99, 0xad, 0xa7, 0x81, 0xc7, 0x87, 0x95, 0x73, 0x6c, 0xa0, 0x68, 0x49, + 0x02, 0xc4, 0xdd, 0x64, 0xec, 0x6d, 0xb8, 0x50, 0x0d, 0xee, 0xfb, 0xf7, 0x9d, 0xb0, 0xb5, 0x58, + 0xaf, 0x69, 0xba, 0x83, 0x75, 0x79, 0x77, 0xe5, 0x6f, 0xd1, 0x99, 0xe7, 0x94, 0x56, 0x93, 0xcb, + 0x2f, 0xab, 0xae, 0x47, 0x72, 0x74, 0x14, 0x7f, 0xbb, 0x60, 0xb4, 0x94, 0xe0, 0xab, 0x67, 0x05, + 0x2b, 0xf7, 0x59, 0xe1, 0x1d, 0x18, 0xdb, 0x72, 0x89, 0xd7, 0xc2, 0x64, 0x4b, 0xcc, 0xcc, 0x73, + 0xf9, 0xcf, 0x6b, 0xab, 0x14, 0x53, 0xea, 0xa4, 0xf8, 0xcd, 0x77, 0x55, 0x54, 0xc6, 0x8a, 0x0c, + 0xda, 0x85, 0x19, 0x79, 0xb5, 0x92, 0x50, 0xb1, 0x89, 0x9f, 0xef, 0x75, 0x5f, 0x33, 0x89, 0xb3, + 0x09, 0xc4, 0x29, 0x32, 0xb8, 0x8b, 0x30, 0xbd, 0xea, 0xee, 0xd1, 0xe3, 0x6a, 0x88, 0x2d, 0x69, + 0x76, 0xd5, 0x65, 0xb7, 0x76, 0x56, 0x6a, 0xff, 0xa8, 0x05, 0x8f, 0x77, 0x8d, 0x8c, 0xd0, 0x5e, + 0x9c, 0xf2, 0x2c, 0xa4, 0xb5, 0x09, 0x85, 0xfe, 0xda, 0x04, 0xfb, 0x1f, 0x59, 0x70, 0x7e, 0x65, + 0xaf, 0x1d, 0x1f, 0x54, 0x5d, 0xf3, 0xe9, 0xe3, 0x0d, 0x18, 0xd9, 0x23, 0x2d, 0xb7, 0xb3, 0x27, + 0x66, 0xae, 0x22, 0x59, 0xfa, 0x1a, 0x2b, 0x3d, 0x3e, 0xac, 0x4c, 0x36, 0xe2, 0x20, 0x74, 0xb6, + 0x09, 0x2f, 0xc0, 0x02, 0x9d, 0x1d, 0x8c, 0xee, 0x87, 0xe4, 0x96, 0xbb, 0xe7, 0xca, 0xe7, 0xd2, + 0x9e, 0x1a, 0xb5, 0x79, 0x39, 0xa0, 0xf3, 0xef, 0x74, 0x1c, 0x3f, 0x76, 0xe3, 0x03, 0xf1, 0xaa, + 0x23, 0x89, 0xe0, 0x84, 0x9e, 0xfd, 0x0d, 0x0b, 0xa6, 0x25, 0x2f, 0x59, 0x6c, 0xb5, 0x42, 0x12, + 0x45, 0x68, 0x0e, 0x0a, 0x6e, 0x5b, 0xf4, 0x12, 0x44, 0x2f, 0x0b, 0xb5, 0x3a, 0x2e, 0xb8, 0x6d, + 0x54, 0x87, 0x12, 0x7f, 0x75, 0x4d, 0x16, 0xd7, 0x40, 0x6f, 0xb7, 0xac, 0x07, 0x1b, 0xb2, 0x26, + 0x4e, 0x88, 0x48, 0xa9, 0x98, 0x9d, 0x43, 0x45, 0xf3, 0x49, 0xe8, 0x86, 0x28, 0xc7, 0x0a, 0x03, + 0x5d, 0x81, 0x31, 0x3f, 0x68, 0xf1, 0x47, 0x70, 0xbe, 0xa7, 0xd9, 0x92, 0x5d, 0x17, 0x65, 0x58, + 0x41, 0xed, 0xef, 0xb7, 0x60, 0x42, 0x7e, 0xd9, 0x80, 0x02, 0x3a, 0xdd, 0x5a, 0x89, 0x70, 0x9e, + 0x6c, 0x2d, 0x2a, 0x60, 0x33, 0x88, 0x21, 0x57, 0x17, 0x4f, 0x22, 0x57, 0xdb, 0x3f, 0x52, 0x80, + 0x29, 0xd9, 0x9d, 0x46, 0x67, 0x33, 0x22, 0x31, 0xda, 0x80, 0x92, 0xc3, 0x87, 0x9c, 0xc8, 0x15, + 0xfb, 0x4c, 0xf6, 0x85, 0xce, 0x98, 0x9f, 0x44, 0xd4, 0x59, 0x94, 0xb5, 0x71, 0x42, 0x08, 0x79, + 0x30, 0xeb, 0x07, 0x31, 0x3b, 0xf6, 0x14, 0xbc, 0xd7, 0xb3, 0x43, 0x9a, 0xfa, 0x45, 0x41, 0x7d, + 0x76, 0x3d, 0x4d, 0x05, 0x77, 0x13, 0x46, 0x2b, 0x52, 0x89, 0x54, 0xcc, 0xbf, 0xc2, 0xe9, 0xb3, + 0x90, 0xad, 0x43, 0xb2, 0x7f, 0xd9, 0x82, 0x92, 0x44, 0x3b, 0x8b, 0x17, 0xa6, 0x35, 0x18, 0x8d, + 0xd8, 0x24, 0xc8, 0xa1, 0xb1, 0x7b, 0x75, 0x9c, 0xcf, 0x57, 0x72, 0x9a, 0xf3, 0xff, 0x11, 0x96, + 0x34, 0x98, 0x16, 0x5c, 0x75, 0xff, 0x13, 0xa2, 0x05, 0x57, 0xfd, 0xc9, 0x39, 0x61, 0xfe, 0x1b, + 0xeb, 0xb3, 0xa6, 0x2a, 0xa0, 0x42, 0x67, 0x3b, 0x24, 0x5b, 0xee, 0x83, 0xb4, 0xd0, 0x59, 0x67, + 0xa5, 0x58, 0x40, 0xd1, 0x7b, 0x30, 0xd1, 0x94, 0xca, 0xe3, 0x84, 0x0d, 0x3c, 0xdb, 0x53, 0x15, + 0xaf, 0x5e, 0x6d, 0xb8, 0x81, 0xdc, 0xb2, 0x56, 0x1f, 0x1b, 0xd4, 0xcc, 0x77, 0xff, 0x62, 0xbf, + 0x77, 0xff, 0x84, 0x6e, 0xee, 0xcb, 0xb5, 0xfd, 0x63, 0x16, 0x8c, 0x70, 0x15, 0xe4, 0x60, 0x3a, + 0x5b, 0xed, 0x15, 0x2a, 0x19, 0xbb, 0xbb, 0xb4, 0x50, 0x3c, 0x4a, 0xa1, 0x35, 0x28, 0xb1, 0x1f, + 0x4c, 0x15, 0x53, 0xcc, 0xb7, 0x0c, 0xe4, 0xad, 0xea, 0x1d, 0xbc, 0x2b, 0xab, 0xe1, 0x84, 0x82, + 0xfd, 0x83, 0x45, 0xca, 0xaa, 0x12, 0x54, 0xe3, 0x04, 0xb7, 0x1e, 0xdd, 0x09, 0x5e, 0x78, 0x54, + 0x27, 0xf8, 0x36, 0x4c, 0x37, 0xb5, 0x27, 0xaf, 0x64, 0x26, 0xaf, 0xf4, 0x5c, 0x24, 0xda, 0xeb, + 0x18, 0x57, 0xc3, 0x2d, 0x9b, 0x44, 0x70, 0x9a, 0x2a, 0xfa, 0x76, 0x98, 0xe0, 0xf3, 0x2c, 0x5a, + 0x19, 0x62, 0xad, 0x7c, 0x26, 0x7f, 0xbd, 0xe8, 0x4d, 0xb0, 0x95, 0xd8, 0xd0, 0xaa, 0x63, 0x83, + 0x98, 0xfd, 0xf3, 0x63, 0x30, 0xbc, 0xb2, 0x4f, 0xfc, 0xf8, 0x0c, 0x18, 0x52, 0x13, 0xa6, 0x5c, + 0x7f, 0x3f, 0xf0, 0xf6, 0x49, 0x8b, 0xc3, 0x4f, 0x72, 0xb8, 0x3e, 0x26, 0x48, 0x4f, 0xd5, 0x0c, + 0x12, 0x38, 0x45, 0xf2, 0x51, 0xdc, 0xda, 0xaf, 0xc3, 0x08, 0x9f, 0x7b, 0x71, 0x65, 0xcf, 0x54, + 0xb0, 0xb3, 0x41, 0x14, 0xbb, 0x20, 0xd1, 0x28, 0x70, 0x8d, 0xbe, 0xa8, 0x8e, 0xde, 0x87, 0xa9, + 0x2d, 0x37, 0x8c, 0x62, 0x7a, 0xdd, 0x8e, 0x62, 0x67, 0xaf, 0xfd, 0x10, 0xb7, 0x74, 0x35, 0x0e, + 0xab, 0x06, 0x25, 0x9c, 0xa2, 0x8c, 0xb6, 0x61, 0x92, 0x5e, 0x1c, 0x93, 0xa6, 0x46, 0x4f, 0xdc, + 0x94, 0x52, 0xc3, 0xdd, 0xd2, 0x09, 0x61, 0x93, 0x2e, 0x65, 0x26, 0x4d, 0x76, 0xd1, 0x1c, 0x63, + 0x12, 0x85, 0x62, 0x26, 0xfc, 0x86, 0xc9, 0x61, 0x94, 0x27, 0x31, 0x53, 0x91, 0x92, 0xc9, 0x93, + 0x34, 0x83, 0x90, 0xaf, 0x42, 0x89, 0xd0, 0x21, 0xa4, 0x84, 0xc5, 0x63, 0xc3, 0xc2, 0x60, 0x7d, + 0x5d, 0x73, 0x9b, 0x61, 0x60, 0xea, 0x47, 0x56, 0x24, 0x25, 0x9c, 0x10, 0x45, 0xcb, 0x30, 0x12, + 0x91, 0xd0, 0x25, 0x91, 0x78, 0x76, 0xe8, 0x31, 0x8d, 0x0c, 0x8d, 0x9b, 0x90, 0xf2, 0xdf, 0x58, + 0x54, 0xa5, 0xcb, 0xcb, 0x61, 0xb7, 0x21, 0xf6, 0xd2, 0xa0, 0x2d, 0xaf, 0x45, 0x56, 0x8a, 0x05, + 0x14, 0xbd, 0x0d, 0xa3, 0x21, 0xf1, 0x98, 0x02, 0x6e, 0x72, 0xf0, 0x45, 0xce, 0xf5, 0x79, 0xbc, + 0x1e, 0x96, 0x04, 0xd0, 0x4d, 0x40, 0x21, 0xa1, 0x32, 0x84, 0xeb, 0x6f, 0x2b, 0x03, 0x0a, 0xf1, + 0x7e, 0xf0, 0x84, 0x68, 0xff, 0x1c, 0x4e, 0x30, 0xfc, 0x38, 0x0c, 0x3c, 0x8f, 0x84, 0x38, 0xa3, + 0x1a, 0xba, 0x0e, 0xb3, 0xaa, 0xb4, 0xe6, 0x47, 0xb1, 0xe3, 0x37, 0x09, 0x7b, 0x3a, 0x28, 0x25, + 0x52, 0x11, 0x4e, 0x23, 0xe0, 0xee, 0x3a, 0xf6, 0xd7, 0xa9, 0x38, 0x43, 0x47, 0xeb, 0x0c, 0x64, + 0x81, 0xb7, 0x4c, 0x59, 0xe0, 0x62, 0xee, 0xcc, 0xe5, 0xc8, 0x01, 0x47, 0x16, 0x8c, 0x6b, 0x33, + 0x9b, 0xac, 0x59, 0xab, 0xc7, 0x9a, 0xed, 0xc0, 0x0c, 0x5d, 0xe9, 0xb7, 0x37, 0x99, 0x37, 0x45, + 0x8b, 0x2d, 0xcc, 0xc2, 0xc3, 0x2d, 0xcc, 0xb2, 0x68, 0x60, 0xe6, 0x56, 0x8a, 0x20, 0xee, 0x6a, + 0x02, 0xbd, 0x21, 0xb5, 0x51, 0x45, 0xc3, 0x30, 0x8a, 0x6b, 0x9a, 0x8e, 0x0f, 0x2b, 0x33, 0xda, + 0x87, 0xe8, 0xda, 0x27, 0xfb, 0xab, 0xf2, 0x1b, 0x39, 0xb3, 0x59, 0x80, 0x52, 0x53, 0x2d, 0x16, + 0xcb, 0xb4, 0xa5, 0x55, 0xcb, 0x01, 0x27, 0x38, 0x74, 0x8f, 0xd2, 0x2b, 0x48, 0xda, 0x96, 0x8f, + 0x5e, 0x50, 0x30, 0x83, 0xd8, 0xaf, 0x02, 0xac, 0x3c, 0x20, 0x4d, 0xbe, 0xd4, 0xf5, 0x47, 0x5d, + 0x2b, 0xff, 0x51, 0xd7, 0xfe, 0x8f, 0x16, 0x4c, 0xad, 0x2e, 0x1b, 0xd7, 0xc4, 0x79, 0x00, 0x7e, + 0x37, 0xba, 0x77, 0x6f, 0x5d, 0xbe, 0x57, 0x70, 0x95, 0xb3, 0x2a, 0xc5, 0x1a, 0x06, 0xba, 0x08, + 0x45, 0xaf, 0xe3, 0x8b, 0x2b, 0xcb, 0xe8, 0xd1, 0x61, 0xa5, 0x78, 0xab, 0xe3, 0x63, 0x5a, 0xa6, + 0x99, 0xcf, 0x15, 0x07, 0x36, 0x9f, 0xeb, 0xeb, 0x25, 0x81, 0x2a, 0x30, 0x7c, 0xff, 0xbe, 0xdb, + 0x8a, 0xca, 0xc3, 0xc9, 0x5b, 0xca, 0xbd, 0x7b, 0xb5, 0x6a, 0x84, 0x79, 0xb9, 0xfd, 0x97, 0x8a, + 0x30, 0xb3, 0xea, 0x91, 0x07, 0x0f, 0x65, 0x85, 0x3b, 0xa8, 0xc9, 0xdf, 0x9d, 0x6e, 0x29, 0xf1, + 0xb4, 0x8d, 0x1c, 0xfb, 0x0f, 0xc5, 0x7b, 0x30, 0xca, 0x6d, 0x03, 0xf8, 0x60, 0x8c, 0x5f, 0x7d, + 0x25, 0xab, 0x0b, 0xe9, 0xb1, 0x98, 0x17, 0xea, 0x38, 0x6e, 0x28, 0xa5, 0x8e, 0x56, 0x51, 0x8a, + 0x25, 0xc9, 0xb9, 0xcf, 0xc3, 0x84, 0x8e, 0x79, 0x22, 0x8b, 0xa9, 0xbf, 0x6c, 0xc1, 0xb9, 0x55, + 0x2f, 0x68, 0xee, 0xa6, 0xec, 0x2f, 0x5f, 0x87, 0x71, 0xca, 0x34, 0x22, 0xc3, 0xf2, 0xdc, 0xf0, + 0x45, 0x10, 0x20, 0xac, 0xe3, 0x69, 0xd5, 0xee, 0xdc, 0xa9, 0x55, 0xb3, 0x5c, 0x18, 0x04, 0x08, + 0xeb, 0x78, 0xf6, 0x6f, 0x58, 0xf0, 0xd4, 0xf5, 0xe5, 0x95, 0xc4, 0x04, 0xb9, 0xcb, 0x8b, 0x82, + 0x5e, 0x39, 0x5a, 0x5a, 0x57, 0x92, 0x2b, 0x47, 0x95, 0xf5, 0x42, 0x40, 0x3f, 0x29, 0x1e, 0x42, + 0x3f, 0x69, 0xc1, 0xb9, 0xeb, 0x6e, 0x4c, 0xcf, 0x80, 0xb4, 0x3d, 0x3f, 0x3d, 0x04, 0x22, 0x37, + 0x0e, 0xc2, 0x83, 0xb4, 0x3d, 0x3f, 0x56, 0x10, 0xac, 0x61, 0xf1, 0x96, 0xf7, 0xdd, 0x88, 0xf6, + 0xb4, 0x60, 0xea, 0x3d, 0xb0, 0x28, 0xc7, 0x0a, 0x83, 0x7e, 0x58, 0xcb, 0x0d, 0x99, 0xdc, 0x7a, + 0x20, 0xb6, 0xb3, 0xfa, 0xb0, 0xaa, 0x04, 0xe0, 0x04, 0xc7, 0xfe, 0x51, 0x0b, 0x2e, 0x5c, 0xf7, + 0x3a, 0x51, 0x4c, 0xc2, 0xad, 0xc8, 0xe8, 0xec, 0xab, 0x50, 0x22, 0xf2, 0x6e, 0x28, 0xfa, 0xaa, + 0xa4, 0x19, 0x75, 0x69, 0xe4, 0xce, 0x04, 0x0a, 0x6f, 0x00, 0x63, 0xe6, 0x93, 0x19, 0xe1, 0xfe, + 0x4c, 0x01, 0x26, 0x6f, 0x6c, 0x6c, 0xd4, 0xaf, 0x93, 0x58, 0xb0, 0xcc, 0xfe, 0x7a, 0x4d, 0xac, + 0xa9, 0x67, 0x7a, 0x49, 0xe0, 0x9d, 0xd8, 0xf5, 0xe6, 0xb9, 0xf7, 0xda, 0x7c, 0xcd, 0x8f, 0x6f, + 0x87, 0x8d, 0x38, 0x74, 0xfd, 0xed, 0x4c, 0x85, 0x8e, 0x64, 0xec, 0xc5, 0x3c, 0xc6, 0x8e, 0x5e, + 0x85, 0x11, 0xe6, 0x3e, 0x27, 0x65, 0xe1, 0x27, 0x94, 0x00, 0xcb, 0x4a, 0x8f, 0x0f, 0x2b, 0xa5, + 0x3b, 0xb8, 0xc6, 0xff, 0x60, 0x81, 0x8a, 0xee, 0xc0, 0xf8, 0x4e, 0x1c, 0xb7, 0x6f, 0x10, 0xa7, + 0x45, 0x42, 0xc9, 0x1d, 0x2e, 0x65, 0x71, 0x07, 0x3a, 0x08, 0x1c, 0x2d, 0xd9, 0x50, 0x49, 0x59, + 0x84, 0x75, 0x3a, 0x76, 0x03, 0x20, 0x81, 0x9d, 0xd2, 0x65, 0xd6, 0xfe, 0x7d, 0x0b, 0x46, 0xb9, + 0x27, 0x43, 0x88, 0xbe, 0x00, 0x43, 0xe4, 0x01, 0x69, 0x0a, 0x31, 0x25, 0xb3, 0xc3, 0xc9, 0x29, + 0xc7, 0x55, 0xb3, 0xf4, 0x3f, 0x66, 0xb5, 0xd0, 0x0d, 0x18, 0xa5, 0xbd, 0xbd, 0xae, 0xdc, 0x3a, + 0x9e, 0xce, 0xfb, 0x62, 0x35, 0xed, 0xfc, 0x60, 0x14, 0x45, 0x58, 0x56, 0x67, 0x6a, 0xc6, 0x66, + 0xbb, 0x41, 0x19, 0x58, 0xdc, 0x4b, 0x09, 0xb0, 0xb1, 0x5c, 0xe7, 0x48, 0x82, 0x1a, 0x57, 0x33, + 0xca, 0x42, 0x9c, 0x10, 0xb1, 0x37, 0xa0, 0x44, 0x27, 0x75, 0xd1, 0x73, 0x9d, 0xde, 0x1a, 0xce, + 0x17, 0xa1, 0x24, 0xb5, 0x8d, 0x91, 0xf0, 0xb5, 0x60, 0x54, 0xa5, 0x32, 0x32, 0xc2, 0x09, 0xdc, + 0xde, 0x82, 0xf3, 0xec, 0xe9, 0xde, 0x89, 0x77, 0x8c, 0x3d, 0xd6, 0x7f, 0x31, 0xbf, 0x24, 0xa4, + 0x7e, 0x3e, 0x33, 0x65, 0xcd, 0x38, 0x7c, 0x42, 0x52, 0x4c, 0x6e, 0x00, 0xf6, 0x1f, 0x0e, 0xc1, + 0x13, 0xb5, 0x46, 0xbe, 0x93, 0xcb, 0x35, 0x98, 0xe0, 0x32, 0x01, 0x5d, 0xda, 0x8e, 0x27, 0xda, + 0x55, 0x0f, 0x5b, 0x1b, 0x1a, 0x0c, 0x1b, 0x98, 0xe8, 0x29, 0x28, 0xba, 0x1f, 0xf8, 0x69, 0x4b, + 0xd0, 0xda, 0x3b, 0xeb, 0x98, 0x96, 0x53, 0x30, 0x15, 0x2f, 0x38, 0x2b, 0x55, 0x60, 0x25, 0x62, + 0xbc, 0x05, 0x53, 0x6e, 0xd4, 0x8c, 0xdc, 0x9a, 0x4f, 0xf9, 0x4c, 0xe2, 0x20, 0x95, 0xdc, 0x48, + 0x69, 0xa7, 0x15, 0x14, 0xa7, 0xb0, 0x35, 0xbe, 0x3e, 0x3c, 0xb0, 0x88, 0xd2, 0xd7, 0xf9, 0x80, + 0x4a, 0x5f, 0x6d, 0xf6, 0x75, 0x11, 0xb3, 0x4a, 0x13, 0xd2, 0x17, 0xff, 0xe0, 0x08, 0x4b, 0x18, + 0x15, 0xf7, 0x9b, 0x3b, 0x4e, 0x7b, 0xb1, 0x13, 0xef, 0x54, 0xdd, 0xa8, 0x19, 0xec, 0x93, 0xf0, + 0x80, 0xdd, 0xd4, 0xc6, 0x12, 0x71, 0x5f, 0x01, 0x96, 0x6f, 0x2c, 0xd6, 0x29, 0x26, 0xee, 0xae, + 0x63, 0xaa, 0xac, 0xe0, 0x34, 0x5c, 0x55, 0x16, 0x61, 0x5a, 0x36, 0xd3, 0x20, 0x11, 0x3b, 0x23, + 0xc6, 0x59, 0xc7, 0x94, 0xeb, 0xa2, 0x28, 0x56, 0xdd, 0x4a, 0xe3, 0xa3, 0x37, 0x60, 0xd2, 0xf5, + 0xdd, 0xd8, 0x75, 0xe2, 0x20, 0x64, 0x27, 0x2c, 0xbf, 0x94, 0xb1, 0x17, 0xb8, 0x9a, 0x0e, 0xc0, + 0x26, 0x9e, 0xfd, 0x07, 0x43, 0x30, 0xcb, 0xa6, 0xed, 0x9b, 0x2b, 0xec, 0x13, 0xb3, 0xc2, 0xee, + 0x74, 0xaf, 0xb0, 0xd3, 0x10, 0x77, 0x3f, 0xce, 0x65, 0xf6, 0x3e, 0x94, 0x94, 0x31, 0xaf, 0xb4, + 0x47, 0xb7, 0x72, 0xec, 0xd1, 0xfb, 0x4b, 0x1f, 0xf2, 0xcd, 0xb0, 0x98, 0xf9, 0x66, 0xf8, 0x77, + 0x2c, 0x48, 0x6c, 0x1a, 0xd1, 0x0d, 0x28, 0xb5, 0x03, 0x66, 0x37, 0x10, 0x4a, 0x63, 0x9c, 0x27, + 0x32, 0x0f, 0x2a, 0x7e, 0x28, 0xf2, 0xf1, 0xab, 0xcb, 0x1a, 0x38, 0xa9, 0x8c, 0x96, 0x60, 0xb4, + 0x1d, 0x92, 0x46, 0xcc, 0xbc, 0xf2, 0xfa, 0xd2, 0xe1, 0x6b, 0x84, 0xe3, 0x63, 0x59, 0xd1, 0xfe, + 0x59, 0x0b, 0x80, 0x3f, 0xcb, 0x39, 0xfe, 0x36, 0x39, 0x03, 0x55, 0x63, 0x15, 0x86, 0xa2, 0x36, + 0x69, 0xf6, 0xb2, 0xe8, 0x48, 0xfa, 0xd3, 0x68, 0x93, 0x66, 0x32, 0xe0, 0xf4, 0x1f, 0x66, 0xb5, + 0xed, 0xef, 0x01, 0x98, 0x4a, 0xd0, 0x6a, 0x31, 0xd9, 0x43, 0x2f, 0x1b, 0x3e, 0x4f, 0x17, 0x53, + 0x3e, 0x4f, 0x25, 0x86, 0xad, 0x69, 0xb5, 0xde, 0x87, 0xe2, 0x9e, 0xf3, 0x40, 0xa8, 0x2d, 0x5e, + 0xec, 0xdd, 0x0d, 0x4a, 0x7f, 0x7e, 0xcd, 0x79, 0xc0, 0xef, 0x4c, 0x2f, 0xca, 0x05, 0xb2, 0xe6, + 0x3c, 0x38, 0xe6, 0x76, 0x1b, 0x8c, 0x49, 0xdd, 0x72, 0xa3, 0xf8, 0x6b, 0xff, 0x25, 0xf9, 0xcf, + 0x96, 0x1d, 0x6d, 0x84, 0xb5, 0xe5, 0xfa, 0xe2, 0x91, 0x6a, 0xa0, 0xb6, 0x5c, 0x3f, 0xdd, 0x96, + 0xeb, 0x0f, 0xd0, 0x96, 0xeb, 0xa3, 0x0f, 0x61, 0x54, 0x3c, 0x08, 0x33, 0x63, 0x6d, 0x53, 0x25, + 0x92, 0xd7, 0x9e, 0x78, 0x4f, 0xe6, 0x6d, 0x2e, 0xc8, 0x3b, 0xa1, 0x28, 0xed, 0xdb, 0xae, 0x6c, + 0x10, 0xfd, 0x2d, 0x0b, 0xa6, 0xc4, 0x6f, 0x4c, 0x3e, 0xe8, 0x90, 0x28, 0x16, 0xb2, 0xe7, 0xe7, + 0x06, 0xef, 0x83, 0xa8, 0xc8, 0xbb, 0xf2, 0x39, 0xc9, 0x66, 0x4d, 0x60, 0xdf, 0x1e, 0xa5, 0x7a, + 0x81, 0xfe, 0x89, 0x05, 0xe7, 0xf7, 0x9c, 0x07, 0xbc, 0x45, 0x5e, 0x86, 0x9d, 0xd8, 0x0d, 0x84, + 0xf1, 0xf9, 0x17, 0x06, 0x9b, 0xfe, 0xae, 0xea, 0xbc, 0x93, 0xd2, 0x4e, 0xf5, 0x7c, 0x16, 0x4a, + 0xdf, 0xae, 0x66, 0xf6, 0x6b, 0x6e, 0x0b, 0xc6, 0xe4, 0x7a, 0xcb, 0xb8, 0x79, 0x57, 0x75, 0xc1, + 0xfa, 0xc4, 0xef, 0xf1, 0xda, 0x4d, 0x9d, 0xb5, 0x23, 0xd6, 0xda, 0x23, 0x6d, 0xe7, 0x7d, 0x98, + 0xd0, 0xd7, 0xd8, 0x23, 0x6d, 0xeb, 0x03, 0x38, 0x97, 0xb1, 0x96, 0x1e, 0x69, 0x93, 0xf7, 0xe1, + 0x62, 0xee, 0xfa, 0x78, 0x94, 0x0d, 0xdb, 0x3f, 0x63, 0xe9, 0x7c, 0xf0, 0x0c, 0xf4, 0xbd, 0xcb, + 0xa6, 0xbe, 0xf7, 0x52, 0xef, 0x9d, 0x93, 0xa3, 0xf4, 0x7d, 0x4f, 0xef, 0x34, 0xe5, 0xea, 0xe8, + 0x6d, 0x18, 0xf1, 0x68, 0x89, 0xb4, 0x44, 0xb0, 0xfb, 0xef, 0xc8, 0x44, 0x96, 0x62, 0xe5, 0x11, + 0x16, 0x14, 0xec, 0x5f, 0xb0, 0x60, 0xe8, 0x0c, 0x46, 0x02, 0x9b, 0x23, 0xf1, 0x72, 0x2e, 0x69, + 0x11, 0x06, 0x67, 0x1e, 0x3b, 0xf7, 0x57, 0x64, 0xa8, 0x9f, 0x9c, 0x81, 0xf9, 0xbf, 0x05, 0x18, + 0xa7, 0x4d, 0x49, 0x93, 0xb9, 0x37, 0x61, 0xd2, 0x73, 0x36, 0x89, 0x27, 0x1f, 0x0d, 0xd3, 0x0a, + 0x93, 0x5b, 0x3a, 0x10, 0x9b, 0xb8, 0xb4, 0xf2, 0x96, 0xfe, 0x7e, 0x2a, 0xe4, 0x17, 0x55, 0xd9, + 0x78, 0x5c, 0xc5, 0x26, 0x2e, 0xbd, 0xbb, 0xdf, 0x77, 0xe2, 0xe6, 0x8e, 0x50, 0xa6, 0xa8, 0xee, + 0xde, 0xa3, 0x85, 0x98, 0xc3, 0xa8, 0x00, 0x27, 0x57, 0xe7, 0x5d, 0x7a, 0x33, 0x0c, 0x7c, 0x21, + 0x1e, 0x2b, 0x01, 0x0e, 0x9b, 0x60, 0x9c, 0xc6, 0xcf, 0x70, 0x7e, 0x1e, 0x66, 0x06, 0x81, 0x03, + 0x38, 0x3f, 0xa3, 0x3a, 0x9c, 0x77, 0xfd, 0xa6, 0xd7, 0x69, 0x91, 0x3b, 0x3e, 0x97, 0xee, 0x3c, + 0xf7, 0x43, 0xd2, 0x12, 0x02, 0xb4, 0xb2, 0xdd, 0xac, 0x65, 0xe0, 0xe0, 0xcc, 0x9a, 0xf6, 0x5f, + 0x80, 0x73, 0xb7, 0x02, 0xa7, 0xb5, 0xe4, 0x78, 0x8e, 0xdf, 0x24, 0x61, 0xcd, 0xdf, 0xee, 0x6b, + 0x92, 0xa4, 0x1b, 0x10, 0x15, 0xfa, 0x19, 0x10, 0xd9, 0x3b, 0x80, 0xf4, 0x06, 0x84, 0x21, 0x2c, + 0x86, 0x51, 0x97, 0x37, 0x25, 0x96, 0xff, 0x73, 0xd9, 0xd2, 0x75, 0x57, 0xcf, 0x34, 0x13, 0x4f, + 0x5e, 0x80, 0x25, 0x21, 0xfb, 0x1a, 0x64, 0x3a, 0xbf, 0xf5, 0x57, 0xdb, 0xd8, 0xaf, 0xc3, 0x2c, + 0xab, 0x79, 0x32, 0x95, 0x82, 0xfd, 0xd7, 0x2c, 0x98, 0x5e, 0x4f, 0x85, 0x2b, 0x78, 0x96, 0x3d, + 0xec, 0x65, 0xe8, 0xdd, 0x1b, 0xac, 0x14, 0x0b, 0xe8, 0xa9, 0xeb, 0xf7, 0xfe, 0xd4, 0x82, 0x92, + 0x8a, 0x84, 0x72, 0x06, 0x42, 0xed, 0xb2, 0x21, 0xd4, 0x66, 0xea, 0x9d, 0x54, 0x77, 0xf2, 0x64, + 0x5a, 0x74, 0x53, 0x39, 0xde, 0xf7, 0x50, 0x39, 0x25, 0x64, 0xb8, 0x9b, 0xf6, 0x94, 0xe9, 0x9d, + 0x2f, 0x5d, 0xf1, 0x99, 0x4d, 0x90, 0xc2, 0xfd, 0x84, 0xd8, 0x04, 0xa9, 0xfe, 0xe4, 0x70, 0xbf, + 0xba, 0xd6, 0x65, 0x76, 0x2a, 0x7c, 0x2b, 0xb3, 0x9b, 0x67, 0x7b, 0x53, 0xc5, 0xbb, 0xa8, 0x08, + 0x3b, 0x78, 0x51, 0x7a, 0xcc, 0x18, 0x99, 0xf8, 0xc7, 0xa3, 0xd6, 0x24, 0x55, 0xec, 0x1b, 0x30, + 0x9d, 0x1a, 0x30, 0xf4, 0x3a, 0x0c, 0xb7, 0x77, 0x9c, 0x88, 0xa4, 0xec, 0x20, 0x87, 0xeb, 0xb4, + 0xf0, 0xf8, 0xb0, 0x32, 0xa5, 0x2a, 0xb0, 0x12, 0xcc, 0xb1, 0xed, 0xff, 0x69, 0xc1, 0xd0, 0x7a, + 0xd0, 0x3a, 0x8b, 0xc5, 0xf4, 0x96, 0xb1, 0x98, 0x9e, 0xcc, 0x8b, 0xf9, 0x95, 0xbb, 0x8e, 0x56, + 0x53, 0xeb, 0xe8, 0x52, 0x2e, 0x85, 0xde, 0x4b, 0x68, 0x0f, 0xc6, 0x59, 0x24, 0x31, 0x61, 0x97, + 0xf9, 0xaa, 0x71, 0xbf, 0xaa, 0xa4, 0xee, 0x57, 0xd3, 0x1a, 0xaa, 0x76, 0xcb, 0x7a, 0x1e, 0x46, + 0x85, 0x6d, 0x60, 0xda, 0x43, 0x40, 0xe0, 0x62, 0x09, 0xb7, 0x7f, 0xac, 0x08, 0x46, 0xe4, 0x32, + 0xf4, 0xcb, 0x16, 0xcc, 0x87, 0xdc, 0xe5, 0xb2, 0x55, 0xed, 0x84, 0xae, 0xbf, 0xdd, 0x68, 0xee, + 0x90, 0x56, 0xc7, 0x73, 0xfd, 0xed, 0xda, 0xb6, 0x1f, 0xa8, 0xe2, 0x95, 0x07, 0xa4, 0xd9, 0x61, + 0x6f, 0x2e, 0x7d, 0xc2, 0xa4, 0x29, 0xdb, 0x9b, 0xab, 0x47, 0x87, 0x95, 0x79, 0x7c, 0x22, 0xda, + 0xf8, 0x84, 0x7d, 0x41, 0xbf, 0x61, 0xc1, 0x02, 0x0f, 0xe8, 0x35, 0x78, 0xff, 0x7b, 0xdc, 0x46, + 0xeb, 0x92, 0x54, 0x42, 0x64, 0x83, 0x84, 0x7b, 0x4b, 0x6f, 0x88, 0x01, 0x5d, 0xa8, 0x9f, 0xac, + 0x2d, 0x7c, 0xd2, 0xce, 0xd9, 0xff, 0xa6, 0x08, 0x93, 0x74, 0x14, 0x93, 0x30, 0x23, 0xaf, 0x1b, + 0x4b, 0xe2, 0xe9, 0xd4, 0x92, 0x98, 0x35, 0x90, 0x4f, 0x27, 0xc2, 0x48, 0x04, 0xb3, 0x9e, 0x13, + 0xc5, 0x37, 0x88, 0x13, 0xc6, 0x9b, 0xc4, 0xe1, 0x36, 0x29, 0xc5, 0x13, 0xdb, 0xcf, 0x28, 0xf5, + 0xd7, 0xad, 0x34, 0x31, 0xdc, 0x4d, 0x1f, 0xed, 0x03, 0x62, 0x86, 0x35, 0xa1, 0xe3, 0x47, 0xfc, + 0x5b, 0x5c, 0xf1, 0x1e, 0x73, 0xb2, 0x56, 0xe7, 0x44, 0xab, 0xe8, 0x56, 0x17, 0x35, 0x9c, 0xd1, + 0x82, 0x66, 0x30, 0x35, 0x3c, 0xa8, 0xc1, 0xd4, 0x48, 0x1f, 0x37, 0x9c, 0x3d, 0x98, 0x11, 0xb3, + 0xb2, 0xe5, 0x6e, 0x8b, 0x43, 0xfa, 0xcb, 0x29, 0x83, 0x4a, 0x6b, 0x70, 0xab, 0x98, 0x3e, 0xd6, + 0x94, 0xf6, 0x77, 0xc2, 0x39, 0xda, 0x9c, 0xe9, 0x34, 0x12, 0x21, 0x02, 0xd3, 0xbb, 0x9d, 0x4d, + 0xe2, 0x91, 0x58, 0x96, 0x89, 0x46, 0x33, 0xc5, 0x7e, 0xb3, 0x76, 0x22, 0x5b, 0xde, 0x34, 0x49, + 0xe0, 0x34, 0x4d, 0xfb, 0x27, 0x2c, 0x60, 0xa6, 0xd9, 0x67, 0x70, 0xfc, 0x7d, 0xd1, 0x3c, 0xfe, + 0xca, 0x79, 0x1c, 0x28, 0xe7, 0xe4, 0x7b, 0x8d, 0x4f, 0x4b, 0x3d, 0x0c, 0x1e, 0x1c, 0x48, 0xd9, + 0xbf, 0xbf, 0xc4, 0xf5, 0x7f, 0x2c, 0xbe, 0x21, 0x95, 0x07, 0x3a, 0xfa, 0x2e, 0x18, 0x6b, 0x3a, + 0x6d, 0xa7, 0xc9, 0x43, 0x46, 0xe6, 0x6a, 0x7f, 0x8c, 0x4a, 0xf3, 0xcb, 0xa2, 0x06, 0xd7, 0x66, + 0x7c, 0x56, 0x7e, 0xa5, 0x2c, 0xee, 0xab, 0xc1, 0x50, 0x4d, 0xce, 0xed, 0xc2, 0xa4, 0x41, 0xec, + 0x91, 0x5e, 0x7d, 0xbf, 0x8b, 0x1f, 0x17, 0xea, 0xc6, 0xb2, 0x07, 0xb3, 0xbe, 0xf6, 0x9f, 0x32, + 0x47, 0x29, 0x4e, 0x7f, 0xba, 0xdf, 0x81, 0xc0, 0x38, 0xa9, 0x66, 0x7a, 0x9e, 0x22, 0x83, 0xbb, + 0x29, 0xdb, 0x7f, 0xcf, 0x82, 0xc7, 0x75, 0x44, 0x2d, 0x38, 0x40, 0x3f, 0x7d, 0x72, 0x15, 0xc6, + 0x82, 0x36, 0x09, 0x9d, 0xe4, 0x4e, 0x76, 0x45, 0x0e, 0xfa, 0x6d, 0x51, 0x7e, 0x7c, 0x58, 0x39, + 0xaf, 0x53, 0x97, 0xe5, 0x58, 0xd5, 0x44, 0x36, 0x8c, 0xb0, 0xc1, 0x88, 0x44, 0xe0, 0x06, 0x66, + 0x13, 0xc7, 0x9e, 0x56, 0x23, 0x2c, 0x20, 0xf6, 0xf7, 0x58, 0x7c, 0x61, 0xe9, 0x5d, 0x47, 0x1f, + 0xc0, 0xcc, 0x1e, 0xbd, 0xbe, 0xad, 0x3c, 0x68, 0x87, 0x5c, 0x8d, 0x2e, 0xc7, 0xe9, 0xc5, 0x7e, + 0xe3, 0xa4, 0x7d, 0x64, 0x62, 0x39, 0xb5, 0x96, 0x22, 0x86, 0xbb, 0xc8, 0xdb, 0x7f, 0x5c, 0xe0, + 0x3b, 0x91, 0x49, 0x75, 0xcf, 0xc3, 0x68, 0x3b, 0x68, 0x2d, 0xd7, 0xaa, 0x58, 0x8c, 0x90, 0x62, + 0x57, 0x75, 0x5e, 0x8c, 0x25, 0x1c, 0x5d, 0x05, 0x20, 0x0f, 0x62, 0x12, 0xfa, 0x8e, 0xa7, 0x0c, + 0x3f, 0x94, 0xf0, 0xb4, 0xa2, 0x20, 0x58, 0xc3, 0xa2, 0x75, 0xda, 0x61, 0xb0, 0xef, 0xb6, 0x98, + 0x6b, 0x5b, 0xd1, 0xac, 0x53, 0x57, 0x10, 0xac, 0x61, 0xd1, 0xab, 0x72, 0xc7, 0x8f, 0xf8, 0x01, + 0xe8, 0x6c, 0x8a, 0x58, 0x67, 0x63, 0xc9, 0x55, 0xf9, 0x8e, 0x0e, 0xc4, 0x26, 0x2e, 0x5a, 0x84, + 0x91, 0xd8, 0x61, 0xe6, 0x0c, 0xc3, 0xf9, 0x36, 0x70, 0x1b, 0x14, 0x43, 0x8f, 0x21, 0x48, 0x2b, + 0x60, 0x51, 0x11, 0xbd, 0x2b, 0x59, 0x30, 0x67, 0xc9, 0xc2, 0xf8, 0x34, 0x77, 0xd9, 0xea, 0xec, + 0x5b, 0xe7, 0xc1, 0xc2, 0xa8, 0xd5, 0xa0, 0x65, 0x7f, 0x77, 0x09, 0x20, 0x91, 0xf6, 0xd0, 0x87, + 0x5d, 0x2c, 0xe2, 0xa5, 0xde, 0xf2, 0xe1, 0xe9, 0xf1, 0x07, 0xf4, 0xbd, 0x16, 0x8c, 0x3b, 0x9e, + 0x17, 0x34, 0x9d, 0x98, 0x8d, 0x72, 0xa1, 0x37, 0x8b, 0x12, 0xed, 0x2f, 0x26, 0x35, 0x78, 0x17, + 0x5e, 0x95, 0x96, 0x0a, 0x1a, 0xa4, 0x6f, 0x2f, 0xf4, 0x86, 0xd1, 0x67, 0xe5, 0x25, 0x80, 0x2f, + 0x8f, 0xb9, 0xf4, 0x25, 0xa0, 0xc4, 0xb8, 0xb1, 0x26, 0xff, 0xa3, 0x3b, 0x46, 0x50, 0xb0, 0xa1, + 0xfc, 0xf8, 0x07, 0x86, 0xd0, 0xd3, 0x2f, 0x1e, 0x18, 0xaa, 0xeb, 0x4e, 0x38, 0xc3, 0xf9, 0x41, + 0x42, 0x34, 0xe9, 0xba, 0x8f, 0x03, 0xce, 0xfb, 0x30, 0xdd, 0x32, 0x8f, 0x5b, 0xb1, 0x9a, 0x9e, + 0xcb, 0xa3, 0x9b, 0x3a, 0x9d, 0x93, 0x03, 0x36, 0x05, 0xc0, 0x69, 0xc2, 0xa8, 0xce, 0xdd, 0xa1, + 0x6a, 0xfe, 0x56, 0x20, 0x8c, 0x98, 0xed, 0xdc, 0xb9, 0x3c, 0x88, 0x62, 0xb2, 0x47, 0x31, 0x93, + 0x73, 0x74, 0x5d, 0xd4, 0xc5, 0x8a, 0x0a, 0x7a, 0x1b, 0x46, 0x98, 0x8f, 0x6a, 0x54, 0x1e, 0xcb, + 0xd7, 0x03, 0x9a, 0xe1, 0x15, 0x92, 0x4d, 0xc5, 0xfe, 0x46, 0x58, 0x50, 0x40, 0x37, 0x64, 0x0c, + 0x96, 0xa8, 0xe6, 0xdf, 0x89, 0x08, 0x8b, 0xc1, 0x52, 0x5a, 0xfa, 0x74, 0x12, 0x5e, 0x85, 0x97, + 0x67, 0x46, 0x0b, 0x36, 0x6a, 0x52, 0x79, 0x45, 0xfc, 0x97, 0x41, 0x88, 0xcb, 0x90, 0xdf, 0x3d, + 0x33, 0x50, 0x71, 0x32, 0x9c, 0x77, 0x4d, 0x12, 0x38, 0x4d, 0xf3, 0x4c, 0x8f, 0xcf, 0x39, 0x1f, + 0x66, 0xd2, 0x1b, 0xeb, 0x91, 0x1e, 0xd7, 0xbf, 0x3f, 0x04, 0x53, 0xe6, 0x42, 0x40, 0x0b, 0x50, + 0x12, 0x44, 0x54, 0x3c, 0x46, 0xb5, 0xb6, 0xd7, 0x24, 0x00, 0x27, 0x38, 0x2c, 0x1e, 0x25, 0xab, + 0xae, 0xd9, 0x01, 0x26, 0xf1, 0x28, 0x15, 0x04, 0x6b, 0x58, 0x54, 0x88, 0xde, 0x0c, 0x82, 0x58, + 0x1d, 0x05, 0x6a, 0xb5, 0x2c, 0xb1, 0x52, 0x2c, 0xa0, 0xf4, 0x08, 0xd8, 0x25, 0xa1, 0x4f, 0x3c, + 0x53, 0x93, 0xa9, 0x8e, 0x80, 0x9b, 0x3a, 0x10, 0x9b, 0xb8, 0xf4, 0x48, 0x0b, 0x22, 0xb6, 0xfc, + 0x84, 0xa8, 0x9e, 0xd8, 0x55, 0x36, 0xb8, 0x8f, 0xb6, 0x84, 0xa3, 0x2f, 0xc3, 0xe3, 0xca, 0xa5, + 0x1a, 0x73, 0xcd, 0xb0, 0x6c, 0x71, 0xc4, 0xb8, 0x59, 0x3f, 0xbe, 0x9c, 0x8d, 0x86, 0xf3, 0xea, + 0xa3, 0xb7, 0x60, 0x4a, 0x88, 0xc0, 0x92, 0xe2, 0xa8, 0x69, 0xac, 0x70, 0xd3, 0x80, 0xe2, 0x14, + 0x36, 0xaa, 0xc2, 0x0c, 0x2d, 0x61, 0x52, 0xa8, 0xa4, 0xc0, 0x5d, 0xc3, 0xd5, 0x59, 0x7f, 0x33, + 0x05, 0xc7, 0x5d, 0x35, 0xd0, 0x22, 0x4c, 0x73, 0x19, 0x85, 0xde, 0x29, 0xd9, 0x3c, 0x08, 0xdf, + 0x02, 0xb5, 0x11, 0x6e, 0x9b, 0x60, 0x9c, 0xc6, 0x47, 0xd7, 0x60, 0xc2, 0x09, 0x9b, 0x3b, 0x6e, + 0x4c, 0x9a, 0x71, 0x27, 0xe4, 0x4e, 0x07, 0x9a, 0xb5, 0xc7, 0xa2, 0x06, 0xc3, 0x06, 0xa6, 0xfd, + 0x21, 0x9c, 0xcb, 0x70, 0x4b, 0xa2, 0x0b, 0xc7, 0x69, 0xbb, 0xf2, 0x9b, 0x52, 0x16, 0x92, 0x8b, + 0xf5, 0x9a, 0xfc, 0x1a, 0x0d, 0x8b, 0xae, 0x4e, 0xa6, 0x12, 0xd7, 0x22, 0x85, 0xab, 0xd5, 0xb9, + 0x2a, 0x01, 0x38, 0xc1, 0xb1, 0x7f, 0x1d, 0x40, 0x53, 0xe8, 0x0c, 0x60, 0x1f, 0x77, 0x0d, 0x26, + 0x64, 0x78, 0x7b, 0x2d, 0xac, 0xb2, 0xfa, 0xcc, 0xeb, 0x1a, 0x0c, 0x1b, 0x98, 0xb4, 0x6f, 0xbe, + 0x0a, 0x0a, 0x9d, 0xb2, 0xc7, 0x4c, 0x42, 0x42, 0x27, 0x38, 0xe8, 0x25, 0x18, 0x8b, 0x88, 0xb7, + 0x75, 0xcb, 0xf5, 0x77, 0xc5, 0xc2, 0x56, 0x5c, 0xb8, 0x21, 0xca, 0xb1, 0xc2, 0x40, 0x4b, 0x50, + 0xec, 0xb8, 0x2d, 0xb1, 0x94, 0xe5, 0x81, 0x5f, 0xbc, 0x53, 0xab, 0x1e, 0x1f, 0x56, 0x9e, 0xce, + 0x8b, 0xda, 0x4f, 0xaf, 0xf6, 0xd1, 0x3c, 0xdd, 0x7e, 0xb4, 0x72, 0xd6, 0xdb, 0xc0, 0xc8, 0x09, + 0xdf, 0x06, 0xae, 0x02, 0x88, 0xaf, 0x96, 0x6b, 0xb9, 0x98, 0xcc, 0xda, 0x75, 0x05, 0xc1, 0x1a, + 0x16, 0x8a, 0x60, 0xb6, 0x19, 0x12, 0x47, 0xde, 0xa1, 0xb9, 0x83, 0xcd, 0xd8, 0xc3, 0x2b, 0x08, + 0x96, 0xd3, 0xc4, 0x70, 0x37, 0x7d, 0x14, 0xc0, 0x6c, 0x4b, 0x78, 0xf0, 0x27, 0x8d, 0x96, 0x4e, + 0xee, 0xd5, 0xc3, 0x0c, 0x72, 0xd2, 0x84, 0x70, 0x37, 0x6d, 0xf4, 0x15, 0x98, 0x93, 0x85, 0xdd, + 0x41, 0x13, 0xd8, 0x76, 0x29, 0x2e, 0x5d, 0x3a, 0x3a, 0xac, 0xcc, 0x55, 0x73, 0xb1, 0x70, 0x0f, + 0x0a, 0x08, 0xc3, 0x08, 0x7b, 0x4b, 0x8a, 0xca, 0xe3, 0xec, 0x9c, 0x7b, 0x21, 0x5f, 0x19, 0x40, + 0xd7, 0xfa, 0x3c, 0x7b, 0x87, 0x12, 0x26, 0xe5, 0xc9, 0xb3, 0x1c, 0x2b, 0xc4, 0x82, 0x12, 0xda, + 0x82, 0x71, 0xc7, 0xf7, 0x83, 0xd8, 0xe1, 0x22, 0xd4, 0x44, 0xbe, 0xec, 0xa7, 0x11, 0x5e, 0x4c, + 0x6a, 0x70, 0xea, 0xca, 0x4a, 0x55, 0x83, 0x60, 0x9d, 0x30, 0xba, 0x0f, 0xd3, 0xc1, 0x7d, 0xca, + 0x1c, 0xa5, 0x96, 0x22, 0x2a, 0x4f, 0xb2, 0xb6, 0x5e, 0x1b, 0x50, 0x4f, 0x6b, 0x54, 0xd6, 0xb8, + 0x96, 0x49, 0x14, 0xa7, 0x5b, 0x41, 0xf3, 0x86, 0xb6, 0x7a, 0x2a, 0xf1, 0x9d, 0x48, 0xb4, 0xd5, + 0xba, 0x72, 0x9a, 0x05, 0xe1, 0xe0, 0x26, 0xd2, 0x6c, 0xf7, 0x4f, 0xa7, 0x82, 0x70, 0x24, 0x20, + 0xac, 0xe3, 0xa1, 0x1d, 0x98, 0x48, 0x9e, 0xac, 0xc2, 0x88, 0x85, 0x00, 0x1b, 0xbf, 0x7a, 0x75, + 0xb0, 0x8f, 0xab, 0x69, 0x35, 0xf9, 0xcd, 0x41, 0x2f, 0xc1, 0x06, 0xe5, 0xb9, 0x6f, 0x81, 0x71, + 0x6d, 0x62, 0x4f, 0xe2, 0x01, 0x30, 0xf7, 0x16, 0xcc, 0xa4, 0xa7, 0xee, 0x44, 0x1e, 0x04, 0xff, + 0xbb, 0x00, 0xd3, 0x19, 0x2f, 0x57, 0x2c, 0xf2, 0x7f, 0x8a, 0xa1, 0x26, 0x81, 0xfe, 0x4d, 0xb6, + 0x58, 0x18, 0x80, 0x2d, 0x4a, 0x1e, 0x5d, 0xcc, 0xe5, 0xd1, 0x82, 0x15, 0x0e, 0x7d, 0x14, 0x56, + 0x68, 0x9e, 0x3e, 0xc3, 0x03, 0x9d, 0x3e, 0xa7, 0xc0, 0x3e, 0x8d, 0x03, 0x6c, 0x74, 0x80, 0x03, + 0xec, 0x07, 0x0b, 0x30, 0x93, 0xb6, 0xf0, 0x3d, 0x83, 0xf7, 0x8e, 0xb7, 0x8d, 0xf7, 0x8e, 0xec, + 0x3c, 0x1a, 0x69, 0xbb, 0xe3, 0xbc, 0xb7, 0x0f, 0x9c, 0x7a, 0xfb, 0x78, 0x61, 0x20, 0x6a, 0xbd, + 0xdf, 0x41, 0xfe, 0x7e, 0x01, 0x2e, 0xa4, 0xab, 0x2c, 0x7b, 0x8e, 0xbb, 0x77, 0x06, 0x63, 0x73, + 0xdb, 0x18, 0x9b, 0x97, 0x07, 0xf9, 0x1a, 0xd6, 0xb5, 0xdc, 0x01, 0xba, 0x97, 0x1a, 0xa0, 0x85, + 0xc1, 0x49, 0xf6, 0x1e, 0xa5, 0x6f, 0x14, 0xe1, 0x52, 0x66, 0xbd, 0xe4, 0xb9, 0x60, 0xd5, 0x78, + 0x2e, 0xb8, 0x9a, 0x7a, 0x2e, 0xb0, 0x7b, 0xd7, 0x3e, 0x9d, 0xf7, 0x03, 0xe1, 0x7b, 0xcb, 0xc2, + 0x53, 0x3e, 0xe4, 0xdb, 0x81, 0xe1, 0x7b, 0xab, 0x08, 0x61, 0x93, 0xee, 0x9f, 0xa7, 0x37, 0x83, + 0x5f, 0xb7, 0xe0, 0x62, 0xe6, 0xdc, 0x9c, 0x81, 0x5e, 0x7d, 0xdd, 0xd4, 0xab, 0x3f, 0x3f, 0xf0, + 0x6a, 0xcd, 0x51, 0xb4, 0xff, 0x41, 0x31, 0xe7, 0x5b, 0x98, 0x66, 0xf2, 0x36, 0x8c, 0x3b, 0xcd, + 0x26, 0x89, 0xa2, 0xb5, 0xa0, 0xa5, 0xc2, 0x35, 0xbe, 0xcc, 0xa4, 0x8d, 0xa4, 0xf8, 0xf8, 0xb0, + 0x32, 0x97, 0x26, 0x91, 0x80, 0xb1, 0x4e, 0xc1, 0x8c, 0x30, 0x5b, 0x38, 0xd5, 0x08, 0xb3, 0x57, + 0x01, 0xf6, 0x95, 0xbe, 0x22, 0xad, 0xe6, 0xd4, 0x34, 0x19, 0x1a, 0x16, 0xfa, 0x0e, 0x76, 0x0b, + 0xe0, 0xc6, 0x40, 0x7c, 0x29, 0xbe, 0x3a, 0xe0, 0x5c, 0xe9, 0x86, 0x45, 0x3c, 0xc8, 0x83, 0x52, + 0x09, 0x2b, 0x92, 0xe8, 0xdb, 0x60, 0x26, 0xe2, 0x31, 0x84, 0x96, 0x3d, 0x27, 0x62, 0x4e, 0x5c, + 0x62, 0x15, 0xb2, 0xc8, 0x0d, 0x8d, 0x14, 0x0c, 0x77, 0x61, 0xa3, 0x55, 0xf9, 0x51, 0x2c, 0xe0, + 0x11, 0x5f, 0x98, 0xcf, 0x26, 0x1f, 0x24, 0xf2, 0x0e, 0x9d, 0x4f, 0x0f, 0x3f, 0x1b, 0x78, 0xad, + 0xa6, 0xfd, 0x83, 0x43, 0xf0, 0x44, 0x0f, 0x26, 0x86, 0x16, 0x4d, 0x23, 0x80, 0x17, 0xd3, 0xfa, + 0xbf, 0xb9, 0xcc, 0xca, 0x86, 0x42, 0x30, 0xb5, 0x56, 0x0a, 0x1f, 0x79, 0xad, 0x7c, 0x9f, 0xa5, + 0x69, 0x66, 0xb9, 0xa9, 0xf0, 0x17, 0x4f, 0xc8, 0x9c, 0x4f, 0x51, 0x55, 0xbb, 0x95, 0xa1, 0xef, + 0xbc, 0x3a, 0x70, 0x77, 0x06, 0x56, 0x80, 0x9e, 0xed, 0x93, 0xd1, 0xd7, 0x2c, 0x78, 0x3a, 0xb3, + 0xbf, 0x86, 0xd1, 0xd2, 0x02, 0x94, 0x9a, 0xb4, 0x50, 0x73, 0x0c, 0x4d, 0xdc, 0xb3, 0x25, 0x00, + 0x27, 0x38, 0x86, 0x6d, 0x52, 0xa1, 0xaf, 0x6d, 0xd2, 0xbf, 0xb6, 0xa0, 0x6b, 0x01, 0x9f, 0x01, + 0x27, 0xad, 0x99, 0x9c, 0xf4, 0xd3, 0x83, 0xcc, 0x65, 0x0e, 0x13, 0xfd, 0xad, 0x69, 0x78, 0x2c, + 0xc7, 0x13, 0x6c, 0x1f, 0x66, 0xb7, 0x9b, 0xc4, 0x74, 0xb9, 0x15, 0x1f, 0x93, 0xe9, 0x9d, 0xdc, + 0xd3, 0x3f, 0x97, 0x5f, 0x88, 0xbb, 0x50, 0x70, 0x77, 0x13, 0xe8, 0x6b, 0x16, 0x9c, 0x77, 0xee, + 0x47, 0x5d, 0x69, 0x01, 0xc5, 0x9a, 0x79, 0x2d, 0x53, 0x4f, 0xdb, 0x27, 0x8d, 0x20, 0x73, 0x8b, + 0x3b, 0x9f, 0x85, 0x85, 0x33, 0xdb, 0x42, 0x58, 0x44, 0xd8, 0xa5, 0xf2, 0x76, 0x0f, 0xa7, 0xf0, + 0x2c, 0x97, 0x3d, 0xce, 0x53, 0x25, 0x04, 0x2b, 0x3a, 0xe8, 0x2e, 0x94, 0xb6, 0xa5, 0x1f, 0xad, + 0xe0, 0xd9, 0x99, 0x87, 0x60, 0xa6, 0xb3, 0x2d, 0xf7, 0x1d, 0x51, 0x20, 0x9c, 0x90, 0x42, 0x6f, + 0x41, 0xd1, 0xdf, 0x8a, 0x7a, 0x65, 0x36, 0x4a, 0xd9, 0xf2, 0x71, 0xef, 0xfe, 0xf5, 0xd5, 0x06, + 0xa6, 0x15, 0xd1, 0x0d, 0x28, 0x86, 0x9b, 0x2d, 0xf1, 0xb4, 0x90, 0x29, 0x97, 0xe2, 0xa5, 0x6a, + 0xf6, 0x22, 0xe1, 0x94, 0xf0, 0x52, 0x15, 0x53, 0x12, 0xa8, 0x0e, 0xc3, 0xcc, 0x69, 0x4a, 0xbc, + 0x20, 0x64, 0x0a, 0xa4, 0x3d, 0x9c, 0x0f, 0x79, 0x08, 0x00, 0x86, 0x80, 0x39, 0x21, 0xf4, 0x36, + 0x8c, 0x34, 0x59, 0xf2, 0x1f, 0xa1, 0xf8, 0xc9, 0x8e, 0x0d, 0xd5, 0x95, 0x1e, 0x88, 0xbf, 0xa0, + 0xf2, 0x72, 0x2c, 0x28, 0xa0, 0x0d, 0x18, 0x69, 0x92, 0xf6, 0xce, 0x56, 0x24, 0xf4, 0x39, 0x9f, + 0xcd, 0xa4, 0xd5, 0x23, 0xd7, 0x95, 0xa0, 0xca, 0x30, 0xb0, 0xa0, 0x85, 0x3e, 0x0f, 0x85, 0xad, + 0xa6, 0xf0, 0xa4, 0xca, 0x7c, 0x43, 0x30, 0xc3, 0x32, 0x2c, 0x8d, 0x1c, 0x1d, 0x56, 0x0a, 0xab, + 0xcb, 0xb8, 0xb0, 0xd5, 0x44, 0xeb, 0x30, 0xba, 0xc5, 0x7d, 0xeb, 0x45, 0xb4, 0x94, 0xe7, 0xb2, + 0xdd, 0xfe, 0xbb, 0xdc, 0xef, 0xb9, 0x07, 0x90, 0x00, 0x60, 0x49, 0x04, 0x6d, 0x00, 0x6c, 0xa9, + 0x18, 0x01, 0x22, 0x4a, 0xfb, 0xa7, 0x07, 0x89, 0x24, 0x20, 0x94, 0x1b, 0xaa, 0x14, 0x6b, 0x74, + 0xd0, 0x57, 0xa1, 0xe4, 0xc8, 0xe4, 0x73, 0x22, 0xce, 0xca, 0xab, 0x99, 0x9b, 0xb0, 0x77, 0x5e, + 0x3e, 0xbe, 0x82, 0x15, 0x12, 0x4e, 0x88, 0xa2, 0x5d, 0x98, 0xdc, 0x8f, 0xda, 0x3b, 0x44, 0x6e, + 0x5a, 0x16, 0x76, 0x25, 0xe7, 0x90, 0xba, 0x2b, 0x10, 0xdd, 0x30, 0xee, 0x38, 0x5e, 0x17, 0x9f, + 0x61, 0xee, 0x62, 0x77, 0x75, 0x62, 0xd8, 0xa4, 0x4d, 0x07, 0xfd, 0x83, 0x4e, 0xb0, 0x79, 0x10, + 0x13, 0x11, 0xcc, 0x3d, 0x73, 0xd0, 0xdf, 0xe1, 0x28, 0xdd, 0x83, 0x2e, 0x00, 0x58, 0x12, 0xa1, + 0xdb, 0xda, 0x91, 0x89, 0x1d, 0x85, 0x06, 0xe7, 0xf9, 0xdc, 0xe1, 0xe9, 0xea, 0x6f, 0x32, 0x28, + 0x8c, 0x1f, 0x26, 0xa4, 0x18, 0x1f, 0x6c, 0xef, 0x04, 0x71, 0xe0, 0xa7, 0x78, 0xf0, 0x6c, 0x3e, + 0x1f, 0xac, 0x67, 0xe0, 0x77, 0xf3, 0xc1, 0x2c, 0x2c, 0x9c, 0xd9, 0x16, 0x6a, 0xc1, 0x54, 0x3b, + 0x08, 0xe3, 0xfb, 0x41, 0x28, 0x57, 0x15, 0xea, 0x71, 0xb5, 0x37, 0x30, 0x45, 0x8b, 0xcc, 0xfa, + 0xdb, 0x84, 0xe0, 0x14, 0x4d, 0xf4, 0x25, 0x18, 0x8d, 0x9a, 0x8e, 0x47, 0x6a, 0xb7, 0xcb, 0xe7, + 0xf2, 0x0f, 0x98, 0x06, 0x47, 0xc9, 0x59, 0x5d, 0x6c, 0x72, 0x04, 0x0a, 0x96, 0xe4, 0xd0, 0x2a, + 0x0c, 0xb3, 0x0c, 0x21, 0x2c, 0x0e, 0x7d, 0x4e, 0x3c, 0xaf, 0x2e, 0x0b, 0x69, 0xce, 0x87, 0x58, + 0x31, 0xe6, 0xd5, 0xe9, 0x1e, 0x10, 0x12, 0x6e, 0x10, 0x95, 0x2f, 0xe4, 0xef, 0x01, 0x21, 0x18, + 0xdf, 0x6e, 0xf4, 0xda, 0x03, 0x0a, 0x09, 0x27, 0x44, 0x29, 0x17, 0xa6, 0x9c, 0xf3, 0xb1, 0x7c, + 0x2e, 0x9c, 0xcf, 0x37, 0x19, 0x17, 0xa6, 0x5c, 0x93, 0x92, 0xb0, 0xbf, 0x36, 0xda, 0x2d, 0x95, + 0xb0, 0x3b, 0xd1, 0x77, 0x5b, 0x5d, 0x06, 0x03, 0x9f, 0x1b, 0x54, 0x45, 0x73, 0x8a, 0xf2, 0xe8, + 0xd7, 0x2c, 0x78, 0xac, 0x9d, 0xf9, 0x21, 0xe2, 0x88, 0x1f, 0x4c, 0xd3, 0xc3, 0x3f, 0x5d, 0xe5, + 0x8a, 0xc8, 0x86, 0xe3, 0x9c, 0x96, 0xd2, 0x32, 0x7f, 0xf1, 0x23, 0xcb, 0xfc, 0x6b, 0x30, 0xc6, + 0xc4, 0xc8, 0x24, 0x78, 0xdc, 0x40, 0x66, 0x77, 0x4c, 0x58, 0x58, 0x16, 0x15, 0xb1, 0x22, 0x81, + 0xbe, 0xdf, 0x82, 0xa7, 0xd2, 0x5d, 0xc7, 0x84, 0x81, 0x45, 0x20, 0x62, 0x7e, 0x1d, 0x5b, 0x15, + 0xdf, 0xff, 0x54, 0xbd, 0x17, 0xf2, 0x71, 0x3f, 0x04, 0xdc, 0xbb, 0x31, 0x54, 0xcd, 0xb8, 0x0f, + 0x8e, 0x98, 0xef, 0x89, 0x03, 0xdc, 0x09, 0x5f, 0x83, 0x89, 0xbd, 0xa0, 0xe3, 0x4b, 0x9f, 0x18, + 0xe1, 0xf1, 0xcc, 0x74, 0xd7, 0x6b, 0x5a, 0x39, 0x36, 0xb0, 0x52, 0x37, 0xc9, 0xb1, 0x87, 0xbd, + 0x49, 0x9e, 0xed, 0xfd, 0xe4, 0xeb, 0x56, 0x86, 0x60, 0xcd, 0x6f, 0xac, 0x5f, 0x30, 0x6f, 0xac, + 0xcf, 0xa6, 0x6f, 0xac, 0x5d, 0x1a, 0x4a, 0xe3, 0xb2, 0x3a, 0x78, 0xa0, 0xf6, 0x41, 0xa3, 0xf4, + 0xd9, 0x1e, 0x5c, 0xee, 0x77, 0x70, 0x30, 0x13, 0xc6, 0x96, 0x7a, 0xdb, 0x4f, 0x4c, 0x18, 0x5b, + 0xb5, 0x2a, 0x66, 0x90, 0x41, 0x23, 0xeb, 0xd8, 0xff, 0xdd, 0x82, 0x62, 0x3d, 0x68, 0x9d, 0x81, + 0xc6, 0xf5, 0x8b, 0x86, 0xc6, 0xf5, 0x89, 0x9c, 0x14, 0xd6, 0xb9, 0xfa, 0xd5, 0x95, 0x94, 0x7e, + 0xf5, 0xa9, 0x3c, 0x02, 0xbd, 0xb5, 0xa9, 0x3f, 0x5e, 0x04, 0x3d, 0xe1, 0x36, 0xfa, 0xb7, 0x0f, + 0x63, 0x0b, 0x5f, 0xec, 0x95, 0x83, 0x5b, 0x50, 0x66, 0x96, 0x8f, 0xd2, 0xcd, 0xf6, 0xcf, 0x98, + 0x49, 0xfc, 0x3d, 0xe2, 0x6e, 0xef, 0xc4, 0xa4, 0x95, 0xfe, 0x9c, 0xb3, 0x33, 0x89, 0xff, 0xaf, + 0x16, 0x4c, 0xa7, 0x5a, 0x47, 0x5e, 0x96, 0xcf, 0xde, 0x43, 0x6a, 0xda, 0x66, 0xfb, 0x3a, 0xf9, + 0xcd, 0x03, 0xa8, 0xe7, 0x2c, 0xa9, 0x85, 0x62, 0x72, 0xb9, 0x7a, 0xef, 0x8a, 0xb0, 0x86, 0x81, + 0x5e, 0x87, 0xf1, 0x38, 0x68, 0x07, 0x5e, 0xb0, 0x7d, 0x70, 0x93, 0xc8, 0x58, 0x4e, 0xea, 0xd1, + 0x71, 0x23, 0x01, 0x61, 0x1d, 0xcf, 0xfe, 0xc9, 0x22, 0xa4, 0x93, 0xb4, 0x7f, 0x73, 0x4d, 0x7e, + 0x32, 0xd7, 0xe4, 0x37, 0x2c, 0x98, 0xa1, 0xad, 0x33, 0xab, 0x32, 0x79, 0x1c, 0xaa, 0x84, 0x51, + 0x56, 0x8f, 0x84, 0x51, 0xcf, 0x52, 0xde, 0xd5, 0x0a, 0x3a, 0xb1, 0xd0, 0x62, 0x69, 0xcc, 0x89, + 0x96, 0x62, 0x01, 0x15, 0x78, 0x24, 0x0c, 0x85, 0x27, 0x9e, 0x8e, 0x47, 0xc2, 0x10, 0x0b, 0xa8, + 0xcc, 0x27, 0x35, 0x94, 0x93, 0x4f, 0x8a, 0x85, 0x41, 0x14, 0x96, 0x4c, 0x42, 0x30, 0xd1, 0xc2, + 0x20, 0x4a, 0x13, 0xa7, 0x04, 0xc7, 0xfe, 0x99, 0x22, 0x4c, 0xd4, 0x83, 0x56, 0xf2, 0xa0, 0xf4, + 0x9a, 0xf1, 0xa0, 0x74, 0x39, 0xf5, 0xa0, 0x34, 0xa3, 0xe3, 0x7e, 0xf3, 0xf9, 0xe8, 0xe3, 0x7a, + 0x3e, 0xfa, 0x57, 0x16, 0x9b, 0xb5, 0xea, 0x7a, 0x43, 0xe4, 0x3b, 0x7e, 0x05, 0xc6, 0x19, 0x43, + 0x62, 0xae, 0x9f, 0xf2, 0x95, 0x85, 0xa5, 0x35, 0x58, 0x4f, 0x8a, 0xb1, 0x8e, 0x83, 0xae, 0xc0, + 0x58, 0x44, 0x9c, 0xb0, 0xb9, 0xa3, 0x78, 0x9c, 0x78, 0x83, 0xe0, 0x65, 0x58, 0x41, 0xd1, 0x3b, + 0x49, 0x50, 0xc4, 0x62, 0x7e, 0xe6, 0x5e, 0xbd, 0x3f, 0x7c, 0x8b, 0xe4, 0x47, 0x42, 0xb4, 0xef, + 0x01, 0xea, 0xc6, 0x1f, 0xc0, 0xbc, 0xab, 0x62, 0x86, 0x3f, 0x2b, 0x75, 0x85, 0x3e, 0xfb, 0x13, + 0x0b, 0xa6, 0xea, 0x41, 0x8b, 0x6e, 0xdd, 0x3f, 0x4f, 0xfb, 0x54, 0x0f, 0x3f, 0x3a, 0xd2, 0x23, + 0xfc, 0xe8, 0x3f, 0xb0, 0x60, 0xb4, 0x1e, 0xb4, 0xce, 0x40, 0xf7, 0xfd, 0x05, 0x53, 0xf7, 0xfd, + 0x78, 0xce, 0x92, 0xc8, 0x51, 0x77, 0xff, 0x5c, 0x11, 0x26, 0x69, 0x3f, 0x83, 0x6d, 0x39, 0x4b, + 0xc6, 0x88, 0x58, 0x03, 0x8c, 0x08, 0x15, 0x73, 0x03, 0xcf, 0x0b, 0xee, 0xa7, 0x67, 0x6c, 0x95, + 0x95, 0x62, 0x01, 0x45, 0x2f, 0xc1, 0x58, 0x3b, 0x24, 0xfb, 0x6e, 0xd0, 0x89, 0xd2, 0x5e, 0xce, + 0x75, 0x51, 0x8e, 0x15, 0x06, 0xbd, 0x19, 0x45, 0xae, 0xdf, 0x24, 0xd2, 0xee, 0x6b, 0x88, 0xd9, + 0x7d, 0xf1, 0xb8, 0xe2, 0x5a, 0x39, 0x36, 0xb0, 0xd0, 0x3d, 0x28, 0xb1, 0xff, 0x8c, 0xa3, 0x9c, + 0x3c, 0xd3, 0x95, 0x48, 0xe6, 0x21, 0x08, 0xe0, 0x84, 0x16, 0xba, 0x0a, 0x10, 0x4b, 0x0b, 0xb5, + 0x48, 0x38, 0xe1, 0x2b, 0x59, 0x5b, 0xd9, 0xae, 0x45, 0x58, 0xc3, 0x42, 0x2f, 0x42, 0x29, 0x76, + 0x5c, 0xef, 0x96, 0xeb, 0x93, 0x48, 0x58, 0xf8, 0x89, 0x5c, 0x1d, 0xa2, 0x10, 0x27, 0x70, 0x2a, + 0xeb, 0xb0, 0x10, 0x0f, 0x3c, 0x4f, 0xde, 0x18, 0xc3, 0x66, 0xb2, 0xce, 0x2d, 0x55, 0x8a, 0x35, + 0x0c, 0xfb, 0x1a, 0x5c, 0xa8, 0x07, 0xad, 0x7a, 0x10, 0xc6, 0xab, 0x41, 0x78, 0xdf, 0x09, 0x5b, + 0x72, 0xfe, 0x2a, 0x32, 0x6d, 0x04, 0xe5, 0x3d, 0xc3, 0x7c, 0x67, 0x1a, 0x09, 0x21, 0x5e, 0x65, + 0xd2, 0xce, 0x09, 0xdd, 0xb1, 0xfe, 0x7d, 0x81, 0x31, 0x8a, 0x54, 0xf2, 0x46, 0xf4, 0x15, 0x98, + 0x8a, 0xc8, 0x2d, 0xd7, 0xef, 0x3c, 0x90, 0x37, 0xd8, 0x1e, 0xbe, 0x6e, 0x8d, 0x15, 0x1d, 0x93, + 0xeb, 0xc1, 0xcc, 0x32, 0x9c, 0xa2, 0x46, 0x87, 0x30, 0xec, 0xf8, 0x8b, 0xd1, 0x9d, 0x88, 0x84, + 0x22, 0x79, 0x20, 0x1b, 0x42, 0x2c, 0x0b, 0x71, 0x02, 0xa7, 0x4b, 0x86, 0xfd, 0x59, 0x0f, 0x7c, + 0x1c, 0x04, 0xb1, 0x5c, 0x64, 0x2c, 0xfd, 0x94, 0x56, 0x8e, 0x0d, 0x2c, 0xb4, 0x0a, 0x28, 0xea, + 0xb4, 0xdb, 0x1e, 0x7b, 0x98, 0x76, 0xbc, 0xeb, 0x61, 0xd0, 0x69, 0xf3, 0x47, 0x41, 0x91, 0xb9, + 0xa9, 0xd1, 0x05, 0xc5, 0x19, 0x35, 0x28, 0x63, 0xd8, 0x8a, 0xd8, 0x6f, 0x11, 0xe5, 0x81, 0x6b, + 0xa4, 0x1b, 0xac, 0x08, 0x4b, 0x98, 0xfd, 0x5d, 0xec, 0xc0, 0x60, 0x39, 0xdf, 0xe2, 0x4e, 0x48, + 0xd0, 0x1e, 0x4c, 0xb6, 0xd9, 0x51, 0x2e, 0xa2, 0x67, 0x8b, 0x01, 0x7c, 0x38, 0x7b, 0x3e, 0x9e, + 0x03, 0x4a, 0x27, 0x87, 0x4d, 0xea, 0xf6, 0x7f, 0x9a, 0x66, 0x7c, 0xa9, 0xc1, 0xaf, 0x73, 0xa3, + 0xc2, 0x4a, 0x5f, 0xc8, 0xae, 0x73, 0xf9, 0x59, 0x22, 0x93, 0x23, 0x44, 0x58, 0xfa, 0x63, 0x59, + 0x17, 0xbd, 0xc3, 0x5e, 0x53, 0x39, 0x33, 0xe8, 0x97, 0x3c, 0x9a, 0x63, 0x19, 0x0f, 0xa7, 0xa2, + 0x22, 0xd6, 0x88, 0xa0, 0x5b, 0x30, 0x29, 0x52, 0x84, 0x09, 0xd5, 0x4e, 0xd1, 0x50, 0x0c, 0x4c, + 0x62, 0x1d, 0x78, 0x9c, 0x2e, 0xc0, 0x66, 0x65, 0xb4, 0x0d, 0x4f, 0x69, 0xf9, 0x32, 0x33, 0x6c, + 0x4a, 0x39, 0x6f, 0x79, 0xfa, 0xe8, 0xb0, 0xf2, 0xd4, 0x46, 0x2f, 0x44, 0xdc, 0x9b, 0x0e, 0xba, + 0x0d, 0x17, 0x9c, 0x66, 0xec, 0xee, 0x93, 0x2a, 0x71, 0x5a, 0x9e, 0xeb, 0x13, 0x33, 0xec, 0xc7, + 0xc5, 0xa3, 0xc3, 0xca, 0x85, 0xc5, 0x2c, 0x04, 0x9c, 0x5d, 0x0f, 0x7d, 0x01, 0x4a, 0x2d, 0x3f, + 0x12, 0x63, 0x30, 0x62, 0xa4, 0x82, 0x2d, 0x55, 0xd7, 0x1b, 0xea, 0xfb, 0x93, 0x3f, 0x38, 0xa9, + 0x80, 0xb6, 0x61, 0x42, 0x77, 0xed, 0x13, 0x69, 0x84, 0x5f, 0xee, 0x71, 0xeb, 0x37, 0xfc, 0xe1, + 0xb8, 0x5e, 0x53, 0x59, 0x6c, 0x1b, 0xae, 0x72, 0x06, 0x61, 0xf4, 0x36, 0x20, 0x2a, 0xcc, 0xb8, + 0x4d, 0xb2, 0xd8, 0x64, 0x41, 0xcc, 0x99, 0x36, 0x6c, 0xcc, 0x70, 0x3f, 0x42, 0x8d, 0x2e, 0x0c, + 0x9c, 0x51, 0x0b, 0xdd, 0xa0, 0x1c, 0x45, 0x2f, 0x15, 0x06, 0xf6, 0x52, 0x00, 0x2e, 0x57, 0x49, + 0x3b, 0x24, 0x4d, 0x27, 0x26, 0x2d, 0x93, 0x22, 0x4e, 0xd5, 0xa3, 0xe7, 0x8d, 0xca, 0x67, 0x04, + 0xa6, 0x59, 0x78, 0x77, 0x4e, 0x23, 0x7a, 0x77, 0xdc, 0x09, 0xa2, 0x78, 0x9d, 0xc4, 0xf7, 0x83, + 0x70, 0x57, 0xc4, 0xea, 0x4b, 0xc2, 0xc6, 0x26, 0x20, 0xac, 0xe3, 0x51, 0x59, 0x91, 0x3d, 0x67, + 0xd6, 0xaa, 0xec, 0x75, 0x69, 0x2c, 0xd9, 0x27, 0x37, 0x78, 0x31, 0x96, 0x70, 0x89, 0x5a, 0xab, + 0x2f, 0xb3, 0x37, 0xa3, 0x14, 0x6a, 0xad, 0xbe, 0x8c, 0x25, 0x1c, 0x91, 0xee, 0x34, 0xbb, 0x53, + 0xf9, 0xaf, 0x7d, 0xdd, 0x7c, 0x79, 0xc0, 0x4c, 0xbb, 0x3e, 0xcc, 0xa8, 0x04, 0xbf, 0x3c, 0x88, + 0x61, 0x54, 0x9e, 0x66, 0x8b, 0x64, 0xf0, 0x08, 0x88, 0x4a, 0xdb, 0x59, 0x4b, 0x51, 0xc2, 0x5d, + 0xb4, 0x8d, 0x70, 0x32, 0x33, 0x7d, 0xf3, 0x51, 0x2d, 0x40, 0x29, 0xea, 0x6c, 0xb6, 0x82, 0x3d, + 0xc7, 0xf5, 0xd9, 0x13, 0x8f, 0x26, 0x88, 0x34, 0x24, 0x00, 0x27, 0x38, 0x68, 0x15, 0xc6, 0x1c, + 0x71, 0x2d, 0x15, 0x8f, 0x32, 0x99, 0xf1, 0x25, 0xe4, 0xd5, 0x95, 0x8b, 0xd9, 0xf2, 0x1f, 0x56, + 0x75, 0xd1, 0x9b, 0x30, 0x29, 0x5c, 0x20, 0x85, 0xf5, 0xf2, 0x39, 0xd3, 0x5b, 0xa6, 0xa1, 0x03, + 0xb1, 0x89, 0x8b, 0xbe, 0x03, 0xa6, 0x28, 0x95, 0x84, 0xb1, 0x95, 0xcf, 0x0f, 0xc2, 0x11, 0xb5, + 0x3c, 0x23, 0x7a, 0x65, 0x9c, 0x22, 0x86, 0x5a, 0xf0, 0xa4, 0xd3, 0x89, 0x03, 0xa6, 0x0e, 0x36, + 0xd7, 0xff, 0x46, 0xb0, 0x4b, 0x7c, 0xf6, 0x12, 0x33, 0xb6, 0x74, 0xf9, 0xe8, 0xb0, 0xf2, 0xe4, + 0x62, 0x0f, 0x3c, 0xdc, 0x93, 0x0a, 0xba, 0x03, 0xe3, 0x71, 0xe0, 0x09, 0xb7, 0x83, 0xa8, 0xfc, + 0x58, 0x7e, 0x38, 0xac, 0x0d, 0x85, 0xa6, 0x2b, 0x5a, 0x54, 0x55, 0xac, 0xd3, 0x41, 0x1b, 0x7c, + 0x8f, 0xb1, 0x40, 0xc1, 0x24, 0x2a, 0x3f, 0x9e, 0x3f, 0x30, 0x2a, 0x9e, 0xb0, 0xb9, 0x05, 0x45, + 0x4d, 0xac, 0x93, 0x41, 0xd7, 0x61, 0xb6, 0x1d, 0xba, 0x01, 0x5b, 0xd8, 0x4a, 0x15, 0x5f, 0x36, + 0x53, 0x4b, 0xd4, 0xd3, 0x08, 0xb8, 0xbb, 0x0e, 0xbd, 0x88, 0xc9, 0xc2, 0xf2, 0x45, 0x9e, 0xa7, + 0x8c, 0x0b, 0xa7, 0xbc, 0x0c, 0x2b, 0x28, 0x5a, 0x63, 0x7c, 0x99, 0x5f, 0x99, 0xca, 0x73, 0xf9, + 0x71, 0x39, 0xf4, 0xab, 0x15, 0x17, 0x5c, 0xd4, 0x5f, 0x9c, 0x50, 0x98, 0xfb, 0x56, 0x98, 0xed, + 0x62, 0xbc, 0x27, 0xb2, 0x28, 0xff, 0xa7, 0xc3, 0x50, 0x52, 0x7a, 0x57, 0xb4, 0x60, 0xaa, 0xd3, + 0x2f, 0xa6, 0xd5, 0xe9, 0x63, 0x54, 0xfc, 0xd3, 0x35, 0xe8, 0x1b, 0x86, 0x3d, 0x54, 0x21, 0x3f, + 0xdd, 0x98, 0xae, 0x74, 0xe8, 0xeb, 0xfe, 0xa9, 0x5d, 0xa3, 0x8b, 0x03, 0xeb, 0xe5, 0x87, 0x7a, + 0xde, 0xcc, 0x07, 0xcc, 0xa0, 0x4c, 0x6f, 0x9a, 0xed, 0xa0, 0x55, 0xab, 0xa7, 0x53, 0x8a, 0xd6, + 0x69, 0x21, 0xe6, 0x30, 0x76, 0x57, 0xa0, 0x52, 0x02, 0xbb, 0x2b, 0x8c, 0x3e, 0xe4, 0x5d, 0x41, + 0x12, 0xc0, 0x09, 0x2d, 0xe4, 0xc1, 0x6c, 0xd3, 0xcc, 0x06, 0xab, 0x5c, 0x3e, 0x9f, 0xe9, 0x9b, + 0x97, 0xb5, 0xa3, 0xa5, 0x89, 0x5b, 0x4e, 0x53, 0xc1, 0xdd, 0x84, 0xd1, 0x9b, 0x30, 0xf6, 0x41, + 0x10, 0xb1, 0x55, 0x2c, 0x8e, 0x4a, 0xe9, 0x64, 0x37, 0xf6, 0xce, 0xed, 0x06, 0x2b, 0x3f, 0x3e, + 0xac, 0x8c, 0xd7, 0x83, 0x96, 0xfc, 0x8b, 0x55, 0x05, 0xf4, 0x00, 0x2e, 0x18, 0x0c, 0x46, 0x75, + 0x17, 0x06, 0xef, 0xee, 0x53, 0xa2, 0xb9, 0x0b, 0xb5, 0x2c, 0x4a, 0x38, 0xbb, 0x01, 0xfb, 0x17, + 0xb9, 0x76, 0x59, 0xe8, 0xa0, 0x48, 0xd4, 0xf1, 0xce, 0x22, 0x17, 0xd4, 0x8a, 0xa1, 0x1e, 0x7b, + 0xe8, 0x17, 0x8c, 0x5f, 0xb5, 0xd8, 0x0b, 0xc6, 0x06, 0xd9, 0x6b, 0x7b, 0x4e, 0x7c, 0x16, 0x7e, + 0x04, 0xef, 0xc0, 0x58, 0x2c, 0x5a, 0xeb, 0x95, 0xbe, 0x4a, 0xeb, 0x14, 0x7b, 0xc5, 0x51, 0xe7, + 0xab, 0x2c, 0xc5, 0x8a, 0x8c, 0xfd, 0xcf, 0xf9, 0x0c, 0x48, 0xc8, 0x19, 0xa8, 0x2a, 0xaa, 0xa6, + 0xaa, 0xa2, 0xd2, 0xe7, 0x0b, 0x72, 0x54, 0x16, 0xff, 0xcc, 0xec, 0x37, 0xbb, 0xca, 0x7c, 0xd2, + 0x9f, 0xce, 0xec, 0x1f, 0xb6, 0xe0, 0x7c, 0x96, 0x35, 0x08, 0x95, 0x89, 0xf8, 0x45, 0x4a, 0x3d, + 0x25, 0xaa, 0x11, 0xbc, 0x2b, 0xca, 0xb1, 0xc2, 0x18, 0x38, 0x59, 0xc7, 0xc9, 0x22, 0xca, 0xdd, + 0x06, 0x33, 0x71, 0x30, 0x7a, 0x8b, 0x3b, 0x06, 0x59, 0x2a, 0xb3, 0xef, 0xc9, 0x9c, 0x82, 0xec, + 0x9f, 0x2a, 0xc0, 0x79, 0xfe, 0x16, 0xb0, 0xb8, 0x1f, 0xb8, 0xad, 0x7a, 0xd0, 0x12, 0x6e, 0x52, + 0xef, 0xc2, 0x44, 0x5b, 0xbb, 0xfd, 0xf6, 0x8a, 0x69, 0xa5, 0xdf, 0x92, 0x93, 0x5b, 0x88, 0x5e, + 0x8a, 0x0d, 0x5a, 0xa8, 0x05, 0x13, 0x64, 0xdf, 0x6d, 0x2a, 0x85, 0x72, 0xe1, 0xc4, 0x2c, 0x5d, + 0xb5, 0xb2, 0xa2, 0xd1, 0xc1, 0x06, 0xd5, 0x47, 0x90, 0xe8, 0xcd, 0xfe, 0x11, 0x0b, 0x1e, 0xcf, + 0x89, 0x80, 0x45, 0x9b, 0xbb, 0xcf, 0x5e, 0x5d, 0x44, 0xce, 0x28, 0xd5, 0x1c, 0x7f, 0x8b, 0xc1, + 0x02, 0x8a, 0xbe, 0x04, 0xc0, 0xdf, 0x52, 0xa8, 0x50, 0x2e, 0x3e, 0x7d, 0xb0, 0xc8, 0x30, 0x5a, + 0xf8, 0x10, 0x59, 0x1f, 0x6b, 0xb4, 0xec, 0x9f, 0x28, 0xc2, 0x30, 0xd3, 0xdd, 0xa3, 0x55, 0x18, + 0xdd, 0xe1, 0xf1, 0xb6, 0x07, 0x09, 0xed, 0x9d, 0xdc, 0x6e, 0x78, 0x01, 0x96, 0x95, 0xd1, 0x1a, + 0x9c, 0x13, 0xae, 0x78, 0x55, 0xe2, 0x39, 0x07, 0xf2, 0x92, 0xcc, 0xf3, 0x2c, 0xa9, 0xcc, 0x62, + 0xb5, 0x6e, 0x14, 0x9c, 0x55, 0x0f, 0xbd, 0xd5, 0x15, 0x65, 0x93, 0x47, 0x2a, 0x57, 0x22, 0x75, + 0x9f, 0x48, 0x9b, 0x6f, 0xc2, 0x64, 0xbb, 0x4b, 0x1d, 0x30, 0x9c, 0x88, 0xfb, 0xa6, 0x0a, 0xc0, + 0xc4, 0x65, 0x66, 0x20, 0x1d, 0x66, 0xf4, 0xb2, 0xb1, 0x13, 0x92, 0x68, 0x27, 0xf0, 0x5a, 0x22, + 0xf5, 0x79, 0x62, 0x06, 0x92, 0x82, 0xe3, 0xae, 0x1a, 0x94, 0xca, 0x96, 0xe3, 0x7a, 0x9d, 0x90, + 0x24, 0x54, 0x46, 0x4c, 0x2a, 0xab, 0x29, 0x38, 0xee, 0xaa, 0x41, 0xd7, 0xd1, 0x05, 0x91, 0x37, + 0x5b, 0x06, 0x68, 0x50, 0xb6, 0x3d, 0xa3, 0xd2, 0x51, 0xa3, 0x47, 0xd0, 0x20, 0x61, 0x5b, 0xa1, + 0x32, 0x6f, 0x6b, 0x59, 0x59, 0x85, 0x8b, 0x86, 0xa4, 0xf2, 0x30, 0xd9, 0x9b, 0x7f, 0xd7, 0x82, + 0x73, 0x19, 0x36, 0x84, 0x9c, 0x55, 0x6d, 0xbb, 0x51, 0xac, 0xd2, 0xfb, 0x68, 0xac, 0x8a, 0x97, + 0x63, 0x85, 0x41, 0xf7, 0x03, 0x67, 0x86, 0x69, 0x06, 0x28, 0x6c, 0x74, 0x04, 0xf4, 0x64, 0x0c, + 0x10, 0x5d, 0x86, 0xa1, 0x4e, 0x44, 0x42, 0x99, 0xf6, 0x58, 0xf2, 0x6f, 0xa6, 0x60, 0x64, 0x10, + 0x2a, 0x51, 0x6e, 0x2b, 0xdd, 0x9e, 0x26, 0x51, 0x72, 0xed, 0x1e, 0x87, 0xd9, 0x3f, 0x50, 0x84, + 0x8b, 0xb9, 0x96, 0xc1, 0xb4, 0x4b, 0x7b, 0x81, 0xef, 0xc6, 0x81, 0x7a, 0x17, 0xe2, 0xd1, 0x6d, + 0x48, 0x7b, 0x67, 0x4d, 0x94, 0x63, 0x85, 0x81, 0x9e, 0x95, 0x59, 0xf1, 0xd3, 0x09, 0x8c, 0x96, + 0xaa, 0x46, 0x62, 0xfc, 0x41, 0x33, 0x91, 0x3d, 0x03, 0x43, 0xed, 0x20, 0xf0, 0xd2, 0xcc, 0x88, + 0x76, 0x37, 0x08, 0x3c, 0xcc, 0x80, 0xe8, 0x33, 0x62, 0x1c, 0x52, 0x0f, 0x21, 0xd8, 0x69, 0x05, + 0x91, 0x36, 0x18, 0xcf, 0xc3, 0xe8, 0x2e, 0x39, 0x08, 0x5d, 0x7f, 0x3b, 0xfd, 0x40, 0x76, 0x93, + 0x17, 0x63, 0x09, 0x37, 0xf3, 0x77, 0x8c, 0x9e, 0x46, 0xfe, 0x0e, 0x7d, 0x66, 0xc7, 0xfa, 0x1e, + 0x6d, 0xdf, 0x57, 0x84, 0x69, 0xbc, 0x54, 0xfd, 0xe6, 0x44, 0xdc, 0xe9, 0x9e, 0x88, 0xd3, 0xce, + 0xea, 0xd6, 0x7f, 0x36, 0x7e, 0xce, 0x82, 0x69, 0x16, 0xe3, 0x5a, 0x44, 0x67, 0x71, 0x03, 0xff, + 0x0c, 0x44, 0xb7, 0x67, 0x60, 0x38, 0xa4, 0x8d, 0xa6, 0x53, 0x35, 0xb1, 0x9e, 0x60, 0x0e, 0x43, + 0x4f, 0xc2, 0x10, 0xeb, 0x02, 0x9d, 0xbc, 0x09, 0x9e, 0xe5, 0xa2, 0xea, 0xc4, 0x0e, 0x66, 0xa5, + 0xcc, 0x4d, 0x16, 0x93, 0xb6, 0xe7, 0xf2, 0x4e, 0x27, 0x0a, 0xf5, 0x4f, 0x86, 0x9b, 0x6c, 0x66, + 0xd7, 0x3e, 0x9a, 0x9b, 0x6c, 0x36, 0xc9, 0xde, 0xd7, 0xa2, 0xff, 0x51, 0x80, 0x4b, 0x99, 0xf5, + 0x06, 0x76, 0x93, 0xed, 0x5d, 0xfb, 0x74, 0xec, 0x1c, 0xb2, 0xcd, 0x0f, 0x8a, 0x67, 0x68, 0x7e, + 0x30, 0x34, 0xa8, 0xe4, 0x38, 0x3c, 0x80, 0xf7, 0x6a, 0xe6, 0x90, 0x7d, 0x42, 0xbc, 0x57, 0x33, + 0xfb, 0x96, 0x73, 0xad, 0xfb, 0xd3, 0x42, 0xce, 0xb7, 0xb0, 0x0b, 0xde, 0x15, 0xca, 0x67, 0x18, + 0x30, 0x12, 0x92, 0xf0, 0x04, 0xe7, 0x31, 0xbc, 0x0c, 0x2b, 0x28, 0x72, 0x35, 0x3f, 0x50, 0xde, + 0xb5, 0x37, 0x4f, 0xb4, 0x65, 0xe6, 0xcd, 0xf7, 0x0f, 0x3d, 0x94, 0x4c, 0xda, 0x27, 0x74, 0x4d, + 0xbb, 0x94, 0x17, 0x07, 0xbf, 0x94, 0x4f, 0x64, 0x5f, 0xc8, 0xd1, 0x22, 0x4c, 0xef, 0xb9, 0x3e, + 0x65, 0x9b, 0x07, 0xa6, 0x28, 0xaa, 0xc2, 0x22, 0xac, 0x99, 0x60, 0x9c, 0xc6, 0x9f, 0x7b, 0x13, + 0x26, 0x1f, 0x5e, 0x8b, 0xf8, 0x8d, 0x22, 0x3c, 0xd1, 0x63, 0xdb, 0x73, 0x5e, 0x6f, 0xcc, 0x81, + 0xc6, 0xeb, 0xbb, 0xe6, 0xa1, 0x0e, 0xe7, 0xb7, 0x3a, 0x9e, 0x77, 0xc0, 0x2c, 0xfc, 0x48, 0x4b, + 0x62, 0x08, 0x59, 0x51, 0x05, 0xb0, 0x5f, 0xcd, 0xc0, 0xc1, 0x99, 0x35, 0xd1, 0xdb, 0x80, 0x02, + 0x91, 0xb2, 0x36, 0x09, 0x90, 0xc3, 0x06, 0xbe, 0x98, 0x6c, 0xc6, 0xdb, 0x5d, 0x18, 0x38, 0xa3, + 0x16, 0x15, 0xfa, 0xe9, 0xa9, 0x74, 0xa0, 0xba, 0x95, 0x12, 0xfa, 0xb1, 0x0e, 0xc4, 0x26, 0x2e, + 0xba, 0x0e, 0xb3, 0xce, 0xbe, 0xe3, 0xf2, 0x80, 0x89, 0x92, 0x00, 0x97, 0xfa, 0x95, 0xee, 0x6e, + 0x31, 0x8d, 0x80, 0xbb, 0xeb, 0xa4, 0x1c, 0x51, 0x47, 0xf2, 0x1d, 0x51, 0x7b, 0xf3, 0xc5, 0x7e, + 0xaa, 0x58, 0xfb, 0x3f, 0x5b, 0xf4, 0xf8, 0xca, 0x48, 0x3b, 0x4f, 0xc7, 0x41, 0xa9, 0x14, 0x35, + 0x9f, 0x50, 0x35, 0x0e, 0xcb, 0x3a, 0x10, 0x9b, 0xb8, 0x7c, 0x41, 0x44, 0x89, 0xa3, 0x82, 0x21, + 0xba, 0x0b, 0xa7, 0x6f, 0x85, 0x81, 0xbe, 0x0c, 0xa3, 0x2d, 0x77, 0xdf, 0x8d, 0x82, 0x50, 0x6c, + 0x96, 0x13, 0x1a, 0x93, 0x27, 0x7c, 0xb0, 0xca, 0xc9, 0x60, 0x49, 0xcf, 0xfe, 0xbe, 0x02, 0x4c, + 0xca, 0x16, 0xdf, 0xe9, 0x04, 0xb1, 0x73, 0x06, 0xc7, 0xf2, 0x75, 0xe3, 0x58, 0xfe, 0x4c, 0x2f, + 0xcf, 0x77, 0xd6, 0xa5, 0xdc, 0xe3, 0xf8, 0x76, 0xea, 0x38, 0x7e, 0xae, 0x3f, 0xa9, 0xde, 0xc7, + 0xf0, 0xbf, 0xb0, 0x60, 0xd6, 0xc0, 0x3f, 0x83, 0xd3, 0x60, 0xd5, 0x3c, 0x0d, 0x9e, 0xee, 0xfb, + 0x0d, 0x39, 0xa7, 0xc0, 0xd7, 0x0b, 0xa9, 0xbe, 0x33, 0xee, 0xff, 0x01, 0x0c, 0xed, 0x38, 0x61, + 0xab, 0x57, 0xd8, 0xdf, 0xae, 0x4a, 0xf3, 0x37, 0x9c, 0xb0, 0xc5, 0x79, 0xf8, 0x4b, 0x2a, 0xf7, + 0xa8, 0x13, 0xb6, 0xfa, 0xfa, 0xe5, 0xb0, 0xa6, 0xd0, 0x35, 0x18, 0x89, 0x9a, 0x41, 0x5b, 0xd9, + 0xe4, 0x5d, 0xe6, 0x79, 0x49, 0x69, 0xc9, 0xf1, 0x61, 0x05, 0x99, 0xcd, 0xd1, 0x62, 0x2c, 0xf0, + 0xe7, 0xb6, 0xa1, 0xa4, 0x9a, 0x7e, 0xa4, 0x1e, 0x15, 0xbf, 0x55, 0x84, 0x73, 0x19, 0xeb, 0x02, + 0x45, 0xc6, 0x68, 0xbd, 0x32, 0xe0, 0x72, 0xfa, 0x88, 0xe3, 0x15, 0xb1, 0x1b, 0x4b, 0x4b, 0xcc, + 0xff, 0xc0, 0x8d, 0xde, 0x89, 0x48, 0xba, 0x51, 0x5a, 0xd4, 0xbf, 0x51, 0xda, 0xd8, 0x99, 0x0d, + 0x35, 0x6d, 0x48, 0xf5, 0xf4, 0x91, 0xce, 0xe9, 0x1f, 0x15, 0xe1, 0x7c, 0x56, 0xc0, 0x0c, 0xf4, + 0x9d, 0xa9, 0x24, 0x42, 0xaf, 0x0d, 0x1a, 0x6a, 0x83, 0x67, 0x16, 0x12, 0x11, 0xc6, 0xe6, 0xcd, + 0xb4, 0x42, 0x7d, 0x87, 0x59, 0xb4, 0xc9, 0x1c, 0xe5, 0x42, 0x9e, 0xfc, 0x49, 0x6e, 0xf1, 0xcf, + 0x0d, 0xdc, 0x01, 0x91, 0x35, 0x2a, 0x4a, 0x39, 0xca, 0xc9, 0xe2, 0xfe, 0x8e, 0x72, 0xb2, 0xe5, + 0x39, 0x17, 0xc6, 0xb5, 0xaf, 0x79, 0xa4, 0x33, 0xbe, 0x4b, 0x4f, 0x14, 0xad, 0xdf, 0x8f, 0x74, + 0xd6, 0x7f, 0xc4, 0x82, 0x94, 0x25, 0x9c, 0x52, 0x49, 0x59, 0xb9, 0x2a, 0xa9, 0xcb, 0x30, 0x14, + 0x06, 0x1e, 0x49, 0xe7, 0x95, 0xc1, 0x81, 0x47, 0x30, 0x83, 0x50, 0x8c, 0x38, 0x51, 0x48, 0x4c, + 0xe8, 0x97, 0x2d, 0x71, 0x8d, 0x7a, 0x06, 0x86, 0x3d, 0xb2, 0x4f, 0xa4, 0x36, 0x42, 0xf1, 0xe4, + 0x5b, 0xb4, 0x10, 0x73, 0x98, 0xfd, 0x73, 0x43, 0xf0, 0x54, 0x4f, 0x57, 0x53, 0x7a, 0x65, 0xd9, + 0x76, 0x62, 0x72, 0xdf, 0x39, 0x48, 0x47, 0xbd, 0xbe, 0xce, 0x8b, 0xb1, 0x84, 0x33, 0xbb, 0x5d, + 0x1e, 0x38, 0x33, 0xa5, 0xc0, 0x13, 0xf1, 0x32, 0x05, 0xd4, 0x54, 0x1c, 0x15, 0x4f, 0x43, 0x71, + 0x74, 0x15, 0x20, 0x8a, 0xbc, 0x15, 0x9f, 0x4a, 0x60, 0x2d, 0x61, 0x10, 0x9c, 0x04, 0x58, 0x6d, + 0xdc, 0x12, 0x10, 0xac, 0x61, 0xa1, 0x2a, 0xcc, 0xb4, 0xc3, 0x20, 0xe6, 0xfa, 0xd0, 0x2a, 0x37, + 0x45, 0x19, 0x36, 0xbd, 0xfc, 0xea, 0x29, 0x38, 0xee, 0xaa, 0x81, 0x5e, 0x87, 0x71, 0xe1, 0xf9, + 0x57, 0x0f, 0x02, 0x4f, 0xa8, 0x6a, 0x94, 0x61, 0x43, 0x23, 0x01, 0x61, 0x1d, 0x4f, 0xab, 0xc6, + 0x94, 0xac, 0xa3, 0x99, 0xd5, 0xb8, 0xa2, 0x55, 0xc3, 0x4b, 0x05, 0xcf, 0x19, 0x1b, 0x28, 0x78, + 0x4e, 0xa2, 0xbc, 0x2a, 0x0d, 0xfc, 0xae, 0x04, 0x7d, 0xd5, 0x3d, 0x3f, 0x3d, 0x04, 0xe7, 0xc4, + 0xc2, 0x79, 0xd4, 0xcb, 0xe5, 0x4e, 0xf7, 0x72, 0x39, 0x0d, 0xf5, 0xd6, 0x37, 0xd7, 0xcc, 0x59, + 0xaf, 0x99, 0x5f, 0x2c, 0xc2, 0x08, 0x9f, 0x8a, 0x33, 0x90, 0xe1, 0x57, 0x85, 0xd2, 0xaf, 0x47, + 0xd8, 0x18, 0xde, 0x97, 0xf9, 0xaa, 0x13, 0x3b, 0xfc, 0xfc, 0x52, 0x6c, 0x34, 0x51, 0x0f, 0xa2, + 0x79, 0x83, 0xd1, 0xce, 0xa5, 0xb4, 0x5a, 0xc0, 0x69, 0x68, 0x6c, 0xf7, 0x2b, 0x00, 0x11, 0x4b, + 0x9c, 0x4f, 0x69, 0x88, 0x00, 0x44, 0x2f, 0xf4, 0x68, 0xbd, 0xa1, 0x90, 0x79, 0x1f, 0x92, 0x25, + 0xa8, 0x00, 0x58, 0xa3, 0x38, 0xf7, 0x06, 0x94, 0x14, 0x72, 0x3f, 0x15, 0xc0, 0x84, 0x7e, 0xea, + 0x7d, 0x11, 0xa6, 0x53, 0x6d, 0x9d, 0x48, 0x83, 0xf0, 0xf3, 0x16, 0x4c, 0xf3, 0x2e, 0xaf, 0xf8, + 0xfb, 0x62, 0xb3, 0x7f, 0x08, 0xe7, 0xbd, 0x8c, 0x4d, 0x27, 0x66, 0x74, 0xf0, 0x4d, 0xaa, 0x34, + 0x06, 0x59, 0x50, 0x9c, 0xd9, 0x06, 0xba, 0x02, 0x63, 0xdc, 0xd1, 0xc5, 0xf1, 0x84, 0x73, 0xc2, + 0x04, 0x4f, 0x44, 0xc1, 0xcb, 0xb0, 0x82, 0xda, 0xbf, 0x6d, 0xc1, 0x2c, 0xef, 0xf9, 0x4d, 0x72, + 0xa0, 0x6e, 0xc7, 0x1f, 0x67, 0xdf, 0x45, 0x9e, 0x8d, 0x42, 0x4e, 0x9e, 0x0d, 0xfd, 0xd3, 0x8a, + 0x3d, 0x3f, 0xed, 0xa7, 0x2c, 0x10, 0x2b, 0xf0, 0x0c, 0xee, 0x81, 0xdf, 0x6a, 0xde, 0x03, 0xe7, + 0xf2, 0x17, 0x75, 0xce, 0x05, 0xf0, 0x4f, 0x2c, 0x98, 0xe1, 0x08, 0xc9, 0x43, 0xe4, 0xc7, 0x3a, + 0x0f, 0x83, 0x24, 0x7f, 0x53, 0xd9, 0xb6, 0xb3, 0x3f, 0xca, 0x98, 0xac, 0xa1, 0x9e, 0x93, 0xd5, + 0x92, 0x1b, 0xe8, 0x04, 0x49, 0x0d, 0x4f, 0x1c, 0x1a, 0xd6, 0xfe, 0x43, 0x0b, 0x10, 0x6f, 0xc6, + 0x38, 0x97, 0xe9, 0x69, 0xc7, 0x4a, 0x35, 0x4d, 0x50, 0xc2, 0x6a, 0x14, 0x04, 0x6b, 0x58, 0xa7, + 0x32, 0x3c, 0xa9, 0xd7, 0xe4, 0x62, 0xff, 0xd7, 0xe4, 0x13, 0x8c, 0xe8, 0x5f, 0x1f, 0x82, 0xb4, + 0x25, 0x34, 0xba, 0x0b, 0x13, 0x4d, 0xa7, 0xed, 0x6c, 0xba, 0x9e, 0x1b, 0xbb, 0x24, 0xea, 0x65, + 0x86, 0xb2, 0xac, 0xe1, 0x89, 0x77, 0x42, 0xad, 0x04, 0x1b, 0x74, 0xd0, 0x3c, 0x40, 0x3b, 0x74, + 0xf7, 0x5d, 0x8f, 0x6c, 0xb3, 0xab, 0x30, 0x73, 0x87, 0xe2, 0xb6, 0x15, 0xb2, 0x14, 0x6b, 0x18, + 0x19, 0xee, 0x33, 0xc5, 0x47, 0xe7, 0x3e, 0x33, 0x74, 0x42, 0xf7, 0x99, 0xe1, 0x81, 0xdc, 0x67, + 0x30, 0x3c, 0x26, 0xcf, 0x6e, 0xfa, 0x7f, 0xd5, 0xf5, 0x88, 0x10, 0xd8, 0xb8, 0x93, 0xd4, 0xdc, + 0xd1, 0x61, 0xe5, 0x31, 0x9c, 0x89, 0x81, 0x73, 0x6a, 0xa2, 0x2f, 0x41, 0xd9, 0xf1, 0xbc, 0xe0, + 0xbe, 0x1a, 0xb5, 0x95, 0xa8, 0xe9, 0x78, 0x49, 0xa4, 0xf4, 0xb1, 0xa5, 0x27, 0x8f, 0x0e, 0x2b, + 0xe5, 0xc5, 0x1c, 0x1c, 0x9c, 0x5b, 0xdb, 0xde, 0x85, 0x73, 0x0d, 0x12, 0xca, 0x3c, 0xa9, 0x6a, + 0x8b, 0x6d, 0x40, 0x29, 0x4c, 0x31, 0x95, 0x81, 0x62, 0x95, 0x68, 0x51, 0x2c, 0x25, 0x13, 0x49, + 0x08, 0xd9, 0x7f, 0x6c, 0xc1, 0xa8, 0xb0, 0xae, 0x3e, 0x03, 0x59, 0x66, 0xd1, 0xd0, 0x47, 0x56, + 0xb2, 0x19, 0x2f, 0xeb, 0x4c, 0xae, 0x26, 0xb2, 0x96, 0xd2, 0x44, 0x3e, 0xdd, 0x8b, 0x48, 0x6f, + 0x1d, 0xe4, 0x0f, 0x15, 0x61, 0xca, 0xb4, 0x2c, 0x3f, 0x83, 0x21, 0x58, 0x87, 0xd1, 0x48, 0xb8, + 0x31, 0x14, 0xf2, 0xed, 0x57, 0xd3, 0x93, 0x98, 0x58, 0xb9, 0x08, 0xc7, 0x05, 0x49, 0x24, 0xd3, + 0x3f, 0xa2, 0xf8, 0x08, 0xfd, 0x23, 0xfa, 0x19, 0xf7, 0x0f, 0x9d, 0x86, 0x71, 0xbf, 0xfd, 0x4b, + 0x8c, 0xf9, 0xeb, 0xe5, 0x67, 0x20, 0x17, 0x5c, 0x37, 0x8f, 0x09, 0xbb, 0xc7, 0xca, 0x12, 0x9d, + 0xca, 0x91, 0x0f, 0xfe, 0xb1, 0x05, 0xe3, 0x02, 0xf1, 0x0c, 0xba, 0xfd, 0x6d, 0x66, 0xb7, 0x9f, + 0xe8, 0xd1, 0xed, 0x9c, 0xfe, 0xfe, 0xdd, 0x82, 0xea, 0x6f, 0x3d, 0x08, 0xe3, 0x81, 0x32, 0x67, + 0x8c, 0xd1, 0xdb, 0x60, 0xd0, 0x0c, 0x3c, 0x71, 0x98, 0x3f, 0x99, 0xf8, 0xc9, 0xf2, 0xf2, 0x63, + 0xed, 0x37, 0x56, 0xd8, 0xcc, 0x8d, 0x33, 0x08, 0x63, 0x71, 0x80, 0x26, 0x6e, 0x9c, 0x41, 0x18, + 0x63, 0x06, 0x41, 0x2d, 0x80, 0xd8, 0x09, 0xb7, 0x49, 0x4c, 0xcb, 0x84, 0xcb, 0x7d, 0xfe, 0x2e, + 0xec, 0xc4, 0xae, 0x37, 0xef, 0xfa, 0x71, 0x14, 0x87, 0xf3, 0x35, 0x3f, 0xbe, 0x1d, 0xf2, 0xbb, + 0x81, 0xe6, 0xf8, 0xaa, 0x68, 0x61, 0x8d, 0xae, 0xf4, 0xbc, 0x62, 0x6d, 0x0c, 0x9b, 0x0f, 0x85, + 0xeb, 0xa2, 0x1c, 0x2b, 0x0c, 0xfb, 0x0d, 0xc6, 0x93, 0xd9, 0x00, 0x9d, 0xcc, 0x27, 0xf5, 0x37, + 0xc6, 0xd4, 0xd0, 0xb2, 0x57, 0x82, 0xaa, 0xee, 0xf9, 0xda, 0x9b, 0x05, 0xd2, 0x86, 0x75, 0xb7, + 0x80, 0xc4, 0x3d, 0x16, 0x7d, 0x7b, 0xd7, 0xfb, 0xf1, 0xcb, 0x7d, 0x78, 0xe9, 0x09, 0x5e, 0x8c, + 0x59, 0xf8, 0x55, 0x16, 0xa6, 0xb2, 0x56, 0x4f, 0xe7, 0x36, 0x59, 0x96, 0x00, 0x9c, 0xe0, 0xa0, + 0x05, 0x71, 0xb3, 0xe4, 0xfa, 0xb9, 0x27, 0x52, 0x37, 0x4b, 0xf9, 0xf9, 0xda, 0xd5, 0xf2, 0x15, + 0x18, 0x57, 0xf9, 0xe2, 0xea, 0x3c, 0xed, 0x96, 0x08, 0x40, 0xb0, 0x92, 0x14, 0x63, 0x1d, 0x07, + 0x6d, 0xc0, 0x74, 0xc4, 0x93, 0xd9, 0x49, 0x67, 0x28, 0xa1, 0x37, 0x78, 0x41, 0xbe, 0x3b, 0x37, + 0x4c, 0xf0, 0x31, 0x2b, 0xe2, 0x9b, 0x55, 0xba, 0x4f, 0xa5, 0x49, 0xa0, 0xb7, 0x60, 0xca, 0xd3, + 0x93, 0x7a, 0xd7, 0x85, 0x5a, 0x41, 0x99, 0x65, 0x1a, 0x29, 0xbf, 0xeb, 0x38, 0x85, 0x4d, 0x85, + 0x00, 0xbd, 0x44, 0x44, 0x2f, 0x73, 0xfc, 0x6d, 0x12, 0x89, 0x6c, 0x57, 0x4c, 0x08, 0xb8, 0x95, + 0x83, 0x83, 0x73, 0x6b, 0xa3, 0x6b, 0x30, 0x21, 0x3f, 0x5f, 0x73, 0x0e, 0x4c, 0x8c, 0x7f, 0x35, + 0x18, 0x36, 0x30, 0xd1, 0x7d, 0xb8, 0x20, 0xff, 0x6f, 0x84, 0xce, 0xd6, 0x96, 0xdb, 0x14, 0xbe, + 0x99, 0xe3, 0x8c, 0xc4, 0xa2, 0xf4, 0x84, 0x58, 0xc9, 0x42, 0x3a, 0x3e, 0xac, 0x5c, 0x16, 0xa3, + 0x96, 0x09, 0x67, 0x93, 0x98, 0x4d, 0x1f, 0xad, 0xc1, 0xb9, 0x1d, 0xe2, 0x78, 0xf1, 0xce, 0xf2, + 0x0e, 0x69, 0xee, 0xca, 0x4d, 0xc4, 0x5c, 0x0e, 0x35, 0x93, 0xd9, 0x1b, 0xdd, 0x28, 0x38, 0xab, + 0x1e, 0x7a, 0x0f, 0xca, 0xed, 0xce, 0xa6, 0xe7, 0x46, 0x3b, 0xeb, 0x41, 0xcc, 0x9e, 0xba, 0x55, + 0xba, 0x35, 0xe1, 0x9b, 0xa8, 0xdc, 0x2d, 0xeb, 0x39, 0x78, 0x38, 0x97, 0x02, 0xfa, 0x10, 0x2e, + 0xa4, 0x16, 0x83, 0xf0, 0x94, 0x9a, 0xca, 0x8f, 0x05, 0xd9, 0xc8, 0xaa, 0xc0, 0x3d, 0x66, 0x33, + 0x41, 0x38, 0xbb, 0x89, 0x8f, 0x66, 0x00, 0xf1, 0x01, 0xad, 0xac, 0x49, 0x37, 0xe8, 0xab, 0x30, + 0xa1, 0xaf, 0x22, 0x71, 0xc0, 0x3c, 0xdb, 0x2f, 0x81, 0xbd, 0x90, 0x8d, 0xd4, 0x8a, 0xd2, 0x61, + 0xd8, 0xa0, 0x68, 0x13, 0xc8, 0xfe, 0x3e, 0x74, 0x0b, 0xc6, 0x9a, 0x9e, 0x4b, 0xfc, 0xb8, 0x56, + 0xef, 0xe5, 0x53, 0xbf, 0x2c, 0x70, 0xc4, 0x80, 0x89, 0xe0, 0x79, 0xbc, 0x0c, 0x2b, 0x0a, 0xf6, + 0xaf, 0x14, 0xa0, 0xd2, 0x27, 0x12, 0x63, 0x4a, 0x07, 0x68, 0x0d, 0xa4, 0x03, 0x5c, 0x94, 0xc9, + 0xe3, 0xd6, 0x53, 0xf7, 0xcf, 0x54, 0x62, 0xb8, 0xe4, 0x16, 0x9a, 0xc6, 0x1f, 0xd8, 0x6e, 0x52, + 0x57, 0x23, 0x0e, 0xf5, 0xb5, 0xe8, 0x35, 0x9e, 0x0f, 0x86, 0x07, 0x97, 0xe8, 0x73, 0x55, 0xc1, + 0xf6, 0x2f, 0x15, 0xe0, 0x82, 0x1a, 0xc2, 0x3f, 0xbf, 0x03, 0x77, 0xa7, 0x7b, 0xe0, 0x4e, 0x41, + 0x91, 0x6e, 0xdf, 0x86, 0x91, 0xc6, 0x41, 0xd4, 0x8c, 0xbd, 0x01, 0x04, 0xa0, 0x67, 0xcc, 0xd8, + 0x32, 0xea, 0x98, 0x36, 0xe2, 0xcb, 0xfc, 0x15, 0x0b, 0xa6, 0x37, 0x96, 0xeb, 0x8d, 0xa0, 0xb9, + 0x4b, 0xe2, 0x45, 0xae, 0x26, 0xc2, 0x42, 0xfe, 0xb1, 0x1e, 0x52, 0xae, 0xc9, 0x92, 0x98, 0x2e, + 0xc3, 0xd0, 0x4e, 0x10, 0xc5, 0xe9, 0x57, 0xb6, 0x1b, 0x41, 0x14, 0x63, 0x06, 0xb1, 0x7f, 0xc7, + 0x82, 0x61, 0x96, 0xf2, 0xb4, 0x5f, 0x6a, 0xdc, 0x41, 0xbe, 0x0b, 0xbd, 0x0e, 0x23, 0x64, 0x6b, + 0x8b, 0x34, 0x63, 0x31, 0xab, 0xd2, 0xbb, 0x6e, 0x64, 0x85, 0x95, 0xd2, 0x43, 0x9f, 0x35, 0xc6, + 0xff, 0x62, 0x81, 0x8c, 0xee, 0x41, 0x29, 0x76, 0xf7, 0xc8, 0x62, 0xab, 0x25, 0xde, 0x29, 0x1e, + 0xc2, 0x99, 0x71, 0x43, 0x12, 0xc0, 0x09, 0x2d, 0xfb, 0x07, 0x0a, 0x00, 0x89, 0x43, 0x6f, 0xbf, + 0x4f, 0x5c, 0xea, 0xca, 0xfe, 0xfb, 0x6c, 0x46, 0xf6, 0x5f, 0x94, 0x10, 0xcc, 0xc8, 0xfd, 0xab, + 0x86, 0xa9, 0x38, 0xd0, 0x30, 0x0d, 0x9d, 0x64, 0x98, 0x96, 0x61, 0x36, 0x71, 0x48, 0x36, 0xa3, + 0x33, 0xb0, 0x78, 0xec, 0x1b, 0x69, 0x20, 0xee, 0xc6, 0xb7, 0xbf, 0xd7, 0x02, 0xe1, 0x6e, 0x30, + 0xc0, 0x62, 0x7e, 0x57, 0x26, 0xea, 0x34, 0x02, 0xba, 0x5e, 0xce, 0xf7, 0xbf, 0x10, 0x61, 0x5c, + 0xd5, 0xe1, 0x61, 0x04, 0x6f, 0x35, 0x68, 0xd9, 0x2d, 0x10, 0xd0, 0x2a, 0x61, 0x4a, 0x86, 0xfe, + 0xbd, 0xb9, 0x0a, 0xd0, 0x62, 0xb8, 0x5a, 0xe2, 0x3f, 0xc5, 0xaa, 0xaa, 0x0a, 0x82, 0x35, 0x2c, + 0xfb, 0x6f, 0x16, 0x60, 0x5c, 0x06, 0x10, 0xa5, 0xf7, 0xf8, 0xfe, 0xad, 0x9c, 0x28, 0x67, 0x00, + 0xcb, 0x94, 0x49, 0x09, 0xab, 0xd0, 0xf2, 0x7a, 0xa6, 0x4c, 0x09, 0xc0, 0x09, 0x0e, 0x7a, 0x1e, + 0x46, 0xa3, 0xce, 0x26, 0x43, 0x4f, 0x19, 0xd1, 0x37, 0x78, 0x31, 0x96, 0x70, 0xf4, 0x25, 0x98, + 0xe1, 0xf5, 0xc2, 0xa0, 0xed, 0x6c, 0x73, 0x0d, 0xd2, 0xb0, 0xf2, 0x6a, 0x9b, 0x59, 0x4b, 0xc1, + 0x8e, 0x0f, 0x2b, 0xe7, 0xd3, 0x65, 0x4c, 0xf7, 0xd8, 0x45, 0x85, 0xee, 0x8b, 0x99, 0xb4, 0xc3, + 0x0c, 0xba, 0x01, 0x23, 0x9c, 0xe5, 0x09, 0x16, 0xd4, 0xe3, 0x45, 0x49, 0x73, 0xb3, 0x61, 0x41, + 0xd4, 0x05, 0xd7, 0x14, 0xf5, 0xd1, 0x7b, 0x30, 0xde, 0x0a, 0xee, 0xfb, 0xf7, 0x9d, 0xb0, 0xb5, + 0x58, 0xaf, 0x89, 0x55, 0x93, 0x29, 0x39, 0x55, 0x13, 0x34, 0xdd, 0x75, 0x87, 0x69, 0x4f, 0x13, + 0x10, 0xd6, 0xc9, 0xa1, 0x0d, 0x16, 0xe3, 0x89, 0xa7, 0xb2, 0xef, 0x65, 0x75, 0xa6, 0xb2, 0xdf, + 0x6b, 0x94, 0x27, 0x45, 0x20, 0x28, 0x91, 0x08, 0x3f, 0x21, 0x64, 0x7f, 0xed, 0x1c, 0x18, 0xab, + 0xd5, 0xc8, 0x19, 0x60, 0x9d, 0x52, 0xce, 0x00, 0x0c, 0x63, 0x64, 0xaf, 0x1d, 0x1f, 0x54, 0xdd, + 0xb0, 0x57, 0xd2, 0x99, 0x15, 0x81, 0xd3, 0x4d, 0x53, 0x42, 0xb0, 0xa2, 0x93, 0x9d, 0xd8, 0xa1, + 0xf8, 0x31, 0x26, 0x76, 0x18, 0x3a, 0xc3, 0xc4, 0x0e, 0xeb, 0x30, 0xba, 0xed, 0xc6, 0x98, 0xb4, + 0x03, 0x71, 0xdc, 0x67, 0xae, 0x84, 0xeb, 0x1c, 0xa5, 0x3b, 0xc0, 0xb8, 0x00, 0x60, 0x49, 0x04, + 0xbd, 0xad, 0xf6, 0xc0, 0x48, 0xbe, 0xb4, 0xdc, 0xfd, 0xf8, 0x90, 0xb9, 0x0b, 0x44, 0x22, 0x87, + 0xd1, 0x87, 0x4d, 0xe4, 0xb0, 0x2a, 0xd3, 0x2f, 0x8c, 0xe5, 0x1b, 0x69, 0xb2, 0xec, 0x0a, 0x7d, + 0x92, 0x2e, 0x18, 0x89, 0x2a, 0x4a, 0xa7, 0x97, 0xa8, 0xe2, 0x7b, 0x2d, 0xb8, 0xd0, 0xce, 0xca, + 0xd9, 0x22, 0xd2, 0x27, 0xbc, 0x3e, 0x70, 0x52, 0x1a, 0xa3, 0x41, 0x76, 0x6d, 0xca, 0x44, 0xc3, + 0xd9, 0xcd, 0xd1, 0x81, 0x0e, 0x37, 0x5b, 0x22, 0xe7, 0xc2, 0x33, 0x39, 0x19, 0x2f, 0x7a, 0xe4, + 0xb9, 0x78, 0x34, 0x79, 0x16, 0x92, 0x5c, 0x17, 0x93, 0x1f, 0x39, 0xd7, 0xc5, 0xdb, 0x2a, 0xd7, + 0x45, 0x8f, 0x48, 0x3a, 0x3c, 0x93, 0x45, 0xdf, 0x0c, 0x17, 0x5a, 0x96, 0x8a, 0xe9, 0xd3, 0xc8, + 0x52, 0xf1, 0x15, 0x93, 0xd9, 0xf3, 0x94, 0x09, 0x2f, 0xf6, 0x61, 0xf6, 0x06, 0xdd, 0xde, 0xec, + 0x9e, 0x67, 0xe4, 0x98, 0x7d, 0xa8, 0x8c, 0x1c, 0x77, 0xf5, 0x5c, 0x17, 0xa8, 0x4f, 0x32, 0x07, + 0x8a, 0x34, 0x60, 0x86, 0x8b, 0xbb, 0xfa, 0x11, 0x74, 0x2e, 0x9f, 0xae, 0x3a, 0x69, 0xba, 0xe9, + 0x66, 0x1d, 0x42, 0xdd, 0x99, 0x33, 0xce, 0x9f, 0x4d, 0xe6, 0x8c, 0x0b, 0xa7, 0x9e, 0x39, 0xe3, + 0xb1, 0x33, 0xc8, 0x9c, 0xf1, 0xf8, 0xc7, 0x9a, 0x39, 0xa3, 0xfc, 0x08, 0x32, 0x67, 0xac, 0x27, + 0x99, 0x33, 0x2e, 0xe6, 0x4f, 0x49, 0x86, 0x55, 0x5a, 0x4e, 0xbe, 0x8c, 0xbb, 0x50, 0x6a, 0x4b, + 0x9f, 0x6a, 0x11, 0xea, 0x27, 0x3b, 0x51, 0x5f, 0x96, 0xe3, 0x35, 0x9f, 0x12, 0x05, 0xc2, 0x09, + 0x29, 0x4a, 0x37, 0xc9, 0x9f, 0xf1, 0x44, 0x0f, 0xc5, 0x58, 0x96, 0xca, 0x21, 0x3f, 0x6b, 0x86, + 0xfd, 0x57, 0x0b, 0x70, 0xa9, 0xf7, 0xba, 0x4e, 0xf4, 0x15, 0xf5, 0x44, 0xbf, 0x9e, 0xd2, 0x57, + 0xf0, 0x4b, 0x40, 0x82, 0x35, 0x70, 0xe0, 0x89, 0xeb, 0x30, 0xab, 0xcc, 0xd1, 0x3c, 0xb7, 0x79, + 0xa0, 0x25, 0xf0, 0x53, 0xae, 0x31, 0x8d, 0x34, 0x02, 0xee, 0xae, 0x83, 0x16, 0x61, 0xda, 0x28, + 0xac, 0x55, 0x85, 0xb0, 0xaf, 0x14, 0x24, 0x0d, 0x13, 0x8c, 0xd3, 0xf8, 0xf6, 0xd7, 0x2d, 0x78, + 0x3c, 0x27, 0x64, 0xf5, 0xc0, 0x71, 0x15, 0xb6, 0x60, 0xba, 0x6d, 0x56, 0xed, 0x13, 0x7e, 0xc5, + 0x08, 0x8c, 0xad, 0xfa, 0x9a, 0x02, 0xe0, 0x34, 0xd1, 0xa5, 0x2b, 0xbf, 0xf6, 0x7b, 0x97, 0x3e, + 0xf5, 0x9b, 0xbf, 0x77, 0xe9, 0x53, 0xbf, 0xfd, 0x7b, 0x97, 0x3e, 0xf5, 0x17, 0x8f, 0x2e, 0x59, + 0xbf, 0x76, 0x74, 0xc9, 0xfa, 0xcd, 0xa3, 0x4b, 0xd6, 0x6f, 0x1f, 0x5d, 0xb2, 0x7e, 0xf7, 0xe8, + 0x92, 0xf5, 0x03, 0xbf, 0x7f, 0xe9, 0x53, 0xef, 0x16, 0xf6, 0x5f, 0xf9, 0xff, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x99, 0x05, 0xfa, 0x71, 0xfe, 0xdd, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/core/v1/generated.proto b/vendor/k8s.io/api/core/v1/generated.proto index 0a5b088a..4f00a69e 100644 --- a/vendor/k8s.io/api/core/v1/generated.proto +++ b/vendor/k8s.io/api/core/v1/generated.proto @@ -1029,7 +1029,6 @@ message EnvVarSource { } // Event is a report of an event somewhere in the cluster. -// TODO: Decide whether to store these separately or with the object they apply to. message Event { // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata @@ -1068,6 +1067,30 @@ message Event { // Type of this event (Normal, Warning), new types could be added in the future // +optional optional string type = 9; + + // Time when this Event was first observed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10; + + // Data about the Event series this event represents or nil if it's a singleton Event. + // +optional + optional EventSeries series = 11; + + // What action was taken/failed regarding to the Regarding object. + // +optional + optional string action = 12; + + // Optional secondary object for more complex actions. + // +optional + optional ObjectReference related = 13; + + // Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. + // +optional + optional string reportingComponent = 14; + + // ID of the controller instance, e.g. `kubelet-xyzf`. + // +optional + optional string reportingInstance = 15; } // EventList is a list of events. @@ -1081,6 +1104,19 @@ message EventList { repeated Event items = 2; } +// EventSeries contain information on series of events, i.e. thing that was/is happening +// continously for some time. +message EventSeries { + // Number of occurrences in this series up to the last heartbeat time + optional int32 count = 1; + + // Time of the last occurence observed + optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2; + + // State of this Series: Ongoing or Finished + optional string state = 3; +} + // EventSource contains information for an event. message EventSource { // Component from which the event is generated. @@ -2681,6 +2717,38 @@ message PodCondition { optional string message = 6; } +// PodDNSConfig defines the DNS parameters of a pod in addition to +// those generated from DNSPolicy. +message PodDNSConfig { + // A list of DNS name server IP addresses. + // This will be appended to the base nameservers generated from DNSPolicy. + // Duplicated nameservers will be removed. + // +optional + repeated string nameservers = 1; + + // A list of DNS search domains for host-name lookup. + // This will be appended to the base search paths generated from DNSPolicy. + // Duplicated search paths will be removed. + // +optional + repeated string searches = 2; + + // A list of DNS resolver options. + // This will be merged with the base options generated from DNSPolicy. + // Duplicated entries will be removed. Resolution options given in Options + // will override those that appear in the base DNSPolicy. + // +optional + repeated PodDNSConfigOption options = 3; +} + +// PodDNSConfigOption defines DNS resolver options of a pod. +message PodDNSConfigOption { + // Required. + optional string name = 1; + + // +optional + optional string value = 2; +} + // PodExecOptions is the query options to a Pod's remote exec call. // --- // TODO: This is largely identical to PodAttachOptions above, make sure they stay in sync and see about merging @@ -2905,10 +2973,12 @@ message PodSpec { // +optional optional int64 activeDeadlineSeconds = 5; - // Set DNS policy for containers within the pod. - // One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'. + // Set DNS policy for the pod. // Defaults to "ClusterFirst". - // To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'. + // Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. + // DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. + // To have DNS options set along with hostNetwork, you have to specify DNS policy + // explicitly to 'ClusterFirstWithHostNet'. // +optional optional string dnsPolicy = 6; @@ -3017,6 +3087,12 @@ message PodSpec { // The higher the value, the higher the priority. // +optional optional int32 priority = 25; + + // Specifies the DNS parameters of a pod. + // Parameters specified here will be merged to the generated DNS + // configuration based on DNSPolicy. + // +optional + optional PodDNSConfig dnsConfig = 26; } // PodStatus represents information about the status of a pod. Status may trail the actual diff --git a/vendor/k8s.io/api/core/v1/types.go b/vendor/k8s.io/api/core/v1/types.go index be414e84..bb5a5a10 100644 --- a/vendor/k8s.io/api/core/v1/types.go +++ b/vendor/k8s.io/api/core/v1/types.go @@ -2431,6 +2431,11 @@ const ( // determined by kubelet) DNS settings. DNSDefault DNSPolicy = "Default" + // DNSNone indicates that the pod should use empty DNS settings. DNS + // parameters such as nameservers and search paths should be defined via + // DNSConfig. + DNSNone DNSPolicy = "None" + DefaultTerminationGracePeriodSeconds = 30 ) @@ -2760,10 +2765,12 @@ type PodSpec struct { // Value must be a positive integer. // +optional ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty" protobuf:"varint,5,opt,name=activeDeadlineSeconds"` - // Set DNS policy for containers within the pod. - // One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'. + // Set DNS policy for the pod. // Defaults to "ClusterFirst". - // To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'. + // Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. + // DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. + // To have DNS options set along with hostNetwork, you have to specify DNS policy + // explicitly to 'ClusterFirstWithHostNet'. // +optional DNSPolicy DNSPolicy `json:"dnsPolicy,omitempty" protobuf:"bytes,6,opt,name=dnsPolicy,casttype=DNSPolicy"` // NodeSelector is a selector which must be true for the pod to fit on a node. @@ -2856,6 +2863,11 @@ type PodSpec struct { // The higher the value, the higher the priority. // +optional Priority *int32 `json:"priority,omitempty" protobuf:"bytes,25,opt,name=priority"` + // Specifies the DNS parameters of a pod. + // Parameters specified here will be merged to the generated DNS + // configuration based on DNSPolicy. + // +optional + DNSConfig *PodDNSConfig `json:"dnsConfig,omitempty" protobuf:"bytes,26,opt,name=dnsConfig"` } // HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the @@ -2923,6 +2935,35 @@ const ( PodQOSBestEffort PodQOSClass = "BestEffort" ) +// PodDNSConfig defines the DNS parameters of a pod in addition to +// those generated from DNSPolicy. +type PodDNSConfig struct { + // A list of DNS name server IP addresses. + // This will be appended to the base nameservers generated from DNSPolicy. + // Duplicated nameservers will be removed. + // +optional + Nameservers []string `json:"nameservers,omitempty" protobuf:"bytes,1,rep,name=nameservers"` + // A list of DNS search domains for host-name lookup. + // This will be appended to the base search paths generated from DNSPolicy. + // Duplicated search paths will be removed. + // +optional + Searches []string `json:"searches,omitempty" protobuf:"bytes,2,rep,name=searches"` + // A list of DNS resolver options. + // This will be merged with the base options generated from DNSPolicy. + // Duplicated entries will be removed. Resolution options given in Options + // will override those that appear in the base DNSPolicy. + // +optional + Options []PodDNSConfigOption `json:"options,omitempty" protobuf:"bytes,3,rep,name=options"` +} + +// PodDNSConfigOption defines DNS resolver options of a pod. +type PodDNSConfigOption struct { + // Required. + Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` + // +optional + Value *string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` +} + // PodStatus represents information about the status of a pod. Status may trail the actual // state of a system. type PodStatus struct { @@ -3940,8 +3981,6 @@ const ( ) const ( - // Namespace prefix for opaque counted resources (alpha). - ResourceOpaqueIntPrefix = "pod.alpha.kubernetes.io/opaque-int-resource-" // Default namespace prefix. ResourceDefaultNamespacePrefix = "kubernetes.io/" // Name prefix for huge page resources (alpha). @@ -4429,7 +4468,6 @@ const ( // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // Event is a report of an event somewhere in the cluster. -// TODO: Decide whether to store these separately or with the object they apply to. type Event struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. @@ -4469,8 +4507,51 @@ type Event struct { // Type of this event (Normal, Warning), new types could be added in the future // +optional Type string `json:"type,omitempty" protobuf:"bytes,9,opt,name=type"` + + // Time when this Event was first observed. + // +optional + EventTime metav1.MicroTime `json:"eventTime,omitempty" protobuf:"bytes,10,opt,name=eventTime"` + + // Data about the Event series this event represents or nil if it's a singleton Event. + // +optional + Series *EventSeries `json:"series,omitempty" protobuf:"bytes,11,opt,name=series"` + + // What action was taken/failed regarding to the Regarding object. + // +optional + Action string `json:"action,omitempty" protobuf:"bytes,12,opt,name=action"` + + // Optional secondary object for more complex actions. + // +optional + Related *ObjectReference `json:"related,omitempty" protobuf:"bytes,13,opt,name=related"` + + // Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. + // +optional + ReportingController string `json:"reportingComponent" protobuf:"bytes,14,opt,name=reportingComponent"` + + // ID of the controller instance, e.g. `kubelet-xyzf`. + // +optional + ReportingInstance string `json:"reportingInstance" protobuf:"bytes,15,opt,name=reportingInstance"` } +// EventSeries contain information on series of events, i.e. thing that was/is happening +// continously for some time. +type EventSeries struct { + // Number of occurrences in this series up to the last heartbeat time + Count int32 `json:"count,omitempty" protobuf:"varint,1,name=count"` + // Time of the last occurence observed + LastObservedTime metav1.MicroTime `json:"lastObservedTime,omitempty" protobuf:"bytes,2,name=lastObservedTime"` + // State of this Series: Ongoing or Finished + State EventSeriesState `json:"state,omitempty" protobuf:"bytes,3,name=state"` +} + +type EventSeriesState string + +const ( + EventSeriesStateOngoing EventSeriesState = "Ongoing" + EventSeriesStateFinished EventSeriesState = "Finished" + EventSeriesStateUnknown EventSeriesState = "Unknown" +) + // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // EventList is a list of events. diff --git a/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go index bae48fb8..bf08a786 100644 --- a/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -541,16 +541,22 @@ func (EnvVarSource) SwaggerDoc() map[string]string { } var map_Event = map[string]string{ - "": "Event is a report of an event somewhere in the cluster.", - "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "involvedObject": "The object that this event is about.", - "reason": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", - "message": "A human-readable description of the status of this operation.", - "source": "The component reporting this event. Should be a short machine understandable string.", - "firstTimestamp": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)", - "lastTimestamp": "The time at which the most recent occurrence of this event was recorded.", - "count": "The number of times this event has occurred.", - "type": "Type of this event (Normal, Warning), new types could be added in the future", + "": "Event is a report of an event somewhere in the cluster.", + "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "involvedObject": "The object that this event is about.", + "reason": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", + "message": "A human-readable description of the status of this operation.", + "source": "The component reporting this event. Should be a short machine understandable string.", + "firstTimestamp": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)", + "lastTimestamp": "The time at which the most recent occurrence of this event was recorded.", + "count": "The number of times this event has occurred.", + "type": "Type of this event (Normal, Warning), new types could be added in the future", + "eventTime": "Time when this Event was first observed.", + "series": "Data about the Event series this event represents or nil if it's a singleton Event.", + "action": "What action was taken/failed regarding to the Regarding object.", + "related": "Optional secondary object for more complex actions.", + "reportingComponent": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", + "reportingInstance": "ID of the controller instance, e.g. `kubelet-xyzf`.", } func (Event) SwaggerDoc() map[string]string { @@ -567,6 +573,17 @@ func (EventList) SwaggerDoc() map[string]string { return map_EventList } +var map_EventSeries = map[string]string{ + "": "EventSeries contain information on series of events, i.e. thing that was/is happening continously for some time.", + "count": "Number of occurrences in this series up to the last heartbeat time", + "lastObservedTime": "Time of the last occurence observed", + "state": "State of this Series: Ongoing or Finished", +} + +func (EventSeries) SwaggerDoc() map[string]string { + return map_EventSeries +} + var map_EventSource = map[string]string{ "": "EventSource contains information for an event.", "component": "Component from which the event is generated.", @@ -1356,6 +1373,26 @@ func (PodCondition) SwaggerDoc() map[string]string { return map_PodCondition } +var map_PodDNSConfig = map[string]string{ + "": "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.", + "nameservers": "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", + "searches": "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", + "options": "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", +} + +func (PodDNSConfig) SwaggerDoc() map[string]string { + return map_PodDNSConfig +} + +var map_PodDNSConfigOption = map[string]string{ + "": "PodDNSConfigOption defines DNS resolver options of a pod.", + "name": "Required.", +} + +func (PodDNSConfigOption) SwaggerDoc() map[string]string { + return map_PodDNSConfigOption +} + var map_PodExecOptions = map[string]string{ "": "PodExecOptions is the query options to a Pod's remote exec call.", "stdin": "Redirect the standard input stream of the pod for this call. Defaults to false.", @@ -1444,7 +1481,7 @@ var map_PodSpec = map[string]string{ "restartPolicy": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", "terminationGracePeriodSeconds": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.", "activeDeadlineSeconds": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", - "dnsPolicy": "Set DNS policy for containers within the pod. One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'. Defaults to \"ClusterFirst\". To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", + "dnsPolicy": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", "nodeSelector": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", "serviceAccountName": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", "serviceAccount": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", @@ -1463,6 +1500,7 @@ var map_PodSpec = map[string]string{ "hostAliases": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.", "priorityClassName": "If specified, indicates the pod's priority. \"SYSTEM\" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", "priority": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", + "dnsConfig": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", } func (PodSpec) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go index c3a017fd..951b2e26 100644 --- a/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -1383,6 +1383,25 @@ func (in *Event) DeepCopyInto(out *Event) { out.Source = in.Source in.FirstTimestamp.DeepCopyInto(&out.FirstTimestamp) in.LastTimestamp.DeepCopyInto(&out.LastTimestamp) + in.EventTime.DeepCopyInto(&out.EventTime) + if in.Series != nil { + in, out := &in.Series, &out.Series + if *in == nil { + *out = nil + } else { + *out = new(EventSeries) + (*in).DeepCopyInto(*out) + } + } + if in.Related != nil { + in, out := &in.Related, &out.Related + if *in == nil { + *out = nil + } else { + *out = new(ObjectReference) + **out = **in + } + } return } @@ -1439,6 +1458,23 @@ func (in *EventList) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventSeries) DeepCopyInto(out *EventSeries) { + *out = *in + in.LastObservedTime.DeepCopyInto(&out.LastObservedTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSeries. +func (in *EventSeries) DeepCopy() *EventSeries { + if in == nil { + return nil + } + out := new(EventSeries) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EventSource) DeepCopyInto(out *EventSource) { *out = *in @@ -3483,6 +3519,64 @@ func (in *PodCondition) DeepCopy() *PodCondition { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodDNSConfig) DeepCopyInto(out *PodDNSConfig) { + *out = *in + if in.Nameservers != nil { + in, out := &in.Nameservers, &out.Nameservers + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Searches != nil { + in, out := &in.Searches, &out.Searches + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Options != nil { + in, out := &in.Options, &out.Options + *out = make([]PodDNSConfigOption, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDNSConfig. +func (in *PodDNSConfig) DeepCopy() *PodDNSConfig { + if in == nil { + return nil + } + out := new(PodDNSConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodDNSConfigOption) DeepCopyInto(out *PodDNSConfigOption) { + *out = *in + if in.Value != nil { + in, out := &in.Value, &out.Value + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDNSConfigOption. +func (in *PodDNSConfigOption) DeepCopy() *PodDNSConfigOption { + if in == nil { + return nil + } + out := new(PodDNSConfigOption) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PodExecOptions) DeepCopyInto(out *PodExecOptions) { *out = *in @@ -3853,6 +3947,15 @@ func (in *PodSpec) DeepCopyInto(out *PodSpec) { **out = **in } } + if in.DNSConfig != nil { + in, out := &in.DNSConfig, &out.DNSConfig + if *in == nil { + *out = nil + } else { + *out = new(PodDNSConfig) + (*in).DeepCopyInto(*out) + } + } return } diff --git a/vendor/k8s.io/api/events/v1beta1/BUILD b/vendor/k8s.io/api/events/v1beta1/BUILD new file mode 100644 index 00000000..851874e7 --- /dev/null +++ b/vendor/k8s.io/api/events/v1beta1/BUILD @@ -0,0 +1,42 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "generated.pb.go", + "register.go", + "types.go", + "types_swagger_doc_generated.go", + "zz_generated.deepcopy.go", + ], + importpath = "k8s.io/api/events/v1beta1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/api/events/v1beta1/doc.go b/vendor/k8s.io/api/events/v1beta1/doc.go new file mode 100644 index 00000000..0841008b --- /dev/null +++ b/vendor/k8s.io/api/events/v1beta1/doc.go @@ -0,0 +1,21 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:deepcopy-gen=package +// +k8s:openapi-gen=true + +// +groupName=events.k8s.io +package v1beta1 diff --git a/vendor/k8s.io/api/events/v1beta1/generated.pb.go b/vendor/k8s.io/api/events/v1beta1/generated.pb.go new file mode 100644 index 00000000..4861697c --- /dev/null +++ b/vendor/k8s.io/api/events/v1beta1/generated.pb.go @@ -0,0 +1,1306 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by protoc-gen-gogo. +// source: k8s.io/kubernetes/vendor/k8s.io/api/events/v1beta1/generated.proto +// DO NOT EDIT! + +/* + Package v1beta1 is a generated protocol buffer package. + + It is generated from these files: + k8s.io/kubernetes/vendor/k8s.io/api/events/v1beta1/generated.proto + + It has these top-level messages: + Event + EventList + EventSeries +*/ +package v1beta1 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import k8s_io_api_core_v1 "k8s.io/api/core/v1" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +func (m *Event) Reset() { *m = Event{} } +func (*Event) ProtoMessage() {} +func (*Event) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + +func (m *EventList) Reset() { *m = EventList{} } +func (*EventList) ProtoMessage() {} +func (*EventList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + +func (m *EventSeries) Reset() { *m = EventSeries{} } +func (*EventSeries) ProtoMessage() {} +func (*EventSeries) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + +func init() { + proto.RegisterType((*Event)(nil), "k8s.io.api.events.v1beta1.Event") + proto.RegisterType((*EventList)(nil), "k8s.io.api.events.v1beta1.EventList") + proto.RegisterType((*EventSeries)(nil), "k8s.io.api.events.v1beta1.EventSeries") +} +func (m *Event) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Event) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n1, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.EventTime.Size())) + n2, err := m.EventTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + if m.Series != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Series.Size())) + n3, err := m.Series.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingController))) + i += copy(dAtA[i:], m.ReportingController) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingInstance))) + i += copy(dAtA[i:], m.ReportingInstance) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Action))) + i += copy(dAtA[i:], m.Action) + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x42 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Regarding.Size())) + n4, err := m.Regarding.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + if m.Related != nil { + dAtA[i] = 0x4a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Related.Size())) + n5, err := m.Related.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + } + dAtA[i] = 0x52 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Note))) + i += copy(dAtA[i:], m.Note) + dAtA[i] = 0x5a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x62 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DeprecatedSource.Size())) + n6, err := m.DeprecatedSource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + dAtA[i] = 0x6a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DeprecatedFirstTimestamp.Size())) + n7, err := m.DeprecatedFirstTimestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + dAtA[i] = 0x72 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DeprecatedLastTimestamp.Size())) + n8, err := m.DeprecatedLastTimestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + dAtA[i] = 0x78 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DeprecatedCount)) + return i, nil +} + +func (m *EventList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n9, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *EventSeries) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventSeries) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Count)) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastObservedTime.Size())) + n10, err := m.LastObservedTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.State))) + i += copy(dAtA[i:], m.State) + return i, nil +} + +func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Event) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.EventTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Series != nil { + l = m.Series.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.ReportingController) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.ReportingInstance) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Action) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = m.Regarding.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Related != nil { + l = m.Related.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Note) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = m.DeprecatedSource.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.DeprecatedFirstTimestamp.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.DeprecatedLastTimestamp.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.DeprecatedCount)) + return n +} + +func (m *EventList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *EventSeries) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Count)) + l = m.LastObservedTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.State) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func sovGenerated(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *Event) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Event{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `EventTime:` + strings.Replace(strings.Replace(this.EventTime.String(), "MicroTime", "k8s_io_apimachinery_pkg_apis_meta_v1.MicroTime", 1), `&`, ``, 1) + `,`, + `Series:` + strings.Replace(fmt.Sprintf("%v", this.Series), "EventSeries", "EventSeries", 1) + `,`, + `ReportingController:` + fmt.Sprintf("%v", this.ReportingController) + `,`, + `ReportingInstance:` + fmt.Sprintf("%v", this.ReportingInstance) + `,`, + `Action:` + fmt.Sprintf("%v", this.Action) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Regarding:` + strings.Replace(strings.Replace(this.Regarding.String(), "ObjectReference", "k8s_io_api_core_v1.ObjectReference", 1), `&`, ``, 1) + `,`, + `Related:` + strings.Replace(fmt.Sprintf("%v", this.Related), "ObjectReference", "k8s_io_api_core_v1.ObjectReference", 1) + `,`, + `Note:` + fmt.Sprintf("%v", this.Note) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `DeprecatedSource:` + strings.Replace(strings.Replace(this.DeprecatedSource.String(), "EventSource", "k8s_io_api_core_v1.EventSource", 1), `&`, ``, 1) + `,`, + `DeprecatedFirstTimestamp:` + strings.Replace(strings.Replace(this.DeprecatedFirstTimestamp.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `DeprecatedLastTimestamp:` + strings.Replace(strings.Replace(this.DeprecatedLastTimestamp.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `DeprecatedCount:` + fmt.Sprintf("%v", this.DeprecatedCount) + `,`, + `}`, + }, "") + return s +} +func (this *EventList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&EventList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "Event", "Event", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *EventSeries) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&EventSeries{`, + `Count:` + fmt.Sprintf("%v", this.Count) + `,`, + `LastObservedTime:` + strings.Replace(strings.Replace(this.LastObservedTime.String(), "MicroTime", "k8s_io_apimachinery_pkg_apis_meta_v1.MicroTime", 1), `&`, ``, 1) + `,`, + `State:` + fmt.Sprintf("%v", this.State) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *Event) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Event: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EventTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.EventTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Series", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Series == nil { + m.Series = &EventSeries{} + } + if err := m.Series.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportingController", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReportingController = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportingInstance", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReportingInstance = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Action = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Regarding", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Regarding.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Related", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Related == nil { + m.Related = &k8s_io_api_core_v1.ObjectReference{} + } + if err := m.Related.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Note", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Note = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeprecatedSource", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DeprecatedSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeprecatedFirstTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DeprecatedFirstTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeprecatedLastTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DeprecatedLastTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DeprecatedCount", wireType) + } + m.DeprecatedCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DeprecatedCount |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Event{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventSeries) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventSeries: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventSeries: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Count |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastObservedTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastObservedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.State = EventSeriesState(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipGenerated(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") +) + +func init() { + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/events/v1beta1/generated.proto", fileDescriptorGenerated) +} + +var fileDescriptorGenerated = []byte{ + // 814 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xcd, 0x6e, 0xdb, 0x46, + 0x10, 0x16, 0x13, 0x4b, 0xb6, 0x56, 0x49, 0x2c, 0x6f, 0x0e, 0xde, 0xb8, 0x00, 0xa5, 0x3a, 0x40, + 0x60, 0x14, 0x08, 0x59, 0xa7, 0x45, 0xdb, 0x6b, 0x18, 0xbb, 0x45, 0x02, 0xbb, 0x01, 0xd6, 0x3e, + 0x15, 0x3d, 0x64, 0x45, 0x4d, 0xe8, 0xad, 0xa5, 0x5d, 0x62, 0x77, 0x29, 0xc0, 0xb7, 0x5e, 0x0a, + 0xf4, 0xd8, 0x67, 0xe8, 0x13, 0xf4, 0x31, 0x7c, 0xcc, 0x31, 0x27, 0xa1, 0x66, 0xdf, 0xa2, 0xa7, + 0x82, 0xcb, 0x95, 0x28, 0x8b, 0x16, 0xec, 0x22, 0x37, 0x72, 0xe6, 0xfb, 0x99, 0x19, 0x0e, 0x07, + 0x45, 0xe7, 0xdf, 0xe9, 0x80, 0xcb, 0xf0, 0x3c, 0x1b, 0x80, 0x12, 0x60, 0x40, 0x87, 0x13, 0x10, + 0x43, 0xa9, 0x42, 0x97, 0x60, 0x29, 0x0f, 0x61, 0x02, 0xc2, 0xe8, 0x70, 0xb2, 0x3f, 0x00, 0xc3, + 0xf6, 0xc3, 0x04, 0x04, 0x28, 0x66, 0x60, 0x18, 0xa4, 0x4a, 0x1a, 0x89, 0x9f, 0x94, 0xd0, 0x80, + 0xa5, 0x3c, 0x28, 0xa1, 0x81, 0x83, 0xee, 0x3c, 0x4f, 0xb8, 0x39, 0xcb, 0x06, 0x41, 0x2c, 0xc7, + 0x61, 0x22, 0x13, 0x19, 0x5a, 0xc6, 0x20, 0x7b, 0x6f, 0xdf, 0xec, 0x8b, 0x7d, 0x2a, 0x95, 0x76, + 0x76, 0x17, 0x4c, 0x63, 0xa9, 0x20, 0x9c, 0xd4, 0xdc, 0x76, 0xbe, 0xae, 0x30, 0x63, 0x16, 0x9f, + 0x71, 0x01, 0xea, 0x22, 0x4c, 0xcf, 0x93, 0x22, 0xa0, 0xc3, 0x31, 0x18, 0x76, 0x13, 0x2b, 0x5c, + 0xc5, 0x52, 0x99, 0x30, 0x7c, 0x0c, 0x35, 0xc2, 0x37, 0xb7, 0x11, 0x74, 0x7c, 0x06, 0x63, 0x56, + 0xe3, 0x7d, 0xb5, 0x8a, 0x97, 0x19, 0x3e, 0x0a, 0xb9, 0x30, 0xda, 0xa8, 0x65, 0xd2, 0xee, 0x9f, + 0x6d, 0xd4, 0x3c, 0x2c, 0x26, 0x87, 0xdf, 0xa1, 0x8d, 0xa2, 0x85, 0x21, 0x33, 0x8c, 0x78, 0x7d, + 0x6f, 0xaf, 0xf3, 0xe2, 0xcb, 0xa0, 0x1a, 0xef, 0x5c, 0x31, 0x48, 0xcf, 0x93, 0x22, 0xa0, 0x83, + 0x02, 0x1d, 0x4c, 0xf6, 0x83, 0xb7, 0x83, 0x5f, 0x20, 0x36, 0xc7, 0x60, 0x58, 0x84, 0x2f, 0xa7, + 0xbd, 0x46, 0x3e, 0xed, 0xa1, 0x2a, 0x46, 0xe7, 0xaa, 0xf8, 0x1d, 0x6a, 0xdb, 0x8f, 0x74, 0xca, + 0xc7, 0x40, 0xee, 0x59, 0x8b, 0xf0, 0x6e, 0x16, 0xc7, 0x3c, 0x56, 0xb2, 0xa0, 0x45, 0x5b, 0xce, + 0xa1, 0x7d, 0x38, 0x53, 0xa2, 0x95, 0x28, 0x7e, 0x83, 0x5a, 0x1a, 0x14, 0x07, 0x4d, 0xee, 0x5b, + 0xf9, 0x67, 0xc1, 0xca, 0x05, 0x09, 0xac, 0xc0, 0x89, 0x45, 0x47, 0x28, 0x9f, 0xf6, 0x5a, 0xe5, + 0x33, 0x75, 0x0a, 0xf8, 0x18, 0x3d, 0x56, 0x90, 0x4a, 0x65, 0xb8, 0x48, 0x5e, 0x49, 0x61, 0x94, + 0x1c, 0x8d, 0x40, 0x91, 0xb5, 0xbe, 0xb7, 0xd7, 0x8e, 0x3e, 0x73, 0x65, 0x3c, 0xa6, 0x75, 0x08, + 0xbd, 0x89, 0x87, 0x7f, 0x40, 0x5b, 0xf3, 0xf0, 0x6b, 0xa1, 0x0d, 0x13, 0x31, 0x90, 0xa6, 0x15, + 0x7b, 0xe2, 0xc4, 0xb6, 0xe8, 0x32, 0x80, 0xd6, 0x39, 0xf8, 0x19, 0x6a, 0xb1, 0xd8, 0x70, 0x29, + 0x48, 0xcb, 0xb2, 0x1f, 0x39, 0x76, 0xeb, 0xa5, 0x8d, 0x52, 0x97, 0x2d, 0x70, 0x0a, 0x98, 0x96, + 0x82, 0xac, 0x5f, 0xc7, 0x51, 0x1b, 0xa5, 0x2e, 0x8b, 0x4f, 0x51, 0x5b, 0x41, 0xc2, 0xd4, 0x90, + 0x8b, 0x84, 0x6c, 0xd8, 0xb1, 0x3d, 0x5d, 0x1c, 0x5b, 0xf1, 0x37, 0x54, 0x9f, 0x99, 0xc2, 0x7b, + 0x50, 0x20, 0xe2, 0x85, 0x2f, 0x41, 0x67, 0x6c, 0x5a, 0x09, 0xe1, 0x37, 0x68, 0x5d, 0xc1, 0xa8, + 0x58, 0x34, 0xd2, 0xbe, 0xbb, 0x66, 0x27, 0x9f, 0xf6, 0xd6, 0x69, 0xc9, 0xa3, 0x33, 0x01, 0xdc, + 0x47, 0x6b, 0x42, 0x1a, 0x20, 0xc8, 0xf6, 0xf1, 0xc0, 0xf9, 0xae, 0xfd, 0x28, 0x0d, 0x50, 0x9b, + 0x29, 0x10, 0xe6, 0x22, 0x05, 0xd2, 0xb9, 0x8e, 0x38, 0xbd, 0x48, 0x81, 0xda, 0x0c, 0x06, 0xd4, + 0x1d, 0x42, 0xaa, 0x20, 0x2e, 0x14, 0x4f, 0x64, 0xa6, 0x62, 0x20, 0x0f, 0x6c, 0x61, 0xbd, 0x9b, + 0x0a, 0x2b, 0x97, 0xc3, 0xc2, 0x22, 0xe2, 0xe4, 0xba, 0x07, 0x4b, 0x02, 0xb4, 0x26, 0x89, 0x7f, + 0xf7, 0x10, 0xa9, 0x82, 0xdf, 0x73, 0xa5, 0xed, 0x62, 0x6a, 0xc3, 0xc6, 0x29, 0x79, 0x68, 0xfd, + 0xbe, 0xb8, 0xdb, 0xca, 0xdb, 0x6d, 0xef, 0x3b, 0x6b, 0x72, 0xb0, 0x42, 0x93, 0xae, 0x74, 0xc3, + 0xbf, 0x79, 0x68, 0xbb, 0x4a, 0x1e, 0xb1, 0xc5, 0x4a, 0x1e, 0xfd, 0xef, 0x4a, 0x7a, 0xae, 0x92, + 0xed, 0x83, 0x9b, 0x25, 0xe9, 0x2a, 0x2f, 0xfc, 0x12, 0x6d, 0x56, 0xa9, 0x57, 0x32, 0x13, 0x86, + 0x6c, 0xf6, 0xbd, 0xbd, 0x66, 0xb4, 0xed, 0x24, 0x37, 0x0f, 0xae, 0xa7, 0xe9, 0x32, 0x7e, 0xf7, + 0x2f, 0x0f, 0x95, 0xff, 0xfb, 0x11, 0xd7, 0x06, 0xff, 0x5c, 0x3b, 0x54, 0xc1, 0xdd, 0x1a, 0x29, + 0xd8, 0xf6, 0x4c, 0x75, 0x9d, 0xf3, 0xc6, 0x2c, 0xb2, 0x70, 0xa4, 0x0e, 0x51, 0x93, 0x1b, 0x18, + 0x6b, 0x72, 0xaf, 0x7f, 0x7f, 0xaf, 0xf3, 0xa2, 0x7f, 0xdb, 0x05, 0x89, 0x1e, 0x3a, 0xb1, 0xe6, + 0xeb, 0x82, 0x46, 0x4b, 0xf6, 0x6e, 0xee, 0xa1, 0xce, 0xc2, 0x85, 0xc1, 0x4f, 0x51, 0x33, 0xb6, + 0xbd, 0x7b, 0xb6, 0xf7, 0x39, 0xa9, 0xec, 0xb8, 0xcc, 0xe1, 0x0c, 0x75, 0x47, 0x4c, 0x9b, 0xb7, + 0x03, 0x0d, 0x6a, 0x02, 0xc3, 0x4f, 0xb9, 0x93, 0xf3, 0xa5, 0x3d, 0x5a, 0x12, 0xa4, 0x35, 0x0b, + 0xfc, 0x2d, 0x6a, 0x6a, 0xc3, 0x0c, 0xd8, 0xa3, 0xd9, 0x8e, 0x3e, 0x9f, 0xd5, 0x76, 0x52, 0x04, + 0xff, 0x9d, 0xf6, 0xba, 0x0b, 0x8d, 0xd8, 0x18, 0x2d, 0xf1, 0xd1, 0xf3, 0xcb, 0x2b, 0xbf, 0xf1, + 0xe1, 0xca, 0x6f, 0x7c, 0xbc, 0xf2, 0x1b, 0xbf, 0xe6, 0xbe, 0x77, 0x99, 0xfb, 0xde, 0x87, 0xdc, + 0xf7, 0x3e, 0xe6, 0xbe, 0xf7, 0x77, 0xee, 0x7b, 0x7f, 0xfc, 0xe3, 0x37, 0x7e, 0x5a, 0x77, 0xf3, + 0xfa, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x69, 0xa9, 0x7b, 0x6e, 0xf2, 0x07, 0x00, 0x00, +} diff --git a/vendor/k8s.io/api/events/v1beta1/generated.proto b/vendor/k8s.io/api/events/v1beta1/generated.proto new file mode 100644 index 00000000..c13a12a5 --- /dev/null +++ b/vendor/k8s.io/api/events/v1beta1/generated.proto @@ -0,0 +1,122 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = 'proto2'; + +package k8s.io.api.events.v1beta1; + +import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; +import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1beta1"; + +// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. +message Event { + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Required. Time when this Event was first observed. + optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 2; + + // Data about the Event series this event represents or nil if it's a singleton Event. + // +optional + optional EventSeries series = 3; + + // Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. + // +optional + optional string reportingController = 4; + + // ID of the controller instance, e.g. `kubelet-xyzf`. + // +optional + optional string reportingInstance = 5; + + // What action was taken/failed regarding to the regarding object. + // +optional + optional string action = 6; + + // Why the action was taken. + optional string reason = 7; + + // The object this Event is about. In most cases it's an Object reporting controller implements. + // E.g. ReplicaSetController implements ReplicaSets and this event is emitted because + // it acts on some changes in a ReplicaSet object. + // +optional + optional k8s.io.api.core.v1.ObjectReference regarding = 8; + + // Optional secondary object for more complex actions. E.g. when regarding object triggers + // a creation or deletion of related object. + // +optional + optional k8s.io.api.core.v1.ObjectReference related = 9; + + // Optional. A human-readable description of the status of this operation. + // Maximal length of the note is 1kB, but libraries should be prepared to + // handle values up to 64kB. + // +optional + optional string note = 10; + + // Type of this event (Normal, Warning), new types could be added in the + // future. + // +optional + optional string type = 11; + + // Deprecated field assuring backward compatibility with core.v1 Event type + // +optional + optional k8s.io.api.core.v1.EventSource deprecatedSource = 12; + + // Deprecated field assuring backward compatibility with core.v1 Event type + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedFirstTimestamp = 13; + + // Deprecated field assuring backward compatibility with core.v1 Event type + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedLastTimestamp = 14; + + // Deprecated field assuring backward compatibility with core.v1 Event type + // +optional + optional int32 deprecatedCount = 15; +} + +// EventList is a list of Event objects. +message EventList { + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is a list of schema objects. + repeated Event items = 2; +} + +// EventSeries contain information on series of events, i.e. thing that was/is happening +// continously for some time. +message EventSeries { + // Number of occurrences in this series up to the last heartbeat time + optional int32 count = 1; + + // Time when last Event from the series was seen before last heartbeat. + optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2; + + // Information whether this series is ongoing or finished. + optional string state = 3; +} + diff --git a/vendor/k8s.io/api/events/v1beta1/register.go b/vendor/k8s.io/api/events/v1beta1/register.go new file mode 100644 index 00000000..45067829 --- /dev/null +++ b/vendor/k8s.io/api/events/v1beta1/register.go @@ -0,0 +1,53 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "events.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. + // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +// Adds the list of known types to api.Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &Event{}, + &EventList{}, + ) + + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/api/events/v1beta1/types.go b/vendor/k8s.io/api/events/v1beta1/types.go new file mode 100644 index 00000000..1b68bd74 --- /dev/null +++ b/vendor/k8s.io/api/events/v1beta1/types.go @@ -0,0 +1,122 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. +type Event struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Required. Time when this Event was first observed. + EventTime metav1.MicroTime `json:"eventTime" protobuf:"bytes,2,opt,name=eventTime"` + + // Data about the Event series this event represents or nil if it's a singleton Event. + // +optional + Series *EventSeries `json:"series,omitempty" protobuf:"bytes,3,opt,name=series"` + + // Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. + // +optional + ReportingController string `json:"reportingController,omitempty" protobuf:"bytes,4,opt,name=reportingController"` + + // ID of the controller instance, e.g. `kubelet-xyzf`. + // +optional + ReportingInstance string `json:"reportingInstance,omitemtpy" protobuf:"bytes,5,opt,name=reportingInstance"` + + // What action was taken/failed regarding to the regarding object. + // +optional + Action string `json:"action,omitemtpy" protobuf:"bytes,6,name=action"` + + // Why the action was taken. + Reason string `json:"reason,omitempty" protobuf:"bytes,7,name=reason"` + + // The object this Event is about. In most cases it's an Object reporting controller implements. + // E.g. ReplicaSetController implements ReplicaSets and this event is emitted because + // it acts on some changes in a ReplicaSet object. + // +optional + Regarding corev1.ObjectReference `json:"regarding,omitempty" protobuf:"bytes,8,opt,name=regarding"` + + // Optional secondary object for more complex actions. E.g. when regarding object triggers + // a creation or deletion of related object. + // +optional + Related *corev1.ObjectReference `json:"related,omitempty" protobuf:"bytes,9,opt,name=related"` + + // Optional. A human-readable description of the status of this operation. + // Maximal length of the note is 1kB, but libraries should be prepared to + // handle values up to 64kB. + // +optional + Note string `json:"note,omitempty" protobuf:"bytes,10,opt,name=note"` + + // Type of this event (Normal, Warning), new types could be added in the + // future. + // +optional + Type string `json:"type,omitempty" protobuf:"bytes,11,opt,name=type"` + + // Deprecated field assuring backward compatibility with core.v1 Event type + // +optional + DeprecatedSource corev1.EventSource `json:"deprecatedSource,omitempty" protobuf:"bytes,12,opt,name=deprecatedSource"` + // Deprecated field assuring backward compatibility with core.v1 Event type + // +optional + DeprecatedFirstTimestamp metav1.Time `json:"deprecatedFirstTimestamp,omitempty" protobuf:"bytes,13,opt,name=deprecatedFirstTimestamp"` + // Deprecated field assuring backward compatibility with core.v1 Event type + // +optional + DeprecatedLastTimestamp metav1.Time `json:"deprecatedLastTimestamp,omitempty" protobuf:"bytes,14,opt,name=deprecatedLastTimestamp"` + // Deprecated field assuring backward compatibility with core.v1 Event type + // +optional + DeprecatedCount int32 `json:"deprecatedCount,omitempty" protobuf:"varint,15,opt,name=deprecatedCount"` +} + +// EventSeries contain information on series of events, i.e. thing that was/is happening +// continously for some time. +type EventSeries struct { + // Number of occurrences in this series up to the last heartbeat time + Count int32 `json:"count" protobuf:"varint,1,opt,name=count"` + // Time when last Event from the series was seen before last heartbeat. + LastObservedTime metav1.MicroTime `json:"lastObservedTime" protobuf:"bytes,2,opt,name=lastObservedTime"` + // Information whether this series is ongoing or finished. + State EventSeriesState `json:"state" protobuf:"bytes,3,opt,name=state"` +} + +type EventSeriesState string + +const ( + EventSeriesStateOngoing EventSeriesState = "Ongoing" + EventSeriesStateFinished EventSeriesState = "Finished" + EventSeriesStateUnknown EventSeriesState = "Unknown" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// EventList is a list of Event objects. +type EventList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Items is a list of schema objects. + Items []Event `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go new file mode 100644 index 00000000..04a4a912 --- /dev/null +++ b/vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go @@ -0,0 +1,73 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +// This file contains a collection of methods that can be used from go-restful to +// generate Swagger API documentation for its models. Please read this PR for more +// information on the implementation: https://github.com/emicklei/go-restful/pull/215 +// +// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if +// they are on one line! For multiple line or blocks that you want to ignore use ---. +// Any context after a --- is ignored. +// +// Those methods can be generated by using hack/update-generated-swagger-docs.sh + +// AUTO-GENERATED FUNCTIONS START HERE +var map_Event = map[string]string{ + "": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", + "eventTime": "Required. Time when this Event was first observed.", + "series": "Data about the Event series this event represents or nil if it's a singleton Event.", + "reportingController": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", + "reportingInstance": "ID of the controller instance, e.g. `kubelet-xyzf`.", + "action": "What action was taken/failed regarding to the regarding object.", + "reason": "Why the action was taken.", + "regarding": "The object this Event is about. In most cases it's an Object reporting controller implements. E.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object.", + "related": "Optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object.", + "note": "Optional. A human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", + "type": "Type of this event (Normal, Warning), new types could be added in the future.", + "deprecatedSource": "Deprecated field assuring backward compatibility with core.v1 Event type", + "deprecatedFirstTimestamp": "Deprecated field assuring backward compatibility with core.v1 Event type", + "deprecatedLastTimestamp": "Deprecated field assuring backward compatibility with core.v1 Event type", + "deprecatedCount": "Deprecated field assuring backward compatibility with core.v1 Event type", +} + +func (Event) SwaggerDoc() map[string]string { + return map_Event +} + +var map_EventList = map[string]string{ + "": "EventList is a list of Event objects.", + "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "items": "Items is a list of schema objects.", +} + +func (EventList) SwaggerDoc() map[string]string { + return map_EventList +} + +var map_EventSeries = map[string]string{ + "": "EventSeries contain information on series of events, i.e. thing that was/is happening continously for some time.", + "count": "Number of occurrences in this series up to the last heartbeat time", + "lastObservedTime": "Time when last Event from the series was seen before last heartbeat.", + "state": "Information whether this series is ongoing or finished.", +} + +func (EventSeries) SwaggerDoc() map[string]string { + return map_EventSeries +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go new file mode 100644 index 00000000..2886eba1 --- /dev/null +++ b/vendor/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go @@ -0,0 +1,127 @@ +// +build !ignore_autogenerated + +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This file was autogenerated by deepcopy-gen. Do not edit it manually! + +package v1beta1 + +import ( + v1 "k8s.io/api/core/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Event) DeepCopyInto(out *Event) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.EventTime.DeepCopyInto(&out.EventTime) + if in.Series != nil { + in, out := &in.Series, &out.Series + if *in == nil { + *out = nil + } else { + *out = new(EventSeries) + (*in).DeepCopyInto(*out) + } + } + out.Regarding = in.Regarding + if in.Related != nil { + in, out := &in.Related, &out.Related + if *in == nil { + *out = nil + } else { + *out = new(v1.ObjectReference) + **out = **in + } + } + out.DeprecatedSource = in.DeprecatedSource + in.DeprecatedFirstTimestamp.DeepCopyInto(&out.DeprecatedFirstTimestamp) + in.DeprecatedLastTimestamp.DeepCopyInto(&out.DeprecatedLastTimestamp) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Event. +func (in *Event) DeepCopy() *Event { + if in == nil { + return nil + } + out := new(Event) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Event) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventList) DeepCopyInto(out *EventList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Event, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventList. +func (in *EventList) DeepCopy() *EventList { + if in == nil { + return nil + } + out := new(EventList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EventList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventSeries) DeepCopyInto(out *EventSeries) { + *out = *in + in.LastObservedTime.DeepCopyInto(&out.LastObservedTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSeries. +func (in *EventSeries) DeepCopy() *EventSeries { + if in == nil { + return nil + } + out := new(EventSeries) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go b/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go index c61147fc..ba5998e2 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go @@ -25,6 +25,7 @@ limitations under the License. k8s.io/kubernetes/vendor/k8s.io/api/extensions/v1beta1/generated.proto It has these top-level messages: + AllowedFlexVolume AllowedHostPath CustomMetricCurrentStatus CustomMetricCurrentStatusList @@ -113,253 +114,258 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package +func (m *AllowedFlexVolume) Reset() { *m = AllowedFlexVolume{} } +func (*AllowedFlexVolume) ProtoMessage() {} +func (*AllowedFlexVolume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + func (m *AllowedHostPath) Reset() { *m = AllowedHostPath{} } func (*AllowedHostPath) ProtoMessage() {} -func (*AllowedHostPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } +func (*AllowedHostPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } func (m *CustomMetricCurrentStatus) Reset() { *m = CustomMetricCurrentStatus{} } func (*CustomMetricCurrentStatus) ProtoMessage() {} func (*CustomMetricCurrentStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{1} + return fileDescriptorGenerated, []int{2} } func (m *CustomMetricCurrentStatusList) Reset() { *m = CustomMetricCurrentStatusList{} } func (*CustomMetricCurrentStatusList) ProtoMessage() {} func (*CustomMetricCurrentStatusList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{2} + return fileDescriptorGenerated, []int{3} } func (m *CustomMetricTarget) Reset() { *m = CustomMetricTarget{} } func (*CustomMetricTarget) ProtoMessage() {} -func (*CustomMetricTarget) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } +func (*CustomMetricTarget) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } func (m *CustomMetricTargetList) Reset() { *m = CustomMetricTargetList{} } func (*CustomMetricTargetList) ProtoMessage() {} -func (*CustomMetricTargetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } +func (*CustomMetricTargetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } func (m *DaemonSet) Reset() { *m = DaemonSet{} } func (*DaemonSet) ProtoMessage() {} -func (*DaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } +func (*DaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *DaemonSetCondition) Reset() { *m = DaemonSetCondition{} } func (*DaemonSetCondition) ProtoMessage() {} -func (*DaemonSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*DaemonSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } func (m *DaemonSetList) Reset() { *m = DaemonSetList{} } func (*DaemonSetList) ProtoMessage() {} -func (*DaemonSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*DaemonSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *DaemonSetSpec) Reset() { *m = DaemonSetSpec{} } func (*DaemonSetSpec) ProtoMessage() {} -func (*DaemonSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*DaemonSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *DaemonSetStatus) Reset() { *m = DaemonSetStatus{} } func (*DaemonSetStatus) ProtoMessage() {} -func (*DaemonSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*DaemonSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *DaemonSetUpdateStrategy) Reset() { *m = DaemonSetUpdateStrategy{} } func (*DaemonSetUpdateStrategy) ProtoMessage() {} func (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{10} + return fileDescriptorGenerated, []int{11} } func (m *Deployment) Reset() { *m = Deployment{} } func (*Deployment) ProtoMessage() {} -func (*Deployment) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } +func (*Deployment) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } func (m *DeploymentCondition) Reset() { *m = DeploymentCondition{} } func (*DeploymentCondition) ProtoMessage() {} -func (*DeploymentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } +func (*DeploymentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } func (m *DeploymentList) Reset() { *m = DeploymentList{} } func (*DeploymentList) ProtoMessage() {} -func (*DeploymentList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } +func (*DeploymentList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } func (m *DeploymentRollback) Reset() { *m = DeploymentRollback{} } func (*DeploymentRollback) ProtoMessage() {} -func (*DeploymentRollback) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } +func (*DeploymentRollback) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } func (m *DeploymentSpec) Reset() { *m = DeploymentSpec{} } func (*DeploymentSpec) ProtoMessage() {} -func (*DeploymentSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } +func (*DeploymentSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } func (m *DeploymentStatus) Reset() { *m = DeploymentStatus{} } func (*DeploymentStatus) ProtoMessage() {} -func (*DeploymentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } +func (*DeploymentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } func (m *DeploymentStrategy) Reset() { *m = DeploymentStrategy{} } func (*DeploymentStrategy) ProtoMessage() {} -func (*DeploymentStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } +func (*DeploymentStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } func (m *FSGroupStrategyOptions) Reset() { *m = FSGroupStrategyOptions{} } func (*FSGroupStrategyOptions) ProtoMessage() {} -func (*FSGroupStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } +func (*FSGroupStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } func (m *HTTPIngressPath) Reset() { *m = HTTPIngressPath{} } func (*HTTPIngressPath) ProtoMessage() {} -func (*HTTPIngressPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } +func (*HTTPIngressPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{20} } func (m *HTTPIngressRuleValue) Reset() { *m = HTTPIngressRuleValue{} } func (*HTTPIngressRuleValue) ProtoMessage() {} -func (*HTTPIngressRuleValue) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{20} } +func (*HTTPIngressRuleValue) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } func (m *HostPortRange) Reset() { *m = HostPortRange{} } func (*HostPortRange) ProtoMessage() {} -func (*HostPortRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } +func (*HostPortRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } func (m *IDRange) Reset() { *m = IDRange{} } func (*IDRange) ProtoMessage() {} -func (*IDRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } +func (*IDRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } func (m *IPBlock) Reset() { *m = IPBlock{} } func (*IPBlock) ProtoMessage() {} -func (*IPBlock) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } +func (*IPBlock) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } func (m *Ingress) Reset() { *m = Ingress{} } func (*Ingress) ProtoMessage() {} -func (*Ingress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } +func (*Ingress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } func (m *IngressBackend) Reset() { *m = IngressBackend{} } func (*IngressBackend) ProtoMessage() {} -func (*IngressBackend) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } +func (*IngressBackend) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } func (m *IngressList) Reset() { *m = IngressList{} } func (*IngressList) ProtoMessage() {} -func (*IngressList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } +func (*IngressList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{27} } func (m *IngressRule) Reset() { *m = IngressRule{} } func (*IngressRule) ProtoMessage() {} -func (*IngressRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{27} } +func (*IngressRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{28} } func (m *IngressRuleValue) Reset() { *m = IngressRuleValue{} } func (*IngressRuleValue) ProtoMessage() {} -func (*IngressRuleValue) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{28} } +func (*IngressRuleValue) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{29} } func (m *IngressSpec) Reset() { *m = IngressSpec{} } func (*IngressSpec) ProtoMessage() {} -func (*IngressSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{29} } +func (*IngressSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{30} } func (m *IngressStatus) Reset() { *m = IngressStatus{} } func (*IngressStatus) ProtoMessage() {} -func (*IngressStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{30} } +func (*IngressStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{31} } func (m *IngressTLS) Reset() { *m = IngressTLS{} } func (*IngressTLS) ProtoMessage() {} -func (*IngressTLS) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{31} } +func (*IngressTLS) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{32} } func (m *NetworkPolicy) Reset() { *m = NetworkPolicy{} } func (*NetworkPolicy) ProtoMessage() {} -func (*NetworkPolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{32} } +func (*NetworkPolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{33} } func (m *NetworkPolicyEgressRule) Reset() { *m = NetworkPolicyEgressRule{} } func (*NetworkPolicyEgressRule) ProtoMessage() {} func (*NetworkPolicyEgressRule) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{33} + return fileDescriptorGenerated, []int{34} } func (m *NetworkPolicyIngressRule) Reset() { *m = NetworkPolicyIngressRule{} } func (*NetworkPolicyIngressRule) ProtoMessage() {} func (*NetworkPolicyIngressRule) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{34} + return fileDescriptorGenerated, []int{35} } func (m *NetworkPolicyList) Reset() { *m = NetworkPolicyList{} } func (*NetworkPolicyList) ProtoMessage() {} -func (*NetworkPolicyList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{35} } +func (*NetworkPolicyList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{36} } func (m *NetworkPolicyPeer) Reset() { *m = NetworkPolicyPeer{} } func (*NetworkPolicyPeer) ProtoMessage() {} -func (*NetworkPolicyPeer) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{36} } +func (*NetworkPolicyPeer) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{37} } func (m *NetworkPolicyPort) Reset() { *m = NetworkPolicyPort{} } func (*NetworkPolicyPort) ProtoMessage() {} -func (*NetworkPolicyPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{37} } +func (*NetworkPolicyPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{38} } func (m *NetworkPolicySpec) Reset() { *m = NetworkPolicySpec{} } func (*NetworkPolicySpec) ProtoMessage() {} -func (*NetworkPolicySpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{38} } +func (*NetworkPolicySpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{39} } func (m *PodSecurityPolicy) Reset() { *m = PodSecurityPolicy{} } func (*PodSecurityPolicy) ProtoMessage() {} -func (*PodSecurityPolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{39} } +func (*PodSecurityPolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{40} } func (m *PodSecurityPolicyList) Reset() { *m = PodSecurityPolicyList{} } func (*PodSecurityPolicyList) ProtoMessage() {} -func (*PodSecurityPolicyList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{40} } +func (*PodSecurityPolicyList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{41} } func (m *PodSecurityPolicySpec) Reset() { *m = PodSecurityPolicySpec{} } func (*PodSecurityPolicySpec) ProtoMessage() {} -func (*PodSecurityPolicySpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{41} } +func (*PodSecurityPolicySpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{42} } func (m *ReplicaSet) Reset() { *m = ReplicaSet{} } func (*ReplicaSet) ProtoMessage() {} -func (*ReplicaSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{42} } +func (*ReplicaSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{43} } func (m *ReplicaSetCondition) Reset() { *m = ReplicaSetCondition{} } func (*ReplicaSetCondition) ProtoMessage() {} -func (*ReplicaSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{43} } +func (*ReplicaSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{44} } func (m *ReplicaSetList) Reset() { *m = ReplicaSetList{} } func (*ReplicaSetList) ProtoMessage() {} -func (*ReplicaSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{44} } +func (*ReplicaSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{45} } func (m *ReplicaSetSpec) Reset() { *m = ReplicaSetSpec{} } func (*ReplicaSetSpec) ProtoMessage() {} -func (*ReplicaSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{45} } +func (*ReplicaSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{46} } func (m *ReplicaSetStatus) Reset() { *m = ReplicaSetStatus{} } func (*ReplicaSetStatus) ProtoMessage() {} -func (*ReplicaSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{46} } +func (*ReplicaSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{47} } func (m *ReplicationControllerDummy) Reset() { *m = ReplicationControllerDummy{} } func (*ReplicationControllerDummy) ProtoMessage() {} func (*ReplicationControllerDummy) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{47} + return fileDescriptorGenerated, []int{48} } func (m *RollbackConfig) Reset() { *m = RollbackConfig{} } func (*RollbackConfig) ProtoMessage() {} -func (*RollbackConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{48} } +func (*RollbackConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{49} } func (m *RollingUpdateDaemonSet) Reset() { *m = RollingUpdateDaemonSet{} } func (*RollingUpdateDaemonSet) ProtoMessage() {} -func (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{49} } +func (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{50} } func (m *RollingUpdateDeployment) Reset() { *m = RollingUpdateDeployment{} } func (*RollingUpdateDeployment) ProtoMessage() {} func (*RollingUpdateDeployment) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{50} + return fileDescriptorGenerated, []int{51} } func (m *RunAsUserStrategyOptions) Reset() { *m = RunAsUserStrategyOptions{} } func (*RunAsUserStrategyOptions) ProtoMessage() {} func (*RunAsUserStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{51} + return fileDescriptorGenerated, []int{52} } func (m *SELinuxStrategyOptions) Reset() { *m = SELinuxStrategyOptions{} } func (*SELinuxStrategyOptions) ProtoMessage() {} -func (*SELinuxStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{52} } +func (*SELinuxStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{53} } func (m *Scale) Reset() { *m = Scale{} } func (*Scale) ProtoMessage() {} -func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{53} } +func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{54} } func (m *ScaleSpec) Reset() { *m = ScaleSpec{} } func (*ScaleSpec) ProtoMessage() {} -func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{54} } +func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{55} } func (m *ScaleStatus) Reset() { *m = ScaleStatus{} } func (*ScaleStatus) ProtoMessage() {} -func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{55} } +func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{56} } func (m *SupplementalGroupsStrategyOptions) Reset() { *m = SupplementalGroupsStrategyOptions{} } func (*SupplementalGroupsStrategyOptions) ProtoMessage() {} func (*SupplementalGroupsStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{56} + return fileDescriptorGenerated, []int{57} } func init() { + proto.RegisterType((*AllowedFlexVolume)(nil), "k8s.io.api.extensions.v1beta1.AllowedFlexVolume") proto.RegisterType((*AllowedHostPath)(nil), "k8s.io.api.extensions.v1beta1.AllowedHostPath") proto.RegisterType((*CustomMetricCurrentStatus)(nil), "k8s.io.api.extensions.v1beta1.CustomMetricCurrentStatus") proto.RegisterType((*CustomMetricCurrentStatusList)(nil), "k8s.io.api.extensions.v1beta1.CustomMetricCurrentStatusList") @@ -418,6 +424,28 @@ func init() { proto.RegisterType((*ScaleStatus)(nil), "k8s.io.api.extensions.v1beta1.ScaleStatus") proto.RegisterType((*SupplementalGroupsStrategyOptions)(nil), "k8s.io.api.extensions.v1beta1.SupplementalGroupsStrategyOptions") } +func (m *AllowedFlexVolume) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AllowedFlexVolume) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver))) + i += copy(dAtA[i:], m.Driver) + return i, nil +} + func (m *AllowedHostPath) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2207,6 +2235,20 @@ func (m *PodSecurityPolicySpec) MarshalTo(dAtA []byte) (int, error) { i += n } } + if len(m.AllowedFlexVolumes) > 0 { + for _, msg := range m.AllowedFlexVolumes { + dAtA[i] = 0x92 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } return i, nil } @@ -2763,6 +2805,14 @@ func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return offset + 1 } +func (m *AllowedFlexVolume) Size() (n int) { + var l int + _ = l + l = len(m.Driver) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *AllowedHostPath) Size() (n int) { var l int _ = l @@ -3401,6 +3451,12 @@ func (m *PodSecurityPolicySpec) Size() (n int) { n += 2 + l + sovGenerated(uint64(l)) } } + if len(m.AllowedFlexVolumes) > 0 { + for _, e := range m.AllowedFlexVolumes { + l = e.Size() + n += 2 + l + sovGenerated(uint64(l)) + } + } return n } @@ -3605,6 +3661,16 @@ func sovGenerated(x uint64) (n int) { func sozGenerated(x uint64) (n int) { return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (this *AllowedFlexVolume) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AllowedFlexVolume{`, + `Driver:` + fmt.Sprintf("%v", this.Driver) + `,`, + `}`, + }, "") + return s +} func (this *AllowedHostPath) String() string { if this == nil { return "nil" @@ -4122,6 +4188,7 @@ func (this *PodSecurityPolicySpec) String() string { `DefaultAllowPrivilegeEscalation:` + valueToStringGenerated(this.DefaultAllowPrivilegeEscalation) + `,`, `AllowPrivilegeEscalation:` + valueToStringGenerated(this.AllowPrivilegeEscalation) + `,`, `AllowedHostPaths:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedHostPaths), "AllowedHostPath", "AllowedHostPath", 1), `&`, ``, 1) + `,`, + `AllowedFlexVolumes:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedFlexVolumes), "AllowedFlexVolume", "AllowedFlexVolume", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -4316,6 +4383,85 @@ func valueToStringGenerated(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } +func (m *AllowedFlexVolume) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AllowedFlexVolume: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AllowedFlexVolume: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Driver", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Driver = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *AllowedHostPath) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -10129,6 +10275,37 @@ func (m *PodSecurityPolicySpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowedFlexVolumes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AllowedFlexVolumes = append(m.AllowedFlexVolumes, AllowedFlexVolume{}) + if err := m.AllowedFlexVolumes[len(m.AllowedFlexVolumes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -12108,226 +12285,229 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 3523 bytes of a gzipped FileDescriptorProto + // 3571 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0x1c, 0x47, 0x76, 0x57, 0xcf, 0x0c, 0x39, 0xc3, 0x47, 0xf1, 0xab, 0x28, 0x93, 0x63, 0xca, 0xe2, 0xc8, 0x6d, 0x40, 0x91, 0x1c, 0x69, 0xc6, 0x92, 0x2d, 0x59, 0xb1, 0x10, 0x3b, 0x1c, 0x52, 0x1f, 0x74, 0xf8, 0xa5, 0x1a, 0x52, 0x71, 0x8c, 0xc8, 0x71, 0x73, 0xa6, 0x38, 0x6c, 0xb1, 0xa7, 0xbb, 0xdd, 0x5d, - 0x4d, 0x73, 0x2e, 0x41, 0x0e, 0x41, 0x80, 0x00, 0x09, 0x92, 0x1c, 0x9c, 0x38, 0xb7, 0xf8, 0x92, - 0x53, 0x82, 0xe4, 0x96, 0x1c, 0x0c, 0x03, 0x01, 0x1c, 0x40, 0x08, 0xbc, 0x80, 0x6f, 0xeb, 0x13, - 0xb1, 0xa6, 0x4f, 0x8b, 0xfd, 0x07, 0x16, 0x3a, 0x2c, 0x16, 0x55, 0x5d, 0xfd, 0xdd, 0xcd, 0x99, - 0xa1, 0x25, 0x62, 0xb1, 0xd8, 0x1b, 0xa7, 0xde, 0x7b, 0xbf, 0xf7, 0xea, 0xd5, 0xab, 0xf7, 0x5e, - 0x57, 0x15, 0xe1, 0xde, 0xde, 0x6d, 0xbb, 0xaa, 0x1a, 0xb5, 0x3d, 0x67, 0x9b, 0x58, 0x3a, 0xa1, - 0xc4, 0xae, 0xed, 0x13, 0xbd, 0x65, 0x58, 0x35, 0x41, 0x50, 0x4c, 0xb5, 0x46, 0x0e, 0x28, 0xd1, - 0x6d, 0xd5, 0xd0, 0xed, 0xda, 0xfe, 0xf5, 0x6d, 0x42, 0x95, 0xeb, 0xb5, 0x36, 0xd1, 0x89, 0xa5, - 0x50, 0xd2, 0xaa, 0x9a, 0x96, 0x41, 0x0d, 0x74, 0xc1, 0x65, 0xaf, 0x2a, 0xa6, 0x5a, 0x0d, 0xd8, - 0xab, 0x82, 0x7d, 0xee, 0x5a, 0x5b, 0xa5, 0xbb, 0xce, 0x76, 0xb5, 0x69, 0x74, 0x6a, 0x6d, 0xa3, - 0x6d, 0xd4, 0xb8, 0xd4, 0xb6, 0xb3, 0xc3, 0x7f, 0xf1, 0x1f, 0xfc, 0x2f, 0x17, 0x6d, 0x4e, 0x0e, - 0x29, 0x6f, 0x1a, 0x16, 0xa9, 0xed, 0x27, 0x34, 0xce, 0x5d, 0x09, 0xf1, 0x98, 0x86, 0xa6, 0x36, - 0xbb, 0x59, 0xc6, 0xcd, 0xbd, 0x15, 0xb0, 0x76, 0x94, 0xe6, 0xae, 0xaa, 0x13, 0xab, 0x5b, 0x33, - 0xf7, 0xda, 0x5c, 0xd6, 0x22, 0xb6, 0xe1, 0x58, 0x4d, 0x32, 0x90, 0x94, 0x5d, 0xeb, 0x10, 0xaa, - 0xa4, 0x99, 0x55, 0xcb, 0x92, 0xb2, 0x1c, 0x9d, 0xaa, 0x9d, 0xa4, 0x9a, 0x5b, 0xbd, 0x04, 0xec, - 0xe6, 0x2e, 0xe9, 0x28, 0x09, 0xb9, 0x37, 0xb3, 0xe4, 0x1c, 0xaa, 0x6a, 0x35, 0x55, 0xa7, 0x36, - 0xb5, 0xe2, 0x42, 0xf2, 0x5d, 0x98, 0x58, 0xd0, 0x34, 0xe3, 0x53, 0xd2, 0x7a, 0x60, 0xd8, 0x74, - 0x43, 0xa1, 0xbb, 0xe8, 0x06, 0x80, 0xa9, 0xd0, 0xdd, 0x0d, 0x8b, 0xec, 0xa8, 0x07, 0x65, 0xe9, - 0xa2, 0x74, 0x79, 0xa4, 0x8e, 0x9e, 0x1e, 0x56, 0xce, 0x1c, 0x1d, 0x56, 0x60, 0xc3, 0xa7, 0xe0, - 0x10, 0x97, 0xfc, 0x2f, 0x12, 0xbc, 0xbc, 0xe8, 0xd8, 0xd4, 0xe8, 0xac, 0x12, 0x6a, 0xa9, 0xcd, - 0x45, 0xc7, 0xb2, 0x88, 0x4e, 0x1b, 0x54, 0xa1, 0x8e, 0x8d, 0x2e, 0x42, 0x41, 0x57, 0x3a, 0x44, - 0x60, 0x9d, 0x15, 0x58, 0x85, 0x35, 0xa5, 0x43, 0x30, 0xa7, 0xa0, 0x0f, 0x61, 0x68, 0x5f, 0xd1, - 0x1c, 0x52, 0xce, 0x5d, 0x94, 0x2e, 0x8f, 0xde, 0xa8, 0x56, 0x83, 0xe8, 0xf1, 0xe7, 0x52, 0x35, - 0xf7, 0xda, 0x3c, 0x9c, 0xbc, 0x05, 0xaa, 0x3e, 0x74, 0x14, 0x9d, 0xaa, 0xb4, 0x5b, 0x3f, 0x27, - 0x20, 0xcf, 0x0a, 0xbd, 0x8f, 0x18, 0x16, 0x76, 0x21, 0xe5, 0xbf, 0x80, 0x0b, 0x99, 0xa6, 0xad, - 0xa8, 0x36, 0x45, 0x8f, 0x61, 0x48, 0xa5, 0xa4, 0x63, 0x97, 0xa5, 0x8b, 0xf9, 0xcb, 0xa3, 0x37, - 0x6e, 0x57, 0x8f, 0x0d, 0xdd, 0x6a, 0x26, 0x58, 0x7d, 0x4c, 0x98, 0x31, 0xb4, 0xcc, 0xe0, 0xb0, - 0x8b, 0x2a, 0xff, 0xa3, 0x04, 0x28, 0x2c, 0xb3, 0xa9, 0x58, 0x6d, 0x42, 0xfb, 0x70, 0xca, 0x9f, - 0xfe, 0x38, 0xa7, 0x4c, 0x0b, 0xc8, 0x51, 0x57, 0x61, 0xc4, 0x27, 0x26, 0xcc, 0x24, 0x4d, 0xe2, - 0xce, 0x78, 0x14, 0x75, 0xc6, 0xf5, 0x01, 0x9c, 0xe1, 0xa2, 0x64, 0x78, 0xe1, 0xb3, 0x1c, 0x8c, - 0x2c, 0x29, 0xa4, 0x63, 0xe8, 0x0d, 0x42, 0xd1, 0xc7, 0x50, 0x62, 0xfb, 0xa5, 0xa5, 0x50, 0x85, - 0x3b, 0x60, 0xf4, 0xc6, 0x1b, 0xc7, 0xcd, 0xce, 0xae, 0x32, 0xee, 0xea, 0xfe, 0xf5, 0xea, 0xfa, - 0xf6, 0x13, 0xd2, 0xa4, 0xab, 0x84, 0x2a, 0x41, 0x4c, 0x06, 0x63, 0xd8, 0x47, 0x45, 0x6b, 0x50, - 0xb0, 0x4d, 0xd2, 0x14, 0xbe, 0xbb, 0xda, 0x63, 0x1a, 0xbe, 0x65, 0x0d, 0x93, 0x34, 0x83, 0xc5, - 0x60, 0xbf, 0x30, 0xc7, 0x41, 0x8f, 0x60, 0xd8, 0xe6, 0xab, 0x5c, 0xce, 0x27, 0x56, 0xe3, 0x78, - 0x44, 0x37, 0x36, 0xc6, 0x05, 0xe6, 0xb0, 0xfb, 0x1b, 0x0b, 0x34, 0xf9, 0xe7, 0x39, 0x40, 0x3e, - 0xef, 0xa2, 0xa1, 0xb7, 0x54, 0xaa, 0x1a, 0x3a, 0x7a, 0x07, 0x0a, 0xb4, 0x6b, 0x7a, 0xd1, 0x71, - 0xc9, 0x33, 0x68, 0xb3, 0x6b, 0x92, 0x67, 0x87, 0x95, 0x99, 0xa4, 0x04, 0xa3, 0x60, 0x2e, 0x83, - 0x56, 0x7c, 0x53, 0x73, 0x5c, 0xfa, 0xad, 0xa8, 0xea, 0x67, 0x87, 0x95, 0x94, 0x74, 0x5a, 0xf5, - 0x91, 0xa2, 0x06, 0xa2, 0x7d, 0x40, 0x9a, 0x62, 0xd3, 0x4d, 0x4b, 0xd1, 0x6d, 0x57, 0x93, 0xda, - 0x21, 0xc2, 0x09, 0xaf, 0xf7, 0xb7, 0x68, 0x4c, 0xa2, 0x3e, 0x27, 0xac, 0x40, 0x2b, 0x09, 0x34, - 0x9c, 0xa2, 0x01, 0x5d, 0x82, 0x61, 0x8b, 0x28, 0xb6, 0xa1, 0x97, 0x0b, 0x7c, 0x16, 0xbe, 0x03, - 0x31, 0x1f, 0xc5, 0x82, 0x8a, 0xae, 0x40, 0xb1, 0x43, 0x6c, 0x5b, 0x69, 0x93, 0xf2, 0x10, 0x67, - 0x9c, 0x10, 0x8c, 0xc5, 0x55, 0x77, 0x18, 0x7b, 0x74, 0xf9, 0x4b, 0x09, 0xc6, 0x7c, 0xcf, 0xf1, - 0x68, 0xff, 0xb3, 0x44, 0x1c, 0x56, 0xfb, 0x9b, 0x12, 0x93, 0xe6, 0x51, 0x38, 0x29, 0xb4, 0x95, - 0xbc, 0x91, 0x50, 0x0c, 0xae, 0x7a, 0x7b, 0x29, 0xc7, 0xf7, 0xd2, 0xe5, 0x7e, 0x43, 0x26, 0x63, - 0x0b, 0xfd, 0x53, 0x21, 0x64, 0x3e, 0x0b, 0x4d, 0xf4, 0x18, 0x4a, 0x36, 0xd1, 0x48, 0x93, 0x1a, - 0x96, 0x30, 0xff, 0xcd, 0x3e, 0xcd, 0x57, 0xb6, 0x89, 0xd6, 0x10, 0xa2, 0xf5, 0xb3, 0xcc, 0x7e, - 0xef, 0x17, 0xf6, 0x21, 0xd1, 0x43, 0x28, 0x51, 0xd2, 0x31, 0x35, 0x85, 0x7a, 0x39, 0xe8, 0xb5, - 0xf0, 0x14, 0x58, 0xe4, 0x30, 0xb0, 0x0d, 0xa3, 0xb5, 0x29, 0xd8, 0xf8, 0xf6, 0xf1, 0x5d, 0xe2, - 0x8d, 0x62, 0x1f, 0x06, 0xed, 0xc3, 0xb8, 0x63, 0xb6, 0x18, 0x27, 0x65, 0x65, 0xa8, 0xdd, 0x15, - 0x91, 0x74, 0xab, 0x5f, 0xdf, 0x6c, 0x45, 0xa4, 0xeb, 0x33, 0x42, 0xd7, 0x78, 0x74, 0x1c, 0xc7, - 0xb4, 0xa0, 0x05, 0x98, 0xe8, 0xa8, 0x3a, 0x26, 0x4a, 0xab, 0xdb, 0x20, 0x4d, 0x43, 0x6f, 0xd9, - 0x3c, 0xac, 0x86, 0xea, 0xb3, 0x02, 0x60, 0x62, 0x35, 0x4a, 0xc6, 0x71, 0x7e, 0xf4, 0x3e, 0x20, - 0x6f, 0x1a, 0xf7, 0xdd, 0x2a, 0xaa, 0x1a, 0x3a, 0x8f, 0xb9, 0x7c, 0x10, 0xdc, 0x9b, 0x09, 0x0e, - 0x9c, 0x22, 0x85, 0x56, 0xe0, 0x9c, 0x45, 0xf6, 0x55, 0x36, 0xc7, 0x07, 0xaa, 0x4d, 0x0d, 0xab, - 0xbb, 0xa2, 0x76, 0x54, 0x5a, 0x1e, 0xe6, 0x36, 0x95, 0x8f, 0x0e, 0x2b, 0xe7, 0x70, 0x0a, 0x1d, - 0xa7, 0x4a, 0xc9, 0xff, 0x3c, 0x0c, 0x13, 0xb1, 0x7c, 0x83, 0x1e, 0xc1, 0x4c, 0xd3, 0x2d, 0x4e, - 0x6b, 0x4e, 0x67, 0x9b, 0x58, 0x8d, 0xe6, 0x2e, 0x69, 0x39, 0x1a, 0x69, 0xf1, 0x40, 0x19, 0xaa, - 0xcf, 0x0b, 0x8b, 0x67, 0x16, 0x53, 0xb9, 0x70, 0x86, 0x34, 0xf3, 0x82, 0xce, 0x87, 0x56, 0x55, - 0xdb, 0xf6, 0x31, 0x73, 0x1c, 0xd3, 0xf7, 0xc2, 0x5a, 0x82, 0x03, 0xa7, 0x48, 0x31, 0x1b, 0x5b, - 0xc4, 0x56, 0x2d, 0xd2, 0x8a, 0xdb, 0x98, 0x8f, 0xda, 0xb8, 0x94, 0xca, 0x85, 0x33, 0xa4, 0xd1, - 0x4d, 0x18, 0x75, 0xb5, 0xf1, 0xf5, 0x13, 0x0b, 0xed, 0x97, 0xc3, 0xb5, 0x80, 0x84, 0xc3, 0x7c, - 0x6c, 0x6a, 0xc6, 0xb6, 0x4d, 0xac, 0x7d, 0xd2, 0xca, 0x5e, 0xe0, 0xf5, 0x04, 0x07, 0x4e, 0x91, - 0x62, 0x53, 0x73, 0x23, 0x30, 0x31, 0xb5, 0xe1, 0xe8, 0xd4, 0xb6, 0x52, 0xb9, 0x70, 0x86, 0x34, - 0x8b, 0x63, 0xd7, 0xe4, 0x85, 0x7d, 0x45, 0xd5, 0x94, 0x6d, 0x8d, 0x94, 0x8b, 0xd1, 0x38, 0x5e, - 0x8b, 0x92, 0x71, 0x9c, 0x1f, 0xdd, 0x87, 0x29, 0x77, 0x68, 0x4b, 0x57, 0x7c, 0x90, 0x12, 0x07, - 0x79, 0x59, 0x80, 0x4c, 0xad, 0xc5, 0x19, 0x70, 0x52, 0x06, 0xbd, 0x03, 0xe3, 0x4d, 0x43, 0xd3, - 0x78, 0x3c, 0x2e, 0x1a, 0x8e, 0x4e, 0xcb, 0x23, 0x1c, 0x05, 0xb1, 0xfd, 0xb8, 0x18, 0xa1, 0xe0, - 0x18, 0x27, 0x22, 0x00, 0x4d, 0xaf, 0xe0, 0xd8, 0x65, 0xe8, 0xab, 0xd7, 0x48, 0x16, 0xbd, 0xa0, - 0x07, 0xf0, 0x87, 0x6c, 0x1c, 0x02, 0x96, 0xff, 0x5f, 0x82, 0xd9, 0x8c, 0xd4, 0x81, 0xde, 0x8b, - 0x94, 0xd8, 0xdf, 0x8f, 0x95, 0xd8, 0xf3, 0x19, 0x62, 0xa1, 0x3a, 0xab, 0xc3, 0x98, 0xc5, 0x66, - 0xa5, 0xb7, 0x5d, 0x16, 0x91, 0x23, 0x6f, 0xf6, 0x98, 0x06, 0x0e, 0xcb, 0x04, 0x39, 0x7f, 0xea, - 0xe8, 0xb0, 0x32, 0x16, 0xa1, 0xe1, 0x28, 0xbc, 0xfc, 0x79, 0x0e, 0x60, 0x89, 0x98, 0x9a, 0xd1, - 0xed, 0x10, 0xfd, 0x34, 0x7a, 0xa8, 0xf5, 0x48, 0x0f, 0x75, 0xad, 0xd7, 0xf2, 0xf8, 0xa6, 0x65, - 0x36, 0x51, 0x7f, 0x12, 0x6b, 0xa2, 0x6a, 0xfd, 0x43, 0x1e, 0xdf, 0x45, 0xfd, 0x34, 0x0f, 0xd3, - 0x01, 0x73, 0xd0, 0x46, 0xdd, 0x89, 0xac, 0xf1, 0xef, 0xc5, 0xd6, 0x78, 0x36, 0x45, 0xe4, 0x85, - 0xf5, 0x51, 0xcf, 0xbf, 0x9f, 0x41, 0x4f, 0x60, 0x9c, 0x35, 0x4e, 0x6e, 0x78, 0xf0, 0xb6, 0x6c, - 0x78, 0xe0, 0xb6, 0xcc, 0x2f, 0xa0, 0x2b, 0x11, 0x24, 0x1c, 0x43, 0xce, 0x68, 0x03, 0x8b, 0x2f, - 0xba, 0x0d, 0x94, 0xbf, 0x92, 0x60, 0x3c, 0x58, 0xa6, 0x53, 0x68, 0xda, 0xd6, 0xa2, 0x4d, 0xdb, - 0x95, 0xbe, 0x43, 0x34, 0xa3, 0x6b, 0xfb, 0x25, 0x6b, 0xf0, 0x7d, 0x26, 0xb6, 0xc1, 0xb7, 0x95, - 0xe6, 0x5e, 0x1f, 0x9f, 0x7f, 0x9f, 0x49, 0x80, 0x44, 0x15, 0x58, 0xd0, 0x75, 0x83, 0x2a, 0x6e, - 0xae, 0x74, 0xcd, 0x5a, 0xee, 0xdb, 0x2c, 0x4f, 0x63, 0x75, 0x2b, 0x81, 0x75, 0x57, 0xa7, 0x56, - 0x37, 0x58, 0x91, 0x24, 0x03, 0x4e, 0x31, 0x00, 0x29, 0x00, 0x96, 0xc0, 0xdc, 0x34, 0xc4, 0x46, - 0xbe, 0xd6, 0x47, 0xce, 0x63, 0x02, 0x8b, 0x86, 0xbe, 0xa3, 0xb6, 0x83, 0xb4, 0x83, 0x7d, 0x20, - 0x1c, 0x02, 0x9d, 0xbb, 0x0b, 0xb3, 0x19, 0xd6, 0xa2, 0x49, 0xc8, 0xef, 0x91, 0xae, 0xeb, 0x36, - 0xcc, 0xfe, 0x44, 0xe7, 0xc2, 0x9f, 0xc9, 0x23, 0xe2, 0x0b, 0xf7, 0x9d, 0xdc, 0x6d, 0x49, 0xfe, - 0x72, 0x28, 0x1c, 0x3b, 0xbc, 0x63, 0xbe, 0x0c, 0x25, 0x8b, 0x98, 0x9a, 0xda, 0x54, 0x6c, 0xd1, - 0x08, 0xf1, 0xe6, 0x17, 0x8b, 0x31, 0xec, 0x53, 0x23, 0xbd, 0x75, 0xee, 0xc5, 0xf6, 0xd6, 0xf9, - 0xe7, 0xd3, 0x5b, 0xff, 0x39, 0x94, 0x6c, 0xaf, 0xab, 0x2e, 0x70, 0xc8, 0xeb, 0x03, 0xe4, 0x57, - 0xd1, 0x50, 0xfb, 0x0a, 0xfc, 0x56, 0xda, 0x07, 0x4d, 0x6b, 0xa2, 0x87, 0x06, 0x6c, 0xa2, 0x9f, - 0x6b, 0xe3, 0xcb, 0x72, 0xaa, 0xa9, 0x38, 0x36, 0x69, 0xf1, 0x44, 0x54, 0x0a, 0x72, 0xea, 0x06, - 0x1f, 0xc5, 0x82, 0x8a, 0x1e, 0x47, 0x42, 0xb6, 0x74, 0x92, 0x90, 0x1d, 0xcf, 0x0e, 0x57, 0xb4, - 0x05, 0xb3, 0xa6, 0x65, 0xb4, 0x2d, 0x62, 0xdb, 0x4b, 0x44, 0x69, 0x69, 0xaa, 0x4e, 0x3c, 0xff, - 0xb8, 0x1d, 0xd1, 0xf9, 0xa3, 0xc3, 0xca, 0xec, 0x46, 0x3a, 0x0b, 0xce, 0x92, 0x95, 0x9f, 0x16, - 0x60, 0x32, 0x5e, 0x01, 0x33, 0x9a, 0x54, 0xe9, 0x44, 0x4d, 0xea, 0xd5, 0xd0, 0x66, 0x70, 0x3b, - 0x78, 0x7f, 0xf5, 0x53, 0x36, 0xc4, 0x02, 0x4c, 0x88, 0x6c, 0xe0, 0x11, 0x45, 0x9b, 0xee, 0xaf, - 0xfe, 0x56, 0x94, 0x8c, 0xe3, 0xfc, 0xac, 0xf5, 0x0c, 0x3a, 0x4a, 0x0f, 0xa4, 0x10, 0x6d, 0x3d, - 0x17, 0xe2, 0x0c, 0x38, 0x29, 0x83, 0x56, 0x61, 0xda, 0xd1, 0x93, 0x50, 0x6e, 0x34, 0x9e, 0x17, - 0x50, 0xd3, 0x5b, 0x49, 0x16, 0x9c, 0x26, 0x87, 0x76, 0x22, 0xdd, 0xe8, 0x30, 0xcf, 0xb0, 0x37, - 0xfa, 0xde, 0x3b, 0x7d, 0xb7, 0xa3, 0xe8, 0x0e, 0x8c, 0x59, 0xfc, 0xbb, 0xc3, 0x33, 0xd8, 0xed, - 0xdd, 0x5f, 0x12, 0x62, 0x63, 0x38, 0x4c, 0xc4, 0x51, 0xde, 0x94, 0x76, 0xbb, 0xd4, 0x6f, 0xbb, - 0x2d, 0xff, 0xaf, 0x14, 0x2e, 0x42, 0x7e, 0x0b, 0xdc, 0xeb, 0x94, 0x29, 0x21, 0x11, 0xea, 0x8e, - 0x8c, 0xf4, 0xee, 0xf7, 0xd6, 0x40, 0xdd, 0x6f, 0x50, 0x3c, 0x7b, 0xb7, 0xbf, 0x5f, 0x48, 0x30, - 0x73, 0xaf, 0x71, 0xdf, 0x32, 0x1c, 0xd3, 0x33, 0x67, 0xdd, 0x74, 0xfd, 0xfa, 0x36, 0x14, 0x2c, - 0x47, 0xf3, 0xe6, 0xf1, 0x9a, 0x37, 0x0f, 0xec, 0x68, 0x6c, 0x1e, 0xd3, 0x31, 0x29, 0x77, 0x12, - 0x4c, 0x00, 0xad, 0xc1, 0xb0, 0xa5, 0xe8, 0x6d, 0xe2, 0x95, 0xd5, 0x4b, 0x3d, 0xac, 0x5f, 0x5e, - 0xc2, 0x8c, 0x3d, 0xd4, 0xbc, 0x71, 0x69, 0x2c, 0x50, 0xe4, 0xbf, 0x93, 0x60, 0xe2, 0xc1, 0xe6, - 0xe6, 0xc6, 0xb2, 0xce, 0x77, 0x34, 0x3f, 0x4f, 0xbf, 0x08, 0x05, 0x53, 0xa1, 0xbb, 0xf1, 0x4a, - 0xcf, 0x68, 0x98, 0x53, 0xd0, 0x07, 0x50, 0x64, 0x99, 0x84, 0xe8, 0xad, 0x3e, 0x5b, 0x6d, 0x01, - 0x5f, 0x77, 0x85, 0x82, 0x0e, 0x51, 0x0c, 0x60, 0x0f, 0x4e, 0xde, 0x83, 0x73, 0x21, 0x73, 0x98, - 0x3f, 0xf8, 0x31, 0x30, 0x6a, 0xc0, 0x10, 0xd3, 0xec, 0x9d, 0xf2, 0xf6, 0x3a, 0xcc, 0x8c, 0x4d, - 0x29, 0xe8, 0x74, 0xd8, 0x2f, 0x1b, 0xbb, 0x58, 0xf2, 0x2a, 0x8c, 0xf1, 0x4b, 0x04, 0xc3, 0xa2, - 0xdc, 0x2d, 0xe8, 0x02, 0xe4, 0x3b, 0xaa, 0x2e, 0xea, 0xec, 0xa8, 0x90, 0xc9, 0xb3, 0x1a, 0xc1, - 0xc6, 0x39, 0x59, 0x39, 0x10, 0x99, 0x27, 0x20, 0x2b, 0x07, 0x98, 0x8d, 0xcb, 0xf7, 0xa1, 0x28, - 0xdc, 0x1d, 0x06, 0xca, 0x1f, 0x0f, 0x94, 0x4f, 0x01, 0x5a, 0x87, 0xe2, 0xf2, 0x46, 0x5d, 0x33, - 0xdc, 0xae, 0xab, 0xa9, 0xb6, 0xac, 0xf8, 0x5a, 0x2c, 0x2e, 0x2f, 0x61, 0xcc, 0x29, 0x48, 0x86, - 0x61, 0x72, 0xd0, 0x24, 0x26, 0xe5, 0x11, 0x31, 0x52, 0x07, 0xb6, 0xca, 0x77, 0xf9, 0x08, 0x16, - 0x14, 0xf9, 0xef, 0x73, 0x50, 0x14, 0xee, 0x38, 0x85, 0xaf, 0xb0, 0x95, 0xc8, 0x57, 0xd8, 0xeb, - 0xfd, 0x85, 0x46, 0xe6, 0x27, 0xd8, 0x66, 0xec, 0x13, 0xec, 0x6a, 0x9f, 0x78, 0xc7, 0x7f, 0x7f, - 0xfd, 0x97, 0x04, 0xe3, 0xd1, 0xa0, 0x44, 0x37, 0x61, 0x94, 0x15, 0x1c, 0xb5, 0x49, 0xd6, 0x82, - 0x3e, 0xd7, 0x3f, 0x84, 0x69, 0x04, 0x24, 0x1c, 0xe6, 0x43, 0x6d, 0x5f, 0x8c, 0xc5, 0x91, 0x98, - 0x74, 0xb6, 0x4b, 0x1d, 0xaa, 0x6a, 0x55, 0xf7, 0x6e, 0xab, 0xba, 0xac, 0xd3, 0x75, 0xab, 0x41, - 0x2d, 0x55, 0x6f, 0x27, 0x14, 0xf1, 0xa0, 0x0c, 0x23, 0xcb, 0xff, 0x23, 0xc1, 0xa8, 0x30, 0xf9, - 0x14, 0xbe, 0x2a, 0xfe, 0x38, 0xfa, 0x55, 0x71, 0xa9, 0xcf, 0x0d, 0x9e, 0xfe, 0x49, 0xf1, 0x6f, - 0x81, 0xe9, 0x6c, 0x4b, 0xb3, 0xa8, 0xde, 0x35, 0x6c, 0x1a, 0x8f, 0x6a, 0xb6, 0x19, 0x31, 0xa7, - 0x20, 0x07, 0x26, 0xd5, 0x58, 0x0e, 0x10, 0xae, 0xad, 0xf5, 0x67, 0x89, 0x2f, 0x56, 0x2f, 0x0b, - 0xf8, 0xc9, 0x38, 0x05, 0x27, 0x54, 0xc8, 0x04, 0x12, 0x5c, 0xe8, 0x21, 0x14, 0x76, 0x29, 0x35, - 0x53, 0xce, 0xab, 0x7b, 0x64, 0x9e, 0xc0, 0x84, 0x12, 0x9f, 0xdd, 0xe6, 0xe6, 0x06, 0xe6, 0x50, - 0xf2, 0xaf, 0x02, 0x7f, 0x34, 0xdc, 0x18, 0xf7, 0xf3, 0xa9, 0x74, 0x92, 0x7c, 0x3a, 0x9a, 0x96, - 0x4b, 0xd1, 0x03, 0xc8, 0x53, 0xad, 0xdf, 0xcf, 0x42, 0x81, 0xb8, 0xb9, 0xd2, 0x08, 0x12, 0xd2, - 0xe6, 0x4a, 0x03, 0x33, 0x08, 0xb4, 0x0e, 0x43, 0xac, 0xfa, 0xb0, 0x2d, 0x98, 0xef, 0x7f, 0x4b, - 0xb3, 0xf9, 0x07, 0x01, 0xc1, 0x7e, 0xd9, 0xd8, 0xc5, 0x91, 0x3f, 0x81, 0xb1, 0xc8, 0x3e, 0x45, - 0x1f, 0xc3, 0x59, 0xcd, 0x50, 0x5a, 0x75, 0x45, 0x53, 0xf4, 0x26, 0xf1, 0x2e, 0x07, 0x2e, 0xa5, - 0x7d, 0x61, 0xac, 0x84, 0xf8, 0xc4, 0x2e, 0xf7, 0xaf, 0x53, 0xc3, 0x34, 0x1c, 0x41, 0x94, 0x15, - 0x80, 0x60, 0x8e, 0xa8, 0x02, 0x43, 0x2c, 0xce, 0xdc, 0x7a, 0x32, 0x52, 0x1f, 0x61, 0x16, 0xb2, - 0xf0, 0xb3, 0xb1, 0x3b, 0x8e, 0x6e, 0x00, 0xd8, 0xa4, 0x69, 0x11, 0xca, 0x93, 0x41, 0x2e, 0x7a, - 0xa9, 0xdc, 0xf0, 0x29, 0x38, 0xc4, 0x25, 0xff, 0x9f, 0x04, 0x63, 0x6b, 0x84, 0x7e, 0x6a, 0x58, - 0x7b, 0x1b, 0xfc, 0x3e, 0xff, 0x14, 0x92, 0x2d, 0x8e, 0x24, 0xdb, 0x37, 0x7a, 0xac, 0x4c, 0xc4, - 0xba, 0xac, 0x94, 0x2b, 0x7f, 0x25, 0xc1, 0x6c, 0x84, 0xf3, 0x6e, 0xb0, 0x75, 0xb7, 0x60, 0xc8, - 0x34, 0x2c, 0xea, 0x15, 0xe2, 0x81, 0x14, 0xb2, 0x34, 0x16, 0x2a, 0xc5, 0x0c, 0x06, 0xbb, 0x68, - 0x68, 0x05, 0x72, 0xd4, 0x10, 0xa1, 0x3a, 0x18, 0x26, 0x21, 0x56, 0x1d, 0x04, 0x66, 0x6e, 0xd3, - 0xc0, 0x39, 0x6a, 0xb0, 0x85, 0x28, 0x47, 0xb8, 0xc2, 0xc9, 0xe7, 0x05, 0xcd, 0x00, 0x43, 0x61, - 0xc7, 0x32, 0x3a, 0x27, 0x9e, 0x83, 0xbf, 0x10, 0xf7, 0x2c, 0xa3, 0x83, 0x39, 0x96, 0xfc, 0xb5, - 0x04, 0x53, 0x11, 0xce, 0x53, 0x48, 0xfc, 0x0f, 0xa3, 0x89, 0xff, 0xea, 0x20, 0x13, 0xc9, 0x48, - 0xff, 0x5f, 0xe7, 0x62, 0xd3, 0x60, 0x13, 0x46, 0x3b, 0x30, 0x6a, 0x1a, 0xad, 0xc6, 0x73, 0xb8, - 0x0e, 0x9c, 0x60, 0x75, 0x73, 0x23, 0xc0, 0xc2, 0x61, 0x60, 0x74, 0x00, 0x53, 0xba, 0xd2, 0x21, - 0xb6, 0xa9, 0x34, 0x49, 0xe3, 0x39, 0x1c, 0x90, 0xbc, 0xc4, 0xef, 0x1b, 0xe2, 0x88, 0x38, 0xa9, - 0x04, 0xad, 0x42, 0x51, 0x35, 0x79, 0x1f, 0x27, 0x7a, 0x97, 0x9e, 0x55, 0xd4, 0xed, 0xfa, 0xdc, - 0x7c, 0x2e, 0x7e, 0x60, 0x0f, 0x43, 0xfe, 0xf7, 0x78, 0x34, 0xb0, 0xf8, 0x43, 0xf7, 0xa1, 0xc4, - 0x5f, 0xc6, 0x34, 0x0d, 0xcd, 0xbb, 0x19, 0x60, 0x2b, 0xbb, 0x21, 0xc6, 0x9e, 0x1d, 0x56, 0xce, - 0xa7, 0x1c, 0xfa, 0x7a, 0x64, 0xec, 0x0b, 0xa3, 0x35, 0x28, 0x98, 0x3f, 0xa6, 0x83, 0xe1, 0x45, - 0x8e, 0xb7, 0x2d, 0x1c, 0x47, 0xfe, 0xab, 0x7c, 0xcc, 0x5c, 0x5e, 0xea, 0x9e, 0x3c, 0xb7, 0x55, - 0xf7, 0x3b, 0xa6, 0xcc, 0x95, 0xdf, 0x86, 0xa2, 0xa8, 0xf0, 0x22, 0x98, 0xdf, 0x1e, 0x24, 0x98, - 0xc3, 0x55, 0xcc, 0xff, 0x60, 0xf1, 0x06, 0x3d, 0x60, 0xf4, 0x11, 0x0c, 0x13, 0x57, 0x85, 0x5b, - 0x1b, 0x6f, 0x0d, 0xa2, 0x22, 0xc8, 0xab, 0x41, 0xa3, 0x2a, 0xc6, 0x04, 0x2a, 0x7a, 0x8f, 0xf9, - 0x8b, 0xf1, 0xb2, 0x8f, 0x40, 0xbb, 0x5c, 0xe0, 0xe5, 0xea, 0x82, 0x3b, 0x6d, 0x7f, 0xf8, 0xd9, - 0x61, 0x05, 0x82, 0x9f, 0x38, 0x2c, 0x21, 0xff, 0x44, 0x82, 0x29, 0xee, 0xa1, 0xa6, 0x63, 0xa9, - 0xb4, 0x7b, 0x6a, 0x85, 0xe9, 0x51, 0xa4, 0x30, 0xbd, 0xd5, 0xc3, 0x2d, 0x09, 0x0b, 0x33, 0x8b, - 0xd3, 0x37, 0x12, 0xbc, 0x94, 0xe0, 0x3e, 0x85, 0xbc, 0xb8, 0x15, 0xcd, 0x8b, 0x6f, 0x0c, 0x3a, - 0xa1, 0x8c, 0xdc, 0xf8, 0xf9, 0xd9, 0x94, 0xe9, 0xf0, 0x9d, 0x72, 0x03, 0xc0, 0xb4, 0xd4, 0x7d, - 0x55, 0x23, 0x6d, 0x71, 0x09, 0x5e, 0x0a, 0x3d, 0x6b, 0xf3, 0x29, 0x38, 0xc4, 0x85, 0x6c, 0x98, - 0x69, 0x91, 0x1d, 0xc5, 0xd1, 0xe8, 0x42, 0xab, 0xb5, 0xa8, 0x98, 0xca, 0xb6, 0xaa, 0xa9, 0x54, - 0x15, 0xc7, 0x05, 0x23, 0xf5, 0x3b, 0xee, 0xe5, 0x74, 0x1a, 0xc7, 0xb3, 0xc3, 0xca, 0x85, 0xb4, - 0xdb, 0x21, 0x8f, 0xa5, 0x8b, 0x33, 0xa0, 0x51, 0x17, 0xca, 0x16, 0xf9, 0xc4, 0x51, 0x2d, 0xd2, - 0x5a, 0xb2, 0x0c, 0x33, 0xa2, 0x36, 0xcf, 0xd5, 0xfe, 0xe1, 0xd1, 0x61, 0xa5, 0x8c, 0x33, 0x78, - 0x7a, 0x2b, 0xce, 0x84, 0x47, 0x4f, 0x60, 0x5a, 0x71, 0x5f, 0x03, 0x46, 0xb4, 0xba, 0xbb, 0xe4, - 0xf6, 0xd1, 0x61, 0x65, 0x7a, 0x21, 0x49, 0xee, 0xad, 0x30, 0x0d, 0x14, 0xd5, 0xa0, 0xb8, 0x6f, - 0x68, 0x4e, 0x87, 0xd8, 0xe5, 0x21, 0x8e, 0xcf, 0x0a, 0x41, 0xf1, 0x91, 0x3b, 0xf4, 0xec, 0xb0, - 0x32, 0x7c, 0xaf, 0xc1, 0x77, 0x9f, 0xc7, 0xc5, 0x3e, 0x28, 0x59, 0x2f, 0x29, 0x76, 0x3c, 0x3f, - 0x31, 0x2e, 0x05, 0x59, 0xeb, 0x41, 0x40, 0xc2, 0x61, 0x3e, 0xf4, 0x18, 0x46, 0x76, 0xc5, 0xa9, - 0x84, 0x5d, 0x2e, 0xf6, 0x55, 0x84, 0x23, 0xa7, 0x18, 0xf5, 0x29, 0xa1, 0x62, 0xc4, 0x1b, 0xb6, - 0x71, 0x80, 0x88, 0xae, 0x40, 0x91, 0xff, 0x58, 0x5e, 0xe2, 0xc7, 0x71, 0xa5, 0x20, 0xb7, 0x3d, - 0x70, 0x87, 0xb1, 0x47, 0xf7, 0x58, 0x97, 0x37, 0x16, 0xf9, 0xb1, 0x70, 0x8c, 0x75, 0x79, 0x63, - 0x11, 0x7b, 0x74, 0xf4, 0x31, 0x14, 0x6d, 0xb2, 0xa2, 0xea, 0xce, 0x41, 0x19, 0xfa, 0xba, 0x54, - 0x6e, 0xdc, 0xe5, 0xdc, 0xb1, 0x83, 0xb1, 0x40, 0x83, 0xa0, 0x63, 0x0f, 0x16, 0xed, 0xc2, 0x88, - 0xe5, 0xe8, 0x0b, 0xf6, 0x96, 0x4d, 0xac, 0xf2, 0x28, 0xd7, 0xd1, 0x2b, 0x9d, 0x63, 0x8f, 0x3f, - 0xae, 0xc5, 0xf7, 0x90, 0xcf, 0x81, 0x03, 0x70, 0xf4, 0xb7, 0x12, 0x20, 0xdb, 0x31, 0x4d, 0x8d, - 0x74, 0x88, 0x4e, 0x15, 0x8d, 0x9f, 0xc5, 0xd9, 0xe5, 0xb3, 0x5c, 0xe7, 0x1f, 0xf5, 0x9a, 0x57, - 0x42, 0x30, 0xae, 0xdc, 0x3f, 0xf4, 0x4e, 0xb2, 0xe2, 0x14, 0xbd, 0xcc, 0xb5, 0x3b, 0x36, 0xff, - 0xbb, 0x3c, 0xd6, 0x97, 0x6b, 0xd3, 0xcf, 0x1c, 0x03, 0xd7, 0x0a, 0x3a, 0xf6, 0x60, 0xd1, 0x23, - 0x98, 0xb1, 0x88, 0xd2, 0x5a, 0xd7, 0xb5, 0x2e, 0x36, 0x0c, 0x7a, 0x4f, 0xd5, 0x88, 0xdd, 0xb5, - 0x29, 0xe9, 0x94, 0xc7, 0xf9, 0xb2, 0xfb, 0x6f, 0x3f, 0x70, 0x2a, 0x17, 0xce, 0x90, 0x46, 0x1d, - 0xa8, 0x78, 0x29, 0x83, 0xed, 0x27, 0x3f, 0x67, 0xdd, 0xb5, 0x9b, 0x8a, 0xe6, 0xde, 0x03, 0x4c, - 0x70, 0x05, 0xaf, 0x1d, 0x1d, 0x56, 0x2a, 0x4b, 0xc7, 0xb3, 0xe2, 0x5e, 0x58, 0xe8, 0x03, 0x28, - 0x2b, 0x59, 0x7a, 0x26, 0xb9, 0x9e, 0x57, 0x58, 0x1e, 0xca, 0x54, 0x90, 0x29, 0x8d, 0x28, 0x4c, - 0x2a, 0xd1, 0x47, 0xc7, 0x76, 0x79, 0xaa, 0xaf, 0x83, 0xc8, 0xd8, 0x5b, 0xe5, 0xe0, 0x30, 0x22, - 0x46, 0xb0, 0x71, 0x42, 0x03, 0x7f, 0x3e, 0x21, 0x0e, 0xd3, 0x4f, 0xe7, 0x09, 0xea, 0x60, 0xcf, - 0x27, 0x02, 0xd3, 0x9e, 0xdb, 0xf3, 0x89, 0x10, 0xe4, 0xf1, 0xc7, 0x77, 0xbf, 0xc8, 0xc1, 0x74, - 0xc0, 0xdc, 0xf7, 0xf3, 0x89, 0x14, 0x91, 0xdf, 0x3d, 0x43, 0xed, 0xfd, 0x0c, 0xf5, 0x2b, 0x09, - 0xc6, 0x03, 0xd7, 0xfd, 0xe6, 0x3d, 0x69, 0x08, 0x6c, 0xcb, 0x68, 0xb2, 0xfe, 0x33, 0x17, 0x9e, - 0xc0, 0x6f, 0xfd, 0xbd, 0xfa, 0x8f, 0x7f, 0x3b, 0x2a, 0x7f, 0x93, 0x87, 0xc9, 0xf8, 0x6e, 0x8c, - 0x5c, 0xbf, 0x4a, 0x3d, 0xaf, 0x5f, 0x37, 0xe0, 0xdc, 0x8e, 0xa3, 0x69, 0x5d, 0xee, 0x86, 0xd0, - 0x1d, 0xac, 0x7b, 0x7d, 0xf2, 0x8a, 0x90, 0x3c, 0x77, 0x2f, 0x85, 0x07, 0xa7, 0x4a, 0x66, 0x5c, - 0x25, 0xe7, 0x4f, 0x74, 0x95, 0x9c, 0xb8, 0xd9, 0x2c, 0x0c, 0x70, 0xb3, 0x99, 0x7a, 0x2d, 0x3c, - 0x74, 0x82, 0x6b, 0xe1, 0x93, 0xdc, 0xe3, 0xa6, 0x24, 0xb1, 0x9e, 0xcf, 0x0a, 0x5f, 0x81, 0x39, - 0x21, 0x46, 0xf9, 0x15, 0xab, 0x4e, 0x2d, 0x43, 0xd3, 0x88, 0xb5, 0xe4, 0x74, 0x3a, 0x5d, 0xf9, - 0x5d, 0x18, 0x8f, 0x3e, 0x1e, 0x70, 0x57, 0xda, 0x7d, 0xbf, 0x20, 0x2e, 0xb1, 0x42, 0x2b, 0xed, - 0x8e, 0x63, 0x9f, 0x43, 0xfe, 0x6b, 0x09, 0x66, 0xd2, 0x1f, 0x09, 0x22, 0x0d, 0xc6, 0x3b, 0xca, - 0x41, 0xf8, 0xe1, 0xa6, 0x74, 0xc2, 0xe3, 0x05, 0x7e, 0x6b, 0xbc, 0x1a, 0xc1, 0xc2, 0x31, 0x6c, - 0xf9, 0x07, 0x09, 0x66, 0x33, 0xee, 0x6b, 0x4f, 0xd7, 0x12, 0xf4, 0x21, 0x94, 0x3a, 0xca, 0x41, - 0xc3, 0xb1, 0xda, 0xe4, 0xc4, 0x07, 0x2a, 0x3c, 0x63, 0xac, 0x0a, 0x14, 0xec, 0xe3, 0xc9, 0x5f, - 0x48, 0x50, 0xce, 0x6a, 0x6d, 0xd1, 0xcd, 0xc8, 0xcd, 0xf2, 0xab, 0xb1, 0x9b, 0xe5, 0xa9, 0x84, - 0xdc, 0x0b, 0xba, 0x57, 0xfe, 0x0f, 0x09, 0x66, 0xd2, 0x5b, 0x7c, 0xf4, 0x66, 0xc4, 0xc2, 0x4a, - 0xcc, 0xc2, 0x89, 0x98, 0x94, 0xb0, 0xef, 0x23, 0x18, 0x17, 0x1f, 0x02, 0x02, 0x46, 0x78, 0x55, - 0x4e, 0xcb, 0x95, 0x02, 0xc2, 0x6b, 0x7c, 0xf9, 0x7a, 0x45, 0xc7, 0x70, 0x0c, 0x4d, 0xfe, 0x9b, - 0x1c, 0x0c, 0x35, 0x9a, 0x8a, 0x46, 0x4e, 0xa1, 0xcd, 0x7a, 0x3f, 0xd2, 0x66, 0xf5, 0xfa, 0x27, - 0x0b, 0x6e, 0x55, 0x66, 0x87, 0x85, 0x63, 0x1d, 0xd6, 0xeb, 0x7d, 0xa1, 0x1d, 0xdf, 0x5c, 0xfd, - 0x01, 0x8c, 0xf8, 0x4a, 0x07, 0xcb, 0xf9, 0xf2, 0xbf, 0xe6, 0x60, 0x34, 0xa4, 0x62, 0xc0, 0x8a, - 0xb1, 0x13, 0xa9, 0xb4, 0xfd, 0xfc, 0x6b, 0x5b, 0x48, 0x57, 0xd5, 0xab, 0xad, 0xee, 0x23, 0xc1, - 0xe0, 0x59, 0x58, 0xb2, 0xe4, 0xbe, 0x0b, 0xe3, 0x94, 0xff, 0xeb, 0x97, 0x7f, 0x0c, 0x99, 0xe7, - 0xb1, 0xe8, 0x3f, 0x2d, 0xdd, 0x8c, 0x50, 0x71, 0x8c, 0x7b, 0xee, 0x0e, 0x8c, 0x45, 0x94, 0x0d, - 0xf4, 0xc6, 0xef, 0xbf, 0x25, 0x78, 0xb5, 0xe7, 0x47, 0x22, 0xaa, 0x47, 0x36, 0x49, 0x35, 0xb6, - 0x49, 0xe6, 0xb3, 0x01, 0x5e, 0xdc, 0x5b, 0x91, 0xfa, 0xb5, 0xa7, 0xdf, 0xcf, 0x9f, 0xf9, 0xf6, - 0xfb, 0xf9, 0x33, 0xdf, 0x7d, 0x3f, 0x7f, 0xe6, 0x2f, 0x8f, 0xe6, 0xa5, 0xa7, 0x47, 0xf3, 0xd2, - 0xb7, 0x47, 0xf3, 0xd2, 0x77, 0x47, 0xf3, 0xd2, 0xcf, 0x8e, 0xe6, 0xa5, 0x7f, 0xf8, 0x61, 0xfe, - 0xcc, 0x87, 0x45, 0x01, 0xf7, 0xeb, 0x00, 0x00, 0x00, 0xff, 0xff, 0x22, 0xba, 0x16, 0x0c, 0x99, - 0x3b, 0x00, 0x00, + 0x4d, 0x73, 0x80, 0x20, 0xc8, 0x21, 0x08, 0x10, 0x20, 0x41, 0x92, 0x83, 0xf3, 0x71, 0x8b, 0x2f, + 0x39, 0x25, 0x48, 0x6e, 0xc9, 0xc1, 0x30, 0x10, 0xc0, 0x0b, 0x08, 0x0b, 0x2f, 0xe0, 0xdb, 0xfa, + 0x44, 0xac, 0xe9, 0xd3, 0x62, 0xff, 0x81, 0x85, 0x0e, 0x8b, 0x45, 0x55, 0x57, 0x7f, 0x77, 0x73, + 0x66, 0x68, 0x89, 0x58, 0x2c, 0xf6, 0xc6, 0xa9, 0xf7, 0xde, 0xef, 0xbd, 0x7a, 0xf5, 0xea, 0xbd, + 0xd7, 0x55, 0x45, 0xb8, 0xb7, 0x77, 0xdb, 0xae, 0xaa, 0x46, 0x6d, 0xcf, 0xd9, 0x26, 0x96, 0x4e, + 0x28, 0xb1, 0x6b, 0xfb, 0x44, 0x6f, 0x19, 0x56, 0x4d, 0x10, 0x14, 0x53, 0xad, 0x91, 0x03, 0x4a, + 0x74, 0x5b, 0x35, 0x74, 0xbb, 0xb6, 0x7f, 0x7d, 0x9b, 0x50, 0xe5, 0x7a, 0xad, 0x4d, 0x74, 0x62, + 0x29, 0x94, 0xb4, 0xaa, 0xa6, 0x65, 0x50, 0x03, 0x5d, 0x70, 0xd9, 0xab, 0x8a, 0xa9, 0x56, 0x03, + 0xf6, 0xaa, 0x60, 0x9f, 0xbb, 0xd6, 0x56, 0xe9, 0xae, 0xb3, 0x5d, 0x6d, 0x1a, 0x9d, 0x5a, 0xdb, + 0x68, 0x1b, 0x35, 0x2e, 0xb5, 0xed, 0xec, 0xf0, 0x5f, 0xfc, 0x07, 0xff, 0xcb, 0x45, 0x9b, 0x93, + 0x43, 0xca, 0x9b, 0x86, 0x45, 0x6a, 0xfb, 0x09, 0x8d, 0x73, 0x57, 0x42, 0x3c, 0xa6, 0xa1, 0xa9, + 0xcd, 0x6e, 0x96, 0x71, 0x73, 0x6f, 0x05, 0xac, 0x1d, 0xa5, 0xb9, 0xab, 0xea, 0xc4, 0xea, 0xd6, + 0xcc, 0xbd, 0x36, 0x97, 0xb5, 0x88, 0x6d, 0x38, 0x56, 0x93, 0x0c, 0x24, 0x65, 0xd7, 0x3a, 0x84, + 0x2a, 0x69, 0x66, 0xd5, 0xb2, 0xa4, 0x2c, 0x47, 0xa7, 0x6a, 0x27, 0xa9, 0xe6, 0x56, 0x2f, 0x01, + 0xbb, 0xb9, 0x4b, 0x3a, 0x4a, 0x42, 0xee, 0xcd, 0x2c, 0x39, 0x87, 0xaa, 0x5a, 0x4d, 0xd5, 0xa9, + 0x4d, 0xad, 0xb8, 0x90, 0x7c, 0x07, 0xa6, 0x16, 0x34, 0xcd, 0xf8, 0x94, 0xb4, 0xee, 0x69, 0xe4, + 0xe0, 0x91, 0xa1, 0x39, 0x1d, 0x82, 0x2e, 0xc1, 0x70, 0xcb, 0x52, 0xf7, 0x89, 0x55, 0x96, 0x2e, + 0x4a, 0x97, 0x47, 0xea, 0xe3, 0x4f, 0x0f, 0x2b, 0x67, 0x8e, 0x0e, 0x2b, 0xc3, 0x4b, 0x7c, 0x14, + 0x0b, 0xaa, 0x7c, 0x17, 0x26, 0x84, 0xf0, 0x03, 0xc3, 0xa6, 0x1b, 0x0a, 0xdd, 0x45, 0x37, 0x00, + 0x4c, 0x85, 0xee, 0x6e, 0x58, 0x64, 0x47, 0x3d, 0x10, 0xe2, 0x48, 0x88, 0xc3, 0x86, 0x4f, 0xc1, + 0x21, 0x2e, 0xf9, 0xdf, 0x24, 0x78, 0x79, 0xd1, 0xb1, 0xa9, 0xd1, 0x59, 0x25, 0xd4, 0x52, 0x9b, + 0x8b, 0x8e, 0x65, 0x11, 0x9d, 0x36, 0xa8, 0x42, 0x1d, 0x1b, 0x5d, 0x84, 0x82, 0xae, 0x74, 0x88, + 0xc0, 0x3a, 0x2b, 0xb0, 0x0a, 0x6b, 0x4a, 0x87, 0x60, 0x4e, 0x41, 0x1f, 0xc2, 0xd0, 0xbe, 0xa2, + 0x39, 0xa4, 0x9c, 0xbb, 0x28, 0x5d, 0x1e, 0xbd, 0x51, 0xad, 0x06, 0xa1, 0xe7, 0x3b, 0xa2, 0x6a, + 0xee, 0xb5, 0x79, 0x2c, 0x7a, 0xab, 0x5b, 0x7d, 0xe8, 0x28, 0x3a, 0x55, 0x69, 0xb7, 0x7e, 0x4e, + 0x40, 0x9e, 0x15, 0x7a, 0x1f, 0x31, 0x2c, 0xec, 0x42, 0xca, 0x7f, 0x09, 0x17, 0x32, 0x4d, 0x5b, + 0x51, 0x6d, 0x8a, 0x1e, 0xc3, 0x90, 0x4a, 0x49, 0xc7, 0x2e, 0x4b, 0x17, 0xf3, 0x97, 0x47, 0x6f, + 0xdc, 0xae, 0x1e, 0x1b, 0xf7, 0xd5, 0x4c, 0xb0, 0xfa, 0x98, 0x30, 0x63, 0x68, 0x99, 0xc1, 0x61, + 0x17, 0x55, 0xfe, 0x27, 0x09, 0x50, 0x58, 0x66, 0x53, 0xb1, 0xda, 0x84, 0xf6, 0xe1, 0x94, 0x3f, + 0xfd, 0x61, 0x4e, 0x99, 0x16, 0x90, 0xa3, 0xae, 0xc2, 0x88, 0x4f, 0x4c, 0x98, 0x49, 0x9a, 0xc4, + 0x9d, 0xf1, 0x28, 0xea, 0x8c, 0xeb, 0x03, 0x38, 0xc3, 0x45, 0xc9, 0xf0, 0xc2, 0x67, 0x39, 0x18, + 0x59, 0x52, 0x48, 0xc7, 0xd0, 0x1b, 0x84, 0xa2, 0x8f, 0xa1, 0xc4, 0x36, 0x5b, 0x4b, 0xa1, 0x0a, + 0x77, 0xc0, 0xe8, 0x8d, 0x37, 0x8e, 0x9b, 0x9d, 0x5d, 0x65, 0xdc, 0xd5, 0xfd, 0xeb, 0xd5, 0xf5, + 0xed, 0x27, 0xa4, 0x49, 0x57, 0x09, 0x55, 0x82, 0x98, 0x0c, 0xc6, 0xb0, 0x8f, 0x8a, 0xd6, 0xa0, + 0x60, 0x9b, 0xa4, 0x29, 0x7c, 0x77, 0xb5, 0xc7, 0x34, 0x7c, 0xcb, 0x1a, 0x26, 0x69, 0x06, 0x8b, + 0xc1, 0x7e, 0x61, 0x8e, 0x83, 0x1e, 0xc1, 0xb0, 0xcd, 0x57, 0xb9, 0x9c, 0x4f, 0xac, 0xc6, 0xf1, + 0x88, 0x6e, 0x6c, 0xf8, 0x1b, 0xd0, 0xfd, 0x8d, 0x05, 0x9a, 0xfc, 0xf3, 0x1c, 0x20, 0x9f, 0x77, + 0xd1, 0xd0, 0x5b, 0x2a, 0x55, 0x0d, 0x1d, 0xbd, 0x03, 0x05, 0xda, 0x35, 0xbd, 0xe8, 0xb8, 0xe4, + 0x19, 0xb4, 0xd9, 0x35, 0xc9, 0xb3, 0xc3, 0xca, 0x4c, 0x52, 0x82, 0x51, 0x30, 0x97, 0x41, 0x2b, + 0xbe, 0xa9, 0x39, 0x2e, 0xfd, 0x56, 0x54, 0xf5, 0xb3, 0xc3, 0x4a, 0x4a, 0x2e, 0xae, 0xfa, 0x48, + 0x51, 0x03, 0xd1, 0x3e, 0x20, 0x4d, 0xb1, 0xe9, 0xa6, 0xa5, 0xe8, 0xb6, 0xab, 0x49, 0xed, 0x10, + 0xe1, 0x84, 0xd7, 0xfb, 0x5b, 0x34, 0x26, 0x51, 0x9f, 0x13, 0x56, 0xa0, 0x95, 0x04, 0x1a, 0x4e, + 0xd1, 0xc0, 0x32, 0x98, 0x45, 0x14, 0xdb, 0xd0, 0xcb, 0x85, 0x68, 0x06, 0xc3, 0x7c, 0x14, 0x0b, + 0x2a, 0xba, 0x02, 0xc5, 0x0e, 0xb1, 0x6d, 0xa5, 0x4d, 0xca, 0x43, 0x9c, 0x71, 0x42, 0x30, 0x16, + 0x57, 0xdd, 0x61, 0xec, 0xd1, 0xe5, 0x2f, 0x24, 0x18, 0xf3, 0x3d, 0xc7, 0xa3, 0xfd, 0xcf, 0x12, + 0x71, 0x58, 0xed, 0x6f, 0x4a, 0x4c, 0x9a, 0x47, 0xe1, 0xa4, 0xd0, 0x56, 0xf2, 0x46, 0x42, 0x31, + 0xb8, 0xea, 0xed, 0xa5, 0x1c, 0xdf, 0x4b, 0x97, 0xfb, 0x0d, 0x99, 0x8c, 0x2d, 0xf4, 0xcf, 0x85, + 0x90, 0xf9, 0x2c, 0x34, 0xd1, 0x63, 0x28, 0xd9, 0x44, 0x23, 0x4d, 0x6a, 0x58, 0xc2, 0xfc, 0x37, + 0xfb, 0x34, 0x5f, 0xd9, 0x26, 0x5a, 0x43, 0x88, 0xd6, 0xcf, 0x32, 0xfb, 0xbd, 0x5f, 0xd8, 0x87, + 0x44, 0x0f, 0xa1, 0x44, 0x49, 0xc7, 0xd4, 0x14, 0xea, 0xe5, 0xa0, 0xd7, 0xc2, 0x53, 0x60, 0x91, + 0xc3, 0xc0, 0x36, 0x8c, 0xd6, 0xa6, 0x60, 0xe3, 0xdb, 0xc7, 0x77, 0x89, 0x37, 0x8a, 0x7d, 0x18, + 0xb4, 0x0f, 0xe3, 0x8e, 0xd9, 0x62, 0x9c, 0x94, 0xd5, 0xb0, 0x76, 0x57, 0x44, 0xd2, 0xad, 0x7e, + 0x7d, 0xb3, 0x15, 0x91, 0xae, 0xcf, 0x08, 0x5d, 0xe3, 0xd1, 0x71, 0x1c, 0xd3, 0x82, 0x16, 0x60, + 0xa2, 0xa3, 0xea, 0x98, 0x28, 0xad, 0x6e, 0x83, 0x34, 0x0d, 0xbd, 0x65, 0xf3, 0xb0, 0x1a, 0xaa, + 0xcf, 0x0a, 0x80, 0x89, 0xd5, 0x28, 0x19, 0xc7, 0xf9, 0xd1, 0xfb, 0x80, 0xbc, 0x69, 0xdc, 0x77, + 0x4b, 0xb0, 0x6a, 0xe8, 0x3c, 0xe6, 0xf2, 0x41, 0x70, 0x6f, 0x26, 0x38, 0x70, 0x8a, 0x14, 0x5a, + 0x81, 0x73, 0x16, 0xd9, 0x57, 0xd9, 0x1c, 0x1f, 0xa8, 0x36, 0x35, 0xac, 0xee, 0x8a, 0xda, 0x51, + 0x69, 0x79, 0x98, 0xdb, 0x54, 0x3e, 0x3a, 0xac, 0x9c, 0xc3, 0x29, 0x74, 0x9c, 0x2a, 0x25, 0xff, + 0xcb, 0x30, 0x4c, 0xc4, 0xf2, 0x0d, 0x7a, 0x04, 0x33, 0x4d, 0xb7, 0x38, 0xad, 0x39, 0x9d, 0x6d, + 0x62, 0x35, 0x9a, 0xbb, 0xa4, 0xe5, 0x68, 0xa4, 0xc5, 0x03, 0x65, 0xa8, 0x3e, 0x2f, 0x2c, 0x9e, + 0x59, 0x4c, 0xe5, 0xc2, 0x19, 0xd2, 0xcc, 0x0b, 0x3a, 0x1f, 0x5a, 0x55, 0x6d, 0xdb, 0xc7, 0xcc, + 0x71, 0x4c, 0xdf, 0x0b, 0x6b, 0x09, 0x0e, 0x9c, 0x22, 0xc5, 0x6c, 0x6c, 0x11, 0x5b, 0xb5, 0x48, + 0x2b, 0x6e, 0x63, 0x3e, 0x6a, 0xe3, 0x52, 0x2a, 0x17, 0xce, 0x90, 0x46, 0x37, 0x61, 0xd4, 0xd5, + 0xc6, 0xd7, 0x4f, 0x2c, 0xb4, 0x5f, 0x0e, 0xd7, 0x02, 0x12, 0x0e, 0xf3, 0xb1, 0xa9, 0x19, 0xdb, + 0x36, 0xb1, 0xf6, 0x49, 0x2b, 0x7b, 0x81, 0xd7, 0x13, 0x1c, 0x38, 0x45, 0x8a, 0x4d, 0xcd, 0x8d, + 0xc0, 0xc4, 0xd4, 0x86, 0xa3, 0x53, 0xdb, 0x4a, 0xe5, 0xc2, 0x19, 0xd2, 0x2c, 0x8e, 0x5d, 0x93, + 0x17, 0xf6, 0x15, 0x55, 0x53, 0xb6, 0x35, 0x52, 0x2e, 0x46, 0xe3, 0x78, 0x2d, 0x4a, 0xc6, 0x71, + 0x7e, 0x74, 0x1f, 0xa6, 0xdc, 0xa1, 0x2d, 0x5d, 0xf1, 0x41, 0x4a, 0x1c, 0xe4, 0x65, 0x01, 0x32, + 0xb5, 0x16, 0x67, 0xc0, 0x49, 0x19, 0xf4, 0x0e, 0x8c, 0x37, 0x0d, 0x4d, 0xe3, 0xf1, 0xb8, 0x68, + 0x38, 0x3a, 0x2d, 0x8f, 0x70, 0x14, 0xc4, 0xf6, 0xe3, 0x62, 0x84, 0x82, 0x63, 0x9c, 0x88, 0x00, + 0x34, 0xbd, 0x82, 0x63, 0x97, 0xa1, 0xaf, 0x5e, 0x23, 0x59, 0xf4, 0x82, 0x1e, 0xc0, 0x1f, 0xb2, + 0x71, 0x08, 0x58, 0xfe, 0xb1, 0x04, 0xb3, 0x19, 0xa9, 0x03, 0xbd, 0x17, 0x29, 0xb1, 0xbf, 0x1f, + 0x2b, 0xb1, 0xe7, 0x33, 0xc4, 0x42, 0x75, 0x56, 0x87, 0x31, 0x8b, 0xcd, 0x4a, 0x6f, 0xbb, 0x2c, + 0x22, 0x47, 0xde, 0xec, 0x31, 0x0d, 0x1c, 0x96, 0x09, 0x72, 0xfe, 0xd4, 0xd1, 0x61, 0x65, 0x2c, + 0x42, 0xc3, 0x51, 0x78, 0xf9, 0x5f, 0x73, 0x00, 0x4b, 0xc4, 0xd4, 0x8c, 0x6e, 0x87, 0xe8, 0xa7, + 0xd1, 0x43, 0xad, 0x47, 0x7a, 0xa8, 0x6b, 0xbd, 0x96, 0xc7, 0x37, 0x2d, 0xb3, 0x89, 0xfa, 0x93, + 0x58, 0x13, 0x55, 0xeb, 0x1f, 0xf2, 0xf8, 0x2e, 0xea, 0xa7, 0x79, 0x98, 0x0e, 0x98, 0x83, 0x36, + 0xea, 0x4e, 0x64, 0x8d, 0x7f, 0x2f, 0xb6, 0xc6, 0xb3, 0x29, 0x22, 0x2f, 0xac, 0x8f, 0x7a, 0xfe, + 0xfd, 0x0c, 0x7a, 0x02, 0xe3, 0xac, 0x71, 0x72, 0xc3, 0x83, 0xb7, 0x65, 0xc3, 0x03, 0xb7, 0x65, + 0x7e, 0x01, 0x5d, 0x89, 0x20, 0xe1, 0x18, 0x72, 0x46, 0x1b, 0x58, 0x7c, 0xd1, 0x6d, 0xa0, 0xfc, + 0xa5, 0x04, 0xe3, 0xc1, 0x32, 0x9d, 0x42, 0xd3, 0xb6, 0x16, 0x6d, 0xda, 0xae, 0xf4, 0x1d, 0xa2, + 0x19, 0x5d, 0xdb, 0x2f, 0x59, 0x83, 0xef, 0x33, 0xb1, 0x0d, 0xbe, 0xad, 0x34, 0xf7, 0xfa, 0xf8, + 0xfc, 0xfb, 0x4c, 0x02, 0x24, 0xaa, 0xc0, 0x82, 0xae, 0x1b, 0x54, 0x71, 0x73, 0xa5, 0x6b, 0xd6, + 0x72, 0xdf, 0x66, 0x79, 0x1a, 0xab, 0x5b, 0x09, 0xac, 0xbb, 0x3a, 0xb5, 0xba, 0xc1, 0x8a, 0x24, + 0x19, 0x70, 0x8a, 0x01, 0x48, 0x01, 0xb0, 0x04, 0xe6, 0xa6, 0x21, 0x36, 0xf2, 0xb5, 0x3e, 0x72, + 0x1e, 0x13, 0x58, 0x34, 0xf4, 0x1d, 0xb5, 0x1d, 0xa4, 0x1d, 0xec, 0x03, 0xe1, 0x10, 0xe8, 0xdc, + 0x5d, 0x98, 0xcd, 0xb0, 0x16, 0x4d, 0x42, 0x7e, 0x8f, 0x74, 0x5d, 0xb7, 0x61, 0xf6, 0x27, 0x3a, + 0x17, 0xfe, 0x4c, 0x1e, 0x11, 0x5f, 0xb8, 0xef, 0xe4, 0x6e, 0x4b, 0xf2, 0x17, 0x43, 0xe1, 0xd8, + 0xe1, 0x1d, 0xf3, 0x65, 0x28, 0x59, 0xc4, 0xd4, 0xd4, 0xa6, 0x62, 0x8b, 0x46, 0x88, 0x37, 0xbf, + 0x58, 0x8c, 0x61, 0x9f, 0x1a, 0xe9, 0xad, 0x73, 0x2f, 0xb6, 0xb7, 0xce, 0x3f, 0x9f, 0xde, 0xfa, + 0xcf, 0xa1, 0x64, 0x7b, 0x5d, 0x75, 0x81, 0x43, 0x5e, 0x1f, 0x20, 0xbf, 0x8a, 0x86, 0xda, 0x57, + 0xe0, 0xb7, 0xd2, 0x3e, 0x68, 0x5a, 0x13, 0x3d, 0x34, 0x60, 0x13, 0xfd, 0x5c, 0x1b, 0x5f, 0x96, + 0x53, 0x4d, 0xc5, 0xb1, 0x49, 0x8b, 0x27, 0xa2, 0x52, 0x90, 0x53, 0x37, 0xf8, 0x28, 0x16, 0x54, + 0xf4, 0x38, 0x12, 0xb2, 0xa5, 0x93, 0x84, 0xec, 0x78, 0x76, 0xb8, 0xa2, 0x2d, 0x98, 0x35, 0x2d, + 0xa3, 0x6d, 0x11, 0xdb, 0x5e, 0x22, 0x4a, 0x4b, 0x53, 0x75, 0xe2, 0xf9, 0xc7, 0xed, 0x88, 0xce, + 0x1f, 0x1d, 0x56, 0x66, 0x37, 0xd2, 0x59, 0x70, 0x96, 0xac, 0xfc, 0xb4, 0x00, 0x93, 0xf1, 0x0a, + 0x98, 0xd1, 0xa4, 0x4a, 0x27, 0x6a, 0x52, 0xaf, 0x86, 0x36, 0x83, 0xdb, 0xc1, 0xfb, 0xab, 0x9f, + 0xb2, 0x21, 0x16, 0x60, 0x42, 0x64, 0x03, 0x8f, 0x28, 0xda, 0x74, 0x7f, 0xf5, 0xb7, 0xa2, 0x64, + 0x1c, 0xe7, 0x67, 0xad, 0x67, 0xd0, 0x51, 0x7a, 0x20, 0x85, 0x68, 0xeb, 0xb9, 0x10, 0x67, 0xc0, + 0x49, 0x19, 0xb4, 0x0a, 0xd3, 0x8e, 0x9e, 0x84, 0x72, 0xa3, 0xf1, 0xbc, 0x80, 0x9a, 0xde, 0x4a, + 0xb2, 0xe0, 0x34, 0x39, 0xb4, 0x13, 0xe9, 0x46, 0x87, 0x79, 0x86, 0xbd, 0xd1, 0xf7, 0xde, 0xe9, + 0xbb, 0x1d, 0x45, 0x77, 0x60, 0xcc, 0xe2, 0xdf, 0x1d, 0x9e, 0xc1, 0x6e, 0xef, 0xfe, 0x92, 0x10, + 0x1b, 0xc3, 0x61, 0x22, 0x8e, 0xf2, 0xa6, 0xb4, 0xdb, 0xa5, 0x7e, 0xdb, 0x6d, 0xf9, 0xff, 0xa5, + 0x70, 0x11, 0xf2, 0x5b, 0xe0, 0x5e, 0xa7, 0x4c, 0x09, 0x89, 0x50, 0x77, 0x64, 0xa4, 0x77, 0xbf, + 0xb7, 0x06, 0xea, 0x7e, 0x83, 0xe2, 0xd9, 0xbb, 0xfd, 0xfd, 0x5c, 0x82, 0x99, 0x7b, 0x8d, 0xfb, + 0x96, 0xe1, 0x98, 0x9e, 0x39, 0xeb, 0xa6, 0xeb, 0xd7, 0xb7, 0xa1, 0x60, 0x39, 0x9a, 0x37, 0x8f, + 0xd7, 0xbc, 0x79, 0x60, 0x47, 0x63, 0xf3, 0x98, 0x8e, 0x49, 0xb9, 0x93, 0x60, 0x02, 0x68, 0x0d, + 0x86, 0x2d, 0x45, 0x6f, 0x13, 0xaf, 0xac, 0x5e, 0xea, 0x61, 0xfd, 0xf2, 0x12, 0x66, 0xec, 0xa1, + 0xe6, 0x8d, 0x4b, 0x63, 0x81, 0x22, 0xff, 0xbd, 0x04, 0x13, 0x0f, 0x36, 0x37, 0x37, 0x96, 0x75, + 0xbe, 0xa3, 0xf9, 0x79, 0xfa, 0x45, 0x28, 0x98, 0x0a, 0xdd, 0x8d, 0x57, 0x7a, 0x46, 0xc3, 0x9c, + 0x82, 0x3e, 0x80, 0x22, 0xcb, 0x24, 0x44, 0x6f, 0xf5, 0xd9, 0x6a, 0x0b, 0xf8, 0xba, 0x2b, 0x14, + 0x74, 0x88, 0x62, 0x00, 0x7b, 0x70, 0xf2, 0x1e, 0x9c, 0x0b, 0x99, 0xc3, 0xfc, 0xc1, 0x8f, 0x81, + 0x51, 0x03, 0x86, 0x98, 0x66, 0xef, 0x94, 0xb7, 0xd7, 0x61, 0x66, 0x6c, 0x4a, 0x41, 0xa7, 0xc3, + 0x7e, 0xd9, 0xd8, 0xc5, 0x92, 0x57, 0x61, 0x8c, 0x5f, 0x22, 0x18, 0x16, 0xe5, 0x6e, 0x41, 0x17, + 0x20, 0xdf, 0x51, 0x75, 0x51, 0x67, 0x47, 0x85, 0x4c, 0x9e, 0xd5, 0x08, 0x36, 0xce, 0xc9, 0xca, + 0x81, 0xc8, 0x3c, 0x01, 0x59, 0x39, 0xc0, 0x6c, 0x5c, 0xbe, 0x0f, 0x45, 0xe1, 0xee, 0x30, 0x50, + 0xfe, 0x78, 0xa0, 0x7c, 0x0a, 0xd0, 0x3a, 0x14, 0x97, 0x37, 0xea, 0x9a, 0xe1, 0x76, 0x5d, 0x4d, + 0xb5, 0x65, 0xc5, 0xd7, 0x62, 0x71, 0x79, 0x09, 0x63, 0x4e, 0x41, 0x32, 0x0c, 0x93, 0x83, 0x26, + 0x31, 0x29, 0x8f, 0x88, 0x91, 0x3a, 0xb0, 0x55, 0xbe, 0xcb, 0x47, 0xb0, 0xa0, 0xc8, 0xff, 0x90, + 0x83, 0xa2, 0x70, 0xc7, 0x29, 0x7c, 0x85, 0xad, 0x44, 0xbe, 0xc2, 0x5e, 0xef, 0x2f, 0x34, 0x32, + 0x3f, 0xc1, 0x36, 0x63, 0x9f, 0x60, 0x57, 0xfb, 0xc4, 0x3b, 0xfe, 0xfb, 0xeb, 0x7f, 0x24, 0x18, + 0x8f, 0x06, 0x25, 0xba, 0x09, 0xa3, 0xac, 0xe0, 0xa8, 0x4d, 0xb2, 0x16, 0xf4, 0xb9, 0xfe, 0x21, + 0x4c, 0x23, 0x20, 0xe1, 0x30, 0x1f, 0x6a, 0xfb, 0x62, 0x2c, 0x8e, 0xc4, 0xa4, 0xb3, 0x5d, 0xea, + 0x50, 0x55, 0xab, 0xba, 0x17, 0x63, 0xd5, 0x65, 0x9d, 0xae, 0x5b, 0x0d, 0x6a, 0xa9, 0x7a, 0x3b, + 0xa1, 0x88, 0x07, 0x65, 0x18, 0x59, 0xfe, 0x3f, 0x09, 0x46, 0x85, 0xc9, 0xa7, 0xf0, 0x55, 0xf1, + 0xc7, 0xd1, 0xaf, 0x8a, 0x4b, 0x7d, 0x6e, 0xf0, 0xf4, 0x4f, 0x8a, 0xff, 0x08, 0x4c, 0x67, 0x5b, + 0x9a, 0x45, 0xf5, 0xae, 0x61, 0xd3, 0x78, 0x54, 0xb3, 0xcd, 0x88, 0x39, 0x05, 0x39, 0x30, 0xa9, + 0xc6, 0x72, 0x80, 0x70, 0x6d, 0xad, 0x3f, 0x4b, 0x7c, 0xb1, 0x7a, 0x59, 0xc0, 0x4f, 0xc6, 0x29, + 0x38, 0xa1, 0x42, 0x26, 0x90, 0xe0, 0x42, 0x0f, 0xa1, 0xb0, 0x4b, 0xa9, 0x99, 0x72, 0x5e, 0xdd, + 0x23, 0xf3, 0x04, 0x26, 0x94, 0xf8, 0xec, 0x36, 0x37, 0x37, 0x30, 0x87, 0x92, 0x7f, 0x15, 0xf8, + 0xa3, 0xe1, 0xc6, 0xb8, 0x9f, 0x4f, 0xa5, 0x93, 0xe4, 0xd3, 0xd1, 0xb4, 0x5c, 0x8a, 0x1e, 0x40, + 0x9e, 0x6a, 0xfd, 0x7e, 0x16, 0x0a, 0xc4, 0xcd, 0x95, 0x46, 0x90, 0x90, 0x36, 0x57, 0x1a, 0x98, + 0x41, 0xa0, 0x75, 0x18, 0x62, 0xd5, 0x87, 0x6d, 0xc1, 0x7c, 0xff, 0x5b, 0x9a, 0xcd, 0x3f, 0x08, + 0x08, 0xf6, 0xcb, 0xc6, 0x2e, 0x8e, 0xfc, 0x09, 0x8c, 0x45, 0xf6, 0x29, 0xfa, 0x18, 0xce, 0x6a, + 0x86, 0xd2, 0xaa, 0x2b, 0x9a, 0xa2, 0x37, 0x89, 0x77, 0x39, 0x70, 0x29, 0xed, 0x0b, 0x63, 0x25, + 0xc4, 0x27, 0x76, 0xb9, 0x7f, 0x9d, 0x1a, 0xa6, 0xe1, 0x08, 0xa2, 0xac, 0x00, 0x04, 0x73, 0x44, + 0x15, 0x18, 0x62, 0x71, 0xe6, 0xd6, 0x93, 0x91, 0xfa, 0x08, 0xb3, 0x90, 0x85, 0x9f, 0x8d, 0xdd, + 0x71, 0x74, 0x03, 0xc0, 0x26, 0x4d, 0x8b, 0x50, 0x9e, 0x0c, 0x72, 0xd1, 0x4b, 0xe5, 0x86, 0x4f, + 0xc1, 0x21, 0x2e, 0xf9, 0x47, 0x12, 0x8c, 0xad, 0x11, 0xfa, 0xa9, 0x61, 0xed, 0x6d, 0xf0, 0xc7, + 0x00, 0xa7, 0x90, 0x6c, 0x71, 0x24, 0xd9, 0xbe, 0xd1, 0x63, 0x65, 0x22, 0xd6, 0x65, 0xa5, 0x5c, + 0xf9, 0x4b, 0x09, 0x66, 0x23, 0x9c, 0x77, 0x83, 0xad, 0xbb, 0x05, 0x43, 0xa6, 0x61, 0x51, 0xaf, + 0x10, 0x0f, 0xa4, 0x90, 0xa5, 0xb1, 0x50, 0x29, 0x66, 0x30, 0xd8, 0x45, 0x43, 0x2b, 0x90, 0xa3, + 0x86, 0x08, 0xd5, 0xc1, 0x30, 0x09, 0xb1, 0xea, 0x20, 0x30, 0x73, 0x9b, 0x06, 0xce, 0x51, 0x83, + 0x2d, 0x44, 0x39, 0xc2, 0x15, 0x4e, 0x3e, 0x2f, 0x68, 0x06, 0x18, 0x0a, 0x3b, 0x96, 0xd1, 0x39, + 0xf1, 0x1c, 0xfc, 0x85, 0xb8, 0x67, 0x19, 0x1d, 0xcc, 0xb1, 0xe4, 0xaf, 0x24, 0x98, 0x8a, 0x70, + 0x9e, 0x42, 0xe2, 0x7f, 0x18, 0x4d, 0xfc, 0x57, 0x07, 0x99, 0x48, 0x46, 0xfa, 0xff, 0x2a, 0x17, + 0x9b, 0x06, 0x9b, 0x30, 0xda, 0x81, 0x51, 0xd3, 0x68, 0x35, 0x9e, 0xc3, 0x75, 0xe0, 0x04, 0xab, + 0x9b, 0x1b, 0x01, 0x16, 0x0e, 0x03, 0xa3, 0x03, 0x98, 0xd2, 0x95, 0x0e, 0xb1, 0x4d, 0xa5, 0x49, + 0x1a, 0xcf, 0xe1, 0x80, 0xe4, 0x25, 0x7e, 0xdf, 0x10, 0x47, 0xc4, 0x49, 0x25, 0x68, 0x15, 0x8a, + 0xaa, 0xc9, 0xfb, 0x38, 0xd1, 0xbb, 0xf4, 0xac, 0xa2, 0x6e, 0xd7, 0xe7, 0xe6, 0x73, 0xf1, 0x03, + 0x7b, 0x18, 0xf2, 0x7f, 0xc6, 0xa3, 0x81, 0xc5, 0x1f, 0xba, 0x0f, 0x25, 0xfe, 0xac, 0xa6, 0x69, + 0x68, 0xde, 0xcd, 0x00, 0x5b, 0xd9, 0x0d, 0x31, 0xf6, 0xec, 0xb0, 0x72, 0x3e, 0xe5, 0xd0, 0xd7, + 0x23, 0x63, 0x5f, 0x18, 0xad, 0x41, 0xc1, 0xfc, 0x21, 0x1d, 0x0c, 0x2f, 0x72, 0xbc, 0x6d, 0xe1, + 0x38, 0xf2, 0x5f, 0xe7, 0x63, 0xe6, 0xf2, 0x52, 0xf7, 0xe4, 0xb9, 0xad, 0xba, 0xdf, 0x31, 0x65, + 0xae, 0xfc, 0x36, 0x14, 0x45, 0x85, 0x17, 0xc1, 0xfc, 0xf6, 0x20, 0xc1, 0x1c, 0xae, 0x62, 0xfe, + 0x07, 0x8b, 0x37, 0xe8, 0x01, 0xa3, 0x8f, 0x60, 0x98, 0xb8, 0x2a, 0xdc, 0xda, 0x78, 0x6b, 0x10, + 0x15, 0x41, 0x5e, 0x0d, 0x1a, 0x55, 0x31, 0x26, 0x50, 0xd1, 0x7b, 0xcc, 0x5f, 0x8c, 0x97, 0x7d, + 0x04, 0xda, 0xe5, 0x02, 0x2f, 0x57, 0x17, 0xdc, 0x69, 0xfb, 0xc3, 0xcf, 0x0e, 0x2b, 0x10, 0xfc, + 0xc4, 0x61, 0x09, 0xf9, 0x27, 0x12, 0x4c, 0x71, 0x0f, 0x35, 0x1d, 0x4b, 0xa5, 0xdd, 0x53, 0x2b, + 0x4c, 0x8f, 0x22, 0x85, 0xe9, 0xad, 0x1e, 0x6e, 0x49, 0x58, 0x98, 0x59, 0x9c, 0xbe, 0x96, 0xe0, + 0xa5, 0x04, 0xf7, 0x29, 0xe4, 0xc5, 0xad, 0x68, 0x5e, 0x7c, 0x63, 0xd0, 0x09, 0x65, 0xbd, 0x91, + 0x18, 0x4b, 0x99, 0x0e, 0xdf, 0x29, 0x37, 0x00, 0x4c, 0x4b, 0xdd, 0x57, 0x35, 0xd2, 0x16, 0x97, + 0xe0, 0xa5, 0xd0, 0xb3, 0x36, 0x9f, 0x82, 0x43, 0x5c, 0xc8, 0x86, 0x99, 0x16, 0xd9, 0x51, 0x1c, + 0x8d, 0x2e, 0xb4, 0x5a, 0x8b, 0x8a, 0xa9, 0x6c, 0xab, 0x9a, 0x4a, 0x55, 0x71, 0x5c, 0x30, 0x52, + 0xbf, 0xe3, 0x5e, 0x4e, 0xa7, 0x71, 0x3c, 0x3b, 0xac, 0x5c, 0x48, 0xbb, 0x1d, 0xf2, 0x58, 0xba, + 0x38, 0x03, 0x1a, 0x75, 0xa1, 0x6c, 0x91, 0x4f, 0x1c, 0xd5, 0x22, 0xad, 0x25, 0xcb, 0x30, 0x23, + 0x6a, 0xf3, 0x5c, 0xed, 0x1f, 0x1e, 0x1d, 0x56, 0xca, 0x38, 0x83, 0xa7, 0xb7, 0xe2, 0x4c, 0x78, + 0xf4, 0x04, 0xa6, 0x15, 0xf7, 0x35, 0x60, 0x44, 0xab, 0xbb, 0x4b, 0x6e, 0x1f, 0x1d, 0x56, 0xa6, + 0x17, 0x92, 0xe4, 0xde, 0x0a, 0xd3, 0x40, 0x51, 0x0d, 0x8a, 0xfb, 0xfc, 0xad, 0xa2, 0x5d, 0x1e, + 0xe2, 0xf8, 0xac, 0x10, 0x14, 0xdd, 0xe7, 0x8b, 0x0c, 0x73, 0xf8, 0x5e, 0x83, 0xef, 0x3e, 0x8f, + 0x8b, 0x7d, 0x50, 0xb2, 0x5e, 0x52, 0xec, 0x78, 0x7e, 0x62, 0x5c, 0x0a, 0xb2, 0xd6, 0x83, 0x80, + 0x84, 0xc3, 0x7c, 0xe8, 0x31, 0x8c, 0xec, 0x8a, 0x53, 0x09, 0xbb, 0x5c, 0xec, 0xab, 0x08, 0x47, + 0x4e, 0x31, 0xea, 0x53, 0x42, 0xc5, 0x88, 0x37, 0x6c, 0xe3, 0x00, 0x11, 0x5d, 0x81, 0x22, 0xff, + 0xb1, 0xbc, 0xc4, 0x8f, 0xe3, 0x4a, 0x41, 0x6e, 0x7b, 0xe0, 0x0e, 0x63, 0x8f, 0xee, 0xb1, 0x2e, + 0x6f, 0x2c, 0xf2, 0x63, 0xe1, 0x18, 0xeb, 0xf2, 0xc6, 0x22, 0xf6, 0xe8, 0xe8, 0x63, 0x28, 0xda, + 0x64, 0x45, 0xd5, 0x9d, 0x83, 0x32, 0xf4, 0x75, 0xa9, 0xdc, 0xb8, 0xcb, 0xb9, 0x63, 0x07, 0x63, + 0x81, 0x06, 0x41, 0xc7, 0x1e, 0x2c, 0xda, 0x85, 0x11, 0xcb, 0xd1, 0x17, 0xec, 0x2d, 0x9b, 0x58, + 0xe5, 0x51, 0xae, 0xa3, 0x57, 0x3a, 0xc7, 0x1e, 0x7f, 0x5c, 0x8b, 0xef, 0x21, 0x9f, 0x03, 0x07, + 0xe0, 0xe8, 0xef, 0x24, 0x40, 0xb6, 0x63, 0x9a, 0x1a, 0xe9, 0x10, 0x9d, 0x2a, 0x1a, 0x3f, 0x8b, + 0xb3, 0xcb, 0x67, 0xb9, 0xce, 0x3f, 0xea, 0x35, 0xaf, 0x84, 0x60, 0x5c, 0xb9, 0x7f, 0xe8, 0x9d, + 0x64, 0xc5, 0x29, 0x7a, 0x99, 0x6b, 0x77, 0x6c, 0xfe, 0x77, 0x79, 0xac, 0x2f, 0xd7, 0xa6, 0x9f, + 0x39, 0x06, 0xae, 0x15, 0x74, 0xec, 0xc1, 0xa2, 0x47, 0x30, 0x63, 0x11, 0xa5, 0xb5, 0xae, 0x6b, + 0x5d, 0x6c, 0x18, 0xf4, 0x9e, 0xaa, 0x11, 0xbb, 0x6b, 0x53, 0xd2, 0x29, 0x8f, 0xf3, 0x65, 0xf7, + 0xdf, 0x7e, 0xe0, 0x54, 0x2e, 0x9c, 0x21, 0x8d, 0x3a, 0x50, 0xf1, 0x52, 0x06, 0xdb, 0x4f, 0x7e, + 0xce, 0xba, 0x6b, 0x37, 0x15, 0xcd, 0xbd, 0x07, 0x98, 0xe0, 0x0a, 0x5e, 0x3b, 0x3a, 0xac, 0x54, + 0x96, 0x8e, 0x67, 0xc5, 0xbd, 0xb0, 0xd0, 0x07, 0x50, 0x56, 0xb2, 0xf4, 0x4c, 0x72, 0x3d, 0xaf, + 0xb0, 0x3c, 0x94, 0xa9, 0x20, 0x53, 0x1a, 0x51, 0x98, 0x54, 0xa2, 0x8f, 0x8e, 0xed, 0xf2, 0x54, + 0x5f, 0x07, 0x91, 0xb1, 0xb7, 0xca, 0xc1, 0x61, 0x44, 0x8c, 0x60, 0xe3, 0x84, 0x06, 0xf4, 0x17, + 0x80, 0x94, 0xf8, 0x3b, 0x69, 0xbb, 0x8c, 0xfa, 0x2a, 0x3f, 0x89, 0x07, 0xd6, 0x41, 0xd8, 0x25, + 0x48, 0x36, 0x4e, 0xd1, 0xc3, 0x1f, 0x6f, 0x88, 0xa3, 0xfc, 0xd3, 0x79, 0x00, 0x3b, 0xd8, 0xe3, + 0x8d, 0xc0, 0xb4, 0xe7, 0xf6, 0x78, 0x23, 0x04, 0x79, 0xfc, 0xe1, 0xe1, 0x2f, 0x72, 0x30, 0x1d, + 0x30, 0xf7, 0xfd, 0x78, 0x23, 0x45, 0xe4, 0x77, 0x8f, 0x60, 0x7b, 0x3f, 0x82, 0xfd, 0x52, 0x82, + 0xf1, 0xc0, 0x75, 0xbf, 0x79, 0x0f, 0x2a, 0x02, 0xdb, 0x32, 0x5a, 0xbc, 0xff, 0xce, 0x85, 0x27, + 0xf0, 0x5b, 0x7f, 0xab, 0xff, 0xc3, 0x5f, 0xae, 0xca, 0x5f, 0xe7, 0x61, 0x32, 0xbe, 0x1b, 0x23, + 0x97, 0xbf, 0x52, 0xcf, 0xcb, 0xdf, 0x0d, 0x38, 0xb7, 0xe3, 0x68, 0x5a, 0x97, 0xbb, 0x21, 0x74, + 0x03, 0xec, 0x5e, 0xde, 0xbc, 0x22, 0x24, 0xcf, 0xdd, 0x4b, 0xe1, 0xc1, 0xa9, 0x92, 0x19, 0x17, + 0xd9, 0xf9, 0x13, 0x5d, 0x64, 0x27, 0xee, 0x55, 0x0b, 0x03, 0xdc, 0xab, 0xa6, 0x5e, 0x4a, 0x0f, + 0x9d, 0xe0, 0x52, 0xfa, 0x24, 0xb7, 0xc8, 0x29, 0x49, 0xac, 0xe7, 0xa3, 0xc6, 0x57, 0x60, 0x4e, + 0x88, 0x51, 0x7e, 0xc1, 0xab, 0x53, 0xcb, 0xd0, 0x34, 0x62, 0x2d, 0x39, 0x9d, 0x4e, 0x57, 0x7e, + 0x17, 0xc6, 0xa3, 0x4f, 0x17, 0xdc, 0x95, 0x76, 0x5f, 0x4f, 0x88, 0x2b, 0xb4, 0xd0, 0x4a, 0xbb, + 0xe3, 0xd8, 0xe7, 0x90, 0xff, 0x46, 0x82, 0x99, 0xf4, 0x27, 0x8a, 0x48, 0x83, 0xf1, 0x8e, 0x72, + 0x10, 0x7e, 0x36, 0x2a, 0x9d, 0xf0, 0x70, 0x83, 0xdf, 0x59, 0xaf, 0x46, 0xb0, 0x70, 0x0c, 0x5b, + 0xfe, 0x5e, 0x82, 0xd9, 0x8c, 0xdb, 0xe2, 0xd3, 0xb5, 0x04, 0x7d, 0x08, 0xa5, 0x8e, 0x72, 0xd0, + 0x70, 0xac, 0x36, 0x39, 0xf1, 0x71, 0x0e, 0xcf, 0x18, 0xab, 0x02, 0x05, 0xfb, 0x78, 0xf2, 0xe7, + 0x12, 0x94, 0xb3, 0x1a, 0x6b, 0x74, 0x33, 0x72, 0xaf, 0xfd, 0x6a, 0xec, 0x5e, 0x7b, 0x2a, 0x21, + 0xf7, 0x82, 0x6e, 0xb5, 0xff, 0x4b, 0x82, 0x99, 0xf4, 0x0f, 0x0c, 0xf4, 0x66, 0xc4, 0xc2, 0x4a, + 0xcc, 0xc2, 0x89, 0x98, 0x94, 0xb0, 0xef, 0x23, 0x18, 0x17, 0x9f, 0x21, 0x02, 0x46, 0x78, 0x55, + 0x4e, 0xcb, 0x95, 0x02, 0xc2, 0x6b, 0xbb, 0xf9, 0x7a, 0x45, 0xc7, 0x70, 0x0c, 0x4d, 0xfe, 0xdb, + 0x1c, 0x0c, 0x35, 0x9a, 0x8a, 0x46, 0x4e, 0xa1, 0xcd, 0x7a, 0x3f, 0xd2, 0x66, 0xf5, 0xfa, 0x17, + 0x0f, 0x6e, 0x55, 0x66, 0x87, 0x85, 0x63, 0x1d, 0xd6, 0xeb, 0x7d, 0xa1, 0x1d, 0xdf, 0x5c, 0xfd, + 0x01, 0x8c, 0xf8, 0x4a, 0x07, 0xcb, 0xf9, 0xf2, 0xbf, 0xe7, 0x60, 0x34, 0xa4, 0x62, 0xc0, 0x8a, + 0xb1, 0x13, 0xa9, 0xb4, 0xfd, 0xfc, 0x63, 0x5d, 0x48, 0x57, 0xd5, 0xab, 0xad, 0xee, 0x13, 0xc5, + 0xe0, 0x51, 0x5a, 0xb2, 0xe4, 0xbe, 0x0b, 0xe3, 0x94, 0xff, 0xe3, 0x99, 0x7f, 0x08, 0x9a, 0xe7, + 0xb1, 0xe8, 0x3f, 0x6c, 0xdd, 0x8c, 0x50, 0x71, 0x8c, 0x7b, 0xee, 0x0e, 0x8c, 0x45, 0x94, 0x0d, + 0xf4, 0xc2, 0xf0, 0x7f, 0x25, 0x78, 0xb5, 0xe7, 0x27, 0x2a, 0xaa, 0x47, 0x36, 0x49, 0x35, 0xb6, + 0x49, 0xe6, 0xb3, 0x01, 0x5e, 0xdc, 0x4b, 0x95, 0xfa, 0xb5, 0xa7, 0xdf, 0xcd, 0x9f, 0xf9, 0xe6, + 0xbb, 0xf9, 0x33, 0xdf, 0x7e, 0x37, 0x7f, 0xe6, 0xaf, 0x8e, 0xe6, 0xa5, 0xa7, 0x47, 0xf3, 0xd2, + 0x37, 0x47, 0xf3, 0xd2, 0xb7, 0x47, 0xf3, 0xd2, 0xcf, 0x8e, 0xe6, 0xa5, 0x7f, 0xfc, 0x7e, 0xfe, + 0xcc, 0x87, 0x45, 0x01, 0xf7, 0xeb, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb1, 0xb3, 0xc8, 0xe2, 0x54, + 0x3c, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/extensions/v1beta1/generated.proto b/vendor/k8s.io/api/extensions/v1beta1/generated.proto index f6898bce..99d03437 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/generated.proto +++ b/vendor/k8s.io/api/extensions/v1beta1/generated.proto @@ -32,6 +32,12 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; +// AllowedFlexVolume represents a single Flexvolume that is allowed to be used. +message AllowedFlexVolume { + // Driver is the name of the Flexvolume driver. + optional string driver = 1; +} + // defines the host volume conditions that will be enabled by a policy // for pods to use. It requires the path prefix to be defined. message AllowedHostPath { @@ -843,6 +849,12 @@ message PodSecurityPolicySpec { // is a white list of allowed host paths. Empty indicates that all host paths may be used. // +optional repeated AllowedHostPath allowedHostPaths = 17; + + // AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all + // Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes + // is allowed in the "Volumes" field. + // +optional + repeated AllowedFlexVolume allowedFlexVolumes = 18; } // DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for diff --git a/vendor/k8s.io/api/extensions/v1beta1/types.go b/vendor/k8s.io/api/extensions/v1beta1/types.go index d4ca1832..9be564ed 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/types.go +++ b/vendor/k8s.io/api/extensions/v1beta1/types.go @@ -938,6 +938,11 @@ type PodSecurityPolicySpec struct { // is a white list of allowed host paths. Empty indicates that all host paths may be used. // +optional AllowedHostPaths []AllowedHostPath `json:"allowedHostPaths,omitempty" protobuf:"bytes,17,rep,name=allowedHostPaths"` + // AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all + // Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes + // is allowed in the "Volumes" field. + // +optional + AllowedFlexVolumes []AllowedFlexVolume `json:"allowedFlexVolumes,omitempty" protobuf:"bytes,18,rep,name=allowedFlexVolumes"` } // defines the host volume conditions that will be enabled by a policy @@ -981,6 +986,12 @@ var ( All FSType = "*" ) +// AllowedFlexVolume represents a single Flexvolume that is allowed to be used. +type AllowedFlexVolume struct { + // Driver is the name of the Flexvolume driver. + Driver string `json:"driver" protobuf:"bytes,1,opt,name=driver"` +} + // Host Port Range defines a range of host ports that will be enabled by a policy // for pods to use. It requires both the start and end to be defined. type HostPortRange struct { diff --git a/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go index b98d1179..c9eb7947 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go @@ -27,6 +27,15 @@ package v1beta1 // Those methods can be generated by using hack/update-generated-swagger-docs.sh // AUTO-GENERATED FUNCTIONS START HERE +var map_AllowedFlexVolume = map[string]string{ + "": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", + "driver": "Driver is the name of the Flexvolume driver.", +} + +func (AllowedFlexVolume) SwaggerDoc() map[string]string { + return map_AllowedFlexVolume +} + var map_AllowedHostPath = map[string]string{ "": "defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", "pathPrefix": "is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", @@ -465,6 +474,7 @@ var map_PodSecurityPolicySpec = map[string]string{ "defaultAllowPrivilegeEscalation": "DefaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", "allowPrivilegeEscalation": "AllowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", "allowedHostPaths": "is a white list of allowed host paths. Empty indicates that all host paths may be used.", + "allowedFlexVolumes": "AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"Volumes\" field.", } func (PodSecurityPolicySpec) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go index 0cc661de..02a84ccc 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go @@ -27,6 +27,22 @@ import ( intstr "k8s.io/apimachinery/pkg/util/intstr" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AllowedFlexVolume) DeepCopyInto(out *AllowedFlexVolume) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedFlexVolume. +func (in *AllowedFlexVolume) DeepCopy() *AllowedFlexVolume { + if in == nil { + return nil + } + out := new(AllowedFlexVolume) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AllowedHostPath) DeepCopyInto(out *AllowedHostPath) { *out = *in @@ -1194,6 +1210,11 @@ func (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) { *out = make([]AllowedHostPath, len(*in)) copy(*out, *in) } + if in.AllowedFlexVolumes != nil { + in, out := &in.AllowedFlexVolumes, &out.AllowedFlexVolumes + *out = make([]AllowedFlexVolume, len(*in)) + copy(*out, *in) + } return } diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go index a96f38ee..c62f8533 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go @@ -38,6 +38,7 @@ func AddConversionFuncs(scheme *runtime.Scheme) error { Convert_intstr_IntOrString_To_intstr_IntOrString, Convert_unversioned_Time_To_unversioned_Time, + Convert_unversioned_MicroTime_To_unversioned_MicroTime, Convert_Pointer_v1_Duration_To_v1_Duration, Convert_v1_Duration_To_Pointer_v1_Duration, @@ -199,6 +200,12 @@ func Convert_v1_Duration_To_Pointer_v1_Duration(in *Duration, out **Duration, s return nil } +func Convert_unversioned_MicroTime_To_unversioned_MicroTime(in *MicroTime, out *MicroTime, s conversion.Scope) error { + // Cannot deep copy these, because time.Time has unexported fields. + *out = *in + return nil +} + // Convert_Slice_string_To_unversioned_Time allows converting a URL query parameter value func Convert_Slice_string_To_unversioned_Time(input *[]string, out *Time, s conversion.Scope) error { str := "" diff --git a/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD index cde41b30..e69fe0ab 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD +++ b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD @@ -9,26 +9,38 @@ load( go_test( name = "go_default_test", srcs = ["patch_test.go"], + data = [ + "testdata/swagger-merge-item.json", + "testdata/swagger-precision-item.json", + ], importpath = "k8s.io/apimachinery/pkg/util/strategicpatch", library = ":go_default_library", deps = [ "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/mergepatch:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/strategicpatch/testing:go_default_library", ], ) go_library( name = "go_default_library", - srcs = ["patch.go"], + srcs = [ + "errors.go", + "meta.go", + "patch.go", + "types.go", + ], importpath = "k8s.io/apimachinery/pkg/util/strategicpatch", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/mergepatch:go_default_library", "//vendor/k8s.io/apimachinery/third_party/forked/golang/json:go_default_library", + "//vendor/k8s.io/kube-openapi/pkg/util/proto:go_default_library", ], ) @@ -41,6 +53,9 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/testing:all-srcs", + ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/errors.go b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/errors.go new file mode 100644 index 00000000..ab66d045 --- /dev/null +++ b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/errors.go @@ -0,0 +1,49 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package strategicpatch + +import ( + "fmt" +) + +type LookupPatchMetaError struct { + Path string + Err error +} + +func (e LookupPatchMetaError) Error() string { + return fmt.Sprintf("LookupPatchMetaError(%s): %v", e.Path, e.Err) +} + +type FieldNotFoundError struct { + Path string + Field string +} + +func (e FieldNotFoundError) Error() string { + return fmt.Sprintf("unable to find api field %q in %s", e.Field, e.Path) +} + +type InvalidTypeError struct { + Path string + Expected string + Actual string +} + +func (e InvalidTypeError) Error() string { + return fmt.Sprintf("invalid type for %s: got %q, expected %q", e.Path, e.Actual, e.Expected) +} diff --git a/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/meta.go b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/meta.go new file mode 100644 index 00000000..c31de15e --- /dev/null +++ b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/meta.go @@ -0,0 +1,194 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package strategicpatch + +import ( + "errors" + "fmt" + "reflect" + + "k8s.io/apimachinery/pkg/util/mergepatch" + forkedjson "k8s.io/apimachinery/third_party/forked/golang/json" + openapi "k8s.io/kube-openapi/pkg/util/proto" +) + +type PatchMeta struct { + patchStrategies []string + patchMergeKey string +} + +func (pm PatchMeta) GetPatchStrategies() []string { + if pm.patchStrategies == nil { + return []string{} + } + return pm.patchStrategies +} + +func (pm PatchMeta) SetPatchStrategies(ps []string) { + pm.patchStrategies = ps +} + +func (pm PatchMeta) GetPatchMergeKey() string { + return pm.patchMergeKey +} + +func (pm PatchMeta) SetPatchMergeKey(pmk string) { + pm.patchMergeKey = pmk +} + +type LookupPatchMeta interface { + // LookupPatchMetadataForStruct gets subschema and the patch metadata (e.g. patch strategy and merge key) for map. + LookupPatchMetadataForStruct(key string) (LookupPatchMeta, PatchMeta, error) + // LookupPatchMetadataForSlice get subschema and the patch metadata for slice. + LookupPatchMetadataForSlice(key string) (LookupPatchMeta, PatchMeta, error) + // Get the type name of the field + Name() string +} + +type PatchMetaFromStruct struct { + T reflect.Type +} + +func NewPatchMetaFromStruct(dataStruct interface{}) (PatchMetaFromStruct, error) { + t, err := getTagStructType(dataStruct) + return PatchMetaFromStruct{T: t}, err +} + +var _ LookupPatchMeta = PatchMetaFromStruct{} + +func (s PatchMetaFromStruct) LookupPatchMetadataForStruct(key string) (LookupPatchMeta, PatchMeta, error) { + fieldType, fieldPatchStrategies, fieldPatchMergeKey, err := forkedjson.LookupPatchMetadataForStruct(s.T, key) + if err != nil { + return nil, PatchMeta{}, err + } + + return PatchMetaFromStruct{T: fieldType}, + PatchMeta{ + patchStrategies: fieldPatchStrategies, + patchMergeKey: fieldPatchMergeKey, + }, nil +} + +func (s PatchMetaFromStruct) LookupPatchMetadataForSlice(key string) (LookupPatchMeta, PatchMeta, error) { + subschema, patchMeta, err := s.LookupPatchMetadataForStruct(key) + if err != nil { + return nil, PatchMeta{}, err + } + elemPatchMetaFromStruct := subschema.(PatchMetaFromStruct) + t := elemPatchMetaFromStruct.T + + var elemType reflect.Type + switch t.Kind() { + // If t is an array or a slice, get the element type. + // If element is still an array or a slice, return an error. + // Otherwise, return element type. + case reflect.Array, reflect.Slice: + elemType = t.Elem() + if elemType.Kind() == reflect.Array || elemType.Kind() == reflect.Slice { + return nil, PatchMeta{}, errors.New("unexpected slice of slice") + } + // If t is an pointer, get the underlying element. + // If the underlying element is neither an array nor a slice, the pointer is pointing to a slice, + // e.g. https://github.com/kubernetes/kubernetes/blob/bc22e206c79282487ea0bf5696d5ccec7e839a76/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch_test.go#L2782-L2822 + // If the underlying element is either an array or a slice, return its element type. + case reflect.Ptr: + t = t.Elem() + if t.Kind() == reflect.Array || t.Kind() == reflect.Slice { + t = t.Elem() + } + elemType = t + default: + return nil, PatchMeta{}, fmt.Errorf("expected slice or array type, but got: %s", s.T.Kind().String()) + } + + return PatchMetaFromStruct{T: elemType}, patchMeta, nil +} + +func (s PatchMetaFromStruct) Name() string { + return s.T.Kind().String() +} + +func getTagStructType(dataStruct interface{}) (reflect.Type, error) { + if dataStruct == nil { + return nil, mergepatch.ErrBadArgKind(struct{}{}, nil) + } + + t := reflect.TypeOf(dataStruct) + // Get the underlying type for pointers + if t.Kind() == reflect.Ptr { + t = t.Elem() + } + + if t.Kind() != reflect.Struct { + return nil, mergepatch.ErrBadArgKind(struct{}{}, dataStruct) + } + + return t, nil +} + +func GetTagStructTypeOrDie(dataStruct interface{}) reflect.Type { + t, err := getTagStructType(dataStruct) + if err != nil { + panic(err) + } + return t +} + +type PatchMetaFromOpenAPI struct { + Schema openapi.Schema +} + +func NewPatchMetaFromOpenAPI(s openapi.Schema) PatchMetaFromOpenAPI { + return PatchMetaFromOpenAPI{Schema: s} +} + +var _ LookupPatchMeta = PatchMetaFromOpenAPI{} + +func (s PatchMetaFromOpenAPI) LookupPatchMetadataForStruct(key string) (LookupPatchMeta, PatchMeta, error) { + if s.Schema == nil { + return nil, PatchMeta{}, nil + } + kindItem := NewKindItem(key, s.Schema.GetPath()) + s.Schema.Accept(kindItem) + + err := kindItem.Error() + if err != nil { + return nil, PatchMeta{}, err + } + return PatchMetaFromOpenAPI{Schema: kindItem.subschema}, + kindItem.patchmeta, nil +} + +func (s PatchMetaFromOpenAPI) LookupPatchMetadataForSlice(key string) (LookupPatchMeta, PatchMeta, error) { + if s.Schema == nil { + return nil, PatchMeta{}, nil + } + sliceItem := NewSliceItem(key, s.Schema.GetPath()) + s.Schema.Accept(sliceItem) + + err := sliceItem.Error() + if err != nil { + return nil, PatchMeta{}, err + } + return PatchMetaFromOpenAPI{Schema: sliceItem.subschema}, + sliceItem.patchmeta, nil +} + +func (s PatchMetaFromOpenAPI) Name() string { + schema := s.Schema + return schema.GetName() +} diff --git a/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go index 102a1c66..fd08759f 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go +++ b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go @@ -25,7 +25,6 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/util/json" "k8s.io/apimachinery/pkg/util/mergepatch" - forkedjson "k8s.io/apimachinery/third_party/forked/golang/json" ) // An alternate implementation of JSON Merge Patch @@ -93,6 +92,16 @@ type MergeOptions struct { // return a patch that yields the modified document when applied to the original document, or an error // if either of the two documents is invalid. func CreateTwoWayMergePatch(original, modified []byte, dataStruct interface{}, fns ...mergepatch.PreconditionFunc) ([]byte, error) { + schema, err := NewPatchMetaFromStruct(dataStruct) + if err != nil { + return nil, err + } + + return CreateTwoWayMergePatchUsingLookupPatchMeta(original, modified, schema, fns...) +} + +func CreateTwoWayMergePatchUsingLookupPatchMeta( + original, modified []byte, schema LookupPatchMeta, fns ...mergepatch.PreconditionFunc) ([]byte, error) { originalMap := map[string]interface{}{} if len(original) > 0 { if err := json.Unmarshal(original, &originalMap); err != nil { @@ -107,7 +116,7 @@ func CreateTwoWayMergePatch(original, modified []byte, dataStruct interface{}, f } } - patchMap, err := CreateTwoWayMergeMapPatch(originalMap, modifiedMap, dataStruct, fns...) + patchMap, err := CreateTwoWayMergeMapPatchUsingLookupPatchMeta(originalMap, modifiedMap, schema, fns...) if err != nil { return nil, err } @@ -119,15 +128,19 @@ func CreateTwoWayMergePatch(original, modified []byte, dataStruct interface{}, f // encoded JSONMap. // The serialized version of the map can then be passed to StrategicMergeMapPatch. func CreateTwoWayMergeMapPatch(original, modified JSONMap, dataStruct interface{}, fns ...mergepatch.PreconditionFunc) (JSONMap, error) { - t, err := getTagStructType(dataStruct) + schema, err := NewPatchMetaFromStruct(dataStruct) if err != nil { return nil, err } + return CreateTwoWayMergeMapPatchUsingLookupPatchMeta(original, modified, schema, fns...) +} + +func CreateTwoWayMergeMapPatchUsingLookupPatchMeta(original, modified JSONMap, schema LookupPatchMeta, fns ...mergepatch.PreconditionFunc) (JSONMap, error) { diffOptions := DiffOptions{ SetElementOrder: true, } - patchMap, err := diffMaps(original, modified, t, diffOptions) + patchMap, err := diffMaps(original, modified, schema, diffOptions) if err != nil { return nil, err } @@ -152,12 +165,9 @@ func CreateTwoWayMergeMapPatch(original, modified JSONMap, dataStruct interface{ // - IFF list of primitives && merge strategy - use parallel deletion list // - IFF list of maps or primitives with replace strategy (default) - set patch value to the value in modified // - Build $retainKeys directive for fields with retainKeys patch strategy -func diffMaps(original, modified map[string]interface{}, t reflect.Type, diffOptions DiffOptions) (map[string]interface{}, error) { +func diffMaps(original, modified map[string]interface{}, schema LookupPatchMeta, diffOptions DiffOptions) (map[string]interface{}, error) { patch := map[string]interface{}{} - // Get the underlying type for pointers - if t.Kind() == reflect.Ptr { - t = t.Elem() - } + // This will be used to build the $retainKeys directive sent in the patch retainKeysList := make([]interface{}, 0, len(modified)) @@ -199,10 +209,10 @@ func diffMaps(original, modified map[string]interface{}, t reflect.Type, diffOpt switch originalValueTyped := originalValue.(type) { case map[string]interface{}: modifiedValueTyped := modifiedValue.(map[string]interface{}) - err = handleMapDiff(key, originalValueTyped, modifiedValueTyped, patch, t, diffOptions) + err = handleMapDiff(key, originalValueTyped, modifiedValueTyped, patch, schema, diffOptions) case []interface{}: modifiedValueTyped := modifiedValue.([]interface{}) - err = handleSliceDiff(key, originalValueTyped, modifiedValueTyped, patch, t, diffOptions) + err = handleSliceDiff(key, originalValueTyped, modifiedValueTyped, patch, schema, diffOptions) default: replacePatchFieldIfNotEqual(key, originalValue, modifiedValue, patch, diffOptions) } @@ -249,8 +259,9 @@ func handleDirectiveMarker(key string, originalValue, modifiedValue interface{}, // patch is the patch map that contains key and the updated value, and it is the parent of originalValue, modifiedValue // diffOptions contains multiple options to control how we do the diff. func handleMapDiff(key string, originalValue, modifiedValue, patch map[string]interface{}, - t reflect.Type, diffOptions DiffOptions) error { - fieldType, fieldPatchStrategies, _, err := forkedjson.LookupPatchMetadata(t, key) + schema LookupPatchMeta, diffOptions DiffOptions) error { + subschema, patchMeta, err := schema.LookupPatchMetadataForStruct(key) + if err != nil { // We couldn't look up metadata for the field // If the values are identical, this doesn't matter, no patch is needed @@ -260,7 +271,7 @@ func handleMapDiff(key string, originalValue, modifiedValue, patch map[string]in // Otherwise, return the error return err } - retainKeys, patchStrategy, err := extractRetainKeysPatchStrategy(fieldPatchStrategies) + retainKeys, patchStrategy, err := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies()) if err != nil { return err } @@ -272,7 +283,7 @@ func handleMapDiff(key string, originalValue, modifiedValue, patch map[string]in patch[key] = modifiedValue } default: - patchValue, err := diffMaps(originalValue, modifiedValue, fieldType, diffOptions) + patchValue, err := diffMaps(originalValue, modifiedValue, subschema, diffOptions) if err != nil { return err } @@ -291,8 +302,8 @@ func handleMapDiff(key string, originalValue, modifiedValue, patch map[string]in // patch is the patch map that contains key and the updated value, and it is the parent of originalValue, modifiedValue // diffOptions contains multiple options to control how we do the diff. func handleSliceDiff(key string, originalValue, modifiedValue []interface{}, patch map[string]interface{}, - t reflect.Type, diffOptions DiffOptions) error { - fieldType, fieldPatchStrategies, fieldPatchMergeKey, err := forkedjson.LookupPatchMetadata(t, key) + schema LookupPatchMeta, diffOptions DiffOptions) error { + subschema, patchMeta, err := schema.LookupPatchMetadataForSlice(key) if err != nil { // We couldn't look up metadata for the field // If the values are identical, this doesn't matter, no patch is needed @@ -302,7 +313,7 @@ func handleSliceDiff(key string, originalValue, modifiedValue []interface{}, pat // Otherwise, return the error return err } - retainKeys, patchStrategy, err := extractRetainKeysPatchStrategy(fieldPatchStrategies) + retainKeys, patchStrategy, err := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies()) if err != nil { return err } @@ -310,7 +321,7 @@ func handleSliceDiff(key string, originalValue, modifiedValue []interface{}, pat // Merge the 2 slices using mergePatchKey case mergeDirective: diffOptions.BuildRetainKeysDirective = retainKeys - addList, deletionList, setOrderList, err := diffLists(originalValue, modifiedValue, fieldType.Elem(), fieldPatchMergeKey, diffOptions) + addList, deletionList, setOrderList, err := diffLists(originalValue, modifiedValue, subschema, patchMeta.GetPatchMergeKey(), diffOptions) if err != nil { return err } @@ -537,7 +548,7 @@ func normalizeSliceOrder(toSort, order []interface{}, mergeKey string, kind refl // another list to set the order of the list // Only list of primitives with merge strategy will generate a parallel deletion list. // These two lists should yield modified when applied to original, for lists with merge semantics. -func diffLists(original, modified []interface{}, t reflect.Type, mergeKey string, diffOptions DiffOptions) ([]interface{}, []interface{}, []interface{}, error) { +func diffLists(original, modified []interface{}, schema LookupPatchMeta, mergeKey string, diffOptions DiffOptions) ([]interface{}, []interface{}, []interface{}, error) { if len(original) == 0 { // Both slices are empty - do nothing if len(modified) == 0 || diffOptions.IgnoreChangesAndAdditions { @@ -557,7 +568,7 @@ func diffLists(original, modified []interface{}, t reflect.Type, mergeKey string kind := elementType.Kind() switch kind { case reflect.Map: - patchList, deleteList, err = diffListsOfMaps(original, modified, t, mergeKey, diffOptions) + patchList, deleteList, err = diffListsOfMaps(original, modified, schema, mergeKey, diffOptions) if err != nil { return nil, nil, nil, err } @@ -703,15 +714,15 @@ func compareListValuesAtIndex(list1Inbounds, list2Inbounds bool, list1Value, lis // diffListsOfMaps takes a pair of lists and // returns a (recursive) strategic merge patch list contains additions and changes and // a deletion list contains deletions -func diffListsOfMaps(original, modified []interface{}, t reflect.Type, mergeKey string, diffOptions DiffOptions) ([]interface{}, []interface{}, error) { +func diffListsOfMaps(original, modified []interface{}, schema LookupPatchMeta, mergeKey string, diffOptions DiffOptions) ([]interface{}, []interface{}, error) { patch := make([]interface{}, 0, len(modified)) deletionList := make([]interface{}, 0, len(original)) - originalSorted, err := sortMergeListsByNameArray(original, t, mergeKey, false) + originalSorted, err := sortMergeListsByNameArray(original, schema, mergeKey, false) if err != nil { return nil, nil, err } - modifiedSorted, err := sortMergeListsByNameArray(modified, t, mergeKey, false) + modifiedSorted, err := sortMergeListsByNameArray(modified, schema, mergeKey, false) if err != nil { return nil, nil, err } @@ -746,7 +757,7 @@ func diffListsOfMaps(original, modified []interface{}, t reflect.Type, mergeKey switch { case bothInBounds && ItemMatchesOriginalAndModifiedSlice(originalElementMergeKeyValueString, modifiedElementMergeKeyValueString): // Merge key values are equal, so recurse - patchValue, err := diffMaps(originalElement, modifiedElement, t, diffOptions) + patchValue, err := diffMaps(originalElement, modifiedElement, schema, diffOptions) if err != nil { return nil, nil, err } @@ -799,6 +810,15 @@ func getMapAndMergeKeyValueByIndex(index int, mergeKey string, listOfMaps []inte // must be json encoded content. A patch can be created from an original and a modified document // by calling CreateStrategicMergePatch. func StrategicMergePatch(original, patch []byte, dataStruct interface{}) ([]byte, error) { + schema, err := NewPatchMetaFromStruct(dataStruct) + if err != nil { + return nil, err + } + + return StrategicMergePatchUsingLookupPatchMeta(original, patch, schema) +} + +func StrategicMergePatchUsingLookupPatchMeta(original, patch []byte, schema LookupPatchMeta) ([]byte, error) { originalMap, err := handleUnmarshal(original) if err != nil { return nil, err @@ -808,7 +828,7 @@ func StrategicMergePatch(original, patch []byte, dataStruct interface{}) ([]byte return nil, err } - result, err := StrategicMergeMapPatch(originalMap, patchMap, dataStruct) + result, err := StrategicMergeMapPatchUsingLookupPatchMeta(originalMap, patchMap, schema) if err != nil { return nil, err } @@ -834,7 +854,7 @@ func handleUnmarshal(j []byte) (map[string]interface{}, error) { // calling CreateTwoWayMergeMapPatch. // Warning: the original and patch JSONMap objects are mutated by this function and should not be reused. func StrategicMergeMapPatch(original, patch JSONMap, dataStruct interface{}) (JSONMap, error) { - t, err := getTagStructType(dataStruct) + schema, err := NewPatchMetaFromStruct(dataStruct) if err != nil { return nil, err } @@ -849,29 +869,15 @@ func StrategicMergeMapPatch(original, patch JSONMap, dataStruct interface{}) (JS return nil, mergepatch.ErrUnsupportedStrategicMergePatchFormat } + return StrategicMergeMapPatchUsingLookupPatchMeta(original, patch, schema) +} + +func StrategicMergeMapPatchUsingLookupPatchMeta(original, patch JSONMap, schema LookupPatchMeta) (JSONMap, error) { mergeOptions := MergeOptions{ MergeParallelList: true, IgnoreUnmatchedNulls: true, } - return mergeMap(original, patch, t, mergeOptions) -} - -func getTagStructType(dataStruct interface{}) (reflect.Type, error) { - if dataStruct == nil { - return nil, mergepatch.ErrBadArgKind(struct{}{}, nil) - } - - t := reflect.TypeOf(dataStruct) - // Get the underlying type for pointers - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - - if t.Kind() != reflect.Struct { - return nil, mergepatch.ErrBadArgKind(struct{}{}, dataStruct) - } - - return t, nil + return mergeMap(original, patch, schema, mergeOptions) } // handleDirectiveInMergeMap handles the patch directive when merging 2 maps. @@ -1079,7 +1085,7 @@ func applyRetainKeysDirective(original, patch map[string]interface{}, options Me // The precedence is $setElementOrder > order in patch list > order in live list. // This function will delete the item after merging it to prevent process it again in the future. // Ref: https://git.k8s.io/community/contributors/design-proposals/cli/preserve-order-in-strategic-merge-patch.md -func mergePatchIntoOriginal(original, patch map[string]interface{}, t reflect.Type, mergeOptions MergeOptions) error { +func mergePatchIntoOriginal(original, patch map[string]interface{}, schema LookupPatchMeta, mergeOptions MergeOptions) error { for key, patchV := range patch { // Do nothing if there is no ordering directive if !strings.HasPrefix(key, setElementOrderDirectivePrefix) { @@ -1106,9 +1112,9 @@ func mergePatchIntoOriginal(original, patch map[string]interface{}, t reflect.Ty var ( ok bool originalFieldValue, patchFieldValue, merged []interface{} - patchStrategy, mergeKey string - patchStrategies []string - fieldType reflect.Type + patchStrategy string + patchMeta PatchMeta + subschema LookupPatchMeta ) typedSetElementOrderList, ok := setElementOrderInPatch.([]interface{}) if !ok { @@ -1134,16 +1140,16 @@ func mergePatchIntoOriginal(original, patch map[string]interface{}, t reflect.Ty return mergepatch.ErrBadArgType(patchFieldValue, patchList) } } - fieldType, patchStrategies, mergeKey, err = forkedjson.LookupPatchMetadata(t, originalKey) + subschema, patchMeta, err = schema.LookupPatchMetadataForSlice(originalKey) if err != nil { return err } - _, patchStrategy, err = extractRetainKeysPatchStrategy(patchStrategies) + _, patchStrategy, err = extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies()) if err != nil { return err } // Check for consistency between the element order list and the field it applies to - err = validatePatchWithSetOrderList(patchFieldValue, typedSetElementOrderList, mergeKey) + err = validatePatchWithSetOrderList(patchFieldValue, typedSetElementOrderList, patchMeta.GetPatchMergeKey()) if err != nil { return err } @@ -1156,8 +1162,8 @@ func mergePatchIntoOriginal(original, patch map[string]interface{}, t reflect.Ty // list was added merged = patchFieldValue case foundOriginal && foundPatch: - merged, err = mergeSliceHandler(originalList, patchList, fieldType, - patchStrategy, mergeKey, false, mergeOptions) + merged, err = mergeSliceHandler(originalList, patchList, subschema, + patchStrategy, patchMeta.GetPatchMergeKey(), false, mergeOptions) if err != nil { return err } @@ -1167,13 +1173,13 @@ func mergePatchIntoOriginal(original, patch map[string]interface{}, t reflect.Ty // Split all items into patch items and server-only items and then enforce the order. var patchItems, serverOnlyItems []interface{} - if len(mergeKey) == 0 { + if len(patchMeta.GetPatchMergeKey()) == 0 { // Primitives doesn't need merge key to do partitioning. patchItems, serverOnlyItems = partitionPrimitivesByPresentInList(merged, typedSetElementOrderList) } else { // Maps need merge key to do partitioning. - patchItems, serverOnlyItems, err = partitionMapsByPresentInList(merged, typedSetElementOrderList, mergeKey) + patchItems, serverOnlyItems, err = partitionMapsByPresentInList(merged, typedSetElementOrderList, patchMeta.GetPatchMergeKey()) if err != nil { return err } @@ -1187,7 +1193,7 @@ func mergePatchIntoOriginal(original, patch map[string]interface{}, t reflect.Ty // normalize merged list // typedSetElementOrderList contains all the relative order in typedPatchList, // so don't need to use typedPatchList - both, err := normalizeElementOrder(patchItems, serverOnlyItems, typedSetElementOrderList, originalFieldValue, mergeKey, kind) + both, err := normalizeElementOrder(patchItems, serverOnlyItems, typedSetElementOrderList, originalFieldValue, patchMeta.GetPatchMergeKey(), kind) if err != nil { return err } @@ -1249,7 +1255,7 @@ func partitionMapsByPresentInList(original, partitionBy []interface{}, mergeKey // If patch contains any null field (e.g. field_1: null) that is not // present in original, then to propagate it to the end result use // mergeOptions.IgnoreUnmatchedNulls == false. -func mergeMap(original, patch map[string]interface{}, t reflect.Type, mergeOptions MergeOptions) (map[string]interface{}, error) { +func mergeMap(original, patch map[string]interface{}, schema LookupPatchMeta, mergeOptions MergeOptions) (map[string]interface{}, error) { if v, ok := patch[directiveMarker]; ok { return handleDirectiveInMergeMap(v, patch) } @@ -1269,7 +1275,7 @@ func mergeMap(original, patch map[string]interface{}, t reflect.Type, mergeOptio // When not merging the directive, it will make sure $setElementOrder list exist only in original. // When merging the directive, it will process $setElementOrder and its patch list together. // This function will delete the merged elements from patch so they will not be reprocessed - err = mergePatchIntoOriginal(original, patch, t, mergeOptions) + err = mergePatchIntoOriginal(original, patch, schema, mergeOptions) if err != nil { return nil, err } @@ -1307,11 +1313,6 @@ func mergeMap(original, patch map[string]interface{}, t reflect.Type, mergeOptio continue } - // If the data type is a pointer, resolve the element. - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - originalType := reflect.TypeOf(original[k]) patchType := reflect.TypeOf(patchV) if originalType != patchType { @@ -1319,22 +1320,27 @@ func mergeMap(original, patch map[string]interface{}, t reflect.Type, mergeOptio continue } // If they're both maps or lists, recurse into the value. - // First find the fieldPatchStrategy and fieldPatchMergeKey. - fieldType, fieldPatchStrategies, fieldPatchMergeKey, err := forkedjson.LookupPatchMetadata(t, k) - if err != nil { - return nil, err - } - _, patchStrategy, err := extractRetainKeysPatchStrategy(fieldPatchStrategies) - if err != nil { - return nil, err - } - switch originalType.Kind() { case reflect.Map: - - original[k], err = mergeMapHandler(original[k], patchV, fieldType, patchStrategy, mergeOptions) + subschema, patchMeta, err := schema.LookupPatchMetadataForStruct(k) + if err != nil { + return nil, err + } + _, patchStrategy, err := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies()) + if err != nil { + return nil, err + } + original[k], err = mergeMapHandler(original[k], patchV, subschema, patchStrategy, mergeOptions) case reflect.Slice: - original[k], err = mergeSliceHandler(original[k], patchV, fieldType, patchStrategy, fieldPatchMergeKey, isDeleteList, mergeOptions) + subschema, patchMeta, err := schema.LookupPatchMetadataForSlice(k) + if err != nil { + return nil, err + } + _, patchStrategy, err := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies()) + if err != nil { + return nil, err + } + original[k], err = mergeSliceHandler(original[k], patchV, subschema, patchStrategy, patchMeta.GetPatchMergeKey(), isDeleteList, mergeOptions) default: original[k] = patchV } @@ -1347,7 +1353,7 @@ func mergeMap(original, patch map[string]interface{}, t reflect.Type, mergeOptio // mergeMapHandler handles how to merge `patchV` whose key is `key` with `original` respecting // fieldPatchStrategy and mergeOptions. -func mergeMapHandler(original, patch interface{}, fieldType reflect.Type, +func mergeMapHandler(original, patch interface{}, schema LookupPatchMeta, fieldPatchStrategy string, mergeOptions MergeOptions) (map[string]interface{}, error) { typedOriginal, typedPatch, err := mapTypeAssertion(original, patch) if err != nil { @@ -1355,7 +1361,7 @@ func mergeMapHandler(original, patch interface{}, fieldType reflect.Type, } if fieldPatchStrategy != replaceDirective { - return mergeMap(typedOriginal, typedPatch, fieldType, mergeOptions) + return mergeMap(typedOriginal, typedPatch, schema, mergeOptions) } else { return typedPatch, nil } @@ -1363,7 +1369,7 @@ func mergeMapHandler(original, patch interface{}, fieldType reflect.Type, // mergeSliceHandler handles how to merge `patchV` whose key is `key` with `original` respecting // fieldPatchStrategy, fieldPatchMergeKey, isDeleteList and mergeOptions. -func mergeSliceHandler(original, patch interface{}, fieldType reflect.Type, +func mergeSliceHandler(original, patch interface{}, schema LookupPatchMeta, fieldPatchStrategy, fieldPatchMergeKey string, isDeleteList bool, mergeOptions MergeOptions) ([]interface{}, error) { typedOriginal, typedPatch, err := sliceTypeAssertion(original, patch) if err != nil { @@ -1371,8 +1377,7 @@ func mergeSliceHandler(original, patch interface{}, fieldType reflect.Type, } if fieldPatchStrategy == mergeDirective { - elemType := fieldType.Elem() - return mergeSlice(typedOriginal, typedPatch, elemType, fieldPatchMergeKey, mergeOptions, isDeleteList) + return mergeSlice(typedOriginal, typedPatch, schema, fieldPatchMergeKey, mergeOptions, isDeleteList) } else { return typedPatch, nil } @@ -1381,7 +1386,7 @@ func mergeSliceHandler(original, patch interface{}, fieldType reflect.Type, // Merge two slices together. Note: This may modify both the original slice and // the patch because getting a deep copy of a slice in golang is highly // non-trivial. -func mergeSlice(original, patch []interface{}, elemType reflect.Type, mergeKey string, mergeOptions MergeOptions, isDeleteList bool) ([]interface{}, error) { +func mergeSlice(original, patch []interface{}, schema LookupPatchMeta, mergeKey string, mergeOptions MergeOptions, isDeleteList bool) ([]interface{}, error) { if len(original) == 0 && len(patch) == 0 { return original, nil } @@ -1406,7 +1411,7 @@ func mergeSlice(original, patch []interface{}, elemType reflect.Type, mergeKey s } else { if mergeKey == "" { - return nil, fmt.Errorf("cannot merge lists without merge key for type %s", elemType.Kind().String()) + return nil, fmt.Errorf("cannot merge lists without merge key for %s", schema.Name()) } original, patch, err = mergeSliceWithSpecialElements(original, patch, mergeKey) @@ -1414,7 +1419,7 @@ func mergeSlice(original, patch []interface{}, elemType reflect.Type, mergeKey s return nil, err } - merged, err = mergeSliceWithoutSpecialElements(original, patch, mergeKey, elemType, mergeOptions) + merged, err = mergeSliceWithoutSpecialElements(original, patch, mergeKey, schema, mergeOptions) if err != nil { return nil, err } @@ -1492,7 +1497,7 @@ func deleteMatchingEntries(original []interface{}, mergeKey string, mergeValue i // mergeSliceWithoutSpecialElements merges slices with non-special elements. // original and patch must be slices of maps, they should be checked before calling this function. -func mergeSliceWithoutSpecialElements(original, patch []interface{}, mergeKey string, elemType reflect.Type, mergeOptions MergeOptions) ([]interface{}, error) { +func mergeSliceWithoutSpecialElements(original, patch []interface{}, mergeKey string, schema LookupPatchMeta, mergeOptions MergeOptions) ([]interface{}, error) { for _, v := range patch { typedV := v.(map[string]interface{}) mergeValue, ok := typedV[mergeKey] @@ -1511,7 +1516,7 @@ func mergeSliceWithoutSpecialElements(original, patch []interface{}, mergeKey st var mergedMaps interface{} var err error // Merge into original. - mergedMaps, err = mergeMap(originalMap, typedV, elemType, mergeOptions) + mergedMaps, err = mergeMap(originalMap, typedV, schema, mergeOptions) if err != nil { return nil, err } @@ -1560,14 +1565,14 @@ func findMapInSliceBasedOnKeyValue(m []interface{}, key string, value interface{ // by key. This is needed by tests because in JSON, list order is significant, // but in Strategic Merge Patch, merge lists do not have significant order. // Sorting the lists allows for order-insensitive comparison of patched maps. -func sortMergeListsByName(mapJSON []byte, dataStruct interface{}) ([]byte, error) { +func sortMergeListsByName(mapJSON []byte, schema LookupPatchMeta) ([]byte, error) { var m map[string]interface{} err := json.Unmarshal(mapJSON, &m) if err != nil { return nil, mergepatch.ErrBadJSONDoc } - newM, err := sortMergeListsByNameMap(m, reflect.TypeOf(dataStruct)) + newM, err := sortMergeListsByNameMap(m, schema) if err != nil { return nil, err } @@ -1576,7 +1581,7 @@ func sortMergeListsByName(mapJSON []byte, dataStruct interface{}) ([]byte, error } // Function sortMergeListsByNameMap recursively sorts the merge lists by its mergeKey in a map. -func sortMergeListsByNameMap(s map[string]interface{}, t reflect.Type) (map[string]interface{}, error) { +func sortMergeListsByNameMap(s map[string]interface{}, schema LookupPatchMeta) (map[string]interface{}, error) { newS := map[string]interface{}{} for k, v := range s { if k == retainKeysDirective { @@ -1597,26 +1602,29 @@ func sortMergeListsByNameMap(s map[string]interface{}, t reflect.Type) (map[stri return nil, mergepatch.ErrBadPatchFormatForSetElementOrderList } } else if k != directiveMarker { - fieldType, fieldPatchStrategies, fieldPatchMergeKey, err := forkedjson.LookupPatchMetadata(t, k) - if err != nil { - return nil, err - } - _, patchStrategy, err := extractRetainKeysPatchStrategy(fieldPatchStrategies) - if err != nil { - return nil, err - } - - // If v is a map or a merge slice, recurse. - if typedV, ok := v.(map[string]interface{}); ok { - var err error - v, err = sortMergeListsByNameMap(typedV, fieldType) + // recurse for map and slice. + switch typedV := v.(type) { + case map[string]interface{}: + subschema, _, err := schema.LookupPatchMetadataForStruct(k) + if err != nil { + return nil, err + } + v, err = sortMergeListsByNameMap(typedV, subschema) + if err != nil { + return nil, err + } + case []interface{}: + subschema, patchMeta, err := schema.LookupPatchMetadataForSlice(k) + if err != nil { + return nil, err + } + _, patchStrategy, err := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies()) if err != nil { return nil, err } - } else if typedV, ok := v.([]interface{}); ok { if patchStrategy == mergeDirective { var err error - v, err = sortMergeListsByNameArray(typedV, fieldType.Elem(), fieldPatchMergeKey, true) + v, err = sortMergeListsByNameArray(typedV, subschema, patchMeta.GetPatchMergeKey(), true) if err != nil { return nil, err } @@ -1631,7 +1639,7 @@ func sortMergeListsByNameMap(s map[string]interface{}, t reflect.Type) (map[stri } // Function sortMergeListsByNameMap recursively sorts the merge lists by its mergeKey in an array. -func sortMergeListsByNameArray(s []interface{}, elemType reflect.Type, mergeKey string, recurse bool) ([]interface{}, error) { +func sortMergeListsByNameArray(s []interface{}, schema LookupPatchMeta, mergeKey string, recurse bool) ([]interface{}, error) { if len(s) == 0 { return s, nil } @@ -1654,7 +1662,7 @@ func sortMergeListsByNameArray(s []interface{}, elemType reflect.Type, mergeKey for _, elem := range s { if recurse { typedElem := elem.(map[string]interface{}) - newElem, err := sortMergeListsByNameMap(typedElem, elemType) + newElem, err := sortMergeListsByNameMap(typedElem, schema) if err != nil { return nil, err } @@ -1800,18 +1808,13 @@ func sliceElementType(slices ...[]interface{}) (reflect.Type, error) { // objects overlap with different values in any key. All keys are required to be // strings. Since patches of the same Type have congruent keys, this is valid // for multiple patch types. This method supports strategic merge patch semantics. -func MergingMapsHaveConflicts(left, right map[string]interface{}, dataStruct interface{}) (bool, error) { - t, err := getTagStructType(dataStruct) - if err != nil { - return true, err - } - - return mergingMapFieldsHaveConflicts(left, right, t, "", "") +func MergingMapsHaveConflicts(left, right map[string]interface{}, schema LookupPatchMeta) (bool, error) { + return mergingMapFieldsHaveConflicts(left, right, schema, "", "") } func mergingMapFieldsHaveConflicts( left, right interface{}, - fieldType reflect.Type, + schema LookupPatchMeta, fieldPatchStrategy, fieldPatchMergeKey string, ) (bool, error) { switch leftType := left.(type) { @@ -1842,15 +1845,14 @@ func mergingMapFieldsHaveConflicts( return false, nil } // Check the individual keys. - return mapsHaveConflicts(leftType, rightType, fieldType) + return mapsHaveConflicts(leftType, rightType, schema) case []interface{}: rightType, ok := right.([]interface{}) if !ok { return true, nil } - return slicesHaveConflicts(leftType, rightType, fieldType, fieldPatchStrategy, fieldPatchMergeKey) - + return slicesHaveConflicts(leftType, rightType, schema, fieldPatchStrategy, fieldPatchMergeKey) case string, float64, bool, int, int64, nil: return !reflect.DeepEqual(left, right), nil default: @@ -1858,21 +1860,37 @@ func mergingMapFieldsHaveConflicts( } } -func mapsHaveConflicts(typedLeft, typedRight map[string]interface{}, structType reflect.Type) (bool, error) { +func mapsHaveConflicts(typedLeft, typedRight map[string]interface{}, schema LookupPatchMeta) (bool, error) { for key, leftValue := range typedLeft { if key != directiveMarker && key != retainKeysDirective { if rightValue, ok := typedRight[key]; ok { - fieldType, fieldPatchStrategies, fieldPatchMergeKey, err := forkedjson.LookupPatchMetadata(structType, key) - if err != nil { - return true, err - } - _, patchStrategy, err := extractRetainKeysPatchStrategy(fieldPatchStrategies) - if err != nil { - return true, err + var subschema LookupPatchMeta + var patchMeta PatchMeta + var patchStrategy string + var err error + switch leftValue.(type) { + case []interface{}: + subschema, patchMeta, err = schema.LookupPatchMetadataForSlice(key) + if err != nil { + return true, err + } + _, patchStrategy, err = extractRetainKeysPatchStrategy(patchMeta.patchStrategies) + if err != nil { + return true, err + } + case map[string]interface{}: + subschema, patchMeta, err = schema.LookupPatchMetadataForStruct(key) + if err != nil { + return true, err + } + _, patchStrategy, err = extractRetainKeysPatchStrategy(patchMeta.patchStrategies) + if err != nil { + return true, err + } } if hasConflicts, err := mergingMapFieldsHaveConflicts(leftValue, rightValue, - fieldType, patchStrategy, fieldPatchMergeKey); hasConflicts { + subschema, patchStrategy, patchMeta.GetPatchMergeKey()); hasConflicts { return true, err } } @@ -1884,7 +1902,7 @@ func mapsHaveConflicts(typedLeft, typedRight map[string]interface{}, structType func slicesHaveConflicts( typedLeft, typedRight []interface{}, - fieldType reflect.Type, + schema LookupPatchMeta, fieldPatchStrategy, fieldPatchMergeKey string, ) (bool, error) { elementType, err := sliceElementType(typedLeft, typedRight) @@ -1892,7 +1910,6 @@ func slicesHaveConflicts( return true, err } - valueType := fieldType.Elem() if fieldPatchStrategy == mergeDirective { // Merging lists of scalars have no conflicts by definition // So we only need to check further if the elements are maps @@ -1911,7 +1928,7 @@ func slicesHaveConflicts( return true, err } - return mapsOfMapsHaveConflicts(leftMap, rightMap, valueType) + return mapsOfMapsHaveConflicts(leftMap, rightMap, schema) } // Either we don't have type information, or these are non-merging lists @@ -1929,7 +1946,7 @@ func slicesHaveConflicts( // Compare the slices element by element in order // This test will fail if the slices are not sorted for i := range typedLeft { - if hasConflicts, err := mergingMapFieldsHaveConflicts(typedLeft[i], typedRight[i], valueType, "", ""); hasConflicts { + if hasConflicts, err := mergingMapFieldsHaveConflicts(typedLeft[i], typedRight[i], schema, "", ""); hasConflicts { return true, err } } @@ -1956,10 +1973,10 @@ func sliceOfMapsToMapOfMaps(slice []interface{}, mergeKey string) (map[string]in return result, nil } -func mapsOfMapsHaveConflicts(typedLeft, typedRight map[string]interface{}, structType reflect.Type) (bool, error) { +func mapsOfMapsHaveConflicts(typedLeft, typedRight map[string]interface{}, schema LookupPatchMeta) (bool, error) { for key, leftValue := range typedLeft { if rightValue, ok := typedRight[key]; ok { - if hasConflicts, err := mergingMapFieldsHaveConflicts(leftValue, rightValue, structType, "", ""); hasConflicts { + if hasConflicts, err := mergingMapFieldsHaveConflicts(leftValue, rightValue, schema, "", ""); hasConflicts { return true, err } } @@ -1979,7 +1996,7 @@ func mapsOfMapsHaveConflicts(typedLeft, typedRight map[string]interface{}, struc // in a way that is different from how it is changed in current (e.g., deleting it, changing its // value). We also propagate values fields that do not exist in original but are explicitly // defined in modified. -func CreateThreeWayMergePatch(original, modified, current []byte, dataStruct interface{}, overwrite bool, fns ...mergepatch.PreconditionFunc) ([]byte, error) { +func CreateThreeWayMergePatch(original, modified, current []byte, schema LookupPatchMeta, overwrite bool, fns ...mergepatch.PreconditionFunc) ([]byte, error) { originalMap := map[string]interface{}{} if len(original) > 0 { if err := json.Unmarshal(original, &originalMap); err != nil { @@ -2001,11 +2018,6 @@ func CreateThreeWayMergePatch(original, modified, current []byte, dataStruct int } } - t, err := getTagStructType(dataStruct) - if err != nil { - return nil, err - } - // The patch is the difference from current to modified without deletions, plus deletions // from original to modified. To find it, we compute deletions, which are the deletions from // original to modified, and delta, which is the difference from current to modified without @@ -2014,7 +2026,7 @@ func CreateThreeWayMergePatch(original, modified, current []byte, dataStruct int IgnoreDeletions: true, SetElementOrder: true, } - deltaMap, err := diffMaps(currentMap, modifiedMap, t, deltaMapDiffOptions) + deltaMap, err := diffMaps(currentMap, modifiedMap, schema, deltaMapDiffOptions) if err != nil { return nil, err } @@ -2022,13 +2034,13 @@ func CreateThreeWayMergePatch(original, modified, current []byte, dataStruct int SetElementOrder: true, IgnoreChangesAndAdditions: true, } - deletionsMap, err := diffMaps(originalMap, modifiedMap, t, deletionsMapDiffOptions) + deletionsMap, err := diffMaps(originalMap, modifiedMap, schema, deletionsMapDiffOptions) if err != nil { return nil, err } mergeOptions := MergeOptions{} - patchMap, err := mergeMap(deletionsMap, deltaMap, t, mergeOptions) + patchMap, err := mergeMap(deletionsMap, deltaMap, schema, mergeOptions) if err != nil { return nil, err } @@ -2044,12 +2056,12 @@ func CreateThreeWayMergePatch(original, modified, current []byte, dataStruct int // then return a conflict error. if !overwrite { changeMapDiffOptions := DiffOptions{} - changedMap, err := diffMaps(originalMap, currentMap, t, changeMapDiffOptions) + changedMap, err := diffMaps(originalMap, currentMap, schema, changeMapDiffOptions) if err != nil { return nil, err } - hasConflicts, err := MergingMapsHaveConflicts(patchMap, changedMap, dataStruct) + hasConflicts, err := MergingMapsHaveConflicts(patchMap, changedMap, schema) if err != nil { return nil, err } diff --git a/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/types.go b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/types.go new file mode 100644 index 00000000..f84d65aa --- /dev/null +++ b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/types.go @@ -0,0 +1,193 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package strategicpatch + +import ( + "errors" + "strings" + + "k8s.io/apimachinery/pkg/util/mergepatch" + openapi "k8s.io/kube-openapi/pkg/util/proto" +) + +const ( + patchStrategyOpenapiextensionKey = "x-kubernetes-patch-strategy" + patchMergeKeyOpenapiextensionKey = "x-kubernetes-patch-merge-key" +) + +type LookupPatchItem interface { + openapi.SchemaVisitor + + Error() error + Path() *openapi.Path +} + +type kindItem struct { + key string + path *openapi.Path + err error + patchmeta PatchMeta + subschema openapi.Schema + hasVisitKind bool +} + +func NewKindItem(key string, path *openapi.Path) *kindItem { + return &kindItem{ + key: key, + path: path, + } +} + +var _ LookupPatchItem = &kindItem{} + +func (item *kindItem) Error() error { + return item.err +} + +func (item *kindItem) Path() *openapi.Path { + return item.path +} + +func (item *kindItem) VisitPrimitive(schema *openapi.Primitive) { + item.err = errors.New("expected kind, but got primitive") +} + +func (item *kindItem) VisitArray(schema *openapi.Array) { + item.err = errors.New("expected kind, but got slice") +} + +func (item *kindItem) VisitMap(schema *openapi.Map) { + item.err = errors.New("expected kind, but got map") +} + +func (item *kindItem) VisitReference(schema openapi.Reference) { + if !item.hasVisitKind { + schema.SubSchema().Accept(item) + } +} + +func (item *kindItem) VisitKind(schema *openapi.Kind) { + subschema, ok := schema.Fields[item.key] + if !ok { + item.err = FieldNotFoundError{Path: schema.GetPath().String(), Field: item.key} + return + } + + mergeKey, patchStrategies, err := parsePatchMetadata(subschema.GetExtensions()) + if err != nil { + item.err = err + return + } + item.patchmeta = PatchMeta{ + patchStrategies: patchStrategies, + patchMergeKey: mergeKey, + } + item.subschema = subschema +} + +type sliceItem struct { + key string + path *openapi.Path + err error + patchmeta PatchMeta + subschema openapi.Schema + hasVisitKind bool +} + +func NewSliceItem(key string, path *openapi.Path) *sliceItem { + return &sliceItem{ + key: key, + path: path, + } +} + +var _ LookupPatchItem = &sliceItem{} + +func (item *sliceItem) Error() error { + return item.err +} + +func (item *sliceItem) Path() *openapi.Path { + return item.path +} + +func (item *sliceItem) VisitPrimitive(schema *openapi.Primitive) { + item.err = errors.New("expected slice, but got primitive") +} + +func (item *sliceItem) VisitArray(schema *openapi.Array) { + if !item.hasVisitKind { + item.err = errors.New("expected visit kind first, then visit array") + } + subschema := schema.SubType + item.subschema = subschema +} + +func (item *sliceItem) VisitMap(schema *openapi.Map) { + item.err = errors.New("expected slice, but got map") +} + +func (item *sliceItem) VisitReference(schema openapi.Reference) { + if !item.hasVisitKind { + schema.SubSchema().Accept(item) + } else { + item.subschema = schema.SubSchema() + } +} + +func (item *sliceItem) VisitKind(schema *openapi.Kind) { + subschema, ok := schema.Fields[item.key] + if !ok { + item.err = FieldNotFoundError{Path: schema.GetPath().String(), Field: item.key} + return + } + + mergeKey, patchStrategies, err := parsePatchMetadata(subschema.GetExtensions()) + if err != nil { + item.err = err + return + } + item.patchmeta = PatchMeta{ + patchStrategies: patchStrategies, + patchMergeKey: mergeKey, + } + item.hasVisitKind = true + subschema.Accept(item) +} + +func parsePatchMetadata(extensions map[string]interface{}) (string, []string, error) { + ps, foundPS := extensions[patchStrategyOpenapiextensionKey] + var patchStrategies []string + var mergeKey, patchStrategy string + var ok bool + if foundPS { + patchStrategy, ok = ps.(string) + if ok { + patchStrategies = strings.Split(patchStrategy, ",") + } else { + return "", nil, mergepatch.ErrBadArgType(patchStrategy, ps) + } + } + mk, foundMK := extensions[patchMergeKeyOpenapiextensionKey] + if foundMK { + mergeKey, ok = mk.(string) + if !ok { + return "", nil, mergepatch.ErrBadArgType(mergeKey, mk) + } + } + return mergeKey, patchStrategies, nil +} diff --git a/vendor/k8s.io/apimachinery/third_party/forked/golang/json/fields.go b/vendor/k8s.io/apimachinery/third_party/forked/golang/json/fields.go index 006972ec..8205a4dd 100644 --- a/vendor/k8s.io/apimachinery/third_party/forked/golang/json/fields.go +++ b/vendor/k8s.io/apimachinery/third_party/forked/golang/json/fields.go @@ -26,17 +26,14 @@ const ( // struct field given the struct type and the JSON name of the field. // It returns field type, a slice of patch strategies, merge key and error. // TODO: fix the returned errors to be introspectable. -func LookupPatchMetadata(t reflect.Type, jsonField string) ( +func LookupPatchMetadataForStruct(t reflect.Type, jsonField string) ( elemType reflect.Type, patchStrategies []string, patchMergeKey string, e error) { if t.Kind() == reflect.Ptr { t = t.Elem() } - if t.Kind() == reflect.Map { - elemType = t.Elem() - return - } + if t.Kind() != reflect.Struct { - e = fmt.Errorf("merging an object in json but data type is not map or struct, instead is: %s", + e = fmt.Errorf("merging an object in json but data type is not struct, instead is: %s", t.Kind().String()) return } diff --git a/vendor/k8s.io/client-go/informers/BUILD b/vendor/k8s.io/client-go/informers/BUILD index 97e9c265..99486a1c 100644 --- a/vendor/k8s.io/client-go/informers/BUILD +++ b/vendor/k8s.io/client-go/informers/BUILD @@ -25,6 +25,7 @@ go_library( "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/events/v1beta1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", @@ -45,6 +46,7 @@ go_library( "//vendor/k8s.io/client-go/informers/batch:go_default_library", "//vendor/k8s.io/client-go/informers/certificates:go_default_library", "//vendor/k8s.io/client-go/informers/core:go_default_library", + "//vendor/k8s.io/client-go/informers/events:go_default_library", "//vendor/k8s.io/client-go/informers/extensions:go_default_library", "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", "//vendor/k8s.io/client-go/informers/networking:go_default_library", @@ -75,6 +77,7 @@ filegroup( "//staging/src/k8s.io/client-go/informers/batch:all-srcs", "//staging/src/k8s.io/client-go/informers/certificates:all-srcs", "//staging/src/k8s.io/client-go/informers/core:all-srcs", + "//staging/src/k8s.io/client-go/informers/events:all-srcs", "//staging/src/k8s.io/client-go/informers/extensions:all-srcs", "//staging/src/k8s.io/client-go/informers/internalinterfaces:all-srcs", "//staging/src/k8s.io/client-go/informers/networking:all-srcs", diff --git a/vendor/k8s.io/client-go/informers/events/BUILD b/vendor/k8s.io/client-go/informers/events/BUILD new file mode 100644 index 00000000..cf87d7c5 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/events/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["interface.go"], + importpath = "k8s.io/client-go/informers/events", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/client-go/informers/events/v1beta1:go_default_library", + "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//staging/src/k8s.io/client-go/informers/events/v1beta1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/client-go/informers/events/interface.go b/vendor/k8s.io/client-go/informers/events/interface.go new file mode 100644 index 00000000..81f6646f --- /dev/null +++ b/vendor/k8s.io/client-go/informers/events/interface.go @@ -0,0 +1,46 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This file was automatically generated by informer-gen + +package events + +import ( + v1beta1 "k8s.io/client-go/informers/events/v1beta1" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to each of this group's versions. +type Interface interface { + // V1beta1 provides access to shared informers for resources in V1beta1. + V1beta1() v1beta1.Interface +} + +type group struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// V1beta1 returns a new v1beta1.Interface. +func (g *group) V1beta1() v1beta1.Interface { + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/vendor/k8s.io/client-go/informers/events/v1beta1/BUILD b/vendor/k8s.io/client-go/informers/events/v1beta1/BUILD new file mode 100644 index 00000000..7f398d3e --- /dev/null +++ b/vendor/k8s.io/client-go/informers/events/v1beta1/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "event.go", + "interface.go", + ], + importpath = "k8s.io/client-go/informers/events/v1beta1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/events/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/listers/events/v1beta1:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/client-go/informers/events/v1beta1/event.go b/vendor/k8s.io/client-go/informers/events/v1beta1/event.go new file mode 100644 index 00000000..d604b4cf --- /dev/null +++ b/vendor/k8s.io/client-go/informers/events/v1beta1/event.go @@ -0,0 +1,88 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This file was automatically generated by informer-gen + +package v1beta1 + +import ( + events_v1beta1 "k8s.io/api/events/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1beta1 "k8s.io/client-go/listers/events/v1beta1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// EventInformer provides access to a shared informer and lister for +// Events. +type EventInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1beta1.EventLister +} + +type eventInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewEventInformer constructs a new informer for Event type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewEventInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredEventInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredEventInformer constructs a new informer for Event type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredEventInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.EventsV1beta1().Events(namespace).List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.EventsV1beta1().Events(namespace).Watch(options) + }, + }, + &events_v1beta1.Event{}, + resyncPeriod, + indexers, + ) +} + +func (f *eventInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredEventInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *eventInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&events_v1beta1.Event{}, f.defaultInformer) +} + +func (f *eventInformer) Lister() v1beta1.EventLister { + return v1beta1.NewEventLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/client-go/informers/events/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/events/v1beta1/interface.go new file mode 100644 index 00000000..d079afed --- /dev/null +++ b/vendor/k8s.io/client-go/informers/events/v1beta1/interface.go @@ -0,0 +1,45 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This file was automatically generated by informer-gen + +package v1beta1 + +import ( + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // Events returns a EventInformer. + Events() EventInformer +} + +type version struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// Events returns a EventInformer. +func (v *version) Events() EventInformer { + return &eventInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/client-go/informers/factory.go b/vendor/k8s.io/client-go/informers/factory.go index 89ef77ba..e922c127 100644 --- a/vendor/k8s.io/client-go/informers/factory.go +++ b/vendor/k8s.io/client-go/informers/factory.go @@ -28,6 +28,7 @@ import ( batch "k8s.io/client-go/informers/batch" certificates "k8s.io/client-go/informers/certificates" core "k8s.io/client-go/informers/core" + events "k8s.io/client-go/informers/events" extensions "k8s.io/client-go/informers/extensions" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" networking "k8s.io/client-go/informers/networking" @@ -140,6 +141,7 @@ type SharedInformerFactory interface { Batch() batch.Interface Certificates() certificates.Interface Core() core.Interface + Events() events.Interface Extensions() extensions.Interface Networking() networking.Interface Policy() policy.Interface @@ -173,6 +175,10 @@ func (f *sharedInformerFactory) Core() core.Interface { return core.New(f, f.namespace, f.tweakListOptions) } +func (f *sharedInformerFactory) Events() events.Interface { + return events.New(f, f.namespace, f.tweakListOptions) +} + func (f *sharedInformerFactory) Extensions() extensions.Interface { return extensions.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/client-go/informers/generic.go b/vendor/k8s.io/client-go/informers/generic.go index f3547814..70ed4331 100644 --- a/vendor/k8s.io/client-go/informers/generic.go +++ b/vendor/k8s.io/client-go/informers/generic.go @@ -32,6 +32,7 @@ import ( v2alpha1 "k8s.io/api/batch/v2alpha1" certificates_v1beta1 "k8s.io/api/certificates/v1beta1" core_v1 "k8s.io/api/core/v1" + events_v1beta1 "k8s.io/api/events/v1beta1" extensions_v1beta1 "k8s.io/api/extensions/v1beta1" networking_v1 "k8s.io/api/networking/v1" policy_v1beta1 "k8s.io/api/policy/v1beta1" @@ -173,6 +174,10 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case core_v1.SchemeGroupVersion.WithResource("serviceaccounts"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ServiceAccounts().Informer()}, nil + // Group=events.k8s.io, Version=v1beta1 + case events_v1beta1.SchemeGroupVersion.WithResource("events"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Events().V1beta1().Events().Informer()}, nil + // Group=extensions, Version=v1beta1 case extensions_v1beta1.SchemeGroupVersion.WithResource("daemonsets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().DaemonSets().Informer()}, nil diff --git a/vendor/k8s.io/client-go/kubernetes/BUILD b/vendor/k8s.io/client-go/kubernetes/BUILD index 9c5922cf..0ef4f867 100644 --- a/vendor/k8s.io/client-go/kubernetes/BUILD +++ b/vendor/k8s.io/client-go/kubernetes/BUILD @@ -32,6 +32,7 @@ go_library( "//vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/networking/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1:go_default_library", @@ -77,6 +78,7 @@ filegroup( "//staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:all-srcs", + "//staging/src/k8s.io/client-go/kubernetes/typed/events/v1beta1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/networking/v1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1:all-srcs", diff --git a/vendor/k8s.io/client-go/kubernetes/clientset.go b/vendor/k8s.io/client-go/kubernetes/clientset.go index cb3f21ad..7dcf86a7 100644 --- a/vendor/k8s.io/client-go/kubernetes/clientset.go +++ b/vendor/k8s.io/client-go/kubernetes/clientset.go @@ -35,6 +35,7 @@ import ( batchv2alpha1 "k8s.io/client-go/kubernetes/typed/batch/v2alpha1" certificatesv1beta1 "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" corev1 "k8s.io/client-go/kubernetes/typed/core/v1" + eventsv1beta1 "k8s.io/client-go/kubernetes/typed/events/v1beta1" extensionsv1beta1 "k8s.io/client-go/kubernetes/typed/extensions/v1beta1" networkingv1 "k8s.io/client-go/kubernetes/typed/networking/v1" policyv1beta1 "k8s.io/client-go/kubernetes/typed/policy/v1beta1" @@ -84,6 +85,9 @@ type Interface interface { CoreV1() corev1.CoreV1Interface // Deprecated: please explicitly pick a version if possible. Core() corev1.CoreV1Interface + EventsV1beta1() eventsv1beta1.EventsV1beta1Interface + // Deprecated: please explicitly pick a version if possible. + Events() eventsv1beta1.EventsV1beta1Interface ExtensionsV1beta1() extensionsv1beta1.ExtensionsV1beta1Interface // Deprecated: please explicitly pick a version if possible. Extensions() extensionsv1beta1.ExtensionsV1beta1Interface @@ -104,11 +108,11 @@ type Interface interface { SettingsV1alpha1() settingsv1alpha1.SettingsV1alpha1Interface // Deprecated: please explicitly pick a version if possible. Settings() settingsv1alpha1.SettingsV1alpha1Interface - StorageV1alpha1() storagev1alpha1.StorageV1alpha1Interface StorageV1beta1() storagev1beta1.StorageV1beta1Interface StorageV1() storagev1.StorageV1Interface // Deprecated: please explicitly pick a version if possible. Storage() storagev1.StorageV1Interface + StorageV1alpha1() storagev1alpha1.StorageV1alpha1Interface } // Clientset contains the clients for groups. Each group has exactly one @@ -131,6 +135,7 @@ type Clientset struct { batchV2alpha1 *batchv2alpha1.BatchV2alpha1Client certificatesV1beta1 *certificatesv1beta1.CertificatesV1beta1Client coreV1 *corev1.CoreV1Client + eventsV1beta1 *eventsv1beta1.EventsV1beta1Client extensionsV1beta1 *extensionsv1beta1.ExtensionsV1beta1Client networkingV1 *networkingv1.NetworkingV1Client policyV1beta1 *policyv1beta1.PolicyV1beta1Client @@ -139,9 +144,9 @@ type Clientset struct { rbacV1alpha1 *rbacv1alpha1.RbacV1alpha1Client schedulingV1alpha1 *schedulingv1alpha1.SchedulingV1alpha1Client settingsV1alpha1 *settingsv1alpha1.SettingsV1alpha1Client - storageV1alpha1 *storagev1alpha1.StorageV1alpha1Client storageV1beta1 *storagev1beta1.StorageV1beta1Client storageV1 *storagev1.StorageV1Client + storageV1alpha1 *storagev1alpha1.StorageV1alpha1Client } // AdmissionregistrationV1alpha1 retrieves the AdmissionregistrationV1alpha1Client @@ -272,6 +277,17 @@ func (c *Clientset) Core() corev1.CoreV1Interface { return c.coreV1 } +// EventsV1beta1 retrieves the EventsV1beta1Client +func (c *Clientset) EventsV1beta1() eventsv1beta1.EventsV1beta1Interface { + return c.eventsV1beta1 +} + +// Deprecated: Events retrieves the default version of EventsClient. +// Please explicitly pick a version. +func (c *Clientset) Events() eventsv1beta1.EventsV1beta1Interface { + return c.eventsV1beta1 +} + // ExtensionsV1beta1 retrieves the ExtensionsV1beta1Client func (c *Clientset) ExtensionsV1beta1() extensionsv1beta1.ExtensionsV1beta1Interface { return c.extensionsV1beta1 @@ -348,11 +364,6 @@ func (c *Clientset) Settings() settingsv1alpha1.SettingsV1alpha1Interface { return c.settingsV1alpha1 } -// StorageV1alpha1 retrieves the StorageV1alpha1Client -func (c *Clientset) StorageV1alpha1() storagev1alpha1.StorageV1alpha1Interface { - return c.storageV1alpha1 -} - // StorageV1beta1 retrieves the StorageV1beta1Client func (c *Clientset) StorageV1beta1() storagev1beta1.StorageV1beta1Interface { return c.storageV1beta1 @@ -369,6 +380,11 @@ func (c *Clientset) Storage() storagev1.StorageV1Interface { return c.storageV1 } +// StorageV1alpha1 retrieves the StorageV1alpha1Client +func (c *Clientset) StorageV1alpha1() storagev1alpha1.StorageV1alpha1Interface { + return c.storageV1alpha1 +} + // Discovery retrieves the DiscoveryClient func (c *Clientset) Discovery() discovery.DiscoveryInterface { if c == nil { @@ -449,6 +465,10 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } + cs.eventsV1beta1, err = eventsv1beta1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } cs.extensionsV1beta1, err = extensionsv1beta1.NewForConfig(&configShallowCopy) if err != nil { return nil, err @@ -481,10 +501,6 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } - cs.storageV1alpha1, err = storagev1alpha1.NewForConfig(&configShallowCopy) - if err != nil { - return nil, err - } cs.storageV1beta1, err = storagev1beta1.NewForConfig(&configShallowCopy) if err != nil { return nil, err @@ -493,6 +509,10 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } + cs.storageV1alpha1, err = storagev1alpha1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) if err != nil { @@ -522,6 +542,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { cs.batchV2alpha1 = batchv2alpha1.NewForConfigOrDie(c) cs.certificatesV1beta1 = certificatesv1beta1.NewForConfigOrDie(c) cs.coreV1 = corev1.NewForConfigOrDie(c) + cs.eventsV1beta1 = eventsv1beta1.NewForConfigOrDie(c) cs.extensionsV1beta1 = extensionsv1beta1.NewForConfigOrDie(c) cs.networkingV1 = networkingv1.NewForConfigOrDie(c) cs.policyV1beta1 = policyv1beta1.NewForConfigOrDie(c) @@ -530,9 +551,9 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { cs.rbacV1alpha1 = rbacv1alpha1.NewForConfigOrDie(c) cs.schedulingV1alpha1 = schedulingv1alpha1.NewForConfigOrDie(c) cs.settingsV1alpha1 = settingsv1alpha1.NewForConfigOrDie(c) - cs.storageV1alpha1 = storagev1alpha1.NewForConfigOrDie(c) cs.storageV1beta1 = storagev1beta1.NewForConfigOrDie(c) cs.storageV1 = storagev1.NewForConfigOrDie(c) + cs.storageV1alpha1 = storagev1alpha1.NewForConfigOrDie(c) cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) return &cs @@ -557,6 +578,7 @@ func New(c rest.Interface) *Clientset { cs.batchV2alpha1 = batchv2alpha1.New(c) cs.certificatesV1beta1 = certificatesv1beta1.New(c) cs.coreV1 = corev1.New(c) + cs.eventsV1beta1 = eventsv1beta1.New(c) cs.extensionsV1beta1 = extensionsv1beta1.New(c) cs.networkingV1 = networkingv1.New(c) cs.policyV1beta1 = policyv1beta1.New(c) @@ -565,9 +587,9 @@ func New(c rest.Interface) *Clientset { cs.rbacV1alpha1 = rbacv1alpha1.New(c) cs.schedulingV1alpha1 = schedulingv1alpha1.New(c) cs.settingsV1alpha1 = settingsv1alpha1.New(c) - cs.storageV1alpha1 = storagev1alpha1.New(c) cs.storageV1beta1 = storagev1beta1.New(c) cs.storageV1 = storagev1.New(c) + cs.storageV1alpha1 = storagev1alpha1.New(c) cs.DiscoveryClient = discovery.NewDiscoveryClient(c) return &cs diff --git a/vendor/k8s.io/client-go/kubernetes/scheme/BUILD b/vendor/k8s.io/client-go/kubernetes/scheme/BUILD index fc7c55b3..1bb118aa 100644 --- a/vendor/k8s.io/client-go/kubernetes/scheme/BUILD +++ b/vendor/k8s.io/client-go/kubernetes/scheme/BUILD @@ -29,6 +29,7 @@ go_library( "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/events/v1beta1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", diff --git a/vendor/k8s.io/client-go/kubernetes/scheme/register.go b/vendor/k8s.io/client-go/kubernetes/scheme/register.go index 56e21a56..7bfd3361 100644 --- a/vendor/k8s.io/client-go/kubernetes/scheme/register.go +++ b/vendor/k8s.io/client-go/kubernetes/scheme/register.go @@ -33,6 +33,7 @@ import ( batchv2alpha1 "k8s.io/api/batch/v2alpha1" certificatesv1beta1 "k8s.io/api/certificates/v1beta1" corev1 "k8s.io/api/core/v1" + eventsv1beta1 "k8s.io/api/events/v1beta1" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" networkingv1 "k8s.io/api/networking/v1" policyv1beta1 "k8s.io/api/policy/v1beta1" @@ -90,6 +91,7 @@ func AddToScheme(scheme *runtime.Scheme) { batchv2alpha1.AddToScheme(scheme) certificatesv1beta1.AddToScheme(scheme) corev1.AddToScheme(scheme) + eventsv1beta1.AddToScheme(scheme) extensionsv1beta1.AddToScheme(scheme) networkingv1.AddToScheme(scheme) policyv1beta1.AddToScheme(scheme) @@ -98,8 +100,8 @@ func AddToScheme(scheme *runtime.Scheme) { rbacv1alpha1.AddToScheme(scheme) schedulingv1alpha1.AddToScheme(scheme) settingsv1alpha1.AddToScheme(scheme) - storagev1alpha1.AddToScheme(scheme) storagev1beta1.AddToScheme(scheme) storagev1.AddToScheme(scheme) + storagev1alpha1.AddToScheme(scheme) } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/BUILD new file mode 100644 index 00000000..307884cc --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "event.go", + "events_client.go", + "generated_expansion.go", + ], + importpath = "k8s.io/client-go/kubernetes/typed/events/v1beta1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/events/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//staging/src/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/doc.go new file mode 100644 index 00000000..1b50aa19 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/doc.go @@ -0,0 +1,18 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This package has the automatically generated typed clients. +package v1beta1 diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go new file mode 100644 index 00000000..3473e99c --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go @@ -0,0 +1,155 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/events/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// EventsGetter has a method to return a EventInterface. +// A group's client should implement this interface. +type EventsGetter interface { + Events(namespace string) EventInterface +} + +// EventInterface has methods to work with Event resources. +type EventInterface interface { + Create(*v1beta1.Event) (*v1beta1.Event, error) + Update(*v1beta1.Event) (*v1beta1.Event, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1beta1.Event, error) + List(opts v1.ListOptions) (*v1beta1.EventList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Event, err error) + EventExpansion +} + +// events implements EventInterface +type events struct { + client rest.Interface + ns string +} + +// newEvents returns a Events +func newEvents(c *EventsV1beta1Client, namespace string) *events { + return &events{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the event, and returns the corresponding event object, and an error if there is any. +func (c *events) Get(name string, options v1.GetOptions) (result *v1beta1.Event, err error) { + result = &v1beta1.Event{} + err = c.client.Get(). + Namespace(c.ns). + Resource("events"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Events that match those selectors. +func (c *events) List(opts v1.ListOptions) (result *v1beta1.EventList, err error) { + result = &v1beta1.EventList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("events"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested events. +func (c *events) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("events"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a event and creates it. Returns the server's representation of the event, and an error, if there is any. +func (c *events) Create(event *v1beta1.Event) (result *v1beta1.Event, err error) { + result = &v1beta1.Event{} + err = c.client.Post(). + Namespace(c.ns). + Resource("events"). + Body(event). + Do(). + Into(result) + return +} + +// Update takes the representation of a event and updates it. Returns the server's representation of the event, and an error, if there is any. +func (c *events) Update(event *v1beta1.Event) (result *v1beta1.Event, err error) { + result = &v1beta1.Event{} + err = c.client.Put(). + Namespace(c.ns). + Resource("events"). + Name(event.Name). + Body(event). + Do(). + Into(result) + return +} + +// Delete takes name of the event and deletes it. Returns an error if one occurs. +func (c *events) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("events"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *events) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("events"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched event. +func (c *events) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Event, err error) { + result = &v1beta1.Event{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("events"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/events_client.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/events_client.go new file mode 100644 index 00000000..05cee7fb --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/events_client.go @@ -0,0 +1,88 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/events/v1beta1" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +type EventsV1beta1Interface interface { + RESTClient() rest.Interface + EventsGetter +} + +// EventsV1beta1Client is used to interact with features provided by the events.k8s.io group. +type EventsV1beta1Client struct { + restClient rest.Interface +} + +func (c *EventsV1beta1Client) Events(namespace string) EventInterface { + return newEvents(c, namespace) +} + +// NewForConfig creates a new EventsV1beta1Client for the given config. +func NewForConfig(c *rest.Config) (*EventsV1beta1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &EventsV1beta1Client{client}, nil +} + +// NewForConfigOrDie creates a new EventsV1beta1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *EventsV1beta1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new EventsV1beta1Client for the given RESTClient. +func New(c rest.Interface) *EventsV1beta1Client { + return &EventsV1beta1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v1beta1.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs} + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *EventsV1beta1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/generated_expansion.go new file mode 100644 index 00000000..82b2fb4a --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/generated_expansion.go @@ -0,0 +1,19 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +type EventExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/apps/v1/BUILD b/vendor/k8s.io/client-go/listers/apps/v1/BUILD index 98d6dfe4..fb3cfbbb 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1/BUILD +++ b/vendor/k8s.io/client-go/listers/apps/v1/BUILD @@ -5,16 +5,22 @@ go_library( srcs = [ "controllerrevision.go", "daemonset.go", + "daemonset_expansion.go", "deployment.go", + "deployment_expansion.go", "expansion_generated.go", "replicaset.go", + "replicaset_expansion.go", "statefulset.go", + "statefulset_expansion.go", ], importpath = "k8s.io/client-go/listers/apps/v1", visibility = ["//visibility:public"], deps = [ "//vendor/k8s.io/api/apps/v1:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", ], diff --git a/vendor/k8s.io/client-go/listers/apps/v1/daemonset_expansion.go b/vendor/k8s.io/client-go/listers/apps/v1/daemonset_expansion.go new file mode 100644 index 00000000..83435561 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/apps/v1/daemonset_expansion.go @@ -0,0 +1,113 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1 + +import ( + "fmt" + + apps "k8s.io/api/apps/v1" + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" +) + +// DaemonSetListerExpansion allows custom methods to be added to +// DaemonSetLister. +type DaemonSetListerExpansion interface { + GetPodDaemonSets(pod *v1.Pod) ([]*apps.DaemonSet, error) + GetHistoryDaemonSets(history *apps.ControllerRevision) ([]*apps.DaemonSet, error) +} + +// DaemonSetNamespaceListerExpansion allows custom methods to be added to +// DaemonSetNamespaceLister. +type DaemonSetNamespaceListerExpansion interface{} + +// GetPodDaemonSets returns a list of DaemonSets that potentially match a pod. +// Only the one specified in the Pod's ControllerRef will actually manage it. +// Returns an error only if no matching DaemonSets are found. +func (s *daemonSetLister) GetPodDaemonSets(pod *v1.Pod) ([]*apps.DaemonSet, error) { + var selector labels.Selector + var daemonSet *apps.DaemonSet + + if len(pod.Labels) == 0 { + return nil, fmt.Errorf("no daemon sets found for pod %v because it has no labels", pod.Name) + } + + list, err := s.DaemonSets(pod.Namespace).List(labels.Everything()) + if err != nil { + return nil, err + } + + var daemonSets []*apps.DaemonSet + for i := range list { + daemonSet = list[i] + if daemonSet.Namespace != pod.Namespace { + continue + } + selector, err = metav1.LabelSelectorAsSelector(daemonSet.Spec.Selector) + if err != nil { + // this should not happen if the DaemonSet passed validation + return nil, err + } + + // If a daemonSet with a nil or empty selector creeps in, it should match nothing, not everything. + if selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) { + continue + } + daemonSets = append(daemonSets, daemonSet) + } + + if len(daemonSets) == 0 { + return nil, fmt.Errorf("could not find daemon set for pod %s in namespace %s with labels: %v", pod.Name, pod.Namespace, pod.Labels) + } + + return daemonSets, nil +} + +// GetHistoryDaemonSets returns a list of DaemonSets that potentially +// match a ControllerRevision. Only the one specified in the ControllerRevision's ControllerRef +// will actually manage it. +// Returns an error only if no matching DaemonSets are found. +func (s *daemonSetLister) GetHistoryDaemonSets(history *apps.ControllerRevision) ([]*apps.DaemonSet, error) { + if len(history.Labels) == 0 { + return nil, fmt.Errorf("no DaemonSet found for ControllerRevision %s because it has no labels", history.Name) + } + + list, err := s.DaemonSets(history.Namespace).List(labels.Everything()) + if err != nil { + return nil, err + } + + var daemonSets []*apps.DaemonSet + for _, ds := range list { + selector, err := metav1.LabelSelectorAsSelector(ds.Spec.Selector) + if err != nil { + return nil, fmt.Errorf("invalid label selector: %v", err) + } + // If a DaemonSet with a nil or empty selector creeps in, it should match nothing, not everything. + if selector.Empty() || !selector.Matches(labels.Set(history.Labels)) { + continue + } + daemonSets = append(daemonSets, ds) + } + + if len(daemonSets) == 0 { + return nil, fmt.Errorf("could not find DaemonSets for ControllerRevision %s in namespace %s with labels: %v", history.Name, history.Namespace, history.Labels) + } + + return daemonSets, nil +} diff --git a/vendor/k8s.io/client-go/listers/apps/v1/deployment_expansion.go b/vendor/k8s.io/client-go/listers/apps/v1/deployment_expansion.go new file mode 100644 index 00000000..7802eca5 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/apps/v1/deployment_expansion.go @@ -0,0 +1,70 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1 + +import ( + "fmt" + + apps "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" +) + +// DeploymentListerExpansion allows custom methods to be added to +// DeploymentLister. +type DeploymentListerExpansion interface { + GetDeploymentsForReplicaSet(rs *apps.ReplicaSet) ([]*apps.Deployment, error) +} + +// DeploymentNamespaceListerExpansion allows custom methods to be added to +// DeploymentNamespaceLister. +type DeploymentNamespaceListerExpansion interface{} + +// GetDeploymentsForReplicaSet returns a list of Deployments that potentially +// match a ReplicaSet. Only the one specified in the ReplicaSet's ControllerRef +// will actually manage it. +// Returns an error only if no matching Deployments are found. +func (s *deploymentLister) GetDeploymentsForReplicaSet(rs *apps.ReplicaSet) ([]*apps.Deployment, error) { + if len(rs.Labels) == 0 { + return nil, fmt.Errorf("no deployments found for ReplicaSet %v because it has no labels", rs.Name) + } + + // TODO: MODIFY THIS METHOD so that it checks for the podTemplateSpecHash label + dList, err := s.Deployments(rs.Namespace).List(labels.Everything()) + if err != nil { + return nil, err + } + + var deployments []*apps.Deployment + for _, d := range dList { + selector, err := metav1.LabelSelectorAsSelector(d.Spec.Selector) + if err != nil { + return nil, fmt.Errorf("invalid label selector: %v", err) + } + // If a deployment with a nil or empty selector creeps in, it should match nothing, not everything. + if selector.Empty() || !selector.Matches(labels.Set(rs.Labels)) { + continue + } + deployments = append(deployments, d) + } + + if len(deployments) == 0 { + return nil, fmt.Errorf("could not find deployments set for ReplicaSet %s in namespace %s with labels: %v", rs.Name, rs.Namespace, rs.Labels) + } + + return deployments, nil +} diff --git a/vendor/k8s.io/client-go/listers/apps/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/apps/v1/expansion_generated.go index 1f17ab48..48917c2c 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/apps/v1/expansion_generated.go @@ -25,35 +25,3 @@ type ControllerRevisionListerExpansion interface{} // ControllerRevisionNamespaceListerExpansion allows custom methods to be added to // ControllerRevisionNamespaceLister. type ControllerRevisionNamespaceListerExpansion interface{} - -// DaemonSetListerExpansion allows custom methods to be added to -// DaemonSetLister. -type DaemonSetListerExpansion interface{} - -// DaemonSetNamespaceListerExpansion allows custom methods to be added to -// DaemonSetNamespaceLister. -type DaemonSetNamespaceListerExpansion interface{} - -// DeploymentListerExpansion allows custom methods to be added to -// DeploymentLister. -type DeploymentListerExpansion interface{} - -// DeploymentNamespaceListerExpansion allows custom methods to be added to -// DeploymentNamespaceLister. -type DeploymentNamespaceListerExpansion interface{} - -// ReplicaSetListerExpansion allows custom methods to be added to -// ReplicaSetLister. -type ReplicaSetListerExpansion interface{} - -// ReplicaSetNamespaceListerExpansion allows custom methods to be added to -// ReplicaSetNamespaceLister. -type ReplicaSetNamespaceListerExpansion interface{} - -// StatefulSetListerExpansion allows custom methods to be added to -// StatefulSetLister. -type StatefulSetListerExpansion interface{} - -// StatefulSetNamespaceListerExpansion allows custom methods to be added to -// StatefulSetNamespaceLister. -type StatefulSetNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/apps/v1/replicaset_expansion.go b/vendor/k8s.io/client-go/listers/apps/v1/replicaset_expansion.go new file mode 100644 index 00000000..675e615a --- /dev/null +++ b/vendor/k8s.io/client-go/listers/apps/v1/replicaset_expansion.go @@ -0,0 +1,73 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1 + +import ( + "fmt" + + apps "k8s.io/api/apps/v1" + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" +) + +// ReplicaSetListerExpansion allows custom methods to be added to +// ReplicaSetLister. +type ReplicaSetListerExpansion interface { + GetPodReplicaSets(pod *v1.Pod) ([]*apps.ReplicaSet, error) +} + +// ReplicaSetNamespaceListerExpansion allows custom methods to be added to +// ReplicaSetNamespaceLister. +type ReplicaSetNamespaceListerExpansion interface{} + +// GetPodReplicaSets returns a list of ReplicaSets that potentially match a pod. +// Only the one specified in the Pod's ControllerRef will actually manage it. +// Returns an error only if no matching ReplicaSets are found. +func (s *replicaSetLister) GetPodReplicaSets(pod *v1.Pod) ([]*apps.ReplicaSet, error) { + if len(pod.Labels) == 0 { + return nil, fmt.Errorf("no ReplicaSets found for pod %v because it has no labels", pod.Name) + } + + list, err := s.ReplicaSets(pod.Namespace).List(labels.Everything()) + if err != nil { + return nil, err + } + + var rss []*apps.ReplicaSet + for _, rs := range list { + if rs.Namespace != pod.Namespace { + continue + } + selector, err := metav1.LabelSelectorAsSelector(rs.Spec.Selector) + if err != nil { + return nil, fmt.Errorf("invalid selector: %v", err) + } + + // If a ReplicaSet with a nil or empty selector creeps in, it should match nothing, not everything. + if selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) { + continue + } + rss = append(rss, rs) + } + + if len(rss) == 0 { + return nil, fmt.Errorf("could not find ReplicaSet for pod %s in namespace %s with labels: %v", pod.Name, pod.Namespace, pod.Labels) + } + + return rss, nil +} diff --git a/vendor/k8s.io/client-go/listers/apps/v1/statefulset_expansion.go b/vendor/k8s.io/client-go/listers/apps/v1/statefulset_expansion.go new file mode 100644 index 00000000..b4912976 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/apps/v1/statefulset_expansion.go @@ -0,0 +1,77 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1 + +import ( + "fmt" + + apps "k8s.io/api/apps/v1" + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" +) + +// StatefulSetListerExpansion allows custom methods to be added to +// StatefulSetLister. +type StatefulSetListerExpansion interface { + GetPodStatefulSets(pod *v1.Pod) ([]*apps.StatefulSet, error) +} + +// StatefulSetNamespaceListerExpansion allows custom methods to be added to +// StatefulSetNamespaceLister. +type StatefulSetNamespaceListerExpansion interface{} + +// GetPodStatefulSets returns a list of StatefulSets that potentially match a pod. +// Only the one specified in the Pod's ControllerRef will actually manage it. +// Returns an error only if no matching StatefulSets are found. +func (s *statefulSetLister) GetPodStatefulSets(pod *v1.Pod) ([]*apps.StatefulSet, error) { + var selector labels.Selector + var ps *apps.StatefulSet + + if len(pod.Labels) == 0 { + return nil, fmt.Errorf("no StatefulSets found for pod %v because it has no labels", pod.Name) + } + + list, err := s.StatefulSets(pod.Namespace).List(labels.Everything()) + if err != nil { + return nil, err + } + + var psList []*apps.StatefulSet + for i := range list { + ps = list[i] + if ps.Namespace != pod.Namespace { + continue + } + selector, err = metav1.LabelSelectorAsSelector(ps.Spec.Selector) + if err != nil { + return nil, fmt.Errorf("invalid selector: %v", err) + } + + // If a StatefulSet with a nil or empty selector creeps in, it should match nothing, not everything. + if selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) { + continue + } + psList = append(psList, ps) + } + + if len(psList) == 0 { + return nil, fmt.Errorf("could not find StatefulSet for pod %s in namespace %s with labels: %v", pod.Name, pod.Namespace, pod.Labels) + } + + return psList, nil +} diff --git a/vendor/k8s.io/client-go/listers/events/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/events/v1beta1/BUILD new file mode 100644 index 00000000..f4ea35d4 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/events/v1beta1/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "event.go", + "expansion_generated.go", + ], + importpath = "k8s.io/client-go/listers/events/v1beta1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/events/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/client-go/listers/events/v1beta1/event.go b/vendor/k8s.io/client-go/listers/events/v1beta1/event.go new file mode 100644 index 00000000..bca3c452 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/events/v1beta1/event.go @@ -0,0 +1,94 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This file was automatically generated by lister-gen + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/events/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// EventLister helps list Events. +type EventLister interface { + // List lists all Events in the indexer. + List(selector labels.Selector) (ret []*v1beta1.Event, err error) + // Events returns an object that can list and get Events. + Events(namespace string) EventNamespaceLister + EventListerExpansion +} + +// eventLister implements the EventLister interface. +type eventLister struct { + indexer cache.Indexer +} + +// NewEventLister returns a new EventLister. +func NewEventLister(indexer cache.Indexer) EventLister { + return &eventLister{indexer: indexer} +} + +// List lists all Events in the indexer. +func (s *eventLister) List(selector labels.Selector) (ret []*v1beta1.Event, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.Event)) + }) + return ret, err +} + +// Events returns an object that can list and get Events. +func (s *eventLister) Events(namespace string) EventNamespaceLister { + return eventNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// EventNamespaceLister helps list and get Events. +type EventNamespaceLister interface { + // List lists all Events in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1beta1.Event, err error) + // Get retrieves the Event from the indexer for a given namespace and name. + Get(name string) (*v1beta1.Event, error) + EventNamespaceListerExpansion +} + +// eventNamespaceLister implements the EventNamespaceLister +// interface. +type eventNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all Events in the indexer for a given namespace. +func (s eventNamespaceLister) List(selector labels.Selector) (ret []*v1beta1.Event, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.Event)) + }) + return ret, err +} + +// Get retrieves the Event from the indexer for a given namespace and name. +func (s eventNamespaceLister) Get(name string) (*v1beta1.Event, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1beta1.Resource("event"), name) + } + return obj.(*v1beta1.Event), nil +} diff --git a/vendor/k8s.io/client-go/listers/events/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/events/v1beta1/expansion_generated.go new file mode 100644 index 00000000..7e8fb62b --- /dev/null +++ b/vendor/k8s.io/client-go/listers/events/v1beta1/expansion_generated.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This file was automatically generated by lister-gen + +package v1beta1 + +// EventListerExpansion allows custom methods to be added to +// EventLister. +type EventListerExpansion interface{} + +// EventNamespaceListerExpansion allows custom methods to be added to +// EventNamespaceLister. +type EventNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/kube-openapi/pkg/util/proto/doc.go b/vendor/k8s.io/kube-openapi/pkg/util/proto/doc.go new file mode 100644 index 00000000..11ed8a6b --- /dev/null +++ b/vendor/k8s.io/kube-openapi/pkg/util/proto/doc.go @@ -0,0 +1,19 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package proto is a collection of libraries for parsing and indexing the type definitions. +// The openapi spec contains the object model definitions and extensions metadata. +package proto diff --git a/vendor/k8s.io/kube-openapi/pkg/util/proto/document.go b/vendor/k8s.io/kube-openapi/pkg/util/proto/document.go new file mode 100644 index 00000000..5f607c76 --- /dev/null +++ b/vendor/k8s.io/kube-openapi/pkg/util/proto/document.go @@ -0,0 +1,275 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package proto + +import ( + "fmt" + "sort" + "strings" + + openapi_v2 "github.com/googleapis/gnostic/OpenAPIv2" + yaml "gopkg.in/yaml.v2" +) + +func newSchemaError(path *Path, format string, a ...interface{}) error { + err := fmt.Sprintf(format, a...) + if path.Len() == 0 { + return fmt.Errorf("SchemaError: %v", err) + } + return fmt.Errorf("SchemaError(%v): %v", path, err) +} + +// VendorExtensionToMap converts openapi VendorExtension to a map. +func VendorExtensionToMap(e []*openapi_v2.NamedAny) map[string]interface{} { + values := map[string]interface{}{} + + for _, na := range e { + if na.GetName() == "" || na.GetValue() == nil { + continue + } + if na.GetValue().GetYaml() == "" { + continue + } + var value interface{} + err := yaml.Unmarshal([]byte(na.GetValue().GetYaml()), &value) + if err != nil { + continue + } + + values[na.GetName()] = value + } + + return values +} + +// Definitions is an implementation of `Models`. It looks for +// models in an openapi Schema. +type Definitions struct { + models map[string]Schema +} + +var _ Models = &Definitions{} + +// NewOpenAPIData creates a new `Models` out of the openapi document. +func NewOpenAPIData(doc *openapi_v2.Document) (Models, error) { + definitions := Definitions{ + models: map[string]Schema{}, + } + + // Save the list of all models first. This will allow us to + // validate that we don't have any dangling reference. + for _, namedSchema := range doc.GetDefinitions().GetAdditionalProperties() { + definitions.models[namedSchema.GetName()] = nil + } + + // Now, parse each model. We can validate that references exists. + for _, namedSchema := range doc.GetDefinitions().GetAdditionalProperties() { + path := NewPath(namedSchema.GetName()) + schema, err := definitions.ParseSchema(namedSchema.GetValue(), &path) + if err != nil { + return nil, err + } + definitions.models[namedSchema.GetName()] = schema + } + + return &definitions, nil +} + +// We believe the schema is a reference, verify that and returns a new +// Schema +func (d *Definitions) parseReference(s *openapi_v2.Schema, path *Path) (Schema, error) { + if len(s.GetProperties().GetAdditionalProperties()) > 0 { + return nil, newSchemaError(path, "unallowed embedded type definition") + } + if len(s.GetType().GetValue()) > 0 { + return nil, newSchemaError(path, "definition reference can't have a type") + } + + if !strings.HasPrefix(s.GetXRef(), "#/definitions/") { + return nil, newSchemaError(path, "unallowed reference to non-definition %q", s.GetXRef()) + } + reference := strings.TrimPrefix(s.GetXRef(), "#/definitions/") + if _, ok := d.models[reference]; !ok { + return nil, newSchemaError(path, "unknown model in reference: %q", reference) + } + return &Ref{ + BaseSchema: d.parseBaseSchema(s, path), + reference: reference, + definitions: d, + }, nil +} + +func (d *Definitions) parseBaseSchema(s *openapi_v2.Schema, path *Path) BaseSchema { + return BaseSchema{ + Description: s.GetDescription(), + Extensions: VendorExtensionToMap(s.GetVendorExtension()), + Path: *path, + } +} + +// We believe the schema is a map, verify and return a new schema +func (d *Definitions) parseMap(s *openapi_v2.Schema, path *Path) (Schema, error) { + if len(s.GetType().GetValue()) != 0 && s.GetType().GetValue()[0] != object { + return nil, newSchemaError(path, "invalid object type") + } + if s.GetAdditionalProperties().GetSchema() == nil { + return nil, newSchemaError(path, "invalid object doesn't have additional properties") + } + sub, err := d.ParseSchema(s.GetAdditionalProperties().GetSchema(), path) + if err != nil { + return nil, err + } + return &Map{ + BaseSchema: d.parseBaseSchema(s, path), + SubType: sub, + }, nil +} + +func (d *Definitions) parsePrimitive(s *openapi_v2.Schema, path *Path) (Schema, error) { + var t string + if len(s.GetType().GetValue()) > 1 { + return nil, newSchemaError(path, "primitive can't have more than 1 type") + } + if len(s.GetType().GetValue()) == 1 { + t = s.GetType().GetValue()[0] + } + switch t { + case String: + case Number: + case Integer: + case Boolean: + case "": // Some models are completely empty, and can be safely ignored. + // Do nothing + default: + return nil, newSchemaError(path, "Unknown primitive type: %q", t) + } + return &Primitive{ + BaseSchema: d.parseBaseSchema(s, path), + Type: t, + Format: s.GetFormat(), + }, nil +} + +func (d *Definitions) parseArray(s *openapi_v2.Schema, path *Path) (Schema, error) { + if len(s.GetType().GetValue()) != 1 { + return nil, newSchemaError(path, "array should have exactly one type") + } + if s.GetType().GetValue()[0] != array { + return nil, newSchemaError(path, `array should have type "array"`) + } + if len(s.GetItems().GetSchema()) != 1 { + return nil, newSchemaError(path, "array should have exactly one sub-item") + } + sub, err := d.ParseSchema(s.GetItems().GetSchema()[0], path) + if err != nil { + return nil, err + } + return &Array{ + BaseSchema: d.parseBaseSchema(s, path), + SubType: sub, + }, nil +} + +func (d *Definitions) parseKind(s *openapi_v2.Schema, path *Path) (Schema, error) { + if len(s.GetType().GetValue()) != 0 && s.GetType().GetValue()[0] != object { + return nil, newSchemaError(path, "invalid object type") + } + if s.GetProperties() == nil { + return nil, newSchemaError(path, "object doesn't have properties") + } + + fields := map[string]Schema{} + + for _, namedSchema := range s.GetProperties().GetAdditionalProperties() { + var err error + path := path.FieldPath(namedSchema.GetName()) + fields[namedSchema.GetName()], err = d.ParseSchema(namedSchema.GetValue(), &path) + if err != nil { + return nil, err + } + } + + return &Kind{ + BaseSchema: d.parseBaseSchema(s, path), + RequiredFields: s.GetRequired(), + Fields: fields, + }, nil +} + +// ParseSchema creates a walkable Schema from an openapi schema. While +// this function is public, it doesn't leak through the interface. +func (d *Definitions) ParseSchema(s *openapi_v2.Schema, path *Path) (Schema, error) { + if len(s.GetType().GetValue()) == 1 { + t := s.GetType().GetValue()[0] + switch t { + case object: + return d.parseMap(s, path) + case array: + return d.parseArray(s, path) + } + + } + if s.GetXRef() != "" { + return d.parseReference(s, path) + } + if s.GetProperties() != nil { + return d.parseKind(s, path) + } + return d.parsePrimitive(s, path) +} + +// LookupModel is public through the interface of Models. It +// returns a visitable schema from the given model name. +func (d *Definitions) LookupModel(model string) Schema { + return d.models[model] +} + +func (d *Definitions) ListModels() []string { + models := []string{} + + for model := range d.models { + models = append(models, model) + } + + sort.Strings(models) + return models +} + +type Ref struct { + BaseSchema + + reference string + definitions *Definitions +} + +var _ Reference = &Ref{} + +func (r *Ref) Reference() string { + return r.reference +} + +func (r *Ref) SubSchema() Schema { + return r.definitions.models[r.reference] +} + +func (r *Ref) Accept(v SchemaVisitor) { + v.VisitReference(r) +} + +func (r *Ref) GetName() string { + return fmt.Sprintf("Reference to %q", r.reference) +} diff --git a/vendor/k8s.io/kube-openapi/pkg/util/proto/openapi.go b/vendor/k8s.io/kube-openapi/pkg/util/proto/openapi.go new file mode 100644 index 00000000..02ab06d6 --- /dev/null +++ b/vendor/k8s.io/kube-openapi/pkg/util/proto/openapi.go @@ -0,0 +1,251 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package proto + +import ( + "fmt" + "sort" + "strings" +) + +// Defines openapi types. +const ( + Integer = "integer" + Number = "number" + String = "string" + Boolean = "boolean" + + // These types are private as they should never leak, and are + // represented by actual structs. + array = "array" + object = "object" +) + +// Models interface describe a model provider. They can give you the +// schema for a specific model. +type Models interface { + LookupModel(string) Schema + ListModels() []string +} + +// SchemaVisitor is an interface that you need to implement if you want +// to "visit" an openapi schema. A dispatch on the Schema type will call +// the appropriate function based on its actual type: +// - Array is a list of one and only one given subtype +// - Map is a map of string to one and only one given subtype +// - Primitive can be string, integer, number and boolean. +// - Kind is an object with specific fields mapping to specific types. +// - Reference is a link to another definition. +type SchemaVisitor interface { + VisitArray(*Array) + VisitMap(*Map) + VisitPrimitive(*Primitive) + VisitKind(*Kind) + VisitReference(Reference) +} + +// Schema is the base definition of an openapi type. +type Schema interface { + // Giving a visitor here will let you visit the actual type. + Accept(SchemaVisitor) + + // Pretty print the name of the type. + GetName() string + // Describes how to access this field. + GetPath() *Path + // Describes the field. + GetDescription() string + // Returns type extensions. + GetExtensions() map[string]interface{} +} + +// Path helps us keep track of type paths +type Path struct { + parent *Path + key string +} + +func NewPath(key string) Path { + return Path{key: key} +} + +func (p *Path) Get() []string { + if p == nil { + return []string{} + } + if p.key == "" { + return p.parent.Get() + } + return append(p.parent.Get(), p.key) +} + +func (p *Path) Len() int { + return len(p.Get()) +} + +func (p *Path) String() string { + return strings.Join(p.Get(), "") +} + +// ArrayPath appends an array index and creates a new path +func (p *Path) ArrayPath(i int) Path { + return Path{ + parent: p, + key: fmt.Sprintf("[%d]", i), + } +} + +// FieldPath appends a field name and creates a new path +func (p *Path) FieldPath(field string) Path { + return Path{ + parent: p, + key: fmt.Sprintf(".%s", field), + } +} + +// BaseSchema holds data used by each types of schema. +type BaseSchema struct { + Description string + Extensions map[string]interface{} + + Path Path +} + +func (b *BaseSchema) GetDescription() string { + return b.Description +} + +func (b *BaseSchema) GetExtensions() map[string]interface{} { + return b.Extensions +} + +func (b *BaseSchema) GetPath() *Path { + return &b.Path +} + +// Array must have all its element of the same `SubType`. +type Array struct { + BaseSchema + + SubType Schema +} + +var _ Schema = &Array{} + +func (a *Array) Accept(v SchemaVisitor) { + v.VisitArray(a) +} + +func (a *Array) GetName() string { + return fmt.Sprintf("Array of %s", a.SubType.GetName()) +} + +// Kind is a complex object. It can have multiple different +// subtypes for each field, as defined in the `Fields` field. Mandatory +// fields are listed in `RequiredFields`. The key of the object is +// always of type `string`. +type Kind struct { + BaseSchema + + // Lists names of required fields. + RequiredFields []string + // Maps field names to types. + Fields map[string]Schema +} + +var _ Schema = &Kind{} + +func (k *Kind) Accept(v SchemaVisitor) { + v.VisitKind(k) +} + +func (k *Kind) GetName() string { + properties := []string{} + for key := range k.Fields { + properties = append(properties, key) + } + return fmt.Sprintf("Kind(%v)", properties) +} + +// IsRequired returns true if `field` is a required field for this type. +func (k *Kind) IsRequired(field string) bool { + for _, f := range k.RequiredFields { + if f == field { + return true + } + } + return false +} + +// Keys returns a alphabetically sorted list of keys. +func (k *Kind) Keys() []string { + keys := make([]string, 0) + for key := range k.Fields { + keys = append(keys, key) + } + sort.Strings(keys) + return keys +} + +// Map is an object who values must all be of the same `SubType`. +// The key of the object is always of type `string`. +type Map struct { + BaseSchema + + SubType Schema +} + +var _ Schema = &Map{} + +func (m *Map) Accept(v SchemaVisitor) { + v.VisitMap(m) +} + +func (m *Map) GetName() string { + return fmt.Sprintf("Map of %s", m.SubType.GetName()) +} + +// Primitive is a literal. There can be multiple types of primitives, +// and this subtype can be visited through the `subType` field. +type Primitive struct { + BaseSchema + + // Type of a primitive must be one of: integer, number, string, boolean. + Type string + Format string +} + +var _ Schema = &Primitive{} + +func (p *Primitive) Accept(v SchemaVisitor) { + v.VisitPrimitive(p) +} + +func (p *Primitive) GetName() string { + if p.Format == "" { + return p.Type + } + return fmt.Sprintf("%s (%s)", p.Type, p.Format) +} + +// Reference implementation depends on the type of document. +type Reference interface { + Schema + + Reference() string + SubSchema() Schema +}